diff --git a/BUILD b/BUILD
index eaaf86985c2..eb65e877eea 100644
--- a/BUILD
+++ b/BUILD
@@ -1436,6 +1436,7 @@ grpc_cc_library(
"absl/functional:bind_front",
"upb_lib",
"upb_textformat_lib",
+ "upb_json_lib",
"re2",
],
language = "c++",
@@ -2595,6 +2596,24 @@ grpc_cc_library(
alwayslink = 1,
)
+grpc_cc_library(
+ name = "grpcpp_csds",
+ srcs = [
+ "src/cpp/server/csds/csds.cc",
+ ],
+ hdrs = [
+ "src/cpp/server/csds/csds.h",
+ ],
+ language = "c++",
+ public_hdrs = [
+ ],
+ deps = [
+ ":grpc++",
+ "//src/proto/grpc/testing/xds/v3:csds_proto",
+ ],
+ alwayslink = 1,
+)
+
grpc_cc_library(
name = "grpc++_test",
srcs = [
@@ -2728,7 +2747,9 @@ grpc_cc_library(
grpc_cc_library(
name = "envoy_ads_upb",
srcs = [
+ "src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c",
"src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c",
+ "src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c",
"src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c",
"src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c",
"src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c",
@@ -2740,6 +2761,8 @@ grpc_cc_library(
"src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c",
"src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c",
"src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c",
+ "src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c",
+ "src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c",
"src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c",
"src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c",
"src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c",
@@ -2762,9 +2785,12 @@ grpc_cc_library(
"src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c",
"src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c",
"src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c",
+ "src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c",
],
hdrs = [
+ "src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h",
"src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h",
+ "src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h",
"src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h",
"src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h",
"src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h",
@@ -2776,6 +2802,8 @@ grpc_cc_library(
"src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h",
"src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h",
"src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h",
+ "src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h",
+ "src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h",
"src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h",
"src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h",
"src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h",
@@ -2798,6 +2826,7 @@ grpc_cc_library(
"src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h",
"src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h",
"src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h",
+ "src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h",
],
external_deps = [
"upb_lib",
@@ -2818,7 +2847,9 @@ grpc_cc_library(
grpc_cc_library(
name = "envoy_ads_upbdefs",
srcs = [
+ "src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c",
@@ -2830,6 +2861,8 @@ grpc_cc_library(
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c",
@@ -2851,9 +2884,12 @@ grpc_cc_library(
"src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c",
],
hdrs = [
+ "src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h",
@@ -2865,6 +2901,8 @@ grpc_cc_library(
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h",
@@ -2886,6 +2924,7 @@ grpc_cc_library(
"src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h",
],
external_deps = [
"upb_lib",
@@ -3044,10 +3083,12 @@ grpc_cc_library(
name = "envoy_type_upb",
srcs = [
"src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c",
"src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c",
"src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c",
@@ -3058,10 +3099,12 @@ grpc_cc_library(
],
hdrs = [
"src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h",
"src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h",
"src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h",
@@ -3087,10 +3130,12 @@ grpc_cc_library(
name = "envoy_type_upbdefs",
srcs = [
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c",
@@ -3101,10 +3146,12 @@ grpc_cc_library(
],
hdrs = [
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h",
diff --git a/BUILD.gn b/BUILD.gn
index 8328adbfc74..ffe97eda099 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -400,12 +400,16 @@ config("grpc_config") {
"src/core/ext/transport/inproc/inproc_plugin.cc",
"src/core/ext/transport/inproc/inproc_transport.cc",
"src/core/ext/transport/inproc/inproc_transport.h",
+ "src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c",
+ "src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h",
"src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c",
"src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h",
"src/core/ext/upb-generated/envoy/annotations/resource.upb.c",
"src/core/ext/upb-generated/envoy/annotations/resource.upb.h",
"src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c",
"src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h",
+ "src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c",
+ "src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h",
"src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c",
"src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h",
"src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c",
@@ -454,6 +458,10 @@ config("grpc_config") {
"src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h",
"src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c",
"src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h",
+ "src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c",
+ "src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h",
+ "src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c",
+ "src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h",
"src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c",
"src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h",
"src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c",
@@ -498,8 +506,12 @@ config("grpc_config") {
"src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h",
"src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c",
"src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h",
+ "src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c",
+ "src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c",
@@ -508,6 +520,8 @@ config("grpc_config") {
"src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c",
+ "src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h",
"src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c",
"src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h",
"src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c",
@@ -582,12 +596,16 @@ config("grpc_config") {
"src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h",
"src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c",
"src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h",
+ "src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c",
@@ -636,6 +654,10 @@ config("grpc_config") {
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c",
@@ -678,8 +700,12 @@ config("grpc_config") {
"src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c",
@@ -688,6 +714,8 @@ config("grpc_config") {
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c",
+ "src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c",
"src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h",
"src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9b21ace962f..d2f3367dc2c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -466,9 +466,15 @@ protobuf_generate_grpc_cpp(
protobuf_generate_grpc_cpp(
src/proto/grpc/testing/xds/v3/cluster.proto
)
+protobuf_generate_grpc_cpp(
+ src/proto/grpc/testing/xds/v3/config_dump.proto
+)
protobuf_generate_grpc_cpp(
src/proto/grpc/testing/xds/v3/config_source.proto
)
+protobuf_generate_grpc_cpp(
+ src/proto/grpc/testing/xds/v3/csds.proto
+)
protobuf_generate_grpc_cpp(
src/proto/grpc/testing/xds/v3/discovery.proto
)
@@ -1573,9 +1579,11 @@ add_library(grpc
src/core/ext/transport/chttp2/transport/writing.cc
src/core/ext/transport/inproc/inproc_plugin.cc
src/core/ext/transport/inproc/inproc_transport.cc
+ src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c
src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c
src/core/ext/upb-generated/envoy/annotations/resource.upb.c
src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c
+ src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c
src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c
src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c
src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c
@@ -1600,6 +1608,8 @@ add_library(grpc
src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c
src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c
src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c
+ src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c
+ src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c
src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c
src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c
src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c
@@ -1622,11 +1632,14 @@ add_library(grpc
src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c
src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c
src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c
+ src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c
src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c
+ src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c
src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c
src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c
src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c
src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c
+ src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c
src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c
src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c
src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c
@@ -1664,9 +1677,11 @@ add_library(grpc
src/core/ext/upb-generated/xds/core/v3/resource.upb.c
src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c
src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c
+ src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c
src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c
src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c
+ src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c
@@ -1691,6 +1706,8 @@ add_library(grpc
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c
+ src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c
+ src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c
src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c
@@ -1712,11 +1729,14 @@ add_library(grpc
src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c
src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c
src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c
+ src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c
+ src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c
+ src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c
src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c
src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c
@@ -3842,8 +3862,6 @@ add_library(upb
third_party/upb/upb/decode.c
third_party/upb/upb/def.c
third_party/upb/upb/encode.c
- third_party/upb/upb/json_decode.c
- third_party/upb/upb/json_encode.c
third_party/upb/upb/msg.c
third_party/upb/upb/reflection.c
third_party/upb/upb/table.c
@@ -16342,10 +16360,18 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.pb.h
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_dump.grpc.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/config_source.grpc.pb.h
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.cc
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.h
+ ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.grpc.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/discovery.pb.h
@@ -16410,6 +16436,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/tls.grpc.pb.h
+ src/cpp/server/csds/csds.cc
test/cpp/end2end/test_service_impl.cc
test/cpp/end2end/xds_end2end_test.cc
third_party/googletest/googletest/src/gtest-all.cc
diff --git a/Makefile b/Makefile
index b2e7d4fe7f8..558354a5368 100644
--- a/Makefile
+++ b/Makefile
@@ -1141,9 +1141,11 @@ LIBGRPC_SRC = \
src/core/ext/transport/chttp2/transport/writing.cc \
src/core/ext/transport/inproc/inproc_plugin.cc \
src/core/ext/transport/inproc/inproc_transport.cc \
+ src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c \
src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c \
src/core/ext/upb-generated/envoy/annotations/resource.upb.c \
src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c \
+ src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c \
src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c \
src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c \
src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c \
@@ -1168,6 +1170,8 @@ LIBGRPC_SRC = \
src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c \
src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c \
src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c \
+ src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c \
+ src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c \
src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c \
src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c \
src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c \
@@ -1190,11 +1194,14 @@ LIBGRPC_SRC = \
src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c \
src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c \
src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c \
+ src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c \
+ src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c \
+ src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c \
src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c \
src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c \
@@ -1232,9 +1239,11 @@ LIBGRPC_SRC = \
src/core/ext/upb-generated/xds/core/v3/resource.upb.c \
src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c \
src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c \
+ src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c \
@@ -1259,6 +1268,8 @@ LIBGRPC_SRC = \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c \
@@ -1280,11 +1291,14 @@ LIBGRPC_SRC = \
src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c \
@@ -2385,8 +2399,6 @@ LIBUPB_SRC = \
third_party/upb/upb/decode.c \
third_party/upb/upb/def.c \
third_party/upb/upb/encode.c \
- third_party/upb/upb/json_decode.c \
- third_party/upb/upb/json_encode.c \
third_party/upb/upb/msg.c \
third_party/upb/upb/reflection.c \
third_party/upb/upb/table.c \
@@ -2672,9 +2684,11 @@ src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc:
src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc: $(OPENSSL_DEP)
src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc: $(OPENSSL_DEP)
src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc: $(OPENSSL_DEP)
+src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/annotations/resource.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c: $(OPENSSL_DEP)
+src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c: $(OPENSSL_DEP)
@@ -2699,6 +2713,8 @@ src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c: $(OPENSS
src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c: $(OPENSSL_DEP)
+src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c: $(OPENSSL_DEP)
+src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c: $(OPENSSL_DEP)
@@ -2721,11 +2737,14 @@ src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c: $(OPENSSL_DEP)
+src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c: $(OPENSSL_DEP)
+src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c: $(OPENSSL_DEP)
+src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c: $(OPENSSL_DEP)
@@ -2748,9 +2767,11 @@ src/core/ext/upb-generated/xds/core/v3/context_params.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/xds/core/v3/resource.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c: $(OPENSSL_DEP)
src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c: $(OPENSSL_DEP)
+src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c: $(OPENSSL_DEP)
+src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c: $(OPENSSL_DEP)
@@ -2775,6 +2796,8 @@ src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c:
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c: $(OPENSSL_DEP)
+src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c: $(OPENSSL_DEP)
+src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c: $(OPENSSL_DEP)
@@ -2796,11 +2819,14 @@ src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c: $(OPENSS
src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c: $(OPENSSL_DEP)
+src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c: $(OPENSSL_DEP)
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c: $(OPENSSL_DEP)
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c: $(OPENSSL_DEP)
src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c: $(OPENSSL_DEP)
diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml
index ae4967f7955..23f151a3d74 100644
--- a/build_autogenerated.yaml
+++ b/build_autogenerated.yaml
@@ -467,9 +467,11 @@ libs:
- src/core/ext/transport/chttp2/transport/stream_map.h
- src/core/ext/transport/chttp2/transport/varint.h
- src/core/ext/transport/inproc/inproc_transport.h
+ - src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h
- src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h
- src/core/ext/upb-generated/envoy/annotations/resource.upb.h
- src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h
+ - src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h
- src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h
- src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h
- src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h
@@ -494,6 +496,8 @@ libs:
- src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h
- src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h
- src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h
+ - src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h
+ - src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h
- src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h
- src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h
- src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h
@@ -516,11 +520,14 @@ libs:
- src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h
- src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h
- src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h
+ - src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h
- src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h
+ - src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h
- src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h
- src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h
- src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h
- src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h
+ - src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h
- src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h
- src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h
- src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h
@@ -558,9 +565,11 @@ libs:
- src/core/ext/upb-generated/xds/core/v3/resource.upb.h
- src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h
- src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h
+ - src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h
+ - src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h
@@ -585,6 +594,8 @@ libs:
- src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h
+ - src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h
+ - src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h
@@ -606,11 +617,14 @@ libs:
- src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h
+ - src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h
+ - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h
+ - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h
- src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h
@@ -978,9 +992,11 @@ libs:
- src/core/ext/transport/chttp2/transport/writing.cc
- src/core/ext/transport/inproc/inproc_plugin.cc
- src/core/ext/transport/inproc/inproc_transport.cc
+ - src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c
- src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c
- src/core/ext/upb-generated/envoy/annotations/resource.upb.c
- src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c
+ - src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c
- src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c
- src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c
- src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c
@@ -1005,6 +1021,8 @@ libs:
- src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c
- src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c
- src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c
+ - src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c
+ - src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c
- src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c
- src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c
- src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c
@@ -1027,11 +1045,14 @@ libs:
- src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c
- src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c
- src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c
+ - src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c
- src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c
+ - src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c
- src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c
- src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c
- src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c
- src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c
+ - src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c
- src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c
- src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c
- src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c
@@ -1069,9 +1090,11 @@ libs:
- src/core/ext/upb-generated/xds/core/v3/resource.upb.c
- src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c
- src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c
+ - src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c
+ - src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c
@@ -1096,6 +1119,8 @@ libs:
- src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c
+ - src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c
+ - src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c
@@ -1117,11 +1142,14 @@ libs:
- src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c
+ - src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c
+ - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c
+ - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c
- src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c
@@ -8323,6 +8351,7 @@ targets:
run: false
language: c++
headers:
+ - src/cpp/server/csds/csds.h
- test/cpp/end2end/test_service_impl.h
src:
- src/proto/grpc/testing/duplicate/echo_duplicate.proto
@@ -8339,7 +8368,9 @@ targets:
- src/proto/grpc/testing/xds/v3/aggregate_cluster.proto
- src/proto/grpc/testing/xds/v3/base.proto
- src/proto/grpc/testing/xds/v3/cluster.proto
+ - src/proto/grpc/testing/xds/v3/config_dump.proto
- src/proto/grpc/testing/xds/v3/config_source.proto
+ - src/proto/grpc/testing/xds/v3/csds.proto
- src/proto/grpc/testing/xds/v3/discovery.proto
- src/proto/grpc/testing/xds/v3/endpoint.proto
- src/proto/grpc/testing/xds/v3/fault.proto
@@ -8356,6 +8387,7 @@ targets:
- src/proto/grpc/testing/xds/v3/router.proto
- src/proto/grpc/testing/xds/v3/string.proto
- src/proto/grpc/testing/xds/v3/tls.proto
+ - src/cpp/server/csds/csds.cc
- test/cpp/end2end/test_service_impl.cc
- test/cpp/end2end/xds_end2end_test.cc
deps:
diff --git a/config.m4 b/config.m4
index 165c945487e..c31f21361d8 100644
--- a/config.m4
+++ b/config.m4
@@ -147,9 +147,11 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/transport/chttp2/transport/writing.cc \
src/core/ext/transport/inproc/inproc_plugin.cc \
src/core/ext/transport/inproc/inproc_transport.cc \
+ src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c \
src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c \
src/core/ext/upb-generated/envoy/annotations/resource.upb.c \
src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c \
+ src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c \
src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c \
src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c \
src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c \
@@ -174,6 +176,8 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c \
src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c \
src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c \
+ src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c \
+ src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c \
src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c \
src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c \
src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c \
@@ -196,11 +200,14 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c \
src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c \
src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c \
+ src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c \
+ src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c \
+ src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c \
src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c \
src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c \
@@ -239,9 +246,11 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/upb-generated/xds/core/v3/resource.upb.c \
src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c \
src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c \
+ src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c \
@@ -266,6 +275,8 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c \
@@ -287,11 +298,14 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c \
+ src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c \
@@ -1007,8 +1021,6 @@ if test "$PHP_GRPC" != "no"; then
third_party/upb/upb/decode_fast.c \
third_party/upb/upb/def.c \
third_party/upb/upb/encode.c \
- third_party/upb/upb/json_decode.c \
- third_party/upb/upb/json_encode.c \
third_party/upb/upb/msg.c \
third_party/upb/upb/reflection.c \
third_party/upb/upb/table.c \
@@ -1055,12 +1067,16 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/secure)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/transport)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/inproc)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/admin/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/annotations)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/accesslog/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/bootstrap/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/cluster/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/core/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/endpoint/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/listener/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/metrics/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/overload/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/rbac/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/route/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/config/trace/v3)
@@ -1076,6 +1092,7 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/service/listener/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/service/load_stats/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/service/route/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/service/status/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/type/matcher/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/type/metadata/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/envoy/type/tracing/v3)
@@ -1092,12 +1109,16 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/udpa/type/v1)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/validate)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/xds/core/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/admin/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/annotations)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/cluster/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/core/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/listener/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/metrics/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/overload/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/route/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/config/trace/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3)
@@ -1112,6 +1133,7 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/service/listener/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/service/route/v3)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/service/status/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/type/matcher/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/type/metadata/v3)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-generated/envoy/type/tracing/v3)
diff --git a/config.w32 b/config.w32
index 16310893846..89b0fa88e9e 100644
--- a/config.w32
+++ b/config.w32
@@ -113,9 +113,11 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\transport\\chttp2\\transport\\writing.cc " +
"src\\core\\ext\\transport\\inproc\\inproc_plugin.cc " +
"src\\core\\ext\\transport\\inproc\\inproc_transport.cc " +
+ "src\\core\\ext\\upb-generated\\envoy\\admin\\v3\\config_dump.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\annotations\\deprecation.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\annotations\\resource.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\accesslog\\v3\\accesslog.upb.c " +
+ "src\\core\\ext\\upb-generated\\envoy\\config\\bootstrap\\v3\\bootstrap.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\cluster\\v3\\circuit_breaker.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\cluster\\v3\\cluster.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\cluster\\v3\\filter.upb.c " +
@@ -140,6 +142,8 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\upb-generated\\envoy\\config\\listener\\v3\\listener.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\listener\\v3\\listener_components.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\listener\\v3\\udp_listener_config.upb.c " +
+ "src\\core\\ext\\upb-generated\\envoy\\config\\metrics\\v3\\stats.upb.c " +
+ "src\\core\\ext\\upb-generated\\envoy\\config\\overload\\v3\\overload.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\rbac\\v3\\rbac.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\route\\v3\\route.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\config\\route\\v3\\route_components.upb.c " +
@@ -162,11 +166,14 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\upb-generated\\envoy\\service\\load_stats\\v3\\lrs.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\service\\route\\v3\\rds.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\service\\route\\v3\\srds.upb.c " +
+ "src\\core\\ext\\upb-generated\\envoy\\service\\status\\v3\\csds.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3\\metadata.upb.c " +
+ "src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3\\node.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3\\number.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3\\path.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3\\regex.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3\\string.upb.c " +
+ "src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3\\struct.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3\\value.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\type\\metadata\\v3\\metadata.upb.c " +
"src\\core\\ext\\upb-generated\\envoy\\type\\tracing\\v3\\custom_tag.upb.c " +
@@ -205,9 +212,11 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\upb-generated\\xds\\core\\v3\\resource.upb.c " +
"src\\core\\ext\\upb-generated\\xds\\core\\v3\\resource_locator.upb.c " +
"src\\core\\ext\\upb-generated\\xds\\core\\v3\\resource_name.upb.c " +
+ "src\\core\\ext\\upbdefs-generated\\envoy\\admin\\v3\\config_dump.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\annotations\\deprecation.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\annotations\\resource.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\accesslog\\v3\\accesslog.upbdefs.c " +
+ "src\\core\\ext\\upbdefs-generated\\envoy\\config\\bootstrap\\v3\\bootstrap.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\cluster\\v3\\circuit_breaker.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\cluster\\v3\\cluster.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\cluster\\v3\\filter.upbdefs.c " +
@@ -232,6 +241,8 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\listener\\v3\\listener.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\listener\\v3\\listener_components.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\listener\\v3\\udp_listener_config.upbdefs.c " +
+ "src\\core\\ext\\upbdefs-generated\\envoy\\config\\metrics\\v3\\stats.upbdefs.c " +
+ "src\\core\\ext\\upbdefs-generated\\envoy\\config\\overload\\v3\\overload.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\route\\v3\\route.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\route\\v3\\route_components.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\config\\route\\v3\\scoped_route.upbdefs.c " +
@@ -253,11 +264,14 @@ if (PHP_GRPC != "no") {
"src\\core\\ext\\upbdefs-generated\\envoy\\service\\load_stats\\v3\\lrs.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\service\\route\\v3\\rds.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\service\\route\\v3\\srds.upbdefs.c " +
+ "src\\core\\ext\\upbdefs-generated\\envoy\\service\\status\\v3\\csds.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3\\metadata.upbdefs.c " +
+ "src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3\\node.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3\\number.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3\\path.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3\\regex.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3\\string.upbdefs.c " +
+ "src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3\\struct.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3\\value.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\type\\metadata\\v3\\metadata.upbdefs.c " +
"src\\core\\ext\\upbdefs-generated\\envoy\\type\\tracing\\v3\\custom_tag.upbdefs.c " +
@@ -973,8 +987,6 @@ if (PHP_GRPC != "no") {
"third_party\\upb\\upb\\decode_fast.c " +
"third_party\\upb\\upb\\def.c " +
"third_party\\upb\\upb\\encode.c " +
- "third_party\\upb\\upb\\json_decode.c " +
- "third_party\\upb\\upb\\json_encode.c " +
"third_party\\upb\\upb\\msg.c " +
"third_party\\upb\\upb\\reflection.c " +
"third_party\\upb\\upb\\table.c " +
@@ -1059,10 +1071,14 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\transport\\inproc");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\admin");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\admin\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\annotations");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\accesslog");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\accesslog\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\bootstrap");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\bootstrap\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\cluster");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\cluster\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\core");
@@ -1071,6 +1087,10 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\endpoint\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\listener");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\listener\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\metrics");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\metrics\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\overload");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\overload\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\rbac");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\rbac\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\config\\route");
@@ -1109,6 +1129,8 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\service\\load_stats\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\service\\route");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\service\\route\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\service\\status");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\service\\status\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\type");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\type\\matcher");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\envoy\\type\\matcher\\v3");
@@ -1144,10 +1166,14 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\xds\\core\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\admin");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\admin\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\annotations");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\accesslog");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\accesslog\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\bootstrap");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\bootstrap\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\cluster");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\cluster\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\core");
@@ -1156,6 +1182,10 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\endpoint\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\listener");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\listener\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\metrics");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\metrics\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\overload");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\overload\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\route");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\route\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\config\\trace");
@@ -1192,6 +1222,8 @@ if (PHP_GRPC != "no") {
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\service\\load_stats\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\service\\route");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\service\\route\\v3");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\service\\status");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\service\\status\\v3");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\type");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-generated\\envoy\\type\\matcher\\v3");
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index 3428ecf330e..b45c5dd9fd1 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -284,9 +284,11 @@ Pod::Spec.new do |s|
'src/core/ext/transport/chttp2/transport/stream_map.h',
'src/core/ext/transport/chttp2/transport/varint.h',
'src/core/ext/transport/inproc/inproc_transport.h',
+ 'src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h',
'src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h',
'src/core/ext/upb-generated/envoy/annotations/resource.upb.h',
'src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h',
@@ -311,6 +313,8 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h',
'src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h',
'src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h',
'src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h',
'src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h',
'src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h',
@@ -333,11 +337,14 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h',
'src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h',
'src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h',
+ 'src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h',
'src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h',
'src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h',
@@ -376,9 +383,11 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/xds/core/v3/resource.upb.h',
'src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h',
'src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h',
+ 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h',
@@ -403,6 +412,8 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h',
@@ -424,11 +435,14 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h',
@@ -813,8 +827,6 @@ Pod::Spec.new do |s|
'third_party/upb/upb/def.h',
'third_party/upb/upb/def.hpp',
'third_party/upb/upb/encode.h',
- 'third_party/upb/upb/json_decode.h',
- 'third_party/upb/upb/json_encode.h',
'third_party/upb/upb/msg.h',
'third_party/upb/upb/port_def.inc',
'third_party/upb/upb/port_undef.inc',
@@ -910,9 +922,11 @@ Pod::Spec.new do |s|
'src/core/ext/transport/chttp2/transport/stream_map.h',
'src/core/ext/transport/chttp2/transport/varint.h',
'src/core/ext/transport/inproc/inproc_transport.h',
+ 'src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h',
'src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h',
'src/core/ext/upb-generated/envoy/annotations/resource.upb.h',
'src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h',
@@ -937,6 +951,8 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h',
'src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h',
'src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h',
'src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h',
'src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h',
'src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h',
@@ -959,11 +975,14 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h',
'src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h',
'src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h',
+ 'src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h',
'src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h',
'src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h',
@@ -1002,9 +1021,11 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/xds/core/v3/resource.upb.h',
'src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h',
'src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h',
+ 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h',
@@ -1029,6 +1050,8 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h',
@@ -1050,11 +1073,14 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h',
@@ -1389,8 +1415,6 @@ Pod::Spec.new do |s|
'third_party/upb/upb/def.h',
'third_party/upb/upb/def.hpp',
'third_party/upb/upb/encode.h',
- 'third_party/upb/upb/json_decode.h',
- 'third_party/upb/upb/json_encode.h',
'third_party/upb/upb/msg.h',
'third_party/upb/upb/port_def.inc',
'third_party/upb/upb/port_undef.inc',
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index de2687563b8..7c77515f88a 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -379,12 +379,16 @@ Pod::Spec.new do |s|
'src/core/ext/transport/inproc/inproc_plugin.cc',
'src/core/ext/transport/inproc/inproc_transport.cc',
'src/core/ext/transport/inproc/inproc_transport.h',
+ 'src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c',
+ 'src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h',
'src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c',
'src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h',
'src/core/ext/upb-generated/envoy/annotations/resource.upb.c',
'src/core/ext/upb-generated/envoy/annotations/resource.upb.h',
'src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c',
'src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c',
'src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c',
@@ -433,6 +437,10 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h',
'src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c',
'src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h',
'src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c',
'src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h',
'src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c',
@@ -477,8 +485,12 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h',
'src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c',
'src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h',
+ 'src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c',
+ 'src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c',
@@ -487,6 +499,8 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h',
'src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c',
@@ -563,12 +577,16 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h',
'src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c',
'src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h',
+ 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c',
@@ -617,6 +635,10 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c',
@@ -659,8 +681,12 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c',
@@ -669,6 +695,8 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c',
@@ -1352,10 +1380,6 @@ Pod::Spec.new do |s|
'third_party/upb/upb/def.hpp',
'third_party/upb/upb/encode.c',
'third_party/upb/upb/encode.h',
- 'third_party/upb/upb/json_decode.c',
- 'third_party/upb/upb/json_decode.h',
- 'third_party/upb/upb/json_encode.c',
- 'third_party/upb/upb/json_encode.h',
'third_party/upb/upb/msg.c',
'third_party/upb/upb/msg.h',
'third_party/upb/upb/port_def.inc',
@@ -1455,9 +1479,11 @@ Pod::Spec.new do |s|
'src/core/ext/transport/chttp2/transport/stream_map.h',
'src/core/ext/transport/chttp2/transport/varint.h',
'src/core/ext/transport/inproc/inproc_transport.h',
+ 'src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h',
'src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h',
'src/core/ext/upb-generated/envoy/annotations/resource.upb.h',
'src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h',
'src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h',
@@ -1482,6 +1508,8 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h',
'src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h',
'src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h',
+ 'src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h',
'src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h',
'src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h',
'src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h',
@@ -1504,11 +1532,14 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h',
'src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h',
'src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h',
+ 'src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h',
'src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h',
'src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h',
'src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h',
@@ -1547,9 +1578,11 @@ Pod::Spec.new do |s|
'src/core/ext/upb-generated/xds/core/v3/resource.upb.h',
'src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h',
'src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h',
+ 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h',
@@ -1574,6 +1607,8 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h',
@@ -1595,11 +1630,14 @@ Pod::Spec.new do |s|
'src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h',
'src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h',
@@ -1923,8 +1961,6 @@ Pod::Spec.new do |s|
'third_party/upb/upb/def.h',
'third_party/upb/upb/def.hpp',
'third_party/upb/upb/encode.h',
- 'third_party/upb/upb/json_decode.h',
- 'third_party/upb/upb/json_encode.h',
'third_party/upb/upb/msg.h',
'third_party/upb/upb/port_def.inc',
'third_party/upb/upb/port_undef.inc',
diff --git a/grpc.def b/grpc.def
index 4dcb9edffb8..7be77a61868 100644
--- a/grpc.def
+++ b/grpc.def
@@ -75,6 +75,7 @@ EXPORTS
grpc_resource_quota_unref
grpc_resource_quota_resize
grpc_resource_quota_set_max_threads
+ grpc_dump_xds_configs
grpc_resource_quota_arg_vtable
grpc_channelz_get_top_channels
grpc_channelz_get_servers
diff --git a/grpc.gemspec b/grpc.gemspec
index e5146f97ba6..84367510cc7 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -295,12 +295,16 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/transport/inproc/inproc_plugin.cc )
s.files += %w( src/core/ext/transport/inproc/inproc_transport.cc )
s.files += %w( src/core/ext/transport/inproc/inproc_transport.h )
+ s.files += %w( src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c )
+ s.files += %w( src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/annotations/resource.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/annotations/resource.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h )
+ s.files += %w( src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c )
+ s.files += %w( src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c )
@@ -349,6 +353,10 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h )
+ s.files += %w( src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c )
+ s.files += %w( src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h )
+ s.files += %w( src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c )
+ s.files += %w( src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c )
@@ -393,8 +401,12 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h )
+ s.files += %w( src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c )
+ s.files += %w( src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h )
+ s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c )
+ s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c )
@@ -403,6 +415,8 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h )
+ s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c )
+ s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c )
s.files += %w( src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h )
s.files += %w( src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c )
@@ -479,12 +493,16 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h )
s.files += %w( src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c )
s.files += %w( src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c )
@@ -533,6 +551,10 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c )
@@ -575,8 +597,12 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c )
@@ -585,6 +611,8 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c )
+ s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h )
s.files += %w( src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c )
@@ -2060,10 +2088,6 @@ Gem::Specification.new do |s|
s.files += %w( third_party/upb/upb/def.hpp )
s.files += %w( third_party/upb/upb/encode.c )
s.files += %w( third_party/upb/upb/encode.h )
- s.files += %w( third_party/upb/upb/json_decode.c )
- s.files += %w( third_party/upb/upb/json_decode.h )
- s.files += %w( third_party/upb/upb/json_encode.c )
- s.files += %w( third_party/upb/upb/json_encode.h )
s.files += %w( third_party/upb/upb/msg.c )
s.files += %w( third_party/upb/upb/msg.h )
s.files += %w( third_party/upb/upb/port_def.inc )
diff --git a/grpc.gyp b/grpc.gyp
index d40050b2d84..a66c6bb9d5c 100644
--- a/grpc.gyp
+++ b/grpc.gyp
@@ -562,9 +562,11 @@
'src/core/ext/transport/chttp2/transport/writing.cc',
'src/core/ext/transport/inproc/inproc_plugin.cc',
'src/core/ext/transport/inproc/inproc_transport.cc',
+ 'src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c',
'src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c',
'src/core/ext/upb-generated/envoy/annotations/resource.upb.c',
'src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c',
'src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c',
'src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c',
'src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c',
@@ -589,6 +591,8 @@
'src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c',
'src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c',
'src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c',
'src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c',
'src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c',
'src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c',
@@ -611,11 +615,14 @@
'src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c',
'src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c',
'src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c',
+ 'src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c',
'src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c',
'src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c',
@@ -653,9 +660,11 @@
'src/core/ext/upb-generated/xds/core/v3/resource.upb.c',
'src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c',
'src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c',
+ 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c',
@@ -680,6 +689,8 @@
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c',
@@ -701,11 +712,14 @@
'src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c',
@@ -1997,8 +2011,6 @@
'third_party/upb/upb/decode.c',
'third_party/upb/upb/def.c',
'third_party/upb/upb/encode.c',
- 'third_party/upb/upb/json_decode.c',
- 'third_party/upb/upb/json_encode.c',
'third_party/upb/upb/msg.c',
'third_party/upb/upb/reflection.c',
'third_party/upb/upb/table.c',
diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h
index 88f78b8639a..156d4dbc088 100644
--- a/include/grpc/grpc.h
+++ b/include/grpc/grpc.h
@@ -505,6 +505,10 @@ GRPCAPI void grpc_resource_quota_resize(grpc_resource_quota* resource_quota,
GRPCAPI void grpc_resource_quota_set_max_threads(
grpc_resource_quota* resource_quota, int new_max_threads);
+/** EXPERIMENTAL. Dumps xDS configs as a serialized ClientConfig proto.
+ The full name of the proto is envoy.service.status.v3.ClientConfig. */
+GRPCAPI grpc_slice grpc_dump_xds_configs();
+
/** Fetch a vtable for a grpc_channel_arg that points to a grpc_resource_quota
*/
GRPCAPI const grpc_arg_pointer_vtable* grpc_resource_quota_arg_vtable(void);
diff --git a/package.xml b/package.xml
index a2f0ed81f84..26abf94deac 100644
--- a/package.xml
+++ b/package.xml
@@ -275,12 +275,16 @@
+
+
+
+
@@ -329,6 +333,10 @@
+
+
+
+
@@ -373,8 +381,12 @@
+
+
+
+
@@ -383,6 +395,8 @@
+
+
@@ -459,12 +473,16 @@
+
+
+
+
@@ -513,6 +531,10 @@
+
+
+
+
@@ -555,8 +577,12 @@
+
+
+
+
@@ -565,6 +591,8 @@
+
+
@@ -1985,10 +2013,6 @@
-
-
-
-
diff --git a/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c b/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c
new file mode 100644
index 00000000000..d230ccb2ff6
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c
@@ -0,0 +1,406 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/admin/v3/config_dump.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include
+#include "upb/msg.h"
+#include "envoy/admin/v3/config_dump.upb.h"
+#include "envoy/config/bootstrap/v3/bootstrap.upb.h"
+#include "google/protobuf/any.upb.h"
+#include "google/protobuf/timestamp.upb.h"
+#include "udpa/annotations/status.upb.h"
+#include "udpa/annotations/versioning.upb.h"
+
+#include "upb/port_def.inc"
+
+static const upb_msglayout *const envoy_admin_v3_ConfigDump_submsgs[1] = {
+ &google_protobuf_Any_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ConfigDump__fields[1] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_admin_v3_ConfigDump_msginit = {
+ &envoy_admin_v3_ConfigDump_submsgs[0],
+ &envoy_admin_v3_ConfigDump__fields[0],
+ UPB_SIZE(8, 8), 1, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_UpdateFailureState_submsgs[2] = {
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_UpdateFailureState__fields[4] = {
+ {1, UPB_SIZE(20, 40), 1, 0, 11, 1},
+ {2, UPB_SIZE(24, 48), 2, 1, 11, 1},
+ {3, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {4, UPB_SIZE(12, 24), 0, 0, 9, 1},
+};
+
+const upb_msglayout envoy_admin_v3_UpdateFailureState_msginit = {
+ &envoy_admin_v3_UpdateFailureState_submsgs[0],
+ &envoy_admin_v3_UpdateFailureState__fields[0],
+ UPB_SIZE(32, 64), 4, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_BootstrapConfigDump_submsgs[2] = {
+ &envoy_config_bootstrap_v3_Bootstrap_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_BootstrapConfigDump__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
+};
+
+const upb_msglayout envoy_admin_v3_BootstrapConfigDump_msginit = {
+ &envoy_admin_v3_BootstrapConfigDump_submsgs[0],
+ &envoy_admin_v3_BootstrapConfigDump__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_submsgs[2] = {
+ &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit,
+ &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump__fields[3] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
+ {2, UPB_SIZE(8, 16), 0, 1, 11, 3},
+ {3, UPB_SIZE(12, 24), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_admin_v3_ListenersConfigDump_msginit = {
+ &envoy_admin_v3_ListenersConfigDump_submsgs[0],
+ &envoy_admin_v3_ListenersConfigDump__fields[0],
+ UPB_SIZE(16, 32), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_StaticListener_submsgs[2] = {
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_StaticListener__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
+};
+
+const upb_msglayout envoy_admin_v3_ListenersConfigDump_StaticListener_msginit = {
+ &envoy_admin_v3_ListenersConfigDump_StaticListener_submsgs[0],
+ &envoy_admin_v3_ListenersConfigDump_StaticListener__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_DynamicListenerState_submsgs[2] = {
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_DynamicListenerState__fields[3] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(12, 24), 1, 0, 11, 1},
+ {3, UPB_SIZE(16, 32), 2, 1, 11, 1},
+};
+
+const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit = {
+ &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_submsgs[0],
+ &envoy_admin_v3_ListenersConfigDump_DynamicListenerState__fields[0],
+ UPB_SIZE(24, 48), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ListenersConfigDump_DynamicListener_submsgs[2] = {
+ &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit,
+ &envoy_admin_v3_UpdateFailureState_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ListenersConfigDump_DynamicListener__fields[6] = {
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(16, 24), 1, 0, 11, 1},
+ {3, UPB_SIZE(20, 32), 2, 0, 11, 1},
+ {4, UPB_SIZE(24, 40), 3, 0, 11, 1},
+ {5, UPB_SIZE(28, 48), 4, 1, 11, 1},
+ {6, UPB_SIZE(4, 4), 0, 0, 14, 1},
+};
+
+const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit = {
+ &envoy_admin_v3_ListenersConfigDump_DynamicListener_submsgs[0],
+ &envoy_admin_v3_ListenersConfigDump_DynamicListener__fields[0],
+ UPB_SIZE(32, 64), 6, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_submsgs[2] = {
+ &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit,
+ &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump__fields[4] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
+ {2, UPB_SIZE(8, 16), 0, 1, 11, 3},
+ {3, UPB_SIZE(12, 24), 0, 0, 11, 3},
+ {4, UPB_SIZE(16, 32), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_admin_v3_ClustersConfigDump_msginit = {
+ &envoy_admin_v3_ClustersConfigDump_submsgs[0],
+ &envoy_admin_v3_ClustersConfigDump__fields[0],
+ UPB_SIZE(24, 48), 4, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_StaticCluster_submsgs[2] = {
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump_StaticCluster__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
+};
+
+const upb_msglayout envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit = {
+ &envoy_admin_v3_ClustersConfigDump_StaticCluster_submsgs[0],
+ &envoy_admin_v3_ClustersConfigDump_StaticCluster__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ClustersConfigDump_DynamicCluster_submsgs[3] = {
+ &envoy_admin_v3_UpdateFailureState_msginit,
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ClustersConfigDump_DynamicCluster__fields[5] = {
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(16, 24), 1, 1, 11, 1},
+ {3, UPB_SIZE(20, 32), 2, 2, 11, 1},
+ {4, UPB_SIZE(24, 40), 3, 0, 11, 1},
+ {5, UPB_SIZE(4, 4), 0, 0, 14, 1},
+};
+
+const upb_msglayout envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit = {
+ &envoy_admin_v3_ClustersConfigDump_DynamicCluster_submsgs[0],
+ &envoy_admin_v3_ClustersConfigDump_DynamicCluster__fields[0],
+ UPB_SIZE(32, 48), 5, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_submsgs[2] = {
+ &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit,
+ &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump__fields[2] = {
+ {2, UPB_SIZE(0, 0), 0, 1, 11, 3},
+ {3, UPB_SIZE(4, 8), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_admin_v3_RoutesConfigDump_msginit = {
+ &envoy_admin_v3_RoutesConfigDump_submsgs[0],
+ &envoy_admin_v3_RoutesConfigDump__fields[0],
+ UPB_SIZE(8, 16), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_submsgs[2] = {
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump_StaticRouteConfig__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
+};
+
+const upb_msglayout envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit = {
+ &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_submsgs[0],
+ &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_submsgs[3] = {
+ &envoy_admin_v3_UpdateFailureState_msginit,
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig__fields[5] = {
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(16, 24), 1, 1, 11, 1},
+ {3, UPB_SIZE(20, 32), 2, 2, 11, 1},
+ {4, UPB_SIZE(24, 40), 3, 0, 11, 1},
+ {5, UPB_SIZE(4, 4), 0, 0, 14, 1},
+};
+
+const upb_msglayout envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit = {
+ &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_submsgs[0],
+ &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig__fields[0],
+ UPB_SIZE(32, 48), 5, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_submsgs[2] = {
+ &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit,
+ &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump__fields[2] = {
+ {1, UPB_SIZE(0, 0), 0, 1, 11, 3},
+ {2, UPB_SIZE(4, 8), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_msginit = {
+ &envoy_admin_v3_ScopedRoutesConfigDump_submsgs[0],
+ &envoy_admin_v3_ScopedRoutesConfigDump__fields[0],
+ UPB_SIZE(8, 16), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_submsgs[2] = {
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs__fields[3] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(16, 32), 0, 0, 11, 3},
+ {3, UPB_SIZE(12, 24), 1, 1, 11, 1},
+};
+
+const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit = {
+ &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_submsgs[0],
+ &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs__fields[0],
+ UPB_SIZE(24, 48), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_submsgs[3] = {
+ &envoy_admin_v3_UpdateFailureState_msginit,
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs__fields[6] = {
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(16, 24), 0, 0, 9, 1},
+ {3, UPB_SIZE(32, 56), 0, 1, 11, 3},
+ {4, UPB_SIZE(24, 40), 1, 2, 11, 1},
+ {5, UPB_SIZE(28, 48), 2, 0, 11, 1},
+ {6, UPB_SIZE(4, 4), 0, 0, 14, 1},
+};
+
+const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit = {
+ &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_submsgs[0],
+ &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs__fields[0],
+ UPB_SIZE(40, 64), 6, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_submsgs[2] = {
+ &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit,
+ &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump__fields[3] = {
+ {1, UPB_SIZE(0, 0), 0, 1, 11, 3},
+ {2, UPB_SIZE(4, 8), 0, 0, 11, 3},
+ {3, UPB_SIZE(8, 16), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_admin_v3_SecretsConfigDump_msginit = {
+ &envoy_admin_v3_SecretsConfigDump_submsgs[0],
+ &envoy_admin_v3_SecretsConfigDump__fields[0],
+ UPB_SIZE(16, 24), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_DynamicSecret_submsgs[3] = {
+ &envoy_admin_v3_UpdateFailureState_msginit,
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump_DynamicSecret__fields[6] = {
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(16, 24), 0, 0, 9, 1},
+ {3, UPB_SIZE(24, 40), 1, 2, 11, 1},
+ {4, UPB_SIZE(28, 48), 2, 1, 11, 1},
+ {5, UPB_SIZE(32, 56), 3, 0, 11, 1},
+ {6, UPB_SIZE(4, 4), 0, 0, 14, 1},
+};
+
+const upb_msglayout envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit = {
+ &envoy_admin_v3_SecretsConfigDump_DynamicSecret_submsgs[0],
+ &envoy_admin_v3_SecretsConfigDump_DynamicSecret__fields[0],
+ UPB_SIZE(40, 64), 6, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_SecretsConfigDump_StaticSecret_submsgs[2] = {
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_SecretsConfigDump_StaticSecret__fields[3] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(12, 24), 1, 1, 11, 1},
+ {3, UPB_SIZE(16, 32), 2, 0, 11, 1},
+};
+
+const upb_msglayout envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit = {
+ &envoy_admin_v3_SecretsConfigDump_StaticSecret_submsgs[0],
+ &envoy_admin_v3_SecretsConfigDump_StaticSecret__fields[0],
+ UPB_SIZE(24, 48), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_submsgs[2] = {
+ &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit,
+ &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump__fields[2] = {
+ {2, UPB_SIZE(0, 0), 0, 1, 11, 3},
+ {3, UPB_SIZE(4, 8), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_admin_v3_EndpointsConfigDump_msginit = {
+ &envoy_admin_v3_EndpointsConfigDump_submsgs[0],
+ &envoy_admin_v3_EndpointsConfigDump__fields[0],
+ UPB_SIZE(8, 16), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_submsgs[2] = {
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 2, 1, 11, 1},
+};
+
+const upb_msglayout envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit = {
+ &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_submsgs[0],
+ &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_submsgs[3] = {
+ &envoy_admin_v3_UpdateFailureState_msginit,
+ &google_protobuf_Any_msginit,
+ &google_protobuf_Timestamp_msginit,
+};
+
+static const upb_msglayout_field envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig__fields[5] = {
+ {1, UPB_SIZE(8, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(16, 24), 1, 1, 11, 1},
+ {3, UPB_SIZE(20, 32), 2, 2, 11, 1},
+ {4, UPB_SIZE(24, 40), 3, 0, 11, 1},
+ {5, UPB_SIZE(4, 4), 0, 0, 14, 1},
+};
+
+const upb_msglayout envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit = {
+ &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_submsgs[0],
+ &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig__fields[0],
+ UPB_SIZE(32, 48), 5, false, 255,
+};
+
+#include "upb/port_undef.inc"
+
diff --git a/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h b/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h
new file mode 100644
index 00000000000..6f117c6659d
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h
@@ -0,0 +1,1459 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/admin/v3/config_dump.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_ADMIN_V3_CONFIG_DUMP_PROTO_UPB_H_
+#define ENVOY_ADMIN_V3_CONFIG_DUMP_PROTO_UPB_H_
+
+#include "upb/msg.h"
+#include "upb/decode.h"
+#include "upb/decode_fast.h"
+#include "upb/encode.h"
+
+#include "upb/port_def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct envoy_admin_v3_ConfigDump;
+struct envoy_admin_v3_UpdateFailureState;
+struct envoy_admin_v3_BootstrapConfigDump;
+struct envoy_admin_v3_ListenersConfigDump;
+struct envoy_admin_v3_ListenersConfigDump_StaticListener;
+struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState;
+struct envoy_admin_v3_ListenersConfigDump_DynamicListener;
+struct envoy_admin_v3_ClustersConfigDump;
+struct envoy_admin_v3_ClustersConfigDump_StaticCluster;
+struct envoy_admin_v3_ClustersConfigDump_DynamicCluster;
+struct envoy_admin_v3_RoutesConfigDump;
+struct envoy_admin_v3_RoutesConfigDump_StaticRouteConfig;
+struct envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig;
+struct envoy_admin_v3_ScopedRoutesConfigDump;
+struct envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs;
+struct envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs;
+struct envoy_admin_v3_SecretsConfigDump;
+struct envoy_admin_v3_SecretsConfigDump_DynamicSecret;
+struct envoy_admin_v3_SecretsConfigDump_StaticSecret;
+struct envoy_admin_v3_EndpointsConfigDump;
+struct envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig;
+struct envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig;
+typedef struct envoy_admin_v3_ConfigDump envoy_admin_v3_ConfigDump;
+typedef struct envoy_admin_v3_UpdateFailureState envoy_admin_v3_UpdateFailureState;
+typedef struct envoy_admin_v3_BootstrapConfigDump envoy_admin_v3_BootstrapConfigDump;
+typedef struct envoy_admin_v3_ListenersConfigDump envoy_admin_v3_ListenersConfigDump;
+typedef struct envoy_admin_v3_ListenersConfigDump_StaticListener envoy_admin_v3_ListenersConfigDump_StaticListener;
+typedef struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState envoy_admin_v3_ListenersConfigDump_DynamicListenerState;
+typedef struct envoy_admin_v3_ListenersConfigDump_DynamicListener envoy_admin_v3_ListenersConfigDump_DynamicListener;
+typedef struct envoy_admin_v3_ClustersConfigDump envoy_admin_v3_ClustersConfigDump;
+typedef struct envoy_admin_v3_ClustersConfigDump_StaticCluster envoy_admin_v3_ClustersConfigDump_StaticCluster;
+typedef struct envoy_admin_v3_ClustersConfigDump_DynamicCluster envoy_admin_v3_ClustersConfigDump_DynamicCluster;
+typedef struct envoy_admin_v3_RoutesConfigDump envoy_admin_v3_RoutesConfigDump;
+typedef struct envoy_admin_v3_RoutesConfigDump_StaticRouteConfig envoy_admin_v3_RoutesConfigDump_StaticRouteConfig;
+typedef struct envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig;
+typedef struct envoy_admin_v3_ScopedRoutesConfigDump envoy_admin_v3_ScopedRoutesConfigDump;
+typedef struct envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs;
+typedef struct envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs;
+typedef struct envoy_admin_v3_SecretsConfigDump envoy_admin_v3_SecretsConfigDump;
+typedef struct envoy_admin_v3_SecretsConfigDump_DynamicSecret envoy_admin_v3_SecretsConfigDump_DynamicSecret;
+typedef struct envoy_admin_v3_SecretsConfigDump_StaticSecret envoy_admin_v3_SecretsConfigDump_StaticSecret;
+typedef struct envoy_admin_v3_EndpointsConfigDump envoy_admin_v3_EndpointsConfigDump;
+typedef struct envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig;
+typedef struct envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig;
+extern const upb_msglayout envoy_admin_v3_ConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_UpdateFailureState_msginit;
+extern const upb_msglayout envoy_admin_v3_BootstrapConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_StaticListener_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit;
+extern const upb_msglayout envoy_admin_v3_ClustersConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit;
+extern const upb_msglayout envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit;
+extern const upb_msglayout envoy_admin_v3_RoutesConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit;
+extern const upb_msglayout envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit;
+extern const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit;
+extern const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit;
+extern const upb_msglayout envoy_admin_v3_SecretsConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit;
+extern const upb_msglayout envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit;
+extern const upb_msglayout envoy_admin_v3_EndpointsConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit;
+extern const upb_msglayout envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit;
+struct envoy_config_bootstrap_v3_Bootstrap;
+struct google_protobuf_Any;
+struct google_protobuf_Timestamp;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_msginit;
+extern const upb_msglayout google_protobuf_Any_msginit;
+extern const upb_msglayout google_protobuf_Timestamp_msginit;
+
+typedef enum {
+ envoy_admin_v3_UNKNOWN = 0,
+ envoy_admin_v3_REQUESTED = 1,
+ envoy_admin_v3_DOES_NOT_EXIST = 2,
+ envoy_admin_v3_ACKED = 3,
+ envoy_admin_v3_NACKED = 4
+} envoy_admin_v3_ClientResourceStatus;
+
+
+/* envoy.admin.v3.ConfigDump */
+
+UPB_INLINE envoy_admin_v3_ConfigDump *envoy_admin_v3_ConfigDump_new(upb_arena *arena) {
+ return (envoy_admin_v3_ConfigDump *)_upb_msg_new(&envoy_admin_v3_ConfigDump_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ConfigDump *envoy_admin_v3_ConfigDump_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ConfigDump *ret = envoy_admin_v3_ConfigDump_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ConfigDump_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ConfigDump *envoy_admin_v3_ConfigDump_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ConfigDump *ret = envoy_admin_v3_ConfigDump_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ConfigDump_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ConfigDump_serialize(const envoy_admin_v3_ConfigDump *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ConfigDump_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_ConfigDump_has_configs(const envoy_admin_v3_ConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const struct google_protobuf_Any* const* envoy_admin_v3_ConfigDump_configs(const envoy_admin_v3_ConfigDump *msg, size_t *len) { return (const struct google_protobuf_Any* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+
+UPB_INLINE struct google_protobuf_Any** envoy_admin_v3_ConfigDump_mutable_configs(envoy_admin_v3_ConfigDump *msg, size_t *len) {
+ return (struct google_protobuf_Any**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE struct google_protobuf_Any** envoy_admin_v3_ConfigDump_resize_configs(envoy_admin_v3_ConfigDump *msg, size_t len, upb_arena *arena) {
+ return (struct google_protobuf_Any**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_ConfigDump_add_configs(envoy_admin_v3_ConfigDump *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.admin.v3.UpdateFailureState */
+
+UPB_INLINE envoy_admin_v3_UpdateFailureState *envoy_admin_v3_UpdateFailureState_new(upb_arena *arena) {
+ return (envoy_admin_v3_UpdateFailureState *)_upb_msg_new(&envoy_admin_v3_UpdateFailureState_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_UpdateFailureState *envoy_admin_v3_UpdateFailureState_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_UpdateFailureState *ret = envoy_admin_v3_UpdateFailureState_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_UpdateFailureState_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_UpdateFailureState *envoy_admin_v3_UpdateFailureState_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_UpdateFailureState *ret = envoy_admin_v3_UpdateFailureState_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_UpdateFailureState_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_UpdateFailureState_serialize(const envoy_admin_v3_UpdateFailureState *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_UpdateFailureState_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_UpdateFailureState_has_failed_configuration(const envoy_admin_v3_UpdateFailureState *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_UpdateFailureState_failed_configuration(const envoy_admin_v3_UpdateFailureState *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 40), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_UpdateFailureState_has_last_update_attempt(const envoy_admin_v3_UpdateFailureState *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_UpdateFailureState_last_update_attempt(const envoy_admin_v3_UpdateFailureState *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 48), const struct google_protobuf_Timestamp*); }
+UPB_INLINE upb_strview envoy_admin_v3_UpdateFailureState_details(const envoy_admin_v3_UpdateFailureState *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE upb_strview envoy_admin_v3_UpdateFailureState_version_info(const envoy_admin_v3_UpdateFailureState *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview); }
+
+UPB_INLINE void envoy_admin_v3_UpdateFailureState_set_failed_configuration(envoy_admin_v3_UpdateFailureState *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 40), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_UpdateFailureState_mutable_failed_configuration(envoy_admin_v3_UpdateFailureState *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_UpdateFailureState_failed_configuration(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_UpdateFailureState_set_failed_configuration(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_UpdateFailureState_set_last_update_attempt(envoy_admin_v3_UpdateFailureState *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 48), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_UpdateFailureState_mutable_last_update_attempt(envoy_admin_v3_UpdateFailureState *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_UpdateFailureState_last_update_attempt(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_UpdateFailureState_set_last_update_attempt(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_UpdateFailureState_set_details(envoy_admin_v3_UpdateFailureState *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_UpdateFailureState_set_version_info(envoy_admin_v3_UpdateFailureState *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview) = value;
+}
+
+/* envoy.admin.v3.BootstrapConfigDump */
+
+UPB_INLINE envoy_admin_v3_BootstrapConfigDump *envoy_admin_v3_BootstrapConfigDump_new(upb_arena *arena) {
+ return (envoy_admin_v3_BootstrapConfigDump *)_upb_msg_new(&envoy_admin_v3_BootstrapConfigDump_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_BootstrapConfigDump *envoy_admin_v3_BootstrapConfigDump_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_BootstrapConfigDump *ret = envoy_admin_v3_BootstrapConfigDump_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_BootstrapConfigDump_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_BootstrapConfigDump *envoy_admin_v3_BootstrapConfigDump_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_BootstrapConfigDump *ret = envoy_admin_v3_BootstrapConfigDump_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_BootstrapConfigDump_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_BootstrapConfigDump_serialize(const envoy_admin_v3_BootstrapConfigDump *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_BootstrapConfigDump_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_BootstrapConfigDump_has_bootstrap(const envoy_admin_v3_BootstrapConfigDump *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_bootstrap_v3_Bootstrap* envoy_admin_v3_BootstrapConfigDump_bootstrap(const envoy_admin_v3_BootstrapConfigDump *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct envoy_config_bootstrap_v3_Bootstrap*); }
+UPB_INLINE bool envoy_admin_v3_BootstrapConfigDump_has_last_updated(const envoy_admin_v3_BootstrapConfigDump *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_BootstrapConfigDump_last_updated(const envoy_admin_v3_BootstrapConfigDump *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 16), const struct google_protobuf_Timestamp*); }
+
+UPB_INLINE void envoy_admin_v3_BootstrapConfigDump_set_bootstrap(envoy_admin_v3_BootstrapConfigDump *msg, struct envoy_config_bootstrap_v3_Bootstrap* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct envoy_config_bootstrap_v3_Bootstrap*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Bootstrap* envoy_admin_v3_BootstrapConfigDump_mutable_bootstrap(envoy_admin_v3_BootstrapConfigDump *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Bootstrap* sub = (struct envoy_config_bootstrap_v3_Bootstrap*)envoy_admin_v3_BootstrapConfigDump_bootstrap(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_Bootstrap*)_upb_msg_new(&envoy_config_bootstrap_v3_Bootstrap_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_BootstrapConfigDump_set_bootstrap(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_BootstrapConfigDump_set_last_updated(envoy_admin_v3_BootstrapConfigDump *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 16), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_BootstrapConfigDump_mutable_last_updated(envoy_admin_v3_BootstrapConfigDump *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_BootstrapConfigDump_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_BootstrapConfigDump_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.admin.v3.ListenersConfigDump */
+
+UPB_INLINE envoy_admin_v3_ListenersConfigDump *envoy_admin_v3_ListenersConfigDump_new(upb_arena *arena) {
+ return (envoy_admin_v3_ListenersConfigDump *)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump *envoy_admin_v3_ListenersConfigDump_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ListenersConfigDump *ret = envoy_admin_v3_ListenersConfigDump_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump *envoy_admin_v3_ListenersConfigDump_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ListenersConfigDump *ret = envoy_admin_v3_ListenersConfigDump_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ListenersConfigDump_serialize(const envoy_admin_v3_ListenersConfigDump *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ListenersConfigDump_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_ListenersConfigDump_version_info(const envoy_admin_v3_ListenersConfigDump *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_has_static_listeners(const envoy_admin_v3_ListenersConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const envoy_admin_v3_ListenersConfigDump_StaticListener* const* envoy_admin_v3_ListenersConfigDump_static_listeners(const envoy_admin_v3_ListenersConfigDump *msg, size_t *len) { return (const envoy_admin_v3_ListenersConfigDump_StaticListener* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_has_dynamic_listeners(const envoy_admin_v3_ListenersConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(12, 24)); }
+UPB_INLINE const envoy_admin_v3_ListenersConfigDump_DynamicListener* const* envoy_admin_v3_ListenersConfigDump_dynamic_listeners(const envoy_admin_v3_ListenersConfigDump *msg, size_t *len) { return (const envoy_admin_v3_ListenersConfigDump_DynamicListener* const*)_upb_array_accessor(msg, UPB_SIZE(12, 24), len); }
+
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_set_version_info(envoy_admin_v3_ListenersConfigDump *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview) = value;
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_StaticListener** envoy_admin_v3_ListenersConfigDump_mutable_static_listeners(envoy_admin_v3_ListenersConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_ListenersConfigDump_StaticListener**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_StaticListener** envoy_admin_v3_ListenersConfigDump_resize_static_listeners(envoy_admin_v3_ListenersConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_ListenersConfigDump_StaticListener**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_ListenersConfigDump_StaticListener* envoy_admin_v3_ListenersConfigDump_add_static_listeners(envoy_admin_v3_ListenersConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ListenersConfigDump_StaticListener* sub = (struct envoy_admin_v3_ListenersConfigDump_StaticListener*)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListener** envoy_admin_v3_ListenersConfigDump_mutable_dynamic_listeners(envoy_admin_v3_ListenersConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_ListenersConfigDump_DynamicListener**)_upb_array_mutable_accessor(msg, UPB_SIZE(12, 24), len);
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListener** envoy_admin_v3_ListenersConfigDump_resize_dynamic_listeners(envoy_admin_v3_ListenersConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_ListenersConfigDump_DynamicListener**)_upb_array_resize_accessor2(msg, UPB_SIZE(12, 24), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_ListenersConfigDump_DynamicListener* envoy_admin_v3_ListenersConfigDump_add_dynamic_listeners(envoy_admin_v3_ListenersConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ListenersConfigDump_DynamicListener* sub = (struct envoy_admin_v3_ListenersConfigDump_DynamicListener*)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(12, 24), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.admin.v3.ListenersConfigDump.StaticListener */
+
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_StaticListener *envoy_admin_v3_ListenersConfigDump_StaticListener_new(upb_arena *arena) {
+ return (envoy_admin_v3_ListenersConfigDump_StaticListener *)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_StaticListener *envoy_admin_v3_ListenersConfigDump_StaticListener_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ListenersConfigDump_StaticListener *ret = envoy_admin_v3_ListenersConfigDump_StaticListener_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_StaticListener *envoy_admin_v3_ListenersConfigDump_StaticListener_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ListenersConfigDump_StaticListener *ret = envoy_admin_v3_ListenersConfigDump_StaticListener_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ListenersConfigDump_StaticListener_serialize(const envoy_admin_v3_ListenersConfigDump_StaticListener *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_StaticListener_has_listener(const envoy_admin_v3_ListenersConfigDump_StaticListener *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_ListenersConfigDump_StaticListener_listener(const envoy_admin_v3_ListenersConfigDump_StaticListener *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_StaticListener_has_last_updated(const envoy_admin_v3_ListenersConfigDump_StaticListener *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_ListenersConfigDump_StaticListener_last_updated(const envoy_admin_v3_ListenersConfigDump_StaticListener *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 16), const struct google_protobuf_Timestamp*); }
+
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_StaticListener_set_listener(envoy_admin_v3_ListenersConfigDump_StaticListener *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_ListenersConfigDump_StaticListener_mutable_listener(envoy_admin_v3_ListenersConfigDump_StaticListener *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_ListenersConfigDump_StaticListener_listener(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ListenersConfigDump_StaticListener_set_listener(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_StaticListener_set_last_updated(envoy_admin_v3_ListenersConfigDump_StaticListener *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 16), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_ListenersConfigDump_StaticListener_mutable_last_updated(envoy_admin_v3_ListenersConfigDump_StaticListener *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_ListenersConfigDump_StaticListener_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ListenersConfigDump_StaticListener_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.admin.v3.ListenersConfigDump.DynamicListenerState */
+
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListenerState *envoy_admin_v3_ListenersConfigDump_DynamicListenerState_new(upb_arena *arena) {
+ return (envoy_admin_v3_ListenersConfigDump_DynamicListenerState *)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListenerState *envoy_admin_v3_ListenersConfigDump_DynamicListenerState_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ListenersConfigDump_DynamicListenerState *ret = envoy_admin_v3_ListenersConfigDump_DynamicListenerState_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListenerState *envoy_admin_v3_ListenersConfigDump_DynamicListenerState_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ListenersConfigDump_DynamicListenerState *ret = envoy_admin_v3_ListenersConfigDump_DynamicListenerState_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ListenersConfigDump_DynamicListenerState_serialize(const envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_ListenersConfigDump_DynamicListenerState_version_info(const envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_DynamicListenerState_has_listener(const envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_ListenersConfigDump_DynamicListenerState_listener(const envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_DynamicListenerState_has_last_updated(const envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_ListenersConfigDump_DynamicListenerState_last_updated(const envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 32), const struct google_protobuf_Timestamp*); }
+
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListenerState_set_version_info(envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListenerState_set_listener(envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_ListenersConfigDump_DynamicListenerState_mutable_listener(envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_ListenersConfigDump_DynamicListenerState_listener(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ListenersConfigDump_DynamicListenerState_set_listener(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListenerState_set_last_updated(envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 32), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_ListenersConfigDump_DynamicListenerState_mutable_last_updated(envoy_admin_v3_ListenersConfigDump_DynamicListenerState *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_ListenersConfigDump_DynamicListenerState_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ListenersConfigDump_DynamicListenerState_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.admin.v3.ListenersConfigDump.DynamicListener */
+
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListener *envoy_admin_v3_ListenersConfigDump_DynamicListener_new(upb_arena *arena) {
+ return (envoy_admin_v3_ListenersConfigDump_DynamicListener *)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListener *envoy_admin_v3_ListenersConfigDump_DynamicListener_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ListenersConfigDump_DynamicListener *ret = envoy_admin_v3_ListenersConfigDump_DynamicListener_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ListenersConfigDump_DynamicListener *envoy_admin_v3_ListenersConfigDump_DynamicListener_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ListenersConfigDump_DynamicListener *ret = envoy_admin_v3_ListenersConfigDump_DynamicListener_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ListenersConfigDump_DynamicListener_serialize(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_ListenersConfigDump_DynamicListener_name(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_DynamicListener_has_active_state(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const envoy_admin_v3_ListenersConfigDump_DynamicListenerState* envoy_admin_v3_ListenersConfigDump_DynamicListener_active_state(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 24), const envoy_admin_v3_ListenersConfigDump_DynamicListenerState*); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_DynamicListener_has_warming_state(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const envoy_admin_v3_ListenersConfigDump_DynamicListenerState* envoy_admin_v3_ListenersConfigDump_DynamicListener_warming_state(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 32), const envoy_admin_v3_ListenersConfigDump_DynamicListenerState*); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_DynamicListener_has_draining_state(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const envoy_admin_v3_ListenersConfigDump_DynamicListenerState* envoy_admin_v3_ListenersConfigDump_DynamicListener_draining_state(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 40), const envoy_admin_v3_ListenersConfigDump_DynamicListenerState*); }
+UPB_INLINE bool envoy_admin_v3_ListenersConfigDump_DynamicListener_has_error_state(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return _upb_hasbit(msg, 4); }
+UPB_INLINE const envoy_admin_v3_UpdateFailureState* envoy_admin_v3_ListenersConfigDump_DynamicListener_error_state(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 48), const envoy_admin_v3_UpdateFailureState*); }
+UPB_INLINE int32_t envoy_admin_v3_ListenersConfigDump_DynamicListener_client_status(const envoy_admin_v3_ListenersConfigDump_DynamicListener *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t); }
+
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListener_set_name(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListener_set_active_state(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, envoy_admin_v3_ListenersConfigDump_DynamicListenerState* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 24), envoy_admin_v3_ListenersConfigDump_DynamicListenerState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState* envoy_admin_v3_ListenersConfigDump_DynamicListener_mutable_active_state(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState* sub = (struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState*)envoy_admin_v3_ListenersConfigDump_DynamicListener_active_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState*)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ListenersConfigDump_DynamicListener_set_active_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListener_set_warming_state(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, envoy_admin_v3_ListenersConfigDump_DynamicListenerState* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 32), envoy_admin_v3_ListenersConfigDump_DynamicListenerState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState* envoy_admin_v3_ListenersConfigDump_DynamicListener_mutable_warming_state(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState* sub = (struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState*)envoy_admin_v3_ListenersConfigDump_DynamicListener_warming_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState*)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ListenersConfigDump_DynamicListener_set_warming_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListener_set_draining_state(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, envoy_admin_v3_ListenersConfigDump_DynamicListenerState* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 40), envoy_admin_v3_ListenersConfigDump_DynamicListenerState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState* envoy_admin_v3_ListenersConfigDump_DynamicListener_mutable_draining_state(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState* sub = (struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState*)envoy_admin_v3_ListenersConfigDump_DynamicListener_draining_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_ListenersConfigDump_DynamicListenerState*)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ListenersConfigDump_DynamicListener_set_draining_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListener_set_error_state(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, envoy_admin_v3_UpdateFailureState* value) {
+ _upb_sethas(msg, 4);
+ *UPB_PTR_AT(msg, UPB_SIZE(28, 48), envoy_admin_v3_UpdateFailureState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_UpdateFailureState* envoy_admin_v3_ListenersConfigDump_DynamicListener_mutable_error_state(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, upb_arena *arena) {
+ struct envoy_admin_v3_UpdateFailureState* sub = (struct envoy_admin_v3_UpdateFailureState*)envoy_admin_v3_ListenersConfigDump_DynamicListener_error_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_UpdateFailureState*)_upb_msg_new(&envoy_admin_v3_UpdateFailureState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ListenersConfigDump_DynamicListener_set_error_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ListenersConfigDump_DynamicListener_set_client_status(envoy_admin_v3_ListenersConfigDump_DynamicListener *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t) = value;
+}
+
+/* envoy.admin.v3.ClustersConfigDump */
+
+UPB_INLINE envoy_admin_v3_ClustersConfigDump *envoy_admin_v3_ClustersConfigDump_new(upb_arena *arena) {
+ return (envoy_admin_v3_ClustersConfigDump *)_upb_msg_new(&envoy_admin_v3_ClustersConfigDump_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump *envoy_admin_v3_ClustersConfigDump_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ClustersConfigDump *ret = envoy_admin_v3_ClustersConfigDump_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump *envoy_admin_v3_ClustersConfigDump_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ClustersConfigDump *ret = envoy_admin_v3_ClustersConfigDump_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ClustersConfigDump_serialize(const envoy_admin_v3_ClustersConfigDump *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ClustersConfigDump_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_ClustersConfigDump_version_info(const envoy_admin_v3_ClustersConfigDump *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_ClustersConfigDump_has_static_clusters(const envoy_admin_v3_ClustersConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const envoy_admin_v3_ClustersConfigDump_StaticCluster* const* envoy_admin_v3_ClustersConfigDump_static_clusters(const envoy_admin_v3_ClustersConfigDump *msg, size_t *len) { return (const envoy_admin_v3_ClustersConfigDump_StaticCluster* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+UPB_INLINE bool envoy_admin_v3_ClustersConfigDump_has_dynamic_active_clusters(const envoy_admin_v3_ClustersConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(12, 24)); }
+UPB_INLINE const envoy_admin_v3_ClustersConfigDump_DynamicCluster* const* envoy_admin_v3_ClustersConfigDump_dynamic_active_clusters(const envoy_admin_v3_ClustersConfigDump *msg, size_t *len) { return (const envoy_admin_v3_ClustersConfigDump_DynamicCluster* const*)_upb_array_accessor(msg, UPB_SIZE(12, 24), len); }
+UPB_INLINE bool envoy_admin_v3_ClustersConfigDump_has_dynamic_warming_clusters(const envoy_admin_v3_ClustersConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(16, 32)); }
+UPB_INLINE const envoy_admin_v3_ClustersConfigDump_DynamicCluster* const* envoy_admin_v3_ClustersConfigDump_dynamic_warming_clusters(const envoy_admin_v3_ClustersConfigDump *msg, size_t *len) { return (const envoy_admin_v3_ClustersConfigDump_DynamicCluster* const*)_upb_array_accessor(msg, UPB_SIZE(16, 32), len); }
+
+UPB_INLINE void envoy_admin_v3_ClustersConfigDump_set_version_info(envoy_admin_v3_ClustersConfigDump *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview) = value;
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_StaticCluster** envoy_admin_v3_ClustersConfigDump_mutable_static_clusters(envoy_admin_v3_ClustersConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_ClustersConfigDump_StaticCluster**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_StaticCluster** envoy_admin_v3_ClustersConfigDump_resize_static_clusters(envoy_admin_v3_ClustersConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_ClustersConfigDump_StaticCluster**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_ClustersConfigDump_StaticCluster* envoy_admin_v3_ClustersConfigDump_add_static_clusters(envoy_admin_v3_ClustersConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ClustersConfigDump_StaticCluster* sub = (struct envoy_admin_v3_ClustersConfigDump_StaticCluster*)_upb_msg_new(&envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster** envoy_admin_v3_ClustersConfigDump_mutable_dynamic_active_clusters(envoy_admin_v3_ClustersConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_ClustersConfigDump_DynamicCluster**)_upb_array_mutable_accessor(msg, UPB_SIZE(12, 24), len);
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster** envoy_admin_v3_ClustersConfigDump_resize_dynamic_active_clusters(envoy_admin_v3_ClustersConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_ClustersConfigDump_DynamicCluster**)_upb_array_resize_accessor2(msg, UPB_SIZE(12, 24), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_ClustersConfigDump_DynamicCluster* envoy_admin_v3_ClustersConfigDump_add_dynamic_active_clusters(envoy_admin_v3_ClustersConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ClustersConfigDump_DynamicCluster* sub = (struct envoy_admin_v3_ClustersConfigDump_DynamicCluster*)_upb_msg_new(&envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(12, 24), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster** envoy_admin_v3_ClustersConfigDump_mutable_dynamic_warming_clusters(envoy_admin_v3_ClustersConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_ClustersConfigDump_DynamicCluster**)_upb_array_mutable_accessor(msg, UPB_SIZE(16, 32), len);
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster** envoy_admin_v3_ClustersConfigDump_resize_dynamic_warming_clusters(envoy_admin_v3_ClustersConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_ClustersConfigDump_DynamicCluster**)_upb_array_resize_accessor2(msg, UPB_SIZE(16, 32), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_ClustersConfigDump_DynamicCluster* envoy_admin_v3_ClustersConfigDump_add_dynamic_warming_clusters(envoy_admin_v3_ClustersConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ClustersConfigDump_DynamicCluster* sub = (struct envoy_admin_v3_ClustersConfigDump_DynamicCluster*)_upb_msg_new(&envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(16, 32), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.admin.v3.ClustersConfigDump.StaticCluster */
+
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_StaticCluster *envoy_admin_v3_ClustersConfigDump_StaticCluster_new(upb_arena *arena) {
+ return (envoy_admin_v3_ClustersConfigDump_StaticCluster *)_upb_msg_new(&envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_StaticCluster *envoy_admin_v3_ClustersConfigDump_StaticCluster_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ClustersConfigDump_StaticCluster *ret = envoy_admin_v3_ClustersConfigDump_StaticCluster_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_StaticCluster *envoy_admin_v3_ClustersConfigDump_StaticCluster_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ClustersConfigDump_StaticCluster *ret = envoy_admin_v3_ClustersConfigDump_StaticCluster_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ClustersConfigDump_StaticCluster_serialize(const envoy_admin_v3_ClustersConfigDump_StaticCluster *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_ClustersConfigDump_StaticCluster_has_cluster(const envoy_admin_v3_ClustersConfigDump_StaticCluster *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_ClustersConfigDump_StaticCluster_cluster(const envoy_admin_v3_ClustersConfigDump_StaticCluster *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_ClustersConfigDump_StaticCluster_has_last_updated(const envoy_admin_v3_ClustersConfigDump_StaticCluster *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_ClustersConfigDump_StaticCluster_last_updated(const envoy_admin_v3_ClustersConfigDump_StaticCluster *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 16), const struct google_protobuf_Timestamp*); }
+
+UPB_INLINE void envoy_admin_v3_ClustersConfigDump_StaticCluster_set_cluster(envoy_admin_v3_ClustersConfigDump_StaticCluster *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_ClustersConfigDump_StaticCluster_mutable_cluster(envoy_admin_v3_ClustersConfigDump_StaticCluster *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_ClustersConfigDump_StaticCluster_cluster(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ClustersConfigDump_StaticCluster_set_cluster(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ClustersConfigDump_StaticCluster_set_last_updated(envoy_admin_v3_ClustersConfigDump_StaticCluster *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 16), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_ClustersConfigDump_StaticCluster_mutable_last_updated(envoy_admin_v3_ClustersConfigDump_StaticCluster *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_ClustersConfigDump_StaticCluster_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ClustersConfigDump_StaticCluster_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.admin.v3.ClustersConfigDump.DynamicCluster */
+
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster *envoy_admin_v3_ClustersConfigDump_DynamicCluster_new(upb_arena *arena) {
+ return (envoy_admin_v3_ClustersConfigDump_DynamicCluster *)_upb_msg_new(&envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster *envoy_admin_v3_ClustersConfigDump_DynamicCluster_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster *ret = envoy_admin_v3_ClustersConfigDump_DynamicCluster_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ClustersConfigDump_DynamicCluster *envoy_admin_v3_ClustersConfigDump_DynamicCluster_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster *ret = envoy_admin_v3_ClustersConfigDump_DynamicCluster_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ClustersConfigDump_DynamicCluster_serialize(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_ClustersConfigDump_DynamicCluster_version_info(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_ClustersConfigDump_DynamicCluster_has_cluster(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_ClustersConfigDump_DynamicCluster_cluster(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 24), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_ClustersConfigDump_DynamicCluster_has_last_updated(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_ClustersConfigDump_DynamicCluster_last_updated(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 32), const struct google_protobuf_Timestamp*); }
+UPB_INLINE bool envoy_admin_v3_ClustersConfigDump_DynamicCluster_has_error_state(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const envoy_admin_v3_UpdateFailureState* envoy_admin_v3_ClustersConfigDump_DynamicCluster_error_state(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 40), const envoy_admin_v3_UpdateFailureState*); }
+UPB_INLINE int32_t envoy_admin_v3_ClustersConfigDump_DynamicCluster_client_status(const envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t); }
+
+UPB_INLINE void envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_version_info(envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_cluster(envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 24), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_ClustersConfigDump_DynamicCluster_mutable_cluster(envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_ClustersConfigDump_DynamicCluster_cluster(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_cluster(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_last_updated(envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 32), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_ClustersConfigDump_DynamicCluster_mutable_last_updated(envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_ClustersConfigDump_DynamicCluster_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_error_state(envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, envoy_admin_v3_UpdateFailureState* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 40), envoy_admin_v3_UpdateFailureState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_UpdateFailureState* envoy_admin_v3_ClustersConfigDump_DynamicCluster_mutable_error_state(envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, upb_arena *arena) {
+ struct envoy_admin_v3_UpdateFailureState* sub = (struct envoy_admin_v3_UpdateFailureState*)envoy_admin_v3_ClustersConfigDump_DynamicCluster_error_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_UpdateFailureState*)_upb_msg_new(&envoy_admin_v3_UpdateFailureState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_error_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_client_status(envoy_admin_v3_ClustersConfigDump_DynamicCluster *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t) = value;
+}
+
+/* envoy.admin.v3.RoutesConfigDump */
+
+UPB_INLINE envoy_admin_v3_RoutesConfigDump *envoy_admin_v3_RoutesConfigDump_new(upb_arena *arena) {
+ return (envoy_admin_v3_RoutesConfigDump *)_upb_msg_new(&envoy_admin_v3_RoutesConfigDump_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump *envoy_admin_v3_RoutesConfigDump_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_RoutesConfigDump *ret = envoy_admin_v3_RoutesConfigDump_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump *envoy_admin_v3_RoutesConfigDump_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_RoutesConfigDump *ret = envoy_admin_v3_RoutesConfigDump_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_RoutesConfigDump_serialize(const envoy_admin_v3_RoutesConfigDump *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_RoutesConfigDump_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_RoutesConfigDump_has_static_route_configs(const envoy_admin_v3_RoutesConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig* const* envoy_admin_v3_RoutesConfigDump_static_route_configs(const envoy_admin_v3_RoutesConfigDump *msg, size_t *len) { return (const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+UPB_INLINE bool envoy_admin_v3_RoutesConfigDump_has_dynamic_route_configs(const envoy_admin_v3_RoutesConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(4, 8)); }
+UPB_INLINE const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig* const* envoy_admin_v3_RoutesConfigDump_dynamic_route_configs(const envoy_admin_v3_RoutesConfigDump *msg, size_t *len) { return (const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig* const*)_upb_array_accessor(msg, UPB_SIZE(4, 8), len); }
+
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_StaticRouteConfig** envoy_admin_v3_RoutesConfigDump_mutable_static_route_configs(envoy_admin_v3_RoutesConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_RoutesConfigDump_StaticRouteConfig**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_StaticRouteConfig** envoy_admin_v3_RoutesConfigDump_resize_static_route_configs(envoy_admin_v3_RoutesConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_RoutesConfigDump_StaticRouteConfig**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_RoutesConfigDump_StaticRouteConfig* envoy_admin_v3_RoutesConfigDump_add_static_route_configs(envoy_admin_v3_RoutesConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_RoutesConfigDump_StaticRouteConfig* sub = (struct envoy_admin_v3_RoutesConfigDump_StaticRouteConfig*)_upb_msg_new(&envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig** envoy_admin_v3_RoutesConfigDump_mutable_dynamic_route_configs(envoy_admin_v3_RoutesConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig**)_upb_array_mutable_accessor(msg, UPB_SIZE(4, 8), len);
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig** envoy_admin_v3_RoutesConfigDump_resize_dynamic_route_configs(envoy_admin_v3_RoutesConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig**)_upb_array_resize_accessor2(msg, UPB_SIZE(4, 8), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig* envoy_admin_v3_RoutesConfigDump_add_dynamic_route_configs(envoy_admin_v3_RoutesConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig* sub = (struct envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig*)_upb_msg_new(&envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(4, 8), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.admin.v3.RoutesConfigDump.StaticRouteConfig */
+
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_new(upb_arena *arena) {
+ return (envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *)_upb_msg_new(&envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *ret = envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *ret = envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_serialize(const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_has_route_config(const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_route_config(const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_has_last_updated(const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_last_updated(const envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 16), const struct google_protobuf_Timestamp*); }
+
+UPB_INLINE void envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_set_route_config(envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_mutable_route_config(envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_route_config(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_set_route_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_set_last_updated(envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 16), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_mutable_last_updated(envoy_admin_v3_RoutesConfigDump_StaticRouteConfig *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.admin.v3.RoutesConfigDump.DynamicRouteConfig */
+
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_new(upb_arena *arena) {
+ return (envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *)_upb_msg_new(&envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *ret = envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *ret = envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_serialize(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_version_info(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_has_route_config(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_route_config(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 24), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_has_last_updated(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_last_updated(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 32), const struct google_protobuf_Timestamp*); }
+UPB_INLINE bool envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_has_error_state(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const envoy_admin_v3_UpdateFailureState* envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_error_state(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 40), const envoy_admin_v3_UpdateFailureState*); }
+UPB_INLINE int32_t envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_client_status(const envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t); }
+
+UPB_INLINE void envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_version_info(envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_route_config(envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 24), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_mutable_route_config(envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_route_config(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_route_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_last_updated(envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 32), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_mutable_last_updated(envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_error_state(envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, envoy_admin_v3_UpdateFailureState* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 40), envoy_admin_v3_UpdateFailureState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_UpdateFailureState* envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_mutable_error_state(envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, upb_arena *arena) {
+ struct envoy_admin_v3_UpdateFailureState* sub = (struct envoy_admin_v3_UpdateFailureState*)envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_error_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_UpdateFailureState*)_upb_msg_new(&envoy_admin_v3_UpdateFailureState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_error_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_client_status(envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t) = value;
+}
+
+/* envoy.admin.v3.ScopedRoutesConfigDump */
+
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump *envoy_admin_v3_ScopedRoutesConfigDump_new(upb_arena *arena) {
+ return (envoy_admin_v3_ScopedRoutesConfigDump *)_upb_msg_new(&envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump *envoy_admin_v3_ScopedRoutesConfigDump_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ScopedRoutesConfigDump *ret = envoy_admin_v3_ScopedRoutesConfigDump_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump *envoy_admin_v3_ScopedRoutesConfigDump_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ScopedRoutesConfigDump *ret = envoy_admin_v3_ScopedRoutesConfigDump_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ScopedRoutesConfigDump_serialize(const envoy_admin_v3_ScopedRoutesConfigDump *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_ScopedRoutesConfigDump_has_inline_scoped_route_configs(const envoy_admin_v3_ScopedRoutesConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs* const* envoy_admin_v3_ScopedRoutesConfigDump_inline_scoped_route_configs(const envoy_admin_v3_ScopedRoutesConfigDump *msg, size_t *len) { return (const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+UPB_INLINE bool envoy_admin_v3_ScopedRoutesConfigDump_has_dynamic_scoped_route_configs(const envoy_admin_v3_ScopedRoutesConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(4, 8)); }
+UPB_INLINE const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs* const* envoy_admin_v3_ScopedRoutesConfigDump_dynamic_scoped_route_configs(const envoy_admin_v3_ScopedRoutesConfigDump *msg, size_t *len) { return (const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs* const*)_upb_array_accessor(msg, UPB_SIZE(4, 8), len); }
+
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs** envoy_admin_v3_ScopedRoutesConfigDump_mutable_inline_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs** envoy_admin_v3_ScopedRoutesConfigDump_resize_inline_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs* envoy_admin_v3_ScopedRoutesConfigDump_add_inline_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs* sub = (struct envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs*)_upb_msg_new(&envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs** envoy_admin_v3_ScopedRoutesConfigDump_mutable_dynamic_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs**)_upb_array_mutable_accessor(msg, UPB_SIZE(4, 8), len);
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs** envoy_admin_v3_ScopedRoutesConfigDump_resize_dynamic_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs**)_upb_array_resize_accessor2(msg, UPB_SIZE(4, 8), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs* envoy_admin_v3_ScopedRoutesConfigDump_add_dynamic_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs* sub = (struct envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs*)_upb_msg_new(&envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(4, 8), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.admin.v3.ScopedRoutesConfigDump.InlineScopedRouteConfigs */
+
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_new(upb_arena *arena) {
+ return (envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *)_upb_msg_new(&envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *ret = envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *ret = envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_serialize(const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_name(const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_has_scoped_route_configs(const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(16, 32)); }
+UPB_INLINE const struct google_protobuf_Any* const* envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_scoped_route_configs(const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, size_t *len) { return (const struct google_protobuf_Any* const*)_upb_array_accessor(msg, UPB_SIZE(16, 32), len); }
+UPB_INLINE bool envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_has_last_updated(const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_last_updated(const envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const struct google_protobuf_Timestamp*); }
+
+UPB_INLINE void envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_set_name(envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE struct google_protobuf_Any** envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_mutable_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, size_t *len) {
+ return (struct google_protobuf_Any**)_upb_array_mutable_accessor(msg, UPB_SIZE(16, 32), len);
+}
+UPB_INLINE struct google_protobuf_Any** envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_resize_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, size_t len, upb_arena *arena) {
+ return (struct google_protobuf_Any**)_upb_array_resize_accessor2(msg, UPB_SIZE(16, 32), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_add_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(16, 32), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_set_last_updated(envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_mutable_last_updated(envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.admin.v3.ScopedRoutesConfigDump.DynamicScopedRouteConfigs */
+
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_new(upb_arena *arena) {
+ return (envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *)_upb_msg_new(&envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *ret = envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *ret = envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_serialize(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_name(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview); }
+UPB_INLINE upb_strview envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_version_info(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 24), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_has_scoped_route_configs(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(32, 56)); }
+UPB_INLINE const struct google_protobuf_Any* const* envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_scoped_route_configs(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, size_t *len) { return (const struct google_protobuf_Any* const*)_upb_array_accessor(msg, UPB_SIZE(32, 56), len); }
+UPB_INLINE bool envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_has_last_updated(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_last_updated(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 40), const struct google_protobuf_Timestamp*); }
+UPB_INLINE bool envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_has_error_state(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const envoy_admin_v3_UpdateFailureState* envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_error_state(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 48), const envoy_admin_v3_UpdateFailureState*); }
+UPB_INLINE int32_t envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_client_status(const envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t); }
+
+UPB_INLINE void envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_set_name(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_set_version_info(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 24), upb_strview) = value;
+}
+UPB_INLINE struct google_protobuf_Any** envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_mutable_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, size_t *len) {
+ return (struct google_protobuf_Any**)_upb_array_mutable_accessor(msg, UPB_SIZE(32, 56), len);
+}
+UPB_INLINE struct google_protobuf_Any** envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_resize_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, size_t len, upb_arena *arena) {
+ return (struct google_protobuf_Any**)_upb_array_resize_accessor2(msg, UPB_SIZE(32, 56), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_add_scoped_route_configs(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(32, 56), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_set_last_updated(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 40), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_mutable_last_updated(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_set_error_state(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, envoy_admin_v3_UpdateFailureState* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(28, 48), envoy_admin_v3_UpdateFailureState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_UpdateFailureState* envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_mutable_error_state(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, upb_arena *arena) {
+ struct envoy_admin_v3_UpdateFailureState* sub = (struct envoy_admin_v3_UpdateFailureState*)envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_error_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_UpdateFailureState*)_upb_msg_new(&envoy_admin_v3_UpdateFailureState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_set_error_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_set_client_status(envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t) = value;
+}
+
+/* envoy.admin.v3.SecretsConfigDump */
+
+UPB_INLINE envoy_admin_v3_SecretsConfigDump *envoy_admin_v3_SecretsConfigDump_new(upb_arena *arena) {
+ return (envoy_admin_v3_SecretsConfigDump *)_upb_msg_new(&envoy_admin_v3_SecretsConfigDump_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump *envoy_admin_v3_SecretsConfigDump_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_SecretsConfigDump *ret = envoy_admin_v3_SecretsConfigDump_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump *envoy_admin_v3_SecretsConfigDump_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_SecretsConfigDump *ret = envoy_admin_v3_SecretsConfigDump_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_SecretsConfigDump_serialize(const envoy_admin_v3_SecretsConfigDump *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_SecretsConfigDump_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_SecretsConfigDump_has_static_secrets(const envoy_admin_v3_SecretsConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const envoy_admin_v3_SecretsConfigDump_StaticSecret* const* envoy_admin_v3_SecretsConfigDump_static_secrets(const envoy_admin_v3_SecretsConfigDump *msg, size_t *len) { return (const envoy_admin_v3_SecretsConfigDump_StaticSecret* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+UPB_INLINE bool envoy_admin_v3_SecretsConfigDump_has_dynamic_active_secrets(const envoy_admin_v3_SecretsConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(4, 8)); }
+UPB_INLINE const envoy_admin_v3_SecretsConfigDump_DynamicSecret* const* envoy_admin_v3_SecretsConfigDump_dynamic_active_secrets(const envoy_admin_v3_SecretsConfigDump *msg, size_t *len) { return (const envoy_admin_v3_SecretsConfigDump_DynamicSecret* const*)_upb_array_accessor(msg, UPB_SIZE(4, 8), len); }
+UPB_INLINE bool envoy_admin_v3_SecretsConfigDump_has_dynamic_warming_secrets(const envoy_admin_v3_SecretsConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const envoy_admin_v3_SecretsConfigDump_DynamicSecret* const* envoy_admin_v3_SecretsConfigDump_dynamic_warming_secrets(const envoy_admin_v3_SecretsConfigDump *msg, size_t *len) { return (const envoy_admin_v3_SecretsConfigDump_DynamicSecret* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_StaticSecret** envoy_admin_v3_SecretsConfigDump_mutable_static_secrets(envoy_admin_v3_SecretsConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_SecretsConfigDump_StaticSecret**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_StaticSecret** envoy_admin_v3_SecretsConfigDump_resize_static_secrets(envoy_admin_v3_SecretsConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_SecretsConfigDump_StaticSecret**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_SecretsConfigDump_StaticSecret* envoy_admin_v3_SecretsConfigDump_add_static_secrets(envoy_admin_v3_SecretsConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_SecretsConfigDump_StaticSecret* sub = (struct envoy_admin_v3_SecretsConfigDump_StaticSecret*)_upb_msg_new(&envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret** envoy_admin_v3_SecretsConfigDump_mutable_dynamic_active_secrets(envoy_admin_v3_SecretsConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_SecretsConfigDump_DynamicSecret**)_upb_array_mutable_accessor(msg, UPB_SIZE(4, 8), len);
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret** envoy_admin_v3_SecretsConfigDump_resize_dynamic_active_secrets(envoy_admin_v3_SecretsConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_SecretsConfigDump_DynamicSecret**)_upb_array_resize_accessor2(msg, UPB_SIZE(4, 8), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_SecretsConfigDump_DynamicSecret* envoy_admin_v3_SecretsConfigDump_add_dynamic_active_secrets(envoy_admin_v3_SecretsConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_SecretsConfigDump_DynamicSecret* sub = (struct envoy_admin_v3_SecretsConfigDump_DynamicSecret*)_upb_msg_new(&envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(4, 8), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret** envoy_admin_v3_SecretsConfigDump_mutable_dynamic_warming_secrets(envoy_admin_v3_SecretsConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_SecretsConfigDump_DynamicSecret**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret** envoy_admin_v3_SecretsConfigDump_resize_dynamic_warming_secrets(envoy_admin_v3_SecretsConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_SecretsConfigDump_DynamicSecret**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_SecretsConfigDump_DynamicSecret* envoy_admin_v3_SecretsConfigDump_add_dynamic_warming_secrets(envoy_admin_v3_SecretsConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_SecretsConfigDump_DynamicSecret* sub = (struct envoy_admin_v3_SecretsConfigDump_DynamicSecret*)_upb_msg_new(&envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.admin.v3.SecretsConfigDump.DynamicSecret */
+
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret *envoy_admin_v3_SecretsConfigDump_DynamicSecret_new(upb_arena *arena) {
+ return (envoy_admin_v3_SecretsConfigDump_DynamicSecret *)_upb_msg_new(&envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret *envoy_admin_v3_SecretsConfigDump_DynamicSecret_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_SecretsConfigDump_DynamicSecret *ret = envoy_admin_v3_SecretsConfigDump_DynamicSecret_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_DynamicSecret *envoy_admin_v3_SecretsConfigDump_DynamicSecret_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_SecretsConfigDump_DynamicSecret *ret = envoy_admin_v3_SecretsConfigDump_DynamicSecret_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_SecretsConfigDump_DynamicSecret_serialize(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_SecretsConfigDump_DynamicSecret_name(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview); }
+UPB_INLINE upb_strview envoy_admin_v3_SecretsConfigDump_DynamicSecret_version_info(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 24), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_SecretsConfigDump_DynamicSecret_has_last_updated(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_SecretsConfigDump_DynamicSecret_last_updated(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 40), const struct google_protobuf_Timestamp*); }
+UPB_INLINE bool envoy_admin_v3_SecretsConfigDump_DynamicSecret_has_secret(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_SecretsConfigDump_DynamicSecret_secret(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 48), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_SecretsConfigDump_DynamicSecret_has_error_state(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const envoy_admin_v3_UpdateFailureState* envoy_admin_v3_SecretsConfigDump_DynamicSecret_error_state(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 56), const envoy_admin_v3_UpdateFailureState*); }
+UPB_INLINE int32_t envoy_admin_v3_SecretsConfigDump_DynamicSecret_client_status(const envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t); }
+
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_name(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_version_info(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 24), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_last_updated(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 40), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_SecretsConfigDump_DynamicSecret_mutable_last_updated(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_SecretsConfigDump_DynamicSecret_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_secret(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(28, 48), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_SecretsConfigDump_DynamicSecret_mutable_secret(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_SecretsConfigDump_DynamicSecret_secret(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_secret(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_error_state(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, envoy_admin_v3_UpdateFailureState* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(32, 56), envoy_admin_v3_UpdateFailureState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_UpdateFailureState* envoy_admin_v3_SecretsConfigDump_DynamicSecret_mutable_error_state(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, upb_arena *arena) {
+ struct envoy_admin_v3_UpdateFailureState* sub = (struct envoy_admin_v3_UpdateFailureState*)envoy_admin_v3_SecretsConfigDump_DynamicSecret_error_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_UpdateFailureState*)_upb_msg_new(&envoy_admin_v3_UpdateFailureState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_error_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_DynamicSecret_set_client_status(envoy_admin_v3_SecretsConfigDump_DynamicSecret *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t) = value;
+}
+
+/* envoy.admin.v3.SecretsConfigDump.StaticSecret */
+
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_StaticSecret *envoy_admin_v3_SecretsConfigDump_StaticSecret_new(upb_arena *arena) {
+ return (envoy_admin_v3_SecretsConfigDump_StaticSecret *)_upb_msg_new(&envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_StaticSecret *envoy_admin_v3_SecretsConfigDump_StaticSecret_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_SecretsConfigDump_StaticSecret *ret = envoy_admin_v3_SecretsConfigDump_StaticSecret_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_SecretsConfigDump_StaticSecret *envoy_admin_v3_SecretsConfigDump_StaticSecret_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_SecretsConfigDump_StaticSecret *ret = envoy_admin_v3_SecretsConfigDump_StaticSecret_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_SecretsConfigDump_StaticSecret_serialize(const envoy_admin_v3_SecretsConfigDump_StaticSecret *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_SecretsConfigDump_StaticSecret_name(const envoy_admin_v3_SecretsConfigDump_StaticSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_SecretsConfigDump_StaticSecret_has_last_updated(const envoy_admin_v3_SecretsConfigDump_StaticSecret *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_SecretsConfigDump_StaticSecret_last_updated(const envoy_admin_v3_SecretsConfigDump_StaticSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const struct google_protobuf_Timestamp*); }
+UPB_INLINE bool envoy_admin_v3_SecretsConfigDump_StaticSecret_has_secret(const envoy_admin_v3_SecretsConfigDump_StaticSecret *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_SecretsConfigDump_StaticSecret_secret(const envoy_admin_v3_SecretsConfigDump_StaticSecret *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 32), const struct google_protobuf_Any*); }
+
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_StaticSecret_set_name(envoy_admin_v3_SecretsConfigDump_StaticSecret *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_StaticSecret_set_last_updated(envoy_admin_v3_SecretsConfigDump_StaticSecret *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_SecretsConfigDump_StaticSecret_mutable_last_updated(envoy_admin_v3_SecretsConfigDump_StaticSecret *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_SecretsConfigDump_StaticSecret_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_SecretsConfigDump_StaticSecret_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_SecretsConfigDump_StaticSecret_set_secret(envoy_admin_v3_SecretsConfigDump_StaticSecret *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 32), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_SecretsConfigDump_StaticSecret_mutable_secret(envoy_admin_v3_SecretsConfigDump_StaticSecret *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_SecretsConfigDump_StaticSecret_secret(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_SecretsConfigDump_StaticSecret_set_secret(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.admin.v3.EndpointsConfigDump */
+
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump *envoy_admin_v3_EndpointsConfigDump_new(upb_arena *arena) {
+ return (envoy_admin_v3_EndpointsConfigDump *)_upb_msg_new(&envoy_admin_v3_EndpointsConfigDump_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump *envoy_admin_v3_EndpointsConfigDump_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_EndpointsConfigDump *ret = envoy_admin_v3_EndpointsConfigDump_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump *envoy_admin_v3_EndpointsConfigDump_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_EndpointsConfigDump *ret = envoy_admin_v3_EndpointsConfigDump_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_EndpointsConfigDump_serialize(const envoy_admin_v3_EndpointsConfigDump *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_EndpointsConfigDump_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_EndpointsConfigDump_has_static_endpoint_configs(const envoy_admin_v3_EndpointsConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig* const* envoy_admin_v3_EndpointsConfigDump_static_endpoint_configs(const envoy_admin_v3_EndpointsConfigDump *msg, size_t *len) { return (const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+UPB_INLINE bool envoy_admin_v3_EndpointsConfigDump_has_dynamic_endpoint_configs(const envoy_admin_v3_EndpointsConfigDump *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(4, 8)); }
+UPB_INLINE const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig* const* envoy_admin_v3_EndpointsConfigDump_dynamic_endpoint_configs(const envoy_admin_v3_EndpointsConfigDump *msg, size_t *len) { return (const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig* const*)_upb_array_accessor(msg, UPB_SIZE(4, 8), len); }
+
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig** envoy_admin_v3_EndpointsConfigDump_mutable_static_endpoint_configs(envoy_admin_v3_EndpointsConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig** envoy_admin_v3_EndpointsConfigDump_resize_static_endpoint_configs(envoy_admin_v3_EndpointsConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig* envoy_admin_v3_EndpointsConfigDump_add_static_endpoint_configs(envoy_admin_v3_EndpointsConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig* sub = (struct envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig*)_upb_msg_new(&envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig** envoy_admin_v3_EndpointsConfigDump_mutable_dynamic_endpoint_configs(envoy_admin_v3_EndpointsConfigDump *msg, size_t *len) {
+ return (envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig**)_upb_array_mutable_accessor(msg, UPB_SIZE(4, 8), len);
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig** envoy_admin_v3_EndpointsConfigDump_resize_dynamic_endpoint_configs(envoy_admin_v3_EndpointsConfigDump *msg, size_t len, upb_arena *arena) {
+ return (envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig**)_upb_array_resize_accessor2(msg, UPB_SIZE(4, 8), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig* envoy_admin_v3_EndpointsConfigDump_add_dynamic_endpoint_configs(envoy_admin_v3_EndpointsConfigDump *msg, upb_arena *arena) {
+ struct envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig* sub = (struct envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig*)_upb_msg_new(&envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(4, 8), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.admin.v3.EndpointsConfigDump.StaticEndpointConfig */
+
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_new(upb_arena *arena) {
+ return (envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *)_upb_msg_new(&envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *ret = envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *ret = envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_serialize(const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_has_endpoint_config(const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_endpoint_config(const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_has_last_updated(const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_last_updated(const envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 16), const struct google_protobuf_Timestamp*); }
+
+UPB_INLINE void envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_set_endpoint_config(envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_mutable_endpoint_config(envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_endpoint_config(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_set_endpoint_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_set_last_updated(envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 16), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_mutable_last_updated(envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.admin.v3.EndpointsConfigDump.DynamicEndpointConfig */
+
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_new(upb_arena *arena) {
+ return (envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *)_upb_msg_new(&envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena);
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *ret = envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *ret = envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_serialize(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_version_info(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview); }
+UPB_INLINE bool envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_has_endpoint_config(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_endpoint_config(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 24), const struct google_protobuf_Any*); }
+UPB_INLINE bool envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_has_last_updated(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Timestamp* envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_last_updated(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 32), const struct google_protobuf_Timestamp*); }
+UPB_INLINE bool envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_has_error_state(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const envoy_admin_v3_UpdateFailureState* envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_error_state(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 40), const envoy_admin_v3_UpdateFailureState*); }
+UPB_INLINE int32_t envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_client_status(const envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t); }
+
+UPB_INLINE void envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_version_info(envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_endpoint_config(envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 24), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_mutable_endpoint_config(envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_endpoint_config(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_endpoint_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_last_updated(envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, struct google_protobuf_Timestamp* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 32), struct google_protobuf_Timestamp*) = value;
+}
+UPB_INLINE struct google_protobuf_Timestamp* envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_mutable_last_updated(envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, upb_arena *arena) {
+ struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_last_updated(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Timestamp*)_upb_msg_new(&google_protobuf_Timestamp_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_last_updated(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_error_state(envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, envoy_admin_v3_UpdateFailureState* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 40), envoy_admin_v3_UpdateFailureState*) = value;
+}
+UPB_INLINE struct envoy_admin_v3_UpdateFailureState* envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_mutable_error_state(envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, upb_arena *arena) {
+ struct envoy_admin_v3_UpdateFailureState* sub = (struct envoy_admin_v3_UpdateFailureState*)envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_error_state(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_UpdateFailureState*)_upb_msg_new(&envoy_admin_v3_UpdateFailureState_msginit, arena);
+ if (!sub) return NULL;
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_error_state(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_client_status(envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t) = value;
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_ADMIN_V3_CONFIG_DUMP_PROTO_UPB_H_ */
diff --git a/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c b/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c
new file mode 100644
index 00000000000..b7f9387b242
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c
@@ -0,0 +1,350 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/bootstrap/v3/bootstrap.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include
+#include "upb/msg.h"
+#include "envoy/config/bootstrap/v3/bootstrap.upb.h"
+#include "envoy/config/cluster/v3/cluster.upb.h"
+#include "envoy/config/core/v3/address.upb.h"
+#include "envoy/config/core/v3/base.upb.h"
+#include "envoy/config/core/v3/config_source.upb.h"
+#include "envoy/config/core/v3/event_service_config.upb.h"
+#include "envoy/config/core/v3/extension.upb.h"
+#include "envoy/config/core/v3/socket_option.upb.h"
+#include "envoy/config/listener/v3/listener.upb.h"
+#include "envoy/config/metrics/v3/stats.upb.h"
+#include "envoy/config/overload/v3/overload.upb.h"
+#include "envoy/config/trace/v3/http_tracer.upb.h"
+#include "envoy/extensions/transport_sockets/tls/v3/secret.upb.h"
+#include "envoy/type/v3/percent.upb.h"
+#include "google/protobuf/duration.upb.h"
+#include "google/protobuf/struct.upb.h"
+#include "google/protobuf/wrappers.upb.h"
+#include "udpa/annotations/migrate.upb.h"
+#include "udpa/annotations/security.upb.h"
+#include "udpa/annotations/status.upb.h"
+#include "udpa/annotations/versioning.upb.h"
+#include "validate/validate.upb.h"
+
+#include "upb/port_def.inc"
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_submsgs[19] = {
+ &envoy_config_bootstrap_v3_Admin_msginit,
+ &envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_msginit,
+ &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit,
+ &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit,
+ &envoy_config_bootstrap_v3_ClusterManager_msginit,
+ &envoy_config_bootstrap_v3_FatalAction_msginit,
+ &envoy_config_bootstrap_v3_LayeredRuntime_msginit,
+ &envoy_config_bootstrap_v3_Watchdog_msginit,
+ &envoy_config_bootstrap_v3_Watchdogs_msginit,
+ &envoy_config_core_v3_ApiConfigSource_msginit,
+ &envoy_config_core_v3_ConfigSource_msginit,
+ &envoy_config_core_v3_Node_msginit,
+ &envoy_config_core_v3_TypedExtensionConfig_msginit,
+ &envoy_config_metrics_v3_StatsConfig_msginit,
+ &envoy_config_metrics_v3_StatsSink_msginit,
+ &envoy_config_overload_v3_OverloadManager_msginit,
+ &envoy_config_trace_v3_Tracing_msginit,
+ &google_protobuf_Duration_msginit,
+ &google_protobuf_UInt64Value_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Bootstrap__fields[27] = {
+ {1, UPB_SIZE(28, 56), 1, 11, 11, 1},
+ {2, UPB_SIZE(32, 64), 2, 3, 11, 1},
+ {3, UPB_SIZE(36, 72), 3, 2, 11, 1},
+ {4, UPB_SIZE(40, 80), 4, 4, 11, 1},
+ {5, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {6, UPB_SIZE(88, 176), 0, 14, 11, 3},
+ {7, UPB_SIZE(44, 88), 5, 17, 11, 1},
+ {8, UPB_SIZE(48, 96), 6, 7, 11, 1},
+ {9, UPB_SIZE(52, 104), 7, 16, 11, 1},
+ {12, UPB_SIZE(56, 112), 8, 0, 11, 1},
+ {13, UPB_SIZE(60, 120), 9, 13, 11, 1},
+ {14, UPB_SIZE(64, 128), 10, 9, 11, 1},
+ {15, UPB_SIZE(68, 136), 11, 15, 11, 1},
+ {16, UPB_SIZE(2, 2), 0, 0, 8, 1},
+ {17, UPB_SIZE(72, 144), 12, 6, 11, 1},
+ {18, UPB_SIZE(12, 24), 0, 0, 9, 1},
+ {19, UPB_SIZE(76, 152), 13, 18, 11, 1},
+ {20, UPB_SIZE(3, 3), 0, 0, 8, 1},
+ {21, UPB_SIZE(92, 184), 0, 12, 11, 3},
+ {22, UPB_SIZE(96, 192), 0, 10, 11, 3},
+ {23, UPB_SIZE(80, 160), 14, 10, 11, 1},
+ {24, UPB_SIZE(20, 40), 0, 0, 9, 1},
+ {25, UPB_SIZE(100, 200), 0, 1, 11, _UPB_LABEL_MAP},
+ {26, UPB_SIZE(104, 208), 0, 0, 9, 3},
+ {27, UPB_SIZE(84, 168), 15, 8, 11, 1},
+ {28, UPB_SIZE(108, 216), 0, 5, 11, 3},
+ {29, UPB_SIZE(112, 224), UPB_SIZE(-117, -229), 0, 8, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_msginit = {
+ &envoy_config_bootstrap_v3_Bootstrap_submsgs[0],
+ &envoy_config_bootstrap_v3_Bootstrap__fields[0],
+ UPB_SIZE(120, 240), 27, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_StaticResources_submsgs[3] = {
+ &envoy_config_cluster_v3_Cluster_msginit,
+ &envoy_config_listener_v3_Listener_msginit,
+ &envoy_extensions_transport_sockets_tls_v3_Secret_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Bootstrap_StaticResources__fields[3] = {
+ {1, UPB_SIZE(0, 0), 0, 1, 11, 3},
+ {2, UPB_SIZE(4, 8), 0, 0, 11, 3},
+ {3, UPB_SIZE(8, 16), 0, 2, 11, 3},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit = {
+ &envoy_config_bootstrap_v3_Bootstrap_StaticResources_submsgs[0],
+ &envoy_config_bootstrap_v3_Bootstrap_StaticResources__fields[0],
+ UPB_SIZE(16, 24), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_DynamicResources_submsgs[2] = {
+ &envoy_config_core_v3_ApiConfigSource_msginit,
+ &envoy_config_core_v3_ConfigSource_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Bootstrap_DynamicResources__fields[5] = {
+ {1, UPB_SIZE(20, 40), 1, 1, 11, 1},
+ {2, UPB_SIZE(24, 48), 2, 1, 11, 1},
+ {3, UPB_SIZE(28, 56), 3, 0, 11, 1},
+ {5, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {6, UPB_SIZE(12, 24), 0, 0, 9, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit = {
+ &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_submsgs[0],
+ &envoy_config_bootstrap_v3_Bootstrap_DynamicResources__fields[0],
+ UPB_SIZE(32, 64), 5, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_submsgs[1] = {
+ &envoy_config_core_v3_TypedExtensionConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry__fields[2] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
+ {2, UPB_SIZE(8, 16), 0, 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_msginit = {
+ &envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_submsgs[0],
+ &envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry__fields[0],
+ UPB_SIZE(16, 32), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Admin_submsgs[2] = {
+ &envoy_config_core_v3_Address_msginit,
+ &envoy_config_core_v3_SocketOption_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Admin__fields[4] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(12, 24), 0, 0, 9, 1},
+ {3, UPB_SIZE(20, 40), 1, 0, 11, 1},
+ {4, UPB_SIZE(24, 48), 0, 1, 11, 3},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Admin_msginit = {
+ &envoy_config_bootstrap_v3_Admin_submsgs[0],
+ &envoy_config_bootstrap_v3_Admin__fields[0],
+ UPB_SIZE(32, 64), 4, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_ClusterManager_submsgs[3] = {
+ &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit,
+ &envoy_config_core_v3_ApiConfigSource_msginit,
+ &envoy_config_core_v3_BindConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_ClusterManager__fields[4] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(12, 24), 1, 0, 11, 1},
+ {3, UPB_SIZE(16, 32), 2, 2, 11, 1},
+ {4, UPB_SIZE(20, 40), 3, 1, 11, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_ClusterManager_msginit = {
+ &envoy_config_bootstrap_v3_ClusterManager_submsgs[0],
+ &envoy_config_bootstrap_v3_ClusterManager__fields[0],
+ UPB_SIZE(24, 48), 4, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_submsgs[1] = {
+ &envoy_config_core_v3_EventServiceConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_ClusterManager_OutlierDetection__fields[2] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(12, 24), 1, 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit = {
+ &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_submsgs[0],
+ &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection__fields[0],
+ UPB_SIZE(16, 32), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdogs_submsgs[1] = {
+ &envoy_config_bootstrap_v3_Watchdog_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Watchdogs__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 2, 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Watchdogs_msginit = {
+ &envoy_config_bootstrap_v3_Watchdogs_submsgs[0],
+ &envoy_config_bootstrap_v3_Watchdogs__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdog_submsgs[3] = {
+ &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit,
+ &envoy_type_v3_Percent_msginit,
+ &google_protobuf_Duration_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Watchdog__fields[7] = {
+ {1, UPB_SIZE(4, 8), 1, 2, 11, 1},
+ {2, UPB_SIZE(8, 16), 2, 2, 11, 1},
+ {3, UPB_SIZE(12, 24), 3, 2, 11, 1},
+ {4, UPB_SIZE(16, 32), 4, 2, 11, 1},
+ {5, UPB_SIZE(20, 40), 5, 1, 11, 1},
+ {6, UPB_SIZE(24, 48), 6, 2, 11, 1},
+ {7, UPB_SIZE(28, 56), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Watchdog_msginit = {
+ &envoy_config_bootstrap_v3_Watchdog_submsgs[0],
+ &envoy_config_bootstrap_v3_Watchdog__fields[0],
+ UPB_SIZE(32, 64), 7, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Watchdog_WatchdogAction_submsgs[1] = {
+ &envoy_config_core_v3_TypedExtensionConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Watchdog_WatchdogAction__fields[2] = {
+ {1, UPB_SIZE(8, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(4, 4), 0, 0, 14, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit = {
+ &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_submsgs[0],
+ &envoy_config_bootstrap_v3_Watchdog_WatchdogAction__fields[0],
+ UPB_SIZE(16, 16), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_FatalAction_submsgs[1] = {
+ &envoy_config_core_v3_TypedExtensionConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_FatalAction__fields[1] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_FatalAction_msginit = {
+ &envoy_config_bootstrap_v3_FatalAction_submsgs[0],
+ &envoy_config_bootstrap_v3_FatalAction__fields[0],
+ UPB_SIZE(8, 16), 1, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_Runtime_submsgs[1] = {
+ &google_protobuf_Struct_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_Runtime__fields[4] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(12, 24), 0, 0, 9, 1},
+ {3, UPB_SIZE(20, 40), 0, 0, 9, 1},
+ {4, UPB_SIZE(28, 56), 1, 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_Runtime_msginit = {
+ &envoy_config_bootstrap_v3_Runtime_submsgs[0],
+ &envoy_config_bootstrap_v3_Runtime__fields[0],
+ UPB_SIZE(32, 64), 4, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_RuntimeLayer_submsgs[4] = {
+ &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit,
+ &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit,
+ &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit,
+ &google_protobuf_Struct_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_RuntimeLayer__fields[5] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
+ {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 3, 11, 1},
+ {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1},
+ {4, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1},
+ {5, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 2, 11, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_msginit = {
+ &envoy_config_bootstrap_v3_RuntimeLayer_submsgs[0],
+ &envoy_config_bootstrap_v3_RuntimeLayer__fields[0],
+ UPB_SIZE(16, 32), 5, false, 255,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer__fields[3] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(0, 0), 0, 0, 8, 1},
+ {3, UPB_SIZE(12, 24), 0, 0, 9, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit = {
+ NULL,
+ &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer__fields[0],
+ UPB_SIZE(24, 48), 3, false, 255,
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit = {
+ NULL,
+ NULL,
+ UPB_SIZE(0, 0), 0, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_submsgs[1] = {
+ &envoy_config_core_v3_ConfigSource_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer__fields[2] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(12, 24), 1, 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit = {
+ &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_submsgs[0],
+ &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer__fields[0],
+ UPB_SIZE(16, 32), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_bootstrap_v3_LayeredRuntime_submsgs[1] = {
+ &envoy_config_bootstrap_v3_RuntimeLayer_msginit,
+};
+
+static const upb_msglayout_field envoy_config_bootstrap_v3_LayeredRuntime__fields[1] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_config_bootstrap_v3_LayeredRuntime_msginit = {
+ &envoy_config_bootstrap_v3_LayeredRuntime_submsgs[0],
+ &envoy_config_bootstrap_v3_LayeredRuntime__fields[0],
+ UPB_SIZE(8, 8), 1, false, 255,
+};
+
+#include "upb/port_undef.inc"
+
diff --git a/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h b/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h
new file mode 100644
index 00000000000..42e4c8583d9
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h
@@ -0,0 +1,1348 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/bootstrap/v3/bootstrap.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_CONFIG_BOOTSTRAP_V3_BOOTSTRAP_PROTO_UPB_H_
+#define ENVOY_CONFIG_BOOTSTRAP_V3_BOOTSTRAP_PROTO_UPB_H_
+
+#include "upb/msg.h"
+#include "upb/decode.h"
+#include "upb/decode_fast.h"
+#include "upb/encode.h"
+
+#include "upb/port_def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct envoy_config_bootstrap_v3_Bootstrap;
+struct envoy_config_bootstrap_v3_Bootstrap_StaticResources;
+struct envoy_config_bootstrap_v3_Bootstrap_DynamicResources;
+struct envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry;
+struct envoy_config_bootstrap_v3_Admin;
+struct envoy_config_bootstrap_v3_ClusterManager;
+struct envoy_config_bootstrap_v3_ClusterManager_OutlierDetection;
+struct envoy_config_bootstrap_v3_Watchdogs;
+struct envoy_config_bootstrap_v3_Watchdog;
+struct envoy_config_bootstrap_v3_Watchdog_WatchdogAction;
+struct envoy_config_bootstrap_v3_FatalAction;
+struct envoy_config_bootstrap_v3_Runtime;
+struct envoy_config_bootstrap_v3_RuntimeLayer;
+struct envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer;
+struct envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer;
+struct envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer;
+struct envoy_config_bootstrap_v3_LayeredRuntime;
+typedef struct envoy_config_bootstrap_v3_Bootstrap envoy_config_bootstrap_v3_Bootstrap;
+typedef struct envoy_config_bootstrap_v3_Bootstrap_StaticResources envoy_config_bootstrap_v3_Bootstrap_StaticResources;
+typedef struct envoy_config_bootstrap_v3_Bootstrap_DynamicResources envoy_config_bootstrap_v3_Bootstrap_DynamicResources;
+typedef struct envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry;
+typedef struct envoy_config_bootstrap_v3_Admin envoy_config_bootstrap_v3_Admin;
+typedef struct envoy_config_bootstrap_v3_ClusterManager envoy_config_bootstrap_v3_ClusterManager;
+typedef struct envoy_config_bootstrap_v3_ClusterManager_OutlierDetection envoy_config_bootstrap_v3_ClusterManager_OutlierDetection;
+typedef struct envoy_config_bootstrap_v3_Watchdogs envoy_config_bootstrap_v3_Watchdogs;
+typedef struct envoy_config_bootstrap_v3_Watchdog envoy_config_bootstrap_v3_Watchdog;
+typedef struct envoy_config_bootstrap_v3_Watchdog_WatchdogAction envoy_config_bootstrap_v3_Watchdog_WatchdogAction;
+typedef struct envoy_config_bootstrap_v3_FatalAction envoy_config_bootstrap_v3_FatalAction;
+typedef struct envoy_config_bootstrap_v3_Runtime envoy_config_bootstrap_v3_Runtime;
+typedef struct envoy_config_bootstrap_v3_RuntimeLayer envoy_config_bootstrap_v3_RuntimeLayer;
+typedef struct envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer;
+typedef struct envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer;
+typedef struct envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer;
+typedef struct envoy_config_bootstrap_v3_LayeredRuntime envoy_config_bootstrap_v3_LayeredRuntime;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Admin_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_ClusterManager_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Watchdogs_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Watchdog_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_FatalAction_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Runtime_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_LayeredRuntime_msginit;
+struct envoy_config_cluster_v3_Cluster;
+struct envoy_config_core_v3_Address;
+struct envoy_config_core_v3_ApiConfigSource;
+struct envoy_config_core_v3_BindConfig;
+struct envoy_config_core_v3_ConfigSource;
+struct envoy_config_core_v3_EventServiceConfig;
+struct envoy_config_core_v3_Node;
+struct envoy_config_core_v3_SocketOption;
+struct envoy_config_core_v3_TypedExtensionConfig;
+struct envoy_config_listener_v3_Listener;
+struct envoy_config_metrics_v3_StatsConfig;
+struct envoy_config_metrics_v3_StatsSink;
+struct envoy_config_overload_v3_OverloadManager;
+struct envoy_config_trace_v3_Tracing;
+struct envoy_extensions_transport_sockets_tls_v3_Secret;
+struct envoy_type_v3_Percent;
+struct google_protobuf_Duration;
+struct google_protobuf_Struct;
+struct google_protobuf_UInt64Value;
+extern const upb_msglayout envoy_config_cluster_v3_Cluster_msginit;
+extern const upb_msglayout envoy_config_core_v3_Address_msginit;
+extern const upb_msglayout envoy_config_core_v3_ApiConfigSource_msginit;
+extern const upb_msglayout envoy_config_core_v3_BindConfig_msginit;
+extern const upb_msglayout envoy_config_core_v3_ConfigSource_msginit;
+extern const upb_msglayout envoy_config_core_v3_EventServiceConfig_msginit;
+extern const upb_msglayout envoy_config_core_v3_Node_msginit;
+extern const upb_msglayout envoy_config_core_v3_SocketOption_msginit;
+extern const upb_msglayout envoy_config_core_v3_TypedExtensionConfig_msginit;
+extern const upb_msglayout envoy_config_listener_v3_Listener_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsConfig_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsSink_msginit;
+extern const upb_msglayout envoy_config_overload_v3_OverloadManager_msginit;
+extern const upb_msglayout envoy_config_trace_v3_Tracing_msginit;
+extern const upb_msglayout envoy_extensions_transport_sockets_tls_v3_Secret_msginit;
+extern const upb_msglayout envoy_type_v3_Percent_msginit;
+extern const upb_msglayout google_protobuf_Duration_msginit;
+extern const upb_msglayout google_protobuf_Struct_msginit;
+extern const upb_msglayout google_protobuf_UInt64Value_msginit;
+
+typedef enum {
+ envoy_config_bootstrap_v3_Watchdog_WatchdogAction_UNKNOWN = 0,
+ envoy_config_bootstrap_v3_Watchdog_WatchdogAction_KILL = 1,
+ envoy_config_bootstrap_v3_Watchdog_WatchdogAction_MULTIKILL = 2,
+ envoy_config_bootstrap_v3_Watchdog_WatchdogAction_MEGAMISS = 3,
+ envoy_config_bootstrap_v3_Watchdog_WatchdogAction_MISS = 4
+} envoy_config_bootstrap_v3_Watchdog_WatchdogAction_WatchdogEvent;
+
+
+/* envoy.config.bootstrap.v3.Bootstrap */
+
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap *envoy_config_bootstrap_v3_Bootstrap_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Bootstrap *)_upb_msg_new(&envoy_config_bootstrap_v3_Bootstrap_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap *envoy_config_bootstrap_v3_Bootstrap_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_Bootstrap *ret = envoy_config_bootstrap_v3_Bootstrap_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap *envoy_config_bootstrap_v3_Bootstrap_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_Bootstrap *ret = envoy_config_bootstrap_v3_Bootstrap_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_Bootstrap_serialize(const envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_Bootstrap_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_bootstrap_v3_Bootstrap_stats_flush_stats_flush_on_admin = 29,
+ envoy_config_bootstrap_v3_Bootstrap_stats_flush_NOT_SET = 0
+} envoy_config_bootstrap_v3_Bootstrap_stats_flush_oneofcases;
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_stats_flush_oneofcases envoy_config_bootstrap_v3_Bootstrap_stats_flush_case(const envoy_config_bootstrap_v3_Bootstrap* msg) { return (envoy_config_bootstrap_v3_Bootstrap_stats_flush_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(116, 228), int32_t); }
+
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_node(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_Node* envoy_config_bootstrap_v3_Bootstrap_node(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 56), const struct envoy_config_core_v3_Node*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_static_resources(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const envoy_config_bootstrap_v3_Bootstrap_StaticResources* envoy_config_bootstrap_v3_Bootstrap_static_resources(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(32, 64), const envoy_config_bootstrap_v3_Bootstrap_StaticResources*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_dynamic_resources(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const envoy_config_bootstrap_v3_Bootstrap_DynamicResources* envoy_config_bootstrap_v3_Bootstrap_dynamic_resources(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(36, 72), const envoy_config_bootstrap_v3_Bootstrap_DynamicResources*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_cluster_manager(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 4); }
+UPB_INLINE const envoy_config_bootstrap_v3_ClusterManager* envoy_config_bootstrap_v3_Bootstrap_cluster_manager(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(40, 80), const envoy_config_bootstrap_v3_ClusterManager*); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Bootstrap_flags_path(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_stats_sinks(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(88, 176)); }
+UPB_INLINE const struct envoy_config_metrics_v3_StatsSink* const* envoy_config_bootstrap_v3_Bootstrap_stats_sinks(const envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) { return (const struct envoy_config_metrics_v3_StatsSink* const*)_upb_array_accessor(msg, UPB_SIZE(88, 176), len); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_stats_flush_interval(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 5); }
+UPB_INLINE const struct google_protobuf_Duration* envoy_config_bootstrap_v3_Bootstrap_stats_flush_interval(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(44, 88), const struct google_protobuf_Duration*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_watchdog(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 6); }
+UPB_INLINE const envoy_config_bootstrap_v3_Watchdog* envoy_config_bootstrap_v3_Bootstrap_watchdog(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(48, 96), const envoy_config_bootstrap_v3_Watchdog*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_tracing(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 7); }
+UPB_INLINE const struct envoy_config_trace_v3_Tracing* envoy_config_bootstrap_v3_Bootstrap_tracing(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(52, 104), const struct envoy_config_trace_v3_Tracing*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_admin(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 8); }
+UPB_INLINE const envoy_config_bootstrap_v3_Admin* envoy_config_bootstrap_v3_Bootstrap_admin(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(56, 112), const envoy_config_bootstrap_v3_Admin*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_stats_config(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 9); }
+UPB_INLINE const struct envoy_config_metrics_v3_StatsConfig* envoy_config_bootstrap_v3_Bootstrap_stats_config(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(60, 120), const struct envoy_config_metrics_v3_StatsConfig*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_hds_config(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 10); }
+UPB_INLINE const struct envoy_config_core_v3_ApiConfigSource* envoy_config_bootstrap_v3_Bootstrap_hds_config(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(64, 128), const struct envoy_config_core_v3_ApiConfigSource*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_overload_manager(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 11); }
+UPB_INLINE const struct envoy_config_overload_v3_OverloadManager* envoy_config_bootstrap_v3_Bootstrap_overload_manager(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(68, 136), const struct envoy_config_overload_v3_OverloadManager*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_enable_dispatcher_stats(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(2, 2), bool); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_layered_runtime(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 12); }
+UPB_INLINE const envoy_config_bootstrap_v3_LayeredRuntime* envoy_config_bootstrap_v3_Bootstrap_layered_runtime(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(72, 144), const envoy_config_bootstrap_v3_LayeredRuntime*); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Bootstrap_header_prefix(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_stats_server_version_override(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 13); }
+UPB_INLINE const struct google_protobuf_UInt64Value* envoy_config_bootstrap_v3_Bootstrap_stats_server_version_override(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(76, 152), const struct google_protobuf_UInt64Value*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_use_tcp_for_dns_lookups(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(3, 3), bool); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_bootstrap_extensions(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(92, 184)); }
+UPB_INLINE const struct envoy_config_core_v3_TypedExtensionConfig* const* envoy_config_bootstrap_v3_Bootstrap_bootstrap_extensions(const envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) { return (const struct envoy_config_core_v3_TypedExtensionConfig* const*)_upb_array_accessor(msg, UPB_SIZE(92, 184), len); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_config_sources(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(96, 192)); }
+UPB_INLINE const struct envoy_config_core_v3_ConfigSource* const* envoy_config_bootstrap_v3_Bootstrap_config_sources(const envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) { return (const struct envoy_config_core_v3_ConfigSource* const*)_upb_array_accessor(msg, UPB_SIZE(96, 192), len); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_default_config_source(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 14); }
+UPB_INLINE const struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_Bootstrap_default_config_source(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(80, 160), const struct envoy_config_core_v3_ConfigSource*); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Bootstrap_default_socket_interface(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 40), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_certificate_provider_instances(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(100, 200)); }
+UPB_INLINE size_t envoy_config_bootstrap_v3_Bootstrap_certificate_provider_instances_size(const envoy_config_bootstrap_v3_Bootstrap *msg) {return _upb_msg_map_size(msg, UPB_SIZE(100, 200)); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_certificate_provider_instances_get(const envoy_config_bootstrap_v3_Bootstrap *msg, upb_strview key, struct envoy_config_core_v3_TypedExtensionConfig* *val) { return _upb_msg_map_get(msg, UPB_SIZE(100, 200), &key, 0, val, sizeof(*val)); }
+UPB_INLINE const envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry* envoy_config_bootstrap_v3_Bootstrap_certificate_provider_instances_next(const envoy_config_bootstrap_v3_Bootstrap *msg, size_t* iter) { return (const envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry*)_upb_msg_map_next(msg, UPB_SIZE(100, 200), iter); }
+UPB_INLINE upb_strview const* envoy_config_bootstrap_v3_Bootstrap_node_context_params(const envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) { return (upb_strview const*)_upb_array_accessor(msg, UPB_SIZE(104, 208), len); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_watchdogs(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_hasbit(msg, 15); }
+UPB_INLINE const envoy_config_bootstrap_v3_Watchdogs* envoy_config_bootstrap_v3_Bootstrap_watchdogs(const envoy_config_bootstrap_v3_Bootstrap *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(84, 168), const envoy_config_bootstrap_v3_Watchdogs*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_fatal_actions(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(108, 216)); }
+UPB_INLINE const envoy_config_bootstrap_v3_FatalAction* const* envoy_config_bootstrap_v3_Bootstrap_fatal_actions(const envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) { return (const envoy_config_bootstrap_v3_FatalAction* const*)_upb_array_accessor(msg, UPB_SIZE(108, 216), len); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_has_stats_flush_on_admin(const envoy_config_bootstrap_v3_Bootstrap *msg) { return _upb_getoneofcase(msg, UPB_SIZE(116, 228)) == 29; }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_stats_flush_on_admin(const envoy_config_bootstrap_v3_Bootstrap *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(112, 224), UPB_SIZE(116, 228), 29, false); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_node(envoy_config_bootstrap_v3_Bootstrap *msg, struct envoy_config_core_v3_Node* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(28, 56), struct envoy_config_core_v3_Node*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_Node* envoy_config_bootstrap_v3_Bootstrap_mutable_node(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_Node* sub = (struct envoy_config_core_v3_Node*)envoy_config_bootstrap_v3_Bootstrap_node(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Node*)_upb_msg_new(&envoy_config_core_v3_Node_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_node(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_static_resources(envoy_config_bootstrap_v3_Bootstrap *msg, envoy_config_bootstrap_v3_Bootstrap_StaticResources* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(32, 64), envoy_config_bootstrap_v3_Bootstrap_StaticResources*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Bootstrap_StaticResources* envoy_config_bootstrap_v3_Bootstrap_mutable_static_resources(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Bootstrap_StaticResources* sub = (struct envoy_config_bootstrap_v3_Bootstrap_StaticResources*)envoy_config_bootstrap_v3_Bootstrap_static_resources(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_Bootstrap_StaticResources*)_upb_msg_new(&envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_static_resources(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_dynamic_resources(envoy_config_bootstrap_v3_Bootstrap *msg, envoy_config_bootstrap_v3_Bootstrap_DynamicResources* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(36, 72), envoy_config_bootstrap_v3_Bootstrap_DynamicResources*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Bootstrap_DynamicResources* envoy_config_bootstrap_v3_Bootstrap_mutable_dynamic_resources(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Bootstrap_DynamicResources* sub = (struct envoy_config_bootstrap_v3_Bootstrap_DynamicResources*)envoy_config_bootstrap_v3_Bootstrap_dynamic_resources(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_Bootstrap_DynamicResources*)_upb_msg_new(&envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_dynamic_resources(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_cluster_manager(envoy_config_bootstrap_v3_Bootstrap *msg, envoy_config_bootstrap_v3_ClusterManager* value) {
+ _upb_sethas(msg, 4);
+ *UPB_PTR_AT(msg, UPB_SIZE(40, 80), envoy_config_bootstrap_v3_ClusterManager*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_ClusterManager* envoy_config_bootstrap_v3_Bootstrap_mutable_cluster_manager(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_ClusterManager* sub = (struct envoy_config_bootstrap_v3_ClusterManager*)envoy_config_bootstrap_v3_Bootstrap_cluster_manager(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_ClusterManager*)_upb_msg_new(&envoy_config_bootstrap_v3_ClusterManager_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_cluster_manager(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_flags_path(envoy_config_bootstrap_v3_Bootstrap *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE struct envoy_config_metrics_v3_StatsSink** envoy_config_bootstrap_v3_Bootstrap_mutable_stats_sinks(envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) {
+ return (struct envoy_config_metrics_v3_StatsSink**)_upb_array_mutable_accessor(msg, UPB_SIZE(88, 176), len);
+}
+UPB_INLINE struct envoy_config_metrics_v3_StatsSink** envoy_config_bootstrap_v3_Bootstrap_resize_stats_sinks(envoy_config_bootstrap_v3_Bootstrap *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_config_metrics_v3_StatsSink**)_upb_array_resize_accessor2(msg, UPB_SIZE(88, 176), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_metrics_v3_StatsSink* envoy_config_bootstrap_v3_Bootstrap_add_stats_sinks(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_metrics_v3_StatsSink* sub = (struct envoy_config_metrics_v3_StatsSink*)_upb_msg_new(&envoy_config_metrics_v3_StatsSink_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(88, 176), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_stats_flush_interval(envoy_config_bootstrap_v3_Bootstrap *msg, struct google_protobuf_Duration* value) {
+ _upb_sethas(msg, 5);
+ *UPB_PTR_AT(msg, UPB_SIZE(44, 88), struct google_protobuf_Duration*) = value;
+}
+UPB_INLINE struct google_protobuf_Duration* envoy_config_bootstrap_v3_Bootstrap_mutable_stats_flush_interval(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)envoy_config_bootstrap_v3_Bootstrap_stats_flush_interval(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_stats_flush_interval(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_watchdog(envoy_config_bootstrap_v3_Bootstrap *msg, envoy_config_bootstrap_v3_Watchdog* value) {
+ _upb_sethas(msg, 6);
+ *UPB_PTR_AT(msg, UPB_SIZE(48, 96), envoy_config_bootstrap_v3_Watchdog*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Watchdog* envoy_config_bootstrap_v3_Bootstrap_mutable_watchdog(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Watchdog* sub = (struct envoy_config_bootstrap_v3_Watchdog*)envoy_config_bootstrap_v3_Bootstrap_watchdog(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_Watchdog*)_upb_msg_new(&envoy_config_bootstrap_v3_Watchdog_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_watchdog(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_tracing(envoy_config_bootstrap_v3_Bootstrap *msg, struct envoy_config_trace_v3_Tracing* value) {
+ _upb_sethas(msg, 7);
+ *UPB_PTR_AT(msg, UPB_SIZE(52, 104), struct envoy_config_trace_v3_Tracing*) = value;
+}
+UPB_INLINE struct envoy_config_trace_v3_Tracing* envoy_config_bootstrap_v3_Bootstrap_mutable_tracing(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_trace_v3_Tracing* sub = (struct envoy_config_trace_v3_Tracing*)envoy_config_bootstrap_v3_Bootstrap_tracing(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_trace_v3_Tracing*)_upb_msg_new(&envoy_config_trace_v3_Tracing_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_tracing(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_admin(envoy_config_bootstrap_v3_Bootstrap *msg, envoy_config_bootstrap_v3_Admin* value) {
+ _upb_sethas(msg, 8);
+ *UPB_PTR_AT(msg, UPB_SIZE(56, 112), envoy_config_bootstrap_v3_Admin*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Admin* envoy_config_bootstrap_v3_Bootstrap_mutable_admin(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Admin* sub = (struct envoy_config_bootstrap_v3_Admin*)envoy_config_bootstrap_v3_Bootstrap_admin(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_Admin*)_upb_msg_new(&envoy_config_bootstrap_v3_Admin_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_admin(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_stats_config(envoy_config_bootstrap_v3_Bootstrap *msg, struct envoy_config_metrics_v3_StatsConfig* value) {
+ _upb_sethas(msg, 9);
+ *UPB_PTR_AT(msg, UPB_SIZE(60, 120), struct envoy_config_metrics_v3_StatsConfig*) = value;
+}
+UPB_INLINE struct envoy_config_metrics_v3_StatsConfig* envoy_config_bootstrap_v3_Bootstrap_mutable_stats_config(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_metrics_v3_StatsConfig* sub = (struct envoy_config_metrics_v3_StatsConfig*)envoy_config_bootstrap_v3_Bootstrap_stats_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_metrics_v3_StatsConfig*)_upb_msg_new(&envoy_config_metrics_v3_StatsConfig_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_stats_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_hds_config(envoy_config_bootstrap_v3_Bootstrap *msg, struct envoy_config_core_v3_ApiConfigSource* value) {
+ _upb_sethas(msg, 10);
+ *UPB_PTR_AT(msg, UPB_SIZE(64, 128), struct envoy_config_core_v3_ApiConfigSource*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_ApiConfigSource* envoy_config_bootstrap_v3_Bootstrap_mutable_hds_config(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_ApiConfigSource* sub = (struct envoy_config_core_v3_ApiConfigSource*)envoy_config_bootstrap_v3_Bootstrap_hds_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_ApiConfigSource*)_upb_msg_new(&envoy_config_core_v3_ApiConfigSource_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_hds_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_overload_manager(envoy_config_bootstrap_v3_Bootstrap *msg, struct envoy_config_overload_v3_OverloadManager* value) {
+ _upb_sethas(msg, 11);
+ *UPB_PTR_AT(msg, UPB_SIZE(68, 136), struct envoy_config_overload_v3_OverloadManager*) = value;
+}
+UPB_INLINE struct envoy_config_overload_v3_OverloadManager* envoy_config_bootstrap_v3_Bootstrap_mutable_overload_manager(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_overload_v3_OverloadManager* sub = (struct envoy_config_overload_v3_OverloadManager*)envoy_config_bootstrap_v3_Bootstrap_overload_manager(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_overload_v3_OverloadManager*)_upb_msg_new(&envoy_config_overload_v3_OverloadManager_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_overload_manager(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_enable_dispatcher_stats(envoy_config_bootstrap_v3_Bootstrap *msg, bool value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(2, 2), bool) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_layered_runtime(envoy_config_bootstrap_v3_Bootstrap *msg, envoy_config_bootstrap_v3_LayeredRuntime* value) {
+ _upb_sethas(msg, 12);
+ *UPB_PTR_AT(msg, UPB_SIZE(72, 144), envoy_config_bootstrap_v3_LayeredRuntime*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_LayeredRuntime* envoy_config_bootstrap_v3_Bootstrap_mutable_layered_runtime(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_LayeredRuntime* sub = (struct envoy_config_bootstrap_v3_LayeredRuntime*)envoy_config_bootstrap_v3_Bootstrap_layered_runtime(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_LayeredRuntime*)_upb_msg_new(&envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_layered_runtime(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_header_prefix(envoy_config_bootstrap_v3_Bootstrap *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_stats_server_version_override(envoy_config_bootstrap_v3_Bootstrap *msg, struct google_protobuf_UInt64Value* value) {
+ _upb_sethas(msg, 13);
+ *UPB_PTR_AT(msg, UPB_SIZE(76, 152), struct google_protobuf_UInt64Value*) = value;
+}
+UPB_INLINE struct google_protobuf_UInt64Value* envoy_config_bootstrap_v3_Bootstrap_mutable_stats_server_version_override(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct google_protobuf_UInt64Value* sub = (struct google_protobuf_UInt64Value*)envoy_config_bootstrap_v3_Bootstrap_stats_server_version_override(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_UInt64Value*)_upb_msg_new(&google_protobuf_UInt64Value_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_stats_server_version_override(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_use_tcp_for_dns_lookups(envoy_config_bootstrap_v3_Bootstrap *msg, bool value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(3, 3), bool) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_TypedExtensionConfig** envoy_config_bootstrap_v3_Bootstrap_mutable_bootstrap_extensions(envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) {
+ return (struct envoy_config_core_v3_TypedExtensionConfig**)_upb_array_mutable_accessor(msg, UPB_SIZE(92, 184), len);
+}
+UPB_INLINE struct envoy_config_core_v3_TypedExtensionConfig** envoy_config_bootstrap_v3_Bootstrap_resize_bootstrap_extensions(envoy_config_bootstrap_v3_Bootstrap *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_config_core_v3_TypedExtensionConfig**)_upb_array_resize_accessor2(msg, UPB_SIZE(92, 184), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_core_v3_TypedExtensionConfig* envoy_config_bootstrap_v3_Bootstrap_add_bootstrap_extensions(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_TypedExtensionConfig* sub = (struct envoy_config_core_v3_TypedExtensionConfig*)_upb_msg_new(&envoy_config_core_v3_TypedExtensionConfig_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(92, 184), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE struct envoy_config_core_v3_ConfigSource** envoy_config_bootstrap_v3_Bootstrap_mutable_config_sources(envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) {
+ return (struct envoy_config_core_v3_ConfigSource**)_upb_array_mutable_accessor(msg, UPB_SIZE(96, 192), len);
+}
+UPB_INLINE struct envoy_config_core_v3_ConfigSource** envoy_config_bootstrap_v3_Bootstrap_resize_config_sources(envoy_config_bootstrap_v3_Bootstrap *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_config_core_v3_ConfigSource**)_upb_array_resize_accessor2(msg, UPB_SIZE(96, 192), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_Bootstrap_add_config_sources(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_ConfigSource* sub = (struct envoy_config_core_v3_ConfigSource*)_upb_msg_new(&envoy_config_core_v3_ConfigSource_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(96, 192), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_default_config_source(envoy_config_bootstrap_v3_Bootstrap *msg, struct envoy_config_core_v3_ConfigSource* value) {
+ _upb_sethas(msg, 14);
+ *UPB_PTR_AT(msg, UPB_SIZE(80, 160), struct envoy_config_core_v3_ConfigSource*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_Bootstrap_mutable_default_config_source(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_ConfigSource* sub = (struct envoy_config_core_v3_ConfigSource*)envoy_config_bootstrap_v3_Bootstrap_default_config_source(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_ConfigSource*)_upb_msg_new(&envoy_config_core_v3_ConfigSource_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_default_config_source(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_default_socket_interface(envoy_config_bootstrap_v3_Bootstrap *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 40), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_certificate_provider_instances_clear(envoy_config_bootstrap_v3_Bootstrap *msg) { _upb_msg_map_clear(msg, UPB_SIZE(100, 200)); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_certificate_provider_instances_set(envoy_config_bootstrap_v3_Bootstrap *msg, upb_strview key, struct envoy_config_core_v3_TypedExtensionConfig* val, upb_arena *a) { return _upb_msg_map_set(msg, UPB_SIZE(100, 200), &key, 0, &val, sizeof(val), a); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_certificate_provider_instances_delete(envoy_config_bootstrap_v3_Bootstrap *msg, upb_strview key) { return _upb_msg_map_delete(msg, UPB_SIZE(100, 200), &key, 0); }
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry* envoy_config_bootstrap_v3_Bootstrap_certificate_provider_instances_nextmutable(envoy_config_bootstrap_v3_Bootstrap *msg, size_t* iter) { return (envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry*)_upb_msg_map_next(msg, UPB_SIZE(100, 200), iter); }
+UPB_INLINE upb_strview* envoy_config_bootstrap_v3_Bootstrap_mutable_node_context_params(envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) {
+ return (upb_strview*)_upb_array_mutable_accessor(msg, UPB_SIZE(104, 208), len);
+}
+UPB_INLINE upb_strview* envoy_config_bootstrap_v3_Bootstrap_resize_node_context_params(envoy_config_bootstrap_v3_Bootstrap *msg, size_t len, upb_arena *arena) {
+ return (upb_strview*)_upb_array_resize_accessor2(msg, UPB_SIZE(104, 208), len, UPB_SIZE(3, 4), arena);
+}
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_add_node_context_params(envoy_config_bootstrap_v3_Bootstrap *msg, upb_strview val, upb_arena *arena) {
+ return _upb_array_append_accessor2(msg, UPB_SIZE(104, 208), UPB_SIZE(3, 4), &val,
+ arena);
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_watchdogs(envoy_config_bootstrap_v3_Bootstrap *msg, envoy_config_bootstrap_v3_Watchdogs* value) {
+ _upb_sethas(msg, 15);
+ *UPB_PTR_AT(msg, UPB_SIZE(84, 168), envoy_config_bootstrap_v3_Watchdogs*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Watchdogs* envoy_config_bootstrap_v3_Bootstrap_mutable_watchdogs(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Watchdogs* sub = (struct envoy_config_bootstrap_v3_Watchdogs*)envoy_config_bootstrap_v3_Bootstrap_watchdogs(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_Watchdogs*)_upb_msg_new(&envoy_config_bootstrap_v3_Watchdogs_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_set_watchdogs(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE envoy_config_bootstrap_v3_FatalAction** envoy_config_bootstrap_v3_Bootstrap_mutable_fatal_actions(envoy_config_bootstrap_v3_Bootstrap *msg, size_t *len) {
+ return (envoy_config_bootstrap_v3_FatalAction**)_upb_array_mutable_accessor(msg, UPB_SIZE(108, 216), len);
+}
+UPB_INLINE envoy_config_bootstrap_v3_FatalAction** envoy_config_bootstrap_v3_Bootstrap_resize_fatal_actions(envoy_config_bootstrap_v3_Bootstrap *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_FatalAction**)_upb_array_resize_accessor2(msg, UPB_SIZE(108, 216), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_FatalAction* envoy_config_bootstrap_v3_Bootstrap_add_fatal_actions(envoy_config_bootstrap_v3_Bootstrap *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_FatalAction* sub = (struct envoy_config_bootstrap_v3_FatalAction*)_upb_msg_new(&envoy_config_bootstrap_v3_FatalAction_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(108, 216), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_set_stats_flush_on_admin(envoy_config_bootstrap_v3_Bootstrap *msg, bool value) {
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(112, 224), value, UPB_SIZE(116, 228), 29);
+}
+
+/* envoy.config.bootstrap.v3.Bootstrap.StaticResources */
+
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_StaticResources *envoy_config_bootstrap_v3_Bootstrap_StaticResources_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Bootstrap_StaticResources *)_upb_msg_new(&envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_StaticResources *envoy_config_bootstrap_v3_Bootstrap_StaticResources_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_Bootstrap_StaticResources *ret = envoy_config_bootstrap_v3_Bootstrap_StaticResources_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_StaticResources *envoy_config_bootstrap_v3_Bootstrap_StaticResources_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_Bootstrap_StaticResources *ret = envoy_config_bootstrap_v3_Bootstrap_StaticResources_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_Bootstrap_StaticResources_serialize(const envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_StaticResources_has_listeners(const envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const struct envoy_config_listener_v3_Listener* const* envoy_config_bootstrap_v3_Bootstrap_StaticResources_listeners(const envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t *len) { return (const struct envoy_config_listener_v3_Listener* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_StaticResources_has_clusters(const envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(4, 8)); }
+UPB_INLINE const struct envoy_config_cluster_v3_Cluster* const* envoy_config_bootstrap_v3_Bootstrap_StaticResources_clusters(const envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t *len) { return (const struct envoy_config_cluster_v3_Cluster* const*)_upb_array_accessor(msg, UPB_SIZE(4, 8), len); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_StaticResources_has_secrets(const envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const struct envoy_extensions_transport_sockets_tls_v3_Secret* const* envoy_config_bootstrap_v3_Bootstrap_StaticResources_secrets(const envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t *len) { return (const struct envoy_extensions_transport_sockets_tls_v3_Secret* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+
+UPB_INLINE struct envoy_config_listener_v3_Listener** envoy_config_bootstrap_v3_Bootstrap_StaticResources_mutable_listeners(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t *len) {
+ return (struct envoy_config_listener_v3_Listener**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE struct envoy_config_listener_v3_Listener** envoy_config_bootstrap_v3_Bootstrap_StaticResources_resize_listeners(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_config_listener_v3_Listener**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_listener_v3_Listener* envoy_config_bootstrap_v3_Bootstrap_StaticResources_add_listeners(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, upb_arena *arena) {
+ struct envoy_config_listener_v3_Listener* sub = (struct envoy_config_listener_v3_Listener*)_upb_msg_new(&envoy_config_listener_v3_Listener_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE struct envoy_config_cluster_v3_Cluster** envoy_config_bootstrap_v3_Bootstrap_StaticResources_mutable_clusters(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t *len) {
+ return (struct envoy_config_cluster_v3_Cluster**)_upb_array_mutable_accessor(msg, UPB_SIZE(4, 8), len);
+}
+UPB_INLINE struct envoy_config_cluster_v3_Cluster** envoy_config_bootstrap_v3_Bootstrap_StaticResources_resize_clusters(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_config_cluster_v3_Cluster**)_upb_array_resize_accessor2(msg, UPB_SIZE(4, 8), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_cluster_v3_Cluster* envoy_config_bootstrap_v3_Bootstrap_StaticResources_add_clusters(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, upb_arena *arena) {
+ struct envoy_config_cluster_v3_Cluster* sub = (struct envoy_config_cluster_v3_Cluster*)_upb_msg_new(&envoy_config_cluster_v3_Cluster_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(4, 8), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE struct envoy_extensions_transport_sockets_tls_v3_Secret** envoy_config_bootstrap_v3_Bootstrap_StaticResources_mutable_secrets(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t *len) {
+ return (struct envoy_extensions_transport_sockets_tls_v3_Secret**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE struct envoy_extensions_transport_sockets_tls_v3_Secret** envoy_config_bootstrap_v3_Bootstrap_StaticResources_resize_secrets(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_extensions_transport_sockets_tls_v3_Secret**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_extensions_transport_sockets_tls_v3_Secret* envoy_config_bootstrap_v3_Bootstrap_StaticResources_add_secrets(envoy_config_bootstrap_v3_Bootstrap_StaticResources *msg, upb_arena *arena) {
+ struct envoy_extensions_transport_sockets_tls_v3_Secret* sub = (struct envoy_extensions_transport_sockets_tls_v3_Secret*)_upb_msg_new(&envoy_extensions_transport_sockets_tls_v3_Secret_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.Bootstrap.DynamicResources */
+
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_DynamicResources *envoy_config_bootstrap_v3_Bootstrap_DynamicResources_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Bootstrap_DynamicResources *)_upb_msg_new(&envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_DynamicResources *envoy_config_bootstrap_v3_Bootstrap_DynamicResources_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_Bootstrap_DynamicResources *ret = envoy_config_bootstrap_v3_Bootstrap_DynamicResources_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Bootstrap_DynamicResources *envoy_config_bootstrap_v3_Bootstrap_DynamicResources_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_Bootstrap_DynamicResources *ret = envoy_config_bootstrap_v3_Bootstrap_DynamicResources_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_Bootstrap_DynamicResources_serialize(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_DynamicResources_has_lds_config(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_Bootstrap_DynamicResources_lds_config(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 40), const struct envoy_config_core_v3_ConfigSource*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_DynamicResources_has_cds_config(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_Bootstrap_DynamicResources_cds_config(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 48), const struct envoy_config_core_v3_ConfigSource*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_DynamicResources_has_ads_config(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const struct envoy_config_core_v3_ApiConfigSource* envoy_config_bootstrap_v3_Bootstrap_DynamicResources_ads_config(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 56), const struct envoy_config_core_v3_ApiConfigSource*); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Bootstrap_DynamicResources_lds_resources_locator(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Bootstrap_DynamicResources_cds_resources_locator(const envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_DynamicResources_set_lds_config(envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, struct envoy_config_core_v3_ConfigSource* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 40), struct envoy_config_core_v3_ConfigSource*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_Bootstrap_DynamicResources_mutable_lds_config(envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_ConfigSource* sub = (struct envoy_config_core_v3_ConfigSource*)envoy_config_bootstrap_v3_Bootstrap_DynamicResources_lds_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_ConfigSource*)_upb_msg_new(&envoy_config_core_v3_ConfigSource_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_DynamicResources_set_lds_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_DynamicResources_set_cds_config(envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, struct envoy_config_core_v3_ConfigSource* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 48), struct envoy_config_core_v3_ConfigSource*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_Bootstrap_DynamicResources_mutable_cds_config(envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_ConfigSource* sub = (struct envoy_config_core_v3_ConfigSource*)envoy_config_bootstrap_v3_Bootstrap_DynamicResources_cds_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_ConfigSource*)_upb_msg_new(&envoy_config_core_v3_ConfigSource_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_DynamicResources_set_cds_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_DynamicResources_set_ads_config(envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, struct envoy_config_core_v3_ApiConfigSource* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(28, 56), struct envoy_config_core_v3_ApiConfigSource*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_ApiConfigSource* envoy_config_bootstrap_v3_Bootstrap_DynamicResources_mutable_ads_config(envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_ApiConfigSource* sub = (struct envoy_config_core_v3_ApiConfigSource*)envoy_config_bootstrap_v3_Bootstrap_DynamicResources_ads_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_ApiConfigSource*)_upb_msg_new(&envoy_config_core_v3_ApiConfigSource_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Bootstrap_DynamicResources_set_ads_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_DynamicResources_set_lds_resources_locator(envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_DynamicResources_set_cds_resources_locator(envoy_config_bootstrap_v3_Bootstrap_DynamicResources *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview) = value;
+}
+
+/* envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry */
+
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_key(const envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry *msg) {
+ upb_strview ret;
+ _upb_msg_map_key(msg, &ret, 0);
+ return ret;
+}
+UPB_INLINE bool envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_has_value(const envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const struct envoy_config_core_v3_TypedExtensionConfig* envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_value(const envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry *msg) {
+ struct envoy_config_core_v3_TypedExtensionConfig* ret;
+ _upb_msg_map_value(msg, &ret, sizeof(ret));
+ return ret;
+}
+
+UPB_INLINE void envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_set_value(envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry *msg, struct envoy_config_core_v3_TypedExtensionConfig* value) {
+ _upb_msg_map_set_value(msg, &value, sizeof(struct envoy_config_core_v3_TypedExtensionConfig*));
+}
+
+/* envoy.config.bootstrap.v3.Admin */
+
+UPB_INLINE envoy_config_bootstrap_v3_Admin *envoy_config_bootstrap_v3_Admin_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Admin *)_upb_msg_new(&envoy_config_bootstrap_v3_Admin_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Admin *envoy_config_bootstrap_v3_Admin_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_Admin *ret = envoy_config_bootstrap_v3_Admin_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Admin_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Admin *envoy_config_bootstrap_v3_Admin_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_Admin *ret = envoy_config_bootstrap_v3_Admin_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Admin_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_Admin_serialize(const envoy_config_bootstrap_v3_Admin *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_Admin_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Admin_access_log_path(const envoy_config_bootstrap_v3_Admin *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Admin_profile_path(const envoy_config_bootstrap_v3_Admin *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Admin_has_address(const envoy_config_bootstrap_v3_Admin *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_Address* envoy_config_bootstrap_v3_Admin_address(const envoy_config_bootstrap_v3_Admin *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 40), const struct envoy_config_core_v3_Address*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Admin_has_socket_options(const envoy_config_bootstrap_v3_Admin *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(24, 48)); }
+UPB_INLINE const struct envoy_config_core_v3_SocketOption* const* envoy_config_bootstrap_v3_Admin_socket_options(const envoy_config_bootstrap_v3_Admin *msg, size_t *len) { return (const struct envoy_config_core_v3_SocketOption* const*)_upb_array_accessor(msg, UPB_SIZE(24, 48), len); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_Admin_set_access_log_path(envoy_config_bootstrap_v3_Admin *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Admin_set_profile_path(envoy_config_bootstrap_v3_Admin *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Admin_set_address(envoy_config_bootstrap_v3_Admin *msg, struct envoy_config_core_v3_Address* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 40), struct envoy_config_core_v3_Address*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_Address* envoy_config_bootstrap_v3_Admin_mutable_address(envoy_config_bootstrap_v3_Admin *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_Address* sub = (struct envoy_config_core_v3_Address*)envoy_config_bootstrap_v3_Admin_address(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Address*)_upb_msg_new(&envoy_config_core_v3_Address_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Admin_set_address(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE struct envoy_config_core_v3_SocketOption** envoy_config_bootstrap_v3_Admin_mutable_socket_options(envoy_config_bootstrap_v3_Admin *msg, size_t *len) {
+ return (struct envoy_config_core_v3_SocketOption**)_upb_array_mutable_accessor(msg, UPB_SIZE(24, 48), len);
+}
+UPB_INLINE struct envoy_config_core_v3_SocketOption** envoy_config_bootstrap_v3_Admin_resize_socket_options(envoy_config_bootstrap_v3_Admin *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_config_core_v3_SocketOption**)_upb_array_resize_accessor2(msg, UPB_SIZE(24, 48), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_core_v3_SocketOption* envoy_config_bootstrap_v3_Admin_add_socket_options(envoy_config_bootstrap_v3_Admin *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_SocketOption* sub = (struct envoy_config_core_v3_SocketOption*)_upb_msg_new(&envoy_config_core_v3_SocketOption_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(24, 48), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.ClusterManager */
+
+UPB_INLINE envoy_config_bootstrap_v3_ClusterManager *envoy_config_bootstrap_v3_ClusterManager_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_ClusterManager *)_upb_msg_new(&envoy_config_bootstrap_v3_ClusterManager_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_ClusterManager *envoy_config_bootstrap_v3_ClusterManager_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_ClusterManager *ret = envoy_config_bootstrap_v3_ClusterManager_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_ClusterManager *envoy_config_bootstrap_v3_ClusterManager_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_ClusterManager *ret = envoy_config_bootstrap_v3_ClusterManager_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_ClusterManager_serialize(const envoy_config_bootstrap_v3_ClusterManager *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_ClusterManager_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_ClusterManager_local_cluster_name(const envoy_config_bootstrap_v3_ClusterManager *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_ClusterManager_has_outlier_detection(const envoy_config_bootstrap_v3_ClusterManager *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection* envoy_config_bootstrap_v3_ClusterManager_outlier_detection(const envoy_config_bootstrap_v3_ClusterManager *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_ClusterManager_has_upstream_bind_config(const envoy_config_bootstrap_v3_ClusterManager *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct envoy_config_core_v3_BindConfig* envoy_config_bootstrap_v3_ClusterManager_upstream_bind_config(const envoy_config_bootstrap_v3_ClusterManager *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 32), const struct envoy_config_core_v3_BindConfig*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_ClusterManager_has_load_stats_config(const envoy_config_bootstrap_v3_ClusterManager *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const struct envoy_config_core_v3_ApiConfigSource* envoy_config_bootstrap_v3_ClusterManager_load_stats_config(const envoy_config_bootstrap_v3_ClusterManager *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 40), const struct envoy_config_core_v3_ApiConfigSource*); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_ClusterManager_set_local_cluster_name(envoy_config_bootstrap_v3_ClusterManager *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_ClusterManager_set_outlier_detection(envoy_config_bootstrap_v3_ClusterManager *msg, envoy_config_bootstrap_v3_ClusterManager_OutlierDetection* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), envoy_config_bootstrap_v3_ClusterManager_OutlierDetection*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_ClusterManager_OutlierDetection* envoy_config_bootstrap_v3_ClusterManager_mutable_outlier_detection(envoy_config_bootstrap_v3_ClusterManager *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_ClusterManager_OutlierDetection* sub = (struct envoy_config_bootstrap_v3_ClusterManager_OutlierDetection*)envoy_config_bootstrap_v3_ClusterManager_outlier_detection(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_ClusterManager_OutlierDetection*)_upb_msg_new(&envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_ClusterManager_set_outlier_detection(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_ClusterManager_set_upstream_bind_config(envoy_config_bootstrap_v3_ClusterManager *msg, struct envoy_config_core_v3_BindConfig* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 32), struct envoy_config_core_v3_BindConfig*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_BindConfig* envoy_config_bootstrap_v3_ClusterManager_mutable_upstream_bind_config(envoy_config_bootstrap_v3_ClusterManager *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_BindConfig* sub = (struct envoy_config_core_v3_BindConfig*)envoy_config_bootstrap_v3_ClusterManager_upstream_bind_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_BindConfig*)_upb_msg_new(&envoy_config_core_v3_BindConfig_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_ClusterManager_set_upstream_bind_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_ClusterManager_set_load_stats_config(envoy_config_bootstrap_v3_ClusterManager *msg, struct envoy_config_core_v3_ApiConfigSource* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 40), struct envoy_config_core_v3_ApiConfigSource*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_ApiConfigSource* envoy_config_bootstrap_v3_ClusterManager_mutable_load_stats_config(envoy_config_bootstrap_v3_ClusterManager *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_ApiConfigSource* sub = (struct envoy_config_core_v3_ApiConfigSource*)envoy_config_bootstrap_v3_ClusterManager_load_stats_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_ApiConfigSource*)_upb_msg_new(&envoy_config_core_v3_ApiConfigSource_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_ClusterManager_set_load_stats_config(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.ClusterManager.OutlierDetection */
+
+UPB_INLINE envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *)_upb_msg_new(&envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *ret = envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *ret = envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_serialize(const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_event_log_path(const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_has_event_service(const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_EventServiceConfig* envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_event_service(const envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const struct envoy_config_core_v3_EventServiceConfig*); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_set_event_log_path(envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_set_event_service(envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *msg, struct envoy_config_core_v3_EventServiceConfig* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), struct envoy_config_core_v3_EventServiceConfig*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_EventServiceConfig* envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_mutable_event_service(envoy_config_bootstrap_v3_ClusterManager_OutlierDetection *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_EventServiceConfig* sub = (struct envoy_config_core_v3_EventServiceConfig*)envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_event_service(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_EventServiceConfig*)_upb_msg_new(&envoy_config_core_v3_EventServiceConfig_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_set_event_service(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.Watchdogs */
+
+UPB_INLINE envoy_config_bootstrap_v3_Watchdogs *envoy_config_bootstrap_v3_Watchdogs_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Watchdogs *)_upb_msg_new(&envoy_config_bootstrap_v3_Watchdogs_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Watchdogs *envoy_config_bootstrap_v3_Watchdogs_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_Watchdogs *ret = envoy_config_bootstrap_v3_Watchdogs_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdogs_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Watchdogs *envoy_config_bootstrap_v3_Watchdogs_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_Watchdogs *ret = envoy_config_bootstrap_v3_Watchdogs_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdogs_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_Watchdogs_serialize(const envoy_config_bootstrap_v3_Watchdogs *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_Watchdogs_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdogs_has_main_thread_watchdog(const envoy_config_bootstrap_v3_Watchdogs *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const envoy_config_bootstrap_v3_Watchdog* envoy_config_bootstrap_v3_Watchdogs_main_thread_watchdog(const envoy_config_bootstrap_v3_Watchdogs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const envoy_config_bootstrap_v3_Watchdog*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdogs_has_worker_watchdog(const envoy_config_bootstrap_v3_Watchdogs *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const envoy_config_bootstrap_v3_Watchdog* envoy_config_bootstrap_v3_Watchdogs_worker_watchdog(const envoy_config_bootstrap_v3_Watchdogs *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 16), const envoy_config_bootstrap_v3_Watchdog*); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdogs_set_main_thread_watchdog(envoy_config_bootstrap_v3_Watchdogs *msg, envoy_config_bootstrap_v3_Watchdog* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), envoy_config_bootstrap_v3_Watchdog*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Watchdog* envoy_config_bootstrap_v3_Watchdogs_mutable_main_thread_watchdog(envoy_config_bootstrap_v3_Watchdogs *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Watchdog* sub = (struct envoy_config_bootstrap_v3_Watchdog*)envoy_config_bootstrap_v3_Watchdogs_main_thread_watchdog(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_Watchdog*)_upb_msg_new(&envoy_config_bootstrap_v3_Watchdog_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdogs_set_main_thread_watchdog(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdogs_set_worker_watchdog(envoy_config_bootstrap_v3_Watchdogs *msg, envoy_config_bootstrap_v3_Watchdog* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 16), envoy_config_bootstrap_v3_Watchdog*) = value;
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Watchdog* envoy_config_bootstrap_v3_Watchdogs_mutable_worker_watchdog(envoy_config_bootstrap_v3_Watchdogs *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Watchdog* sub = (struct envoy_config_bootstrap_v3_Watchdog*)envoy_config_bootstrap_v3_Watchdogs_worker_watchdog(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_Watchdog*)_upb_msg_new(&envoy_config_bootstrap_v3_Watchdog_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdogs_set_worker_watchdog(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.Watchdog */
+
+UPB_INLINE envoy_config_bootstrap_v3_Watchdog *envoy_config_bootstrap_v3_Watchdog_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Watchdog *)_upb_msg_new(&envoy_config_bootstrap_v3_Watchdog_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Watchdog *envoy_config_bootstrap_v3_Watchdog_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_Watchdog *ret = envoy_config_bootstrap_v3_Watchdog_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Watchdog *envoy_config_bootstrap_v3_Watchdog_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_Watchdog *ret = envoy_config_bootstrap_v3_Watchdog_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_Watchdog_serialize(const envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_Watchdog_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdog_has_miss_timeout(const envoy_config_bootstrap_v3_Watchdog *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_miss_timeout(const envoy_config_bootstrap_v3_Watchdog *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct google_protobuf_Duration*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdog_has_megamiss_timeout(const envoy_config_bootstrap_v3_Watchdog *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_megamiss_timeout(const envoy_config_bootstrap_v3_Watchdog *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 16), const struct google_protobuf_Duration*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdog_has_kill_timeout(const envoy_config_bootstrap_v3_Watchdog *msg) { return _upb_hasbit(msg, 3); }
+UPB_INLINE const struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_kill_timeout(const envoy_config_bootstrap_v3_Watchdog *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const struct google_protobuf_Duration*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdog_has_multikill_timeout(const envoy_config_bootstrap_v3_Watchdog *msg) { return _upb_hasbit(msg, 4); }
+UPB_INLINE const struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_multikill_timeout(const envoy_config_bootstrap_v3_Watchdog *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(16, 32), const struct google_protobuf_Duration*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdog_has_multikill_threshold(const envoy_config_bootstrap_v3_Watchdog *msg) { return _upb_hasbit(msg, 5); }
+UPB_INLINE const struct envoy_type_v3_Percent* envoy_config_bootstrap_v3_Watchdog_multikill_threshold(const envoy_config_bootstrap_v3_Watchdog *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 40), const struct envoy_type_v3_Percent*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdog_has_max_kill_timeout_jitter(const envoy_config_bootstrap_v3_Watchdog *msg) { return _upb_hasbit(msg, 6); }
+UPB_INLINE const struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_max_kill_timeout_jitter(const envoy_config_bootstrap_v3_Watchdog *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(24, 48), const struct google_protobuf_Duration*); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdog_has_actions(const envoy_config_bootstrap_v3_Watchdog *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(28, 56)); }
+UPB_INLINE const envoy_config_bootstrap_v3_Watchdog_WatchdogAction* const* envoy_config_bootstrap_v3_Watchdog_actions(const envoy_config_bootstrap_v3_Watchdog *msg, size_t *len) { return (const envoy_config_bootstrap_v3_Watchdog_WatchdogAction* const*)_upb_array_accessor(msg, UPB_SIZE(28, 56), len); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdog_set_miss_timeout(envoy_config_bootstrap_v3_Watchdog *msg, struct google_protobuf_Duration* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct google_protobuf_Duration*) = value;
+}
+UPB_INLINE struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_mutable_miss_timeout(envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena) {
+ struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)envoy_config_bootstrap_v3_Watchdog_miss_timeout(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdog_set_miss_timeout(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdog_set_megamiss_timeout(envoy_config_bootstrap_v3_Watchdog *msg, struct google_protobuf_Duration* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 16), struct google_protobuf_Duration*) = value;
+}
+UPB_INLINE struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_mutable_megamiss_timeout(envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena) {
+ struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)envoy_config_bootstrap_v3_Watchdog_megamiss_timeout(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdog_set_megamiss_timeout(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdog_set_kill_timeout(envoy_config_bootstrap_v3_Watchdog *msg, struct google_protobuf_Duration* value) {
+ _upb_sethas(msg, 3);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), struct google_protobuf_Duration*) = value;
+}
+UPB_INLINE struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_mutable_kill_timeout(envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena) {
+ struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)envoy_config_bootstrap_v3_Watchdog_kill_timeout(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdog_set_kill_timeout(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdog_set_multikill_timeout(envoy_config_bootstrap_v3_Watchdog *msg, struct google_protobuf_Duration* value) {
+ _upb_sethas(msg, 4);
+ *UPB_PTR_AT(msg, UPB_SIZE(16, 32), struct google_protobuf_Duration*) = value;
+}
+UPB_INLINE struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_mutable_multikill_timeout(envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena) {
+ struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)envoy_config_bootstrap_v3_Watchdog_multikill_timeout(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdog_set_multikill_timeout(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdog_set_multikill_threshold(envoy_config_bootstrap_v3_Watchdog *msg, struct envoy_type_v3_Percent* value) {
+ _upb_sethas(msg, 5);
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 40), struct envoy_type_v3_Percent*) = value;
+}
+UPB_INLINE struct envoy_type_v3_Percent* envoy_config_bootstrap_v3_Watchdog_mutable_multikill_threshold(envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena) {
+ struct envoy_type_v3_Percent* sub = (struct envoy_type_v3_Percent*)envoy_config_bootstrap_v3_Watchdog_multikill_threshold(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_type_v3_Percent*)_upb_msg_new(&envoy_type_v3_Percent_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdog_set_multikill_threshold(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdog_set_max_kill_timeout_jitter(envoy_config_bootstrap_v3_Watchdog *msg, struct google_protobuf_Duration* value) {
+ _upb_sethas(msg, 6);
+ *UPB_PTR_AT(msg, UPB_SIZE(24, 48), struct google_protobuf_Duration*) = value;
+}
+UPB_INLINE struct google_protobuf_Duration* envoy_config_bootstrap_v3_Watchdog_mutable_max_kill_timeout_jitter(envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena) {
+ struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)envoy_config_bootstrap_v3_Watchdog_max_kill_timeout_jitter(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdog_set_max_kill_timeout_jitter(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Watchdog_WatchdogAction** envoy_config_bootstrap_v3_Watchdog_mutable_actions(envoy_config_bootstrap_v3_Watchdog *msg, size_t *len) {
+ return (envoy_config_bootstrap_v3_Watchdog_WatchdogAction**)_upb_array_mutable_accessor(msg, UPB_SIZE(28, 56), len);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Watchdog_WatchdogAction** envoy_config_bootstrap_v3_Watchdog_resize_actions(envoy_config_bootstrap_v3_Watchdog *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Watchdog_WatchdogAction**)_upb_array_resize_accessor2(msg, UPB_SIZE(28, 56), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_Watchdog_WatchdogAction* envoy_config_bootstrap_v3_Watchdog_add_actions(envoy_config_bootstrap_v3_Watchdog *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_Watchdog_WatchdogAction* sub = (struct envoy_config_bootstrap_v3_Watchdog_WatchdogAction*)_upb_msg_new(&envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(28, 56), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.Watchdog.WatchdogAction */
+
+UPB_INLINE envoy_config_bootstrap_v3_Watchdog_WatchdogAction *envoy_config_bootstrap_v3_Watchdog_WatchdogAction_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Watchdog_WatchdogAction *)_upb_msg_new(&envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Watchdog_WatchdogAction *envoy_config_bootstrap_v3_Watchdog_WatchdogAction_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_Watchdog_WatchdogAction *ret = envoy_config_bootstrap_v3_Watchdog_WatchdogAction_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Watchdog_WatchdogAction *envoy_config_bootstrap_v3_Watchdog_WatchdogAction_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_Watchdog_WatchdogAction *ret = envoy_config_bootstrap_v3_Watchdog_WatchdogAction_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_Watchdog_WatchdogAction_serialize(const envoy_config_bootstrap_v3_Watchdog_WatchdogAction *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_bootstrap_v3_Watchdog_WatchdogAction_has_config(const envoy_config_bootstrap_v3_Watchdog_WatchdogAction *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_TypedExtensionConfig* envoy_config_bootstrap_v3_Watchdog_WatchdogAction_config(const envoy_config_bootstrap_v3_Watchdog_WatchdogAction *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), const struct envoy_config_core_v3_TypedExtensionConfig*); }
+UPB_INLINE int32_t envoy_config_bootstrap_v3_Watchdog_WatchdogAction_event(const envoy_config_bootstrap_v3_Watchdog_WatchdogAction *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdog_WatchdogAction_set_config(envoy_config_bootstrap_v3_Watchdog_WatchdogAction *msg, struct envoy_config_core_v3_TypedExtensionConfig* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 8), struct envoy_config_core_v3_TypedExtensionConfig*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_TypedExtensionConfig* envoy_config_bootstrap_v3_Watchdog_WatchdogAction_mutable_config(envoy_config_bootstrap_v3_Watchdog_WatchdogAction *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_TypedExtensionConfig* sub = (struct envoy_config_core_v3_TypedExtensionConfig*)envoy_config_bootstrap_v3_Watchdog_WatchdogAction_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_TypedExtensionConfig*)_upb_msg_new(&envoy_config_core_v3_TypedExtensionConfig_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Watchdog_WatchdogAction_set_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Watchdog_WatchdogAction_set_event(envoy_config_bootstrap_v3_Watchdog_WatchdogAction *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t) = value;
+}
+
+/* envoy.config.bootstrap.v3.FatalAction */
+
+UPB_INLINE envoy_config_bootstrap_v3_FatalAction *envoy_config_bootstrap_v3_FatalAction_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_FatalAction *)_upb_msg_new(&envoy_config_bootstrap_v3_FatalAction_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_FatalAction *envoy_config_bootstrap_v3_FatalAction_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_FatalAction *ret = envoy_config_bootstrap_v3_FatalAction_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_FatalAction_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_FatalAction *envoy_config_bootstrap_v3_FatalAction_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_FatalAction *ret = envoy_config_bootstrap_v3_FatalAction_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_FatalAction_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_FatalAction_serialize(const envoy_config_bootstrap_v3_FatalAction *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_FatalAction_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_bootstrap_v3_FatalAction_has_config(const envoy_config_bootstrap_v3_FatalAction *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_TypedExtensionConfig* envoy_config_bootstrap_v3_FatalAction_config(const envoy_config_bootstrap_v3_FatalAction *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct envoy_config_core_v3_TypedExtensionConfig*); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_FatalAction_set_config(envoy_config_bootstrap_v3_FatalAction *msg, struct envoy_config_core_v3_TypedExtensionConfig* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct envoy_config_core_v3_TypedExtensionConfig*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_TypedExtensionConfig* envoy_config_bootstrap_v3_FatalAction_mutable_config(envoy_config_bootstrap_v3_FatalAction *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_TypedExtensionConfig* sub = (struct envoy_config_core_v3_TypedExtensionConfig*)envoy_config_bootstrap_v3_FatalAction_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_TypedExtensionConfig*)_upb_msg_new(&envoy_config_core_v3_TypedExtensionConfig_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_FatalAction_set_config(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.Runtime */
+
+UPB_INLINE envoy_config_bootstrap_v3_Runtime *envoy_config_bootstrap_v3_Runtime_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_Runtime *)_upb_msg_new(&envoy_config_bootstrap_v3_Runtime_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_Runtime *envoy_config_bootstrap_v3_Runtime_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_Runtime *ret = envoy_config_bootstrap_v3_Runtime_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Runtime_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_Runtime *envoy_config_bootstrap_v3_Runtime_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_Runtime *ret = envoy_config_bootstrap_v3_Runtime_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_Runtime_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_Runtime_serialize(const envoy_config_bootstrap_v3_Runtime *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_Runtime_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Runtime_symlink_root(const envoy_config_bootstrap_v3_Runtime *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Runtime_subdirectory(const envoy_config_bootstrap_v3_Runtime *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_Runtime_override_subdirectory(const envoy_config_bootstrap_v3_Runtime *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(20, 40), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_Runtime_has_base(const envoy_config_bootstrap_v3_Runtime *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Struct* envoy_config_bootstrap_v3_Runtime_base(const envoy_config_bootstrap_v3_Runtime *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(28, 56), const struct google_protobuf_Struct*); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_Runtime_set_symlink_root(envoy_config_bootstrap_v3_Runtime *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Runtime_set_subdirectory(envoy_config_bootstrap_v3_Runtime *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Runtime_set_override_subdirectory(envoy_config_bootstrap_v3_Runtime *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(20, 40), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_Runtime_set_base(envoy_config_bootstrap_v3_Runtime *msg, struct google_protobuf_Struct* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(28, 56), struct google_protobuf_Struct*) = value;
+}
+UPB_INLINE struct google_protobuf_Struct* envoy_config_bootstrap_v3_Runtime_mutable_base(envoy_config_bootstrap_v3_Runtime *msg, upb_arena *arena) {
+ struct google_protobuf_Struct* sub = (struct google_protobuf_Struct*)envoy_config_bootstrap_v3_Runtime_base(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Struct*)_upb_msg_new(&google_protobuf_Struct_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_Runtime_set_base(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.RuntimeLayer */
+
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer *envoy_config_bootstrap_v3_RuntimeLayer_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_RuntimeLayer *)_upb_msg_new(&envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer *envoy_config_bootstrap_v3_RuntimeLayer_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_RuntimeLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer *envoy_config_bootstrap_v3_RuntimeLayer_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_RuntimeLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_RuntimeLayer_serialize(const envoy_config_bootstrap_v3_RuntimeLayer *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_static_layer = 2,
+ envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_disk_layer = 3,
+ envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_admin_layer = 4,
+ envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_rtds_layer = 5,
+ envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_NOT_SET = 0
+} envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_oneofcases;
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_oneofcases envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_case(const envoy_config_bootstrap_v3_RuntimeLayer* msg) { return (envoy_config_bootstrap_v3_RuntimeLayer_layer_specifier_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(12, 24), int32_t); }
+
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_RuntimeLayer_name(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_RuntimeLayer_has_static_layer(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 24)) == 2; }
+UPB_INLINE const struct google_protobuf_Struct* envoy_config_bootstrap_v3_RuntimeLayer_static_layer(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return UPB_READ_ONEOF(msg, const struct google_protobuf_Struct*, UPB_SIZE(8, 16), UPB_SIZE(12, 24), 2, NULL); }
+UPB_INLINE bool envoy_config_bootstrap_v3_RuntimeLayer_has_disk_layer(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 24)) == 3; }
+UPB_INLINE const envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer* envoy_config_bootstrap_v3_RuntimeLayer_disk_layer(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return UPB_READ_ONEOF(msg, const envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer*, UPB_SIZE(8, 16), UPB_SIZE(12, 24), 3, NULL); }
+UPB_INLINE bool envoy_config_bootstrap_v3_RuntimeLayer_has_admin_layer(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 24)) == 4; }
+UPB_INLINE const envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer* envoy_config_bootstrap_v3_RuntimeLayer_admin_layer(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return UPB_READ_ONEOF(msg, const envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer*, UPB_SIZE(8, 16), UPB_SIZE(12, 24), 4, NULL); }
+UPB_INLINE bool envoy_config_bootstrap_v3_RuntimeLayer_has_rtds_layer(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 24)) == 5; }
+UPB_INLINE const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer* envoy_config_bootstrap_v3_RuntimeLayer_rtds_layer(const envoy_config_bootstrap_v3_RuntimeLayer *msg) { return UPB_READ_ONEOF(msg, const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer*, UPB_SIZE(8, 16), UPB_SIZE(12, 24), 5, NULL); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_set_name(envoy_config_bootstrap_v3_RuntimeLayer *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_set_static_layer(envoy_config_bootstrap_v3_RuntimeLayer *msg, struct google_protobuf_Struct* value) {
+ UPB_WRITE_ONEOF(msg, struct google_protobuf_Struct*, UPB_SIZE(8, 16), value, UPB_SIZE(12, 24), 2);
+}
+UPB_INLINE struct google_protobuf_Struct* envoy_config_bootstrap_v3_RuntimeLayer_mutable_static_layer(envoy_config_bootstrap_v3_RuntimeLayer *msg, upb_arena *arena) {
+ struct google_protobuf_Struct* sub = (struct google_protobuf_Struct*)envoy_config_bootstrap_v3_RuntimeLayer_static_layer(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Struct*)_upb_msg_new(&google_protobuf_Struct_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_RuntimeLayer_set_static_layer(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_set_disk_layer(envoy_config_bootstrap_v3_RuntimeLayer *msg, envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer* value) {
+ UPB_WRITE_ONEOF(msg, envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer*, UPB_SIZE(8, 16), value, UPB_SIZE(12, 24), 3);
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer* envoy_config_bootstrap_v3_RuntimeLayer_mutable_disk_layer(envoy_config_bootstrap_v3_RuntimeLayer *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer* sub = (struct envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer*)envoy_config_bootstrap_v3_RuntimeLayer_disk_layer(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer*)_upb_msg_new(&envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_RuntimeLayer_set_disk_layer(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_set_admin_layer(envoy_config_bootstrap_v3_RuntimeLayer *msg, envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer* value) {
+ UPB_WRITE_ONEOF(msg, envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer*, UPB_SIZE(8, 16), value, UPB_SIZE(12, 24), 4);
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer* envoy_config_bootstrap_v3_RuntimeLayer_mutable_admin_layer(envoy_config_bootstrap_v3_RuntimeLayer *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer* sub = (struct envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer*)envoy_config_bootstrap_v3_RuntimeLayer_admin_layer(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer*)_upb_msg_new(&envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_RuntimeLayer_set_admin_layer(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_set_rtds_layer(envoy_config_bootstrap_v3_RuntimeLayer *msg, envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer* value) {
+ UPB_WRITE_ONEOF(msg, envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer*, UPB_SIZE(8, 16), value, UPB_SIZE(12, 24), 5);
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer* envoy_config_bootstrap_v3_RuntimeLayer_mutable_rtds_layer(envoy_config_bootstrap_v3_RuntimeLayer *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer* sub = (struct envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer*)envoy_config_bootstrap_v3_RuntimeLayer_rtds_layer(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer*)_upb_msg_new(&envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_RuntimeLayer_set_rtds_layer(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.RuntimeLayer.DiskLayer */
+
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *)_upb_msg_new(&envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_serialize(const envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_symlink_root(const envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_append_service_cluster(const envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), bool); }
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_subdirectory(const envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_set_symlink_root(envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_set_append_service_cluster(envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *msg, bool value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), bool) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_set_subdirectory(envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), upb_strview) = value;
+}
+
+/* envoy.config.bootstrap.v3.RuntimeLayer.AdminLayer */
+
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *)_upb_msg_new(&envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_serialize(const envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit, arena, len);
+}
+
+
+
+/* envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayer */
+
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *)_upb_msg_new(&envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *ret = envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_serialize(const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_name(const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_has_rtds_config(const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_rtds_config(const envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const struct envoy_config_core_v3_ConfigSource*); }
+
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_set_name(envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_set_rtds_config(envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *msg, struct envoy_config_core_v3_ConfigSource* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), struct envoy_config_core_v3_ConfigSource*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_ConfigSource* envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_mutable_rtds_config(envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_ConfigSource* sub = (struct envoy_config_core_v3_ConfigSource*)envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_rtds_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_ConfigSource*)_upb_msg_new(&envoy_config_core_v3_ConfigSource_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_set_rtds_config(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.bootstrap.v3.LayeredRuntime */
+
+UPB_INLINE envoy_config_bootstrap_v3_LayeredRuntime *envoy_config_bootstrap_v3_LayeredRuntime_new(upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_LayeredRuntime *)_upb_msg_new(&envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena);
+}
+UPB_INLINE envoy_config_bootstrap_v3_LayeredRuntime *envoy_config_bootstrap_v3_LayeredRuntime_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_bootstrap_v3_LayeredRuntime *ret = envoy_config_bootstrap_v3_LayeredRuntime_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_bootstrap_v3_LayeredRuntime *envoy_config_bootstrap_v3_LayeredRuntime_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_bootstrap_v3_LayeredRuntime *ret = envoy_config_bootstrap_v3_LayeredRuntime_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_bootstrap_v3_LayeredRuntime_serialize(const envoy_config_bootstrap_v3_LayeredRuntime *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_bootstrap_v3_LayeredRuntime_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_bootstrap_v3_LayeredRuntime_has_layers(const envoy_config_bootstrap_v3_LayeredRuntime *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const envoy_config_bootstrap_v3_RuntimeLayer* const* envoy_config_bootstrap_v3_LayeredRuntime_layers(const envoy_config_bootstrap_v3_LayeredRuntime *msg, size_t *len) { return (const envoy_config_bootstrap_v3_RuntimeLayer* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer** envoy_config_bootstrap_v3_LayeredRuntime_mutable_layers(envoy_config_bootstrap_v3_LayeredRuntime *msg, size_t *len) {
+ return (envoy_config_bootstrap_v3_RuntimeLayer**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE envoy_config_bootstrap_v3_RuntimeLayer** envoy_config_bootstrap_v3_LayeredRuntime_resize_layers(envoy_config_bootstrap_v3_LayeredRuntime *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_bootstrap_v3_RuntimeLayer**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_bootstrap_v3_RuntimeLayer* envoy_config_bootstrap_v3_LayeredRuntime_add_layers(envoy_config_bootstrap_v3_LayeredRuntime *msg, upb_arena *arena) {
+ struct envoy_config_bootstrap_v3_RuntimeLayer* sub = (struct envoy_config_bootstrap_v3_RuntimeLayer*)_upb_msg_new(&envoy_config_bootstrap_v3_RuntimeLayer_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_CONFIG_BOOTSTRAP_V3_BOOTSTRAP_PROTO_UPB_H_ */
diff --git a/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c b/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c
new file mode 100644
index 00000000000..26d00f14ea8
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c
@@ -0,0 +1,144 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/metrics/v3/stats.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include
+#include "upb/msg.h"
+#include "envoy/config/metrics/v3/stats.upb.h"
+#include "envoy/config/core/v3/address.upb.h"
+#include "envoy/type/matcher/v3/string.upb.h"
+#include "google/protobuf/any.upb.h"
+#include "google/protobuf/wrappers.upb.h"
+#include "udpa/annotations/status.upb.h"
+#include "udpa/annotations/versioning.upb.h"
+#include "validate/validate.upb.h"
+
+#include "upb/port_def.inc"
+
+static const upb_msglayout *const envoy_config_metrics_v3_StatsSink_submsgs[1] = {
+ &google_protobuf_Any_msginit,
+};
+
+static const upb_msglayout_field envoy_config_metrics_v3_StatsSink__fields[2] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
+ {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_metrics_v3_StatsSink_msginit = {
+ &envoy_config_metrics_v3_StatsSink_submsgs[0],
+ &envoy_config_metrics_v3_StatsSink__fields[0],
+ UPB_SIZE(16, 32), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_metrics_v3_StatsConfig_submsgs[4] = {
+ &envoy_config_metrics_v3_HistogramBucketSettings_msginit,
+ &envoy_config_metrics_v3_StatsMatcher_msginit,
+ &envoy_config_metrics_v3_TagSpecifier_msginit,
+ &google_protobuf_BoolValue_msginit,
+};
+
+static const upb_msglayout_field envoy_config_metrics_v3_StatsConfig__fields[4] = {
+ {1, UPB_SIZE(12, 24), 0, 2, 11, 3},
+ {2, UPB_SIZE(4, 8), 1, 3, 11, 1},
+ {3, UPB_SIZE(8, 16), 2, 1, 11, 1},
+ {4, UPB_SIZE(16, 32), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_config_metrics_v3_StatsConfig_msginit = {
+ &envoy_config_metrics_v3_StatsConfig_submsgs[0],
+ &envoy_config_metrics_v3_StatsConfig__fields[0],
+ UPB_SIZE(24, 40), 4, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_metrics_v3_StatsMatcher_submsgs[1] = {
+ &envoy_type_matcher_v3_ListStringMatcher_msginit,
+};
+
+static const upb_msglayout_field envoy_config_metrics_v3_StatsMatcher__fields[3] = {
+ {1, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 8, 1},
+ {2, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1},
+ {3, UPB_SIZE(0, 0), UPB_SIZE(-5, -9), 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_metrics_v3_StatsMatcher_msginit = {
+ &envoy_config_metrics_v3_StatsMatcher_submsgs[0],
+ &envoy_config_metrics_v3_StatsMatcher__fields[0],
+ UPB_SIZE(8, 16), 3, false, 255,
+};
+
+static const upb_msglayout_field envoy_config_metrics_v3_TagSpecifier__fields[3] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
+ {2, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, 1},
+ {3, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, 1},
+};
+
+const upb_msglayout envoy_config_metrics_v3_TagSpecifier_msginit = {
+ NULL,
+ &envoy_config_metrics_v3_TagSpecifier__fields[0],
+ UPB_SIZE(24, 48), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_metrics_v3_HistogramBucketSettings_submsgs[1] = {
+ &envoy_type_matcher_v3_StringMatcher_msginit,
+};
+
+static const upb_msglayout_field envoy_config_metrics_v3_HistogramBucketSettings__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 0, 0, 1, _UPB_LABEL_PACKED},
+};
+
+const upb_msglayout envoy_config_metrics_v3_HistogramBucketSettings_msginit = {
+ &envoy_config_metrics_v3_HistogramBucketSettings_submsgs[0],
+ &envoy_config_metrics_v3_HistogramBucketSettings__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_metrics_v3_StatsdSink_submsgs[1] = {
+ &envoy_config_core_v3_Address_msginit,
+};
+
+static const upb_msglayout_field envoy_config_metrics_v3_StatsdSink__fields[3] = {
+ {1, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 11, 1},
+ {2, UPB_SIZE(8, 16), UPB_SIZE(-17, -33), 0, 9, 1},
+ {3, UPB_SIZE(0, 0), 0, 0, 9, 1},
+};
+
+const upb_msglayout envoy_config_metrics_v3_StatsdSink_msginit = {
+ &envoy_config_metrics_v3_StatsdSink_submsgs[0],
+ &envoy_config_metrics_v3_StatsdSink__fields[0],
+ UPB_SIZE(24, 48), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_metrics_v3_DogStatsdSink_submsgs[2] = {
+ &envoy_config_core_v3_Address_msginit,
+ &google_protobuf_UInt64Value_msginit,
+};
+
+static const upb_msglayout_field envoy_config_metrics_v3_DogStatsdSink__fields[3] = {
+ {1, UPB_SIZE(16, 32), UPB_SIZE(-21, -41), 0, 11, 1},
+ {3, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {4, UPB_SIZE(12, 24), 1, 1, 11, 1},
+};
+
+const upb_msglayout envoy_config_metrics_v3_DogStatsdSink_msginit = {
+ &envoy_config_metrics_v3_DogStatsdSink_submsgs[0],
+ &envoy_config_metrics_v3_DogStatsdSink__fields[0],
+ UPB_SIZE(24, 48), 3, false, 255,
+};
+
+static const upb_msglayout_field envoy_config_metrics_v3_HystrixSink__fields[1] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 3, 1},
+};
+
+const upb_msglayout envoy_config_metrics_v3_HystrixSink_msginit = {
+ NULL,
+ &envoy_config_metrics_v3_HystrixSink__fields[0],
+ UPB_SIZE(8, 8), 1, false, 255,
+};
+
+#include "upb/port_undef.inc"
+
diff --git a/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h b/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h
new file mode 100644
index 00000000000..dab0415ed60
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h
@@ -0,0 +1,488 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/metrics/v3/stats.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_CONFIG_METRICS_V3_STATS_PROTO_UPB_H_
+#define ENVOY_CONFIG_METRICS_V3_STATS_PROTO_UPB_H_
+
+#include "upb/msg.h"
+#include "upb/decode.h"
+#include "upb/decode_fast.h"
+#include "upb/encode.h"
+
+#include "upb/port_def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct envoy_config_metrics_v3_StatsSink;
+struct envoy_config_metrics_v3_StatsConfig;
+struct envoy_config_metrics_v3_StatsMatcher;
+struct envoy_config_metrics_v3_TagSpecifier;
+struct envoy_config_metrics_v3_HistogramBucketSettings;
+struct envoy_config_metrics_v3_StatsdSink;
+struct envoy_config_metrics_v3_DogStatsdSink;
+struct envoy_config_metrics_v3_HystrixSink;
+typedef struct envoy_config_metrics_v3_StatsSink envoy_config_metrics_v3_StatsSink;
+typedef struct envoy_config_metrics_v3_StatsConfig envoy_config_metrics_v3_StatsConfig;
+typedef struct envoy_config_metrics_v3_StatsMatcher envoy_config_metrics_v3_StatsMatcher;
+typedef struct envoy_config_metrics_v3_TagSpecifier envoy_config_metrics_v3_TagSpecifier;
+typedef struct envoy_config_metrics_v3_HistogramBucketSettings envoy_config_metrics_v3_HistogramBucketSettings;
+typedef struct envoy_config_metrics_v3_StatsdSink envoy_config_metrics_v3_StatsdSink;
+typedef struct envoy_config_metrics_v3_DogStatsdSink envoy_config_metrics_v3_DogStatsdSink;
+typedef struct envoy_config_metrics_v3_HystrixSink envoy_config_metrics_v3_HystrixSink;
+extern const upb_msglayout envoy_config_metrics_v3_StatsSink_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsConfig_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsMatcher_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_TagSpecifier_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_HistogramBucketSettings_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsdSink_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_DogStatsdSink_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_HystrixSink_msginit;
+struct envoy_config_core_v3_Address;
+struct envoy_type_matcher_v3_ListStringMatcher;
+struct envoy_type_matcher_v3_StringMatcher;
+struct google_protobuf_Any;
+struct google_protobuf_BoolValue;
+struct google_protobuf_UInt64Value;
+extern const upb_msglayout envoy_config_core_v3_Address_msginit;
+extern const upb_msglayout envoy_type_matcher_v3_ListStringMatcher_msginit;
+extern const upb_msglayout envoy_type_matcher_v3_StringMatcher_msginit;
+extern const upb_msglayout google_protobuf_Any_msginit;
+extern const upb_msglayout google_protobuf_BoolValue_msginit;
+extern const upb_msglayout google_protobuf_UInt64Value_msginit;
+
+
+/* envoy.config.metrics.v3.StatsSink */
+
+UPB_INLINE envoy_config_metrics_v3_StatsSink *envoy_config_metrics_v3_StatsSink_new(upb_arena *arena) {
+ return (envoy_config_metrics_v3_StatsSink *)_upb_msg_new(&envoy_config_metrics_v3_StatsSink_msginit, arena);
+}
+UPB_INLINE envoy_config_metrics_v3_StatsSink *envoy_config_metrics_v3_StatsSink_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_metrics_v3_StatsSink *ret = envoy_config_metrics_v3_StatsSink_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsSink_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_metrics_v3_StatsSink *envoy_config_metrics_v3_StatsSink_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_metrics_v3_StatsSink *ret = envoy_config_metrics_v3_StatsSink_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsSink_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_metrics_v3_StatsSink_serialize(const envoy_config_metrics_v3_StatsSink *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_metrics_v3_StatsSink_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_metrics_v3_StatsSink_config_type_typed_config = 3,
+ envoy_config_metrics_v3_StatsSink_config_type_NOT_SET = 0
+} envoy_config_metrics_v3_StatsSink_config_type_oneofcases;
+UPB_INLINE envoy_config_metrics_v3_StatsSink_config_type_oneofcases envoy_config_metrics_v3_StatsSink_config_type_case(const envoy_config_metrics_v3_StatsSink* msg) { return (envoy_config_metrics_v3_StatsSink_config_type_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(12, 24), int32_t); }
+
+UPB_INLINE upb_strview envoy_config_metrics_v3_StatsSink_name(const envoy_config_metrics_v3_StatsSink *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview); }
+UPB_INLINE bool envoy_config_metrics_v3_StatsSink_has_typed_config(const envoy_config_metrics_v3_StatsSink *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 24)) == 3; }
+UPB_INLINE const struct google_protobuf_Any* envoy_config_metrics_v3_StatsSink_typed_config(const envoy_config_metrics_v3_StatsSink *msg) { return UPB_READ_ONEOF(msg, const struct google_protobuf_Any*, UPB_SIZE(8, 16), UPB_SIZE(12, 24), 3, NULL); }
+
+UPB_INLINE void envoy_config_metrics_v3_StatsSink_set_name(envoy_config_metrics_v3_StatsSink *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_metrics_v3_StatsSink_set_typed_config(envoy_config_metrics_v3_StatsSink *msg, struct google_protobuf_Any* value) {
+ UPB_WRITE_ONEOF(msg, struct google_protobuf_Any*, UPB_SIZE(8, 16), value, UPB_SIZE(12, 24), 3);
+}
+UPB_INLINE struct google_protobuf_Any* envoy_config_metrics_v3_StatsSink_mutable_typed_config(envoy_config_metrics_v3_StatsSink *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_config_metrics_v3_StatsSink_typed_config(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_StatsSink_set_typed_config(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.metrics.v3.StatsConfig */
+
+UPB_INLINE envoy_config_metrics_v3_StatsConfig *envoy_config_metrics_v3_StatsConfig_new(upb_arena *arena) {
+ return (envoy_config_metrics_v3_StatsConfig *)_upb_msg_new(&envoy_config_metrics_v3_StatsConfig_msginit, arena);
+}
+UPB_INLINE envoy_config_metrics_v3_StatsConfig *envoy_config_metrics_v3_StatsConfig_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_metrics_v3_StatsConfig *ret = envoy_config_metrics_v3_StatsConfig_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsConfig_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_metrics_v3_StatsConfig *envoy_config_metrics_v3_StatsConfig_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_metrics_v3_StatsConfig *ret = envoy_config_metrics_v3_StatsConfig_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsConfig_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_metrics_v3_StatsConfig_serialize(const envoy_config_metrics_v3_StatsConfig *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_metrics_v3_StatsConfig_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_metrics_v3_StatsConfig_has_stats_tags(const envoy_config_metrics_v3_StatsConfig *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(12, 24)); }
+UPB_INLINE const envoy_config_metrics_v3_TagSpecifier* const* envoy_config_metrics_v3_StatsConfig_stats_tags(const envoy_config_metrics_v3_StatsConfig *msg, size_t *len) { return (const envoy_config_metrics_v3_TagSpecifier* const*)_upb_array_accessor(msg, UPB_SIZE(12, 24), len); }
+UPB_INLINE bool envoy_config_metrics_v3_StatsConfig_has_use_all_default_tags(const envoy_config_metrics_v3_StatsConfig *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_BoolValue* envoy_config_metrics_v3_StatsConfig_use_all_default_tags(const envoy_config_metrics_v3_StatsConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct google_protobuf_BoolValue*); }
+UPB_INLINE bool envoy_config_metrics_v3_StatsConfig_has_stats_matcher(const envoy_config_metrics_v3_StatsConfig *msg) { return _upb_hasbit(msg, 2); }
+UPB_INLINE const envoy_config_metrics_v3_StatsMatcher* envoy_config_metrics_v3_StatsConfig_stats_matcher(const envoy_config_metrics_v3_StatsConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 16), const envoy_config_metrics_v3_StatsMatcher*); }
+UPB_INLINE bool envoy_config_metrics_v3_StatsConfig_has_histogram_bucket_settings(const envoy_config_metrics_v3_StatsConfig *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(16, 32)); }
+UPB_INLINE const envoy_config_metrics_v3_HistogramBucketSettings* const* envoy_config_metrics_v3_StatsConfig_histogram_bucket_settings(const envoy_config_metrics_v3_StatsConfig *msg, size_t *len) { return (const envoy_config_metrics_v3_HistogramBucketSettings* const*)_upb_array_accessor(msg, UPB_SIZE(16, 32), len); }
+
+UPB_INLINE envoy_config_metrics_v3_TagSpecifier** envoy_config_metrics_v3_StatsConfig_mutable_stats_tags(envoy_config_metrics_v3_StatsConfig *msg, size_t *len) {
+ return (envoy_config_metrics_v3_TagSpecifier**)_upb_array_mutable_accessor(msg, UPB_SIZE(12, 24), len);
+}
+UPB_INLINE envoy_config_metrics_v3_TagSpecifier** envoy_config_metrics_v3_StatsConfig_resize_stats_tags(envoy_config_metrics_v3_StatsConfig *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_metrics_v3_TagSpecifier**)_upb_array_resize_accessor2(msg, UPB_SIZE(12, 24), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_metrics_v3_TagSpecifier* envoy_config_metrics_v3_StatsConfig_add_stats_tags(envoy_config_metrics_v3_StatsConfig *msg, upb_arena *arena) {
+ struct envoy_config_metrics_v3_TagSpecifier* sub = (struct envoy_config_metrics_v3_TagSpecifier*)_upb_msg_new(&envoy_config_metrics_v3_TagSpecifier_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(12, 24), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_config_metrics_v3_StatsConfig_set_use_all_default_tags(envoy_config_metrics_v3_StatsConfig *msg, struct google_protobuf_BoolValue* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct google_protobuf_BoolValue*) = value;
+}
+UPB_INLINE struct google_protobuf_BoolValue* envoy_config_metrics_v3_StatsConfig_mutable_use_all_default_tags(envoy_config_metrics_v3_StatsConfig *msg, upb_arena *arena) {
+ struct google_protobuf_BoolValue* sub = (struct google_protobuf_BoolValue*)envoy_config_metrics_v3_StatsConfig_use_all_default_tags(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_BoolValue*)_upb_msg_new(&google_protobuf_BoolValue_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_StatsConfig_set_use_all_default_tags(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_metrics_v3_StatsConfig_set_stats_matcher(envoy_config_metrics_v3_StatsConfig *msg, envoy_config_metrics_v3_StatsMatcher* value) {
+ _upb_sethas(msg, 2);
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 16), envoy_config_metrics_v3_StatsMatcher*) = value;
+}
+UPB_INLINE struct envoy_config_metrics_v3_StatsMatcher* envoy_config_metrics_v3_StatsConfig_mutable_stats_matcher(envoy_config_metrics_v3_StatsConfig *msg, upb_arena *arena) {
+ struct envoy_config_metrics_v3_StatsMatcher* sub = (struct envoy_config_metrics_v3_StatsMatcher*)envoy_config_metrics_v3_StatsConfig_stats_matcher(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_metrics_v3_StatsMatcher*)_upb_msg_new(&envoy_config_metrics_v3_StatsMatcher_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_StatsConfig_set_stats_matcher(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE envoy_config_metrics_v3_HistogramBucketSettings** envoy_config_metrics_v3_StatsConfig_mutable_histogram_bucket_settings(envoy_config_metrics_v3_StatsConfig *msg, size_t *len) {
+ return (envoy_config_metrics_v3_HistogramBucketSettings**)_upb_array_mutable_accessor(msg, UPB_SIZE(16, 32), len);
+}
+UPB_INLINE envoy_config_metrics_v3_HistogramBucketSettings** envoy_config_metrics_v3_StatsConfig_resize_histogram_bucket_settings(envoy_config_metrics_v3_StatsConfig *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_metrics_v3_HistogramBucketSettings**)_upb_array_resize_accessor2(msg, UPB_SIZE(16, 32), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_metrics_v3_HistogramBucketSettings* envoy_config_metrics_v3_StatsConfig_add_histogram_bucket_settings(envoy_config_metrics_v3_StatsConfig *msg, upb_arena *arena) {
+ struct envoy_config_metrics_v3_HistogramBucketSettings* sub = (struct envoy_config_metrics_v3_HistogramBucketSettings*)_upb_msg_new(&envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(16, 32), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.config.metrics.v3.StatsMatcher */
+
+UPB_INLINE envoy_config_metrics_v3_StatsMatcher *envoy_config_metrics_v3_StatsMatcher_new(upb_arena *arena) {
+ return (envoy_config_metrics_v3_StatsMatcher *)_upb_msg_new(&envoy_config_metrics_v3_StatsMatcher_msginit, arena);
+}
+UPB_INLINE envoy_config_metrics_v3_StatsMatcher *envoy_config_metrics_v3_StatsMatcher_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_metrics_v3_StatsMatcher *ret = envoy_config_metrics_v3_StatsMatcher_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsMatcher_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_metrics_v3_StatsMatcher *envoy_config_metrics_v3_StatsMatcher_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_metrics_v3_StatsMatcher *ret = envoy_config_metrics_v3_StatsMatcher_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsMatcher_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_metrics_v3_StatsMatcher_serialize(const envoy_config_metrics_v3_StatsMatcher *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_metrics_v3_StatsMatcher_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_metrics_v3_StatsMatcher_stats_matcher_reject_all = 1,
+ envoy_config_metrics_v3_StatsMatcher_stats_matcher_exclusion_list = 2,
+ envoy_config_metrics_v3_StatsMatcher_stats_matcher_inclusion_list = 3,
+ envoy_config_metrics_v3_StatsMatcher_stats_matcher_NOT_SET = 0
+} envoy_config_metrics_v3_StatsMatcher_stats_matcher_oneofcases;
+UPB_INLINE envoy_config_metrics_v3_StatsMatcher_stats_matcher_oneofcases envoy_config_metrics_v3_StatsMatcher_stats_matcher_case(const envoy_config_metrics_v3_StatsMatcher* msg) { return (envoy_config_metrics_v3_StatsMatcher_stats_matcher_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(4, 8), int32_t); }
+
+UPB_INLINE bool envoy_config_metrics_v3_StatsMatcher_has_reject_all(const envoy_config_metrics_v3_StatsMatcher *msg) { return _upb_getoneofcase(msg, UPB_SIZE(4, 8)) == 1; }
+UPB_INLINE bool envoy_config_metrics_v3_StatsMatcher_reject_all(const envoy_config_metrics_v3_StatsMatcher *msg) { return UPB_READ_ONEOF(msg, bool, UPB_SIZE(0, 0), UPB_SIZE(4, 8), 1, false); }
+UPB_INLINE bool envoy_config_metrics_v3_StatsMatcher_has_exclusion_list(const envoy_config_metrics_v3_StatsMatcher *msg) { return _upb_getoneofcase(msg, UPB_SIZE(4, 8)) == 2; }
+UPB_INLINE const struct envoy_type_matcher_v3_ListStringMatcher* envoy_config_metrics_v3_StatsMatcher_exclusion_list(const envoy_config_metrics_v3_StatsMatcher *msg) { return UPB_READ_ONEOF(msg, const struct envoy_type_matcher_v3_ListStringMatcher*, UPB_SIZE(0, 0), UPB_SIZE(4, 8), 2, NULL); }
+UPB_INLINE bool envoy_config_metrics_v3_StatsMatcher_has_inclusion_list(const envoy_config_metrics_v3_StatsMatcher *msg) { return _upb_getoneofcase(msg, UPB_SIZE(4, 8)) == 3; }
+UPB_INLINE const struct envoy_type_matcher_v3_ListStringMatcher* envoy_config_metrics_v3_StatsMatcher_inclusion_list(const envoy_config_metrics_v3_StatsMatcher *msg) { return UPB_READ_ONEOF(msg, const struct envoy_type_matcher_v3_ListStringMatcher*, UPB_SIZE(0, 0), UPB_SIZE(4, 8), 3, NULL); }
+
+UPB_INLINE void envoy_config_metrics_v3_StatsMatcher_set_reject_all(envoy_config_metrics_v3_StatsMatcher *msg, bool value) {
+ UPB_WRITE_ONEOF(msg, bool, UPB_SIZE(0, 0), value, UPB_SIZE(4, 8), 1);
+}
+UPB_INLINE void envoy_config_metrics_v3_StatsMatcher_set_exclusion_list(envoy_config_metrics_v3_StatsMatcher *msg, struct envoy_type_matcher_v3_ListStringMatcher* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_type_matcher_v3_ListStringMatcher*, UPB_SIZE(0, 0), value, UPB_SIZE(4, 8), 2);
+}
+UPB_INLINE struct envoy_type_matcher_v3_ListStringMatcher* envoy_config_metrics_v3_StatsMatcher_mutable_exclusion_list(envoy_config_metrics_v3_StatsMatcher *msg, upb_arena *arena) {
+ struct envoy_type_matcher_v3_ListStringMatcher* sub = (struct envoy_type_matcher_v3_ListStringMatcher*)envoy_config_metrics_v3_StatsMatcher_exclusion_list(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_type_matcher_v3_ListStringMatcher*)_upb_msg_new(&envoy_type_matcher_v3_ListStringMatcher_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_StatsMatcher_set_exclusion_list(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_metrics_v3_StatsMatcher_set_inclusion_list(envoy_config_metrics_v3_StatsMatcher *msg, struct envoy_type_matcher_v3_ListStringMatcher* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_type_matcher_v3_ListStringMatcher*, UPB_SIZE(0, 0), value, UPB_SIZE(4, 8), 3);
+}
+UPB_INLINE struct envoy_type_matcher_v3_ListStringMatcher* envoy_config_metrics_v3_StatsMatcher_mutable_inclusion_list(envoy_config_metrics_v3_StatsMatcher *msg, upb_arena *arena) {
+ struct envoy_type_matcher_v3_ListStringMatcher* sub = (struct envoy_type_matcher_v3_ListStringMatcher*)envoy_config_metrics_v3_StatsMatcher_inclusion_list(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_type_matcher_v3_ListStringMatcher*)_upb_msg_new(&envoy_type_matcher_v3_ListStringMatcher_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_StatsMatcher_set_inclusion_list(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.metrics.v3.TagSpecifier */
+
+UPB_INLINE envoy_config_metrics_v3_TagSpecifier *envoy_config_metrics_v3_TagSpecifier_new(upb_arena *arena) {
+ return (envoy_config_metrics_v3_TagSpecifier *)_upb_msg_new(&envoy_config_metrics_v3_TagSpecifier_msginit, arena);
+}
+UPB_INLINE envoy_config_metrics_v3_TagSpecifier *envoy_config_metrics_v3_TagSpecifier_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_metrics_v3_TagSpecifier *ret = envoy_config_metrics_v3_TagSpecifier_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_TagSpecifier_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_metrics_v3_TagSpecifier *envoy_config_metrics_v3_TagSpecifier_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_metrics_v3_TagSpecifier *ret = envoy_config_metrics_v3_TagSpecifier_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_TagSpecifier_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_metrics_v3_TagSpecifier_serialize(const envoy_config_metrics_v3_TagSpecifier *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_metrics_v3_TagSpecifier_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_metrics_v3_TagSpecifier_tag_value_regex = 2,
+ envoy_config_metrics_v3_TagSpecifier_tag_value_fixed_value = 3,
+ envoy_config_metrics_v3_TagSpecifier_tag_value_NOT_SET = 0
+} envoy_config_metrics_v3_TagSpecifier_tag_value_oneofcases;
+UPB_INLINE envoy_config_metrics_v3_TagSpecifier_tag_value_oneofcases envoy_config_metrics_v3_TagSpecifier_tag_value_case(const envoy_config_metrics_v3_TagSpecifier* msg) { return (envoy_config_metrics_v3_TagSpecifier_tag_value_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(16, 32), int32_t); }
+
+UPB_INLINE upb_strview envoy_config_metrics_v3_TagSpecifier_tag_name(const envoy_config_metrics_v3_TagSpecifier *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview); }
+UPB_INLINE bool envoy_config_metrics_v3_TagSpecifier_has_regex(const envoy_config_metrics_v3_TagSpecifier *msg) { return _upb_getoneofcase(msg, UPB_SIZE(16, 32)) == 2; }
+UPB_INLINE upb_strview envoy_config_metrics_v3_TagSpecifier_regex(const envoy_config_metrics_v3_TagSpecifier *msg) { return UPB_READ_ONEOF(msg, upb_strview, UPB_SIZE(8, 16), UPB_SIZE(16, 32), 2, upb_strview_make("", strlen(""))); }
+UPB_INLINE bool envoy_config_metrics_v3_TagSpecifier_has_fixed_value(const envoy_config_metrics_v3_TagSpecifier *msg) { return _upb_getoneofcase(msg, UPB_SIZE(16, 32)) == 3; }
+UPB_INLINE upb_strview envoy_config_metrics_v3_TagSpecifier_fixed_value(const envoy_config_metrics_v3_TagSpecifier *msg) { return UPB_READ_ONEOF(msg, upb_strview, UPB_SIZE(8, 16), UPB_SIZE(16, 32), 3, upb_strview_make("", strlen(""))); }
+
+UPB_INLINE void envoy_config_metrics_v3_TagSpecifier_set_tag_name(envoy_config_metrics_v3_TagSpecifier *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_metrics_v3_TagSpecifier_set_regex(envoy_config_metrics_v3_TagSpecifier *msg, upb_strview value) {
+ UPB_WRITE_ONEOF(msg, upb_strview, UPB_SIZE(8, 16), value, UPB_SIZE(16, 32), 2);
+}
+UPB_INLINE void envoy_config_metrics_v3_TagSpecifier_set_fixed_value(envoy_config_metrics_v3_TagSpecifier *msg, upb_strview value) {
+ UPB_WRITE_ONEOF(msg, upb_strview, UPB_SIZE(8, 16), value, UPB_SIZE(16, 32), 3);
+}
+
+/* envoy.config.metrics.v3.HistogramBucketSettings */
+
+UPB_INLINE envoy_config_metrics_v3_HistogramBucketSettings *envoy_config_metrics_v3_HistogramBucketSettings_new(upb_arena *arena) {
+ return (envoy_config_metrics_v3_HistogramBucketSettings *)_upb_msg_new(&envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena);
+}
+UPB_INLINE envoy_config_metrics_v3_HistogramBucketSettings *envoy_config_metrics_v3_HistogramBucketSettings_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_metrics_v3_HistogramBucketSettings *ret = envoy_config_metrics_v3_HistogramBucketSettings_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_metrics_v3_HistogramBucketSettings *envoy_config_metrics_v3_HistogramBucketSettings_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_metrics_v3_HistogramBucketSettings *ret = envoy_config_metrics_v3_HistogramBucketSettings_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_metrics_v3_HistogramBucketSettings_serialize(const envoy_config_metrics_v3_HistogramBucketSettings *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_metrics_v3_HistogramBucketSettings_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_metrics_v3_HistogramBucketSettings_has_match(const envoy_config_metrics_v3_HistogramBucketSettings *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_type_matcher_v3_StringMatcher* envoy_config_metrics_v3_HistogramBucketSettings_match(const envoy_config_metrics_v3_HistogramBucketSettings *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct envoy_type_matcher_v3_StringMatcher*); }
+UPB_INLINE double const* envoy_config_metrics_v3_HistogramBucketSettings_buckets(const envoy_config_metrics_v3_HistogramBucketSettings *msg, size_t *len) { return (double const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+
+UPB_INLINE void envoy_config_metrics_v3_HistogramBucketSettings_set_match(envoy_config_metrics_v3_HistogramBucketSettings *msg, struct envoy_type_matcher_v3_StringMatcher* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct envoy_type_matcher_v3_StringMatcher*) = value;
+}
+UPB_INLINE struct envoy_type_matcher_v3_StringMatcher* envoy_config_metrics_v3_HistogramBucketSettings_mutable_match(envoy_config_metrics_v3_HistogramBucketSettings *msg, upb_arena *arena) {
+ struct envoy_type_matcher_v3_StringMatcher* sub = (struct envoy_type_matcher_v3_StringMatcher*)envoy_config_metrics_v3_HistogramBucketSettings_match(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_type_matcher_v3_StringMatcher*)_upb_msg_new(&envoy_type_matcher_v3_StringMatcher_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_HistogramBucketSettings_set_match(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE double* envoy_config_metrics_v3_HistogramBucketSettings_mutable_buckets(envoy_config_metrics_v3_HistogramBucketSettings *msg, size_t *len) {
+ return (double*)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE double* envoy_config_metrics_v3_HistogramBucketSettings_resize_buckets(envoy_config_metrics_v3_HistogramBucketSettings *msg, size_t len, upb_arena *arena) {
+ return (double*)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, 3, arena);
+}
+UPB_INLINE bool envoy_config_metrics_v3_HistogramBucketSettings_add_buckets(envoy_config_metrics_v3_HistogramBucketSettings *msg, double val, upb_arena *arena) {
+ return _upb_array_append_accessor2(msg, UPB_SIZE(8, 16), 3, &val,
+ arena);
+}
+
+/* envoy.config.metrics.v3.StatsdSink */
+
+UPB_INLINE envoy_config_metrics_v3_StatsdSink *envoy_config_metrics_v3_StatsdSink_new(upb_arena *arena) {
+ return (envoy_config_metrics_v3_StatsdSink *)_upb_msg_new(&envoy_config_metrics_v3_StatsdSink_msginit, arena);
+}
+UPB_INLINE envoy_config_metrics_v3_StatsdSink *envoy_config_metrics_v3_StatsdSink_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_metrics_v3_StatsdSink *ret = envoy_config_metrics_v3_StatsdSink_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsdSink_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_metrics_v3_StatsdSink *envoy_config_metrics_v3_StatsdSink_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_metrics_v3_StatsdSink *ret = envoy_config_metrics_v3_StatsdSink_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_StatsdSink_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_metrics_v3_StatsdSink_serialize(const envoy_config_metrics_v3_StatsdSink *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_metrics_v3_StatsdSink_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_metrics_v3_StatsdSink_statsd_specifier_address = 1,
+ envoy_config_metrics_v3_StatsdSink_statsd_specifier_tcp_cluster_name = 2,
+ envoy_config_metrics_v3_StatsdSink_statsd_specifier_NOT_SET = 0
+} envoy_config_metrics_v3_StatsdSink_statsd_specifier_oneofcases;
+UPB_INLINE envoy_config_metrics_v3_StatsdSink_statsd_specifier_oneofcases envoy_config_metrics_v3_StatsdSink_statsd_specifier_case(const envoy_config_metrics_v3_StatsdSink* msg) { return (envoy_config_metrics_v3_StatsdSink_statsd_specifier_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(16, 32), int32_t); }
+
+UPB_INLINE bool envoy_config_metrics_v3_StatsdSink_has_address(const envoy_config_metrics_v3_StatsdSink *msg) { return _upb_getoneofcase(msg, UPB_SIZE(16, 32)) == 1; }
+UPB_INLINE const struct envoy_config_core_v3_Address* envoy_config_metrics_v3_StatsdSink_address(const envoy_config_metrics_v3_StatsdSink *msg) { return UPB_READ_ONEOF(msg, const struct envoy_config_core_v3_Address*, UPB_SIZE(8, 16), UPB_SIZE(16, 32), 1, NULL); }
+UPB_INLINE bool envoy_config_metrics_v3_StatsdSink_has_tcp_cluster_name(const envoy_config_metrics_v3_StatsdSink *msg) { return _upb_getoneofcase(msg, UPB_SIZE(16, 32)) == 2; }
+UPB_INLINE upb_strview envoy_config_metrics_v3_StatsdSink_tcp_cluster_name(const envoy_config_metrics_v3_StatsdSink *msg) { return UPB_READ_ONEOF(msg, upb_strview, UPB_SIZE(8, 16), UPB_SIZE(16, 32), 2, upb_strview_make("", strlen(""))); }
+UPB_INLINE upb_strview envoy_config_metrics_v3_StatsdSink_prefix(const envoy_config_metrics_v3_StatsdSink *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview); }
+
+UPB_INLINE void envoy_config_metrics_v3_StatsdSink_set_address(envoy_config_metrics_v3_StatsdSink *msg, struct envoy_config_core_v3_Address* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_config_core_v3_Address*, UPB_SIZE(8, 16), value, UPB_SIZE(16, 32), 1);
+}
+UPB_INLINE struct envoy_config_core_v3_Address* envoy_config_metrics_v3_StatsdSink_mutable_address(envoy_config_metrics_v3_StatsdSink *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_Address* sub = (struct envoy_config_core_v3_Address*)envoy_config_metrics_v3_StatsdSink_address(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Address*)_upb_msg_new(&envoy_config_core_v3_Address_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_StatsdSink_set_address(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_metrics_v3_StatsdSink_set_tcp_cluster_name(envoy_config_metrics_v3_StatsdSink *msg, upb_strview value) {
+ UPB_WRITE_ONEOF(msg, upb_strview, UPB_SIZE(8, 16), value, UPB_SIZE(16, 32), 2);
+}
+UPB_INLINE void envoy_config_metrics_v3_StatsdSink_set_prefix(envoy_config_metrics_v3_StatsdSink *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview) = value;
+}
+
+/* envoy.config.metrics.v3.DogStatsdSink */
+
+UPB_INLINE envoy_config_metrics_v3_DogStatsdSink *envoy_config_metrics_v3_DogStatsdSink_new(upb_arena *arena) {
+ return (envoy_config_metrics_v3_DogStatsdSink *)_upb_msg_new(&envoy_config_metrics_v3_DogStatsdSink_msginit, arena);
+}
+UPB_INLINE envoy_config_metrics_v3_DogStatsdSink *envoy_config_metrics_v3_DogStatsdSink_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_metrics_v3_DogStatsdSink *ret = envoy_config_metrics_v3_DogStatsdSink_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_DogStatsdSink_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_metrics_v3_DogStatsdSink *envoy_config_metrics_v3_DogStatsdSink_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_metrics_v3_DogStatsdSink *ret = envoy_config_metrics_v3_DogStatsdSink_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_DogStatsdSink_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_metrics_v3_DogStatsdSink_serialize(const envoy_config_metrics_v3_DogStatsdSink *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_metrics_v3_DogStatsdSink_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_metrics_v3_DogStatsdSink_dog_statsd_specifier_address = 1,
+ envoy_config_metrics_v3_DogStatsdSink_dog_statsd_specifier_NOT_SET = 0
+} envoy_config_metrics_v3_DogStatsdSink_dog_statsd_specifier_oneofcases;
+UPB_INLINE envoy_config_metrics_v3_DogStatsdSink_dog_statsd_specifier_oneofcases envoy_config_metrics_v3_DogStatsdSink_dog_statsd_specifier_case(const envoy_config_metrics_v3_DogStatsdSink* msg) { return (envoy_config_metrics_v3_DogStatsdSink_dog_statsd_specifier_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(20, 40), int32_t); }
+
+UPB_INLINE bool envoy_config_metrics_v3_DogStatsdSink_has_address(const envoy_config_metrics_v3_DogStatsdSink *msg) { return _upb_getoneofcase(msg, UPB_SIZE(20, 40)) == 1; }
+UPB_INLINE const struct envoy_config_core_v3_Address* envoy_config_metrics_v3_DogStatsdSink_address(const envoy_config_metrics_v3_DogStatsdSink *msg) { return UPB_READ_ONEOF(msg, const struct envoy_config_core_v3_Address*, UPB_SIZE(16, 32), UPB_SIZE(20, 40), 1, NULL); }
+UPB_INLINE upb_strview envoy_config_metrics_v3_DogStatsdSink_prefix(const envoy_config_metrics_v3_DogStatsdSink *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_config_metrics_v3_DogStatsdSink_has_max_bytes_per_datagram(const envoy_config_metrics_v3_DogStatsdSink *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_UInt64Value* envoy_config_metrics_v3_DogStatsdSink_max_bytes_per_datagram(const envoy_config_metrics_v3_DogStatsdSink *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const struct google_protobuf_UInt64Value*); }
+
+UPB_INLINE void envoy_config_metrics_v3_DogStatsdSink_set_address(envoy_config_metrics_v3_DogStatsdSink *msg, struct envoy_config_core_v3_Address* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_config_core_v3_Address*, UPB_SIZE(16, 32), value, UPB_SIZE(20, 40), 1);
+}
+UPB_INLINE struct envoy_config_core_v3_Address* envoy_config_metrics_v3_DogStatsdSink_mutable_address(envoy_config_metrics_v3_DogStatsdSink *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_Address* sub = (struct envoy_config_core_v3_Address*)envoy_config_metrics_v3_DogStatsdSink_address(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Address*)_upb_msg_new(&envoy_config_core_v3_Address_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_DogStatsdSink_set_address(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_metrics_v3_DogStatsdSink_set_prefix(envoy_config_metrics_v3_DogStatsdSink *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_metrics_v3_DogStatsdSink_set_max_bytes_per_datagram(envoy_config_metrics_v3_DogStatsdSink *msg, struct google_protobuf_UInt64Value* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), struct google_protobuf_UInt64Value*) = value;
+}
+UPB_INLINE struct google_protobuf_UInt64Value* envoy_config_metrics_v3_DogStatsdSink_mutable_max_bytes_per_datagram(envoy_config_metrics_v3_DogStatsdSink *msg, upb_arena *arena) {
+ struct google_protobuf_UInt64Value* sub = (struct google_protobuf_UInt64Value*)envoy_config_metrics_v3_DogStatsdSink_max_bytes_per_datagram(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_UInt64Value*)_upb_msg_new(&google_protobuf_UInt64Value_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_metrics_v3_DogStatsdSink_set_max_bytes_per_datagram(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.metrics.v3.HystrixSink */
+
+UPB_INLINE envoy_config_metrics_v3_HystrixSink *envoy_config_metrics_v3_HystrixSink_new(upb_arena *arena) {
+ return (envoy_config_metrics_v3_HystrixSink *)_upb_msg_new(&envoy_config_metrics_v3_HystrixSink_msginit, arena);
+}
+UPB_INLINE envoy_config_metrics_v3_HystrixSink *envoy_config_metrics_v3_HystrixSink_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_metrics_v3_HystrixSink *ret = envoy_config_metrics_v3_HystrixSink_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_metrics_v3_HystrixSink_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_metrics_v3_HystrixSink *envoy_config_metrics_v3_HystrixSink_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_metrics_v3_HystrixSink *ret = envoy_config_metrics_v3_HystrixSink_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_metrics_v3_HystrixSink_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_metrics_v3_HystrixSink_serialize(const envoy_config_metrics_v3_HystrixSink *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_metrics_v3_HystrixSink_msginit, arena, len);
+}
+
+UPB_INLINE int64_t envoy_config_metrics_v3_HystrixSink_num_buckets(const envoy_config_metrics_v3_HystrixSink *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), int64_t); }
+
+UPB_INLINE void envoy_config_metrics_v3_HystrixSink_set_num_buckets(envoy_config_metrics_v3_HystrixSink *msg, int64_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), int64_t) = value;
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_CONFIG_METRICS_V3_STATS_PROTO_UPB_H_ */
diff --git a/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c b/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c
new file mode 100644
index 00000000000..a306e71e8ac
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c
@@ -0,0 +1,141 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/overload/v3/overload.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include
+#include "upb/msg.h"
+#include "envoy/config/overload/v3/overload.upb.h"
+#include "envoy/type/v3/percent.upb.h"
+#include "google/protobuf/any.upb.h"
+#include "google/protobuf/duration.upb.h"
+#include "udpa/annotations/status.upb.h"
+#include "udpa/annotations/versioning.upb.h"
+#include "validate/validate.upb.h"
+
+#include "upb/port_def.inc"
+
+static const upb_msglayout *const envoy_config_overload_v3_ResourceMonitor_submsgs[1] = {
+ &google_protobuf_Any_msginit,
+};
+
+static const upb_msglayout_field envoy_config_overload_v3_ResourceMonitor__fields[2] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
+ {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_overload_v3_ResourceMonitor_msginit = {
+ &envoy_config_overload_v3_ResourceMonitor_submsgs[0],
+ &envoy_config_overload_v3_ResourceMonitor__fields[0],
+ UPB_SIZE(16, 32), 2, false, 255,
+};
+
+static const upb_msglayout_field envoy_config_overload_v3_ThresholdTrigger__fields[1] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 1, 1},
+};
+
+const upb_msglayout envoy_config_overload_v3_ThresholdTrigger_msginit = {
+ NULL,
+ &envoy_config_overload_v3_ThresholdTrigger__fields[0],
+ UPB_SIZE(8, 8), 1, false, 255,
+};
+
+static const upb_msglayout_field envoy_config_overload_v3_ScaledTrigger__fields[2] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 1, 1},
+ {2, UPB_SIZE(8, 8), 0, 0, 1, 1},
+};
+
+const upb_msglayout envoy_config_overload_v3_ScaledTrigger_msginit = {
+ NULL,
+ &envoy_config_overload_v3_ScaledTrigger__fields[0],
+ UPB_SIZE(16, 16), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_overload_v3_Trigger_submsgs[2] = {
+ &envoy_config_overload_v3_ScaledTrigger_msginit,
+ &envoy_config_overload_v3_ThresholdTrigger_msginit,
+};
+
+static const upb_msglayout_field envoy_config_overload_v3_Trigger__fields[3] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 9, 1},
+ {2, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 1, 11, 1},
+ {3, UPB_SIZE(8, 16), UPB_SIZE(-13, -25), 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_overload_v3_Trigger_msginit = {
+ &envoy_config_overload_v3_Trigger_submsgs[0],
+ &envoy_config_overload_v3_Trigger__fields[0],
+ UPB_SIZE(16, 32), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_submsgs[1] = {
+ &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit,
+};
+
+static const upb_msglayout_field envoy_config_overload_v3_ScaleTimersOverloadActionConfig__fields[1] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit = {
+ &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_submsgs[0],
+ &envoy_config_overload_v3_ScaleTimersOverloadActionConfig__fields[0],
+ UPB_SIZE(8, 8), 1, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_submsgs[2] = {
+ &envoy_type_v3_Percent_msginit,
+ &google_protobuf_Duration_msginit,
+};
+
+static const upb_msglayout_field envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer__fields[3] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 14, 1},
+ {2, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 1, 11, 1},
+ {3, UPB_SIZE(4, 8), UPB_SIZE(-9, -17), 0, 11, 1},
+};
+
+const upb_msglayout envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit = {
+ &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_submsgs[0],
+ &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer__fields[0],
+ UPB_SIZE(16, 24), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_overload_v3_OverloadAction_submsgs[2] = {
+ &envoy_config_overload_v3_Trigger_msginit,
+ &google_protobuf_Any_msginit,
+};
+
+static const upb_msglayout_field envoy_config_overload_v3_OverloadAction__fields[3] = {
+ {1, UPB_SIZE(4, 8), 0, 0, 9, 1},
+ {2, UPB_SIZE(16, 32), 0, 0, 11, 3},
+ {3, UPB_SIZE(12, 24), 1, 1, 11, 1},
+};
+
+const upb_msglayout envoy_config_overload_v3_OverloadAction_msginit = {
+ &envoy_config_overload_v3_OverloadAction_submsgs[0],
+ &envoy_config_overload_v3_OverloadAction__fields[0],
+ UPB_SIZE(24, 48), 3, false, 255,
+};
+
+static const upb_msglayout *const envoy_config_overload_v3_OverloadManager_submsgs[3] = {
+ &envoy_config_overload_v3_OverloadAction_msginit,
+ &envoy_config_overload_v3_ResourceMonitor_msginit,
+ &google_protobuf_Duration_msginit,
+};
+
+static const upb_msglayout_field envoy_config_overload_v3_OverloadManager__fields[3] = {
+ {1, UPB_SIZE(4, 8), 1, 2, 11, 1},
+ {2, UPB_SIZE(8, 16), 0, 1, 11, 3},
+ {3, UPB_SIZE(12, 24), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_config_overload_v3_OverloadManager_msginit = {
+ &envoy_config_overload_v3_OverloadManager_submsgs[0],
+ &envoy_config_overload_v3_OverloadManager__fields[0],
+ UPB_SIZE(16, 32), 3, false, 255,
+};
+
+#include "upb/port_undef.inc"
+
diff --git a/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h b/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h
new file mode 100644
index 00000000000..d800aa9736f
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h
@@ -0,0 +1,452 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/overload/v3/overload.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_CONFIG_OVERLOAD_V3_OVERLOAD_PROTO_UPB_H_
+#define ENVOY_CONFIG_OVERLOAD_V3_OVERLOAD_PROTO_UPB_H_
+
+#include "upb/msg.h"
+#include "upb/decode.h"
+#include "upb/decode_fast.h"
+#include "upb/encode.h"
+
+#include "upb/port_def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct envoy_config_overload_v3_ResourceMonitor;
+struct envoy_config_overload_v3_ThresholdTrigger;
+struct envoy_config_overload_v3_ScaledTrigger;
+struct envoy_config_overload_v3_Trigger;
+struct envoy_config_overload_v3_ScaleTimersOverloadActionConfig;
+struct envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer;
+struct envoy_config_overload_v3_OverloadAction;
+struct envoy_config_overload_v3_OverloadManager;
+typedef struct envoy_config_overload_v3_ResourceMonitor envoy_config_overload_v3_ResourceMonitor;
+typedef struct envoy_config_overload_v3_ThresholdTrigger envoy_config_overload_v3_ThresholdTrigger;
+typedef struct envoy_config_overload_v3_ScaledTrigger envoy_config_overload_v3_ScaledTrigger;
+typedef struct envoy_config_overload_v3_Trigger envoy_config_overload_v3_Trigger;
+typedef struct envoy_config_overload_v3_ScaleTimersOverloadActionConfig envoy_config_overload_v3_ScaleTimersOverloadActionConfig;
+typedef struct envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer;
+typedef struct envoy_config_overload_v3_OverloadAction envoy_config_overload_v3_OverloadAction;
+typedef struct envoy_config_overload_v3_OverloadManager envoy_config_overload_v3_OverloadManager;
+extern const upb_msglayout envoy_config_overload_v3_ResourceMonitor_msginit;
+extern const upb_msglayout envoy_config_overload_v3_ThresholdTrigger_msginit;
+extern const upb_msglayout envoy_config_overload_v3_ScaledTrigger_msginit;
+extern const upb_msglayout envoy_config_overload_v3_Trigger_msginit;
+extern const upb_msglayout envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit;
+extern const upb_msglayout envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit;
+extern const upb_msglayout envoy_config_overload_v3_OverloadAction_msginit;
+extern const upb_msglayout envoy_config_overload_v3_OverloadManager_msginit;
+struct envoy_type_v3_Percent;
+struct google_protobuf_Any;
+struct google_protobuf_Duration;
+extern const upb_msglayout envoy_type_v3_Percent_msginit;
+extern const upb_msglayout google_protobuf_Any_msginit;
+extern const upb_msglayout google_protobuf_Duration_msginit;
+
+typedef enum {
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_UNSPECIFIED = 0,
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_HTTP_DOWNSTREAM_CONNECTION_IDLE = 1,
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_HTTP_DOWNSTREAM_STREAM_IDLE = 2,
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_TRANSPORT_SOCKET_CONNECT = 3
+} envoy_config_overload_v3_ScaleTimersOverloadActionConfig_TimerType;
+
+
+/* envoy.config.overload.v3.ResourceMonitor */
+
+UPB_INLINE envoy_config_overload_v3_ResourceMonitor *envoy_config_overload_v3_ResourceMonitor_new(upb_arena *arena) {
+ return (envoy_config_overload_v3_ResourceMonitor *)_upb_msg_new(&envoy_config_overload_v3_ResourceMonitor_msginit, arena);
+}
+UPB_INLINE envoy_config_overload_v3_ResourceMonitor *envoy_config_overload_v3_ResourceMonitor_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_overload_v3_ResourceMonitor *ret = envoy_config_overload_v3_ResourceMonitor_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ResourceMonitor_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_overload_v3_ResourceMonitor *envoy_config_overload_v3_ResourceMonitor_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_overload_v3_ResourceMonitor *ret = envoy_config_overload_v3_ResourceMonitor_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ResourceMonitor_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_overload_v3_ResourceMonitor_serialize(const envoy_config_overload_v3_ResourceMonitor *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_overload_v3_ResourceMonitor_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_overload_v3_ResourceMonitor_config_type_typed_config = 3,
+ envoy_config_overload_v3_ResourceMonitor_config_type_NOT_SET = 0
+} envoy_config_overload_v3_ResourceMonitor_config_type_oneofcases;
+UPB_INLINE envoy_config_overload_v3_ResourceMonitor_config_type_oneofcases envoy_config_overload_v3_ResourceMonitor_config_type_case(const envoy_config_overload_v3_ResourceMonitor* msg) { return (envoy_config_overload_v3_ResourceMonitor_config_type_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(12, 24), int32_t); }
+
+UPB_INLINE upb_strview envoy_config_overload_v3_ResourceMonitor_name(const envoy_config_overload_v3_ResourceMonitor *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview); }
+UPB_INLINE bool envoy_config_overload_v3_ResourceMonitor_has_typed_config(const envoy_config_overload_v3_ResourceMonitor *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 24)) == 3; }
+UPB_INLINE const struct google_protobuf_Any* envoy_config_overload_v3_ResourceMonitor_typed_config(const envoy_config_overload_v3_ResourceMonitor *msg) { return UPB_READ_ONEOF(msg, const struct google_protobuf_Any*, UPB_SIZE(8, 16), UPB_SIZE(12, 24), 3, NULL); }
+
+UPB_INLINE void envoy_config_overload_v3_ResourceMonitor_set_name(envoy_config_overload_v3_ResourceMonitor *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_overload_v3_ResourceMonitor_set_typed_config(envoy_config_overload_v3_ResourceMonitor *msg, struct google_protobuf_Any* value) {
+ UPB_WRITE_ONEOF(msg, struct google_protobuf_Any*, UPB_SIZE(8, 16), value, UPB_SIZE(12, 24), 3);
+}
+UPB_INLINE struct google_protobuf_Any* envoy_config_overload_v3_ResourceMonitor_mutable_typed_config(envoy_config_overload_v3_ResourceMonitor *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_config_overload_v3_ResourceMonitor_typed_config(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_overload_v3_ResourceMonitor_set_typed_config(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.overload.v3.ThresholdTrigger */
+
+UPB_INLINE envoy_config_overload_v3_ThresholdTrigger *envoy_config_overload_v3_ThresholdTrigger_new(upb_arena *arena) {
+ return (envoy_config_overload_v3_ThresholdTrigger *)_upb_msg_new(&envoy_config_overload_v3_ThresholdTrigger_msginit, arena);
+}
+UPB_INLINE envoy_config_overload_v3_ThresholdTrigger *envoy_config_overload_v3_ThresholdTrigger_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_overload_v3_ThresholdTrigger *ret = envoy_config_overload_v3_ThresholdTrigger_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ThresholdTrigger_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_overload_v3_ThresholdTrigger *envoy_config_overload_v3_ThresholdTrigger_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_overload_v3_ThresholdTrigger *ret = envoy_config_overload_v3_ThresholdTrigger_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ThresholdTrigger_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_overload_v3_ThresholdTrigger_serialize(const envoy_config_overload_v3_ThresholdTrigger *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_overload_v3_ThresholdTrigger_msginit, arena, len);
+}
+
+UPB_INLINE double envoy_config_overload_v3_ThresholdTrigger_value(const envoy_config_overload_v3_ThresholdTrigger *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), double); }
+
+UPB_INLINE void envoy_config_overload_v3_ThresholdTrigger_set_value(envoy_config_overload_v3_ThresholdTrigger *msg, double value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), double) = value;
+}
+
+/* envoy.config.overload.v3.ScaledTrigger */
+
+UPB_INLINE envoy_config_overload_v3_ScaledTrigger *envoy_config_overload_v3_ScaledTrigger_new(upb_arena *arena) {
+ return (envoy_config_overload_v3_ScaledTrigger *)_upb_msg_new(&envoy_config_overload_v3_ScaledTrigger_msginit, arena);
+}
+UPB_INLINE envoy_config_overload_v3_ScaledTrigger *envoy_config_overload_v3_ScaledTrigger_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_overload_v3_ScaledTrigger *ret = envoy_config_overload_v3_ScaledTrigger_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaledTrigger_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_overload_v3_ScaledTrigger *envoy_config_overload_v3_ScaledTrigger_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_overload_v3_ScaledTrigger *ret = envoy_config_overload_v3_ScaledTrigger_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaledTrigger_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_overload_v3_ScaledTrigger_serialize(const envoy_config_overload_v3_ScaledTrigger *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_overload_v3_ScaledTrigger_msginit, arena, len);
+}
+
+UPB_INLINE double envoy_config_overload_v3_ScaledTrigger_scaling_threshold(const envoy_config_overload_v3_ScaledTrigger *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), double); }
+UPB_INLINE double envoy_config_overload_v3_ScaledTrigger_saturation_threshold(const envoy_config_overload_v3_ScaledTrigger *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(8, 8), double); }
+
+UPB_INLINE void envoy_config_overload_v3_ScaledTrigger_set_scaling_threshold(envoy_config_overload_v3_ScaledTrigger *msg, double value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), double) = value;
+}
+UPB_INLINE void envoy_config_overload_v3_ScaledTrigger_set_saturation_threshold(envoy_config_overload_v3_ScaledTrigger *msg, double value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(8, 8), double) = value;
+}
+
+/* envoy.config.overload.v3.Trigger */
+
+UPB_INLINE envoy_config_overload_v3_Trigger *envoy_config_overload_v3_Trigger_new(upb_arena *arena) {
+ return (envoy_config_overload_v3_Trigger *)_upb_msg_new(&envoy_config_overload_v3_Trigger_msginit, arena);
+}
+UPB_INLINE envoy_config_overload_v3_Trigger *envoy_config_overload_v3_Trigger_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_overload_v3_Trigger *ret = envoy_config_overload_v3_Trigger_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_Trigger_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_overload_v3_Trigger *envoy_config_overload_v3_Trigger_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_overload_v3_Trigger *ret = envoy_config_overload_v3_Trigger_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_Trigger_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_overload_v3_Trigger_serialize(const envoy_config_overload_v3_Trigger *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_overload_v3_Trigger_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_overload_v3_Trigger_trigger_oneof_threshold = 2,
+ envoy_config_overload_v3_Trigger_trigger_oneof_scaled = 3,
+ envoy_config_overload_v3_Trigger_trigger_oneof_NOT_SET = 0
+} envoy_config_overload_v3_Trigger_trigger_oneof_oneofcases;
+UPB_INLINE envoy_config_overload_v3_Trigger_trigger_oneof_oneofcases envoy_config_overload_v3_Trigger_trigger_oneof_case(const envoy_config_overload_v3_Trigger* msg) { return (envoy_config_overload_v3_Trigger_trigger_oneof_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(12, 24), int32_t); }
+
+UPB_INLINE upb_strview envoy_config_overload_v3_Trigger_name(const envoy_config_overload_v3_Trigger *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview); }
+UPB_INLINE bool envoy_config_overload_v3_Trigger_has_threshold(const envoy_config_overload_v3_Trigger *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 24)) == 2; }
+UPB_INLINE const envoy_config_overload_v3_ThresholdTrigger* envoy_config_overload_v3_Trigger_threshold(const envoy_config_overload_v3_Trigger *msg) { return UPB_READ_ONEOF(msg, const envoy_config_overload_v3_ThresholdTrigger*, UPB_SIZE(8, 16), UPB_SIZE(12, 24), 2, NULL); }
+UPB_INLINE bool envoy_config_overload_v3_Trigger_has_scaled(const envoy_config_overload_v3_Trigger *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 24)) == 3; }
+UPB_INLINE const envoy_config_overload_v3_ScaledTrigger* envoy_config_overload_v3_Trigger_scaled(const envoy_config_overload_v3_Trigger *msg) { return UPB_READ_ONEOF(msg, const envoy_config_overload_v3_ScaledTrigger*, UPB_SIZE(8, 16), UPB_SIZE(12, 24), 3, NULL); }
+
+UPB_INLINE void envoy_config_overload_v3_Trigger_set_name(envoy_config_overload_v3_Trigger *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), upb_strview) = value;
+}
+UPB_INLINE void envoy_config_overload_v3_Trigger_set_threshold(envoy_config_overload_v3_Trigger *msg, envoy_config_overload_v3_ThresholdTrigger* value) {
+ UPB_WRITE_ONEOF(msg, envoy_config_overload_v3_ThresholdTrigger*, UPB_SIZE(8, 16), value, UPB_SIZE(12, 24), 2);
+}
+UPB_INLINE struct envoy_config_overload_v3_ThresholdTrigger* envoy_config_overload_v3_Trigger_mutable_threshold(envoy_config_overload_v3_Trigger *msg, upb_arena *arena) {
+ struct envoy_config_overload_v3_ThresholdTrigger* sub = (struct envoy_config_overload_v3_ThresholdTrigger*)envoy_config_overload_v3_Trigger_threshold(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_overload_v3_ThresholdTrigger*)_upb_msg_new(&envoy_config_overload_v3_ThresholdTrigger_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_overload_v3_Trigger_set_threshold(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_overload_v3_Trigger_set_scaled(envoy_config_overload_v3_Trigger *msg, envoy_config_overload_v3_ScaledTrigger* value) {
+ UPB_WRITE_ONEOF(msg, envoy_config_overload_v3_ScaledTrigger*, UPB_SIZE(8, 16), value, UPB_SIZE(12, 24), 3);
+}
+UPB_INLINE struct envoy_config_overload_v3_ScaledTrigger* envoy_config_overload_v3_Trigger_mutable_scaled(envoy_config_overload_v3_Trigger *msg, upb_arena *arena) {
+ struct envoy_config_overload_v3_ScaledTrigger* sub = (struct envoy_config_overload_v3_ScaledTrigger*)envoy_config_overload_v3_Trigger_scaled(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_overload_v3_ScaledTrigger*)_upb_msg_new(&envoy_config_overload_v3_ScaledTrigger_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_overload_v3_Trigger_set_scaled(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.overload.v3.ScaleTimersOverloadActionConfig */
+
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_new(upb_arena *arena) {
+ return (envoy_config_overload_v3_ScaleTimersOverloadActionConfig *)_upb_msg_new(&envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, arena);
+}
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig *ret = envoy_config_overload_v3_ScaleTimersOverloadActionConfig_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig *ret = envoy_config_overload_v3_ScaleTimersOverloadActionConfig_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_serialize(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_overload_v3_ScaleTimersOverloadActionConfig_has_timer_scale_factors(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer* const* envoy_config_overload_v3_ScaleTimersOverloadActionConfig_timer_scale_factors(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig *msg, size_t *len) { return (const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer** envoy_config_overload_v3_ScaleTimersOverloadActionConfig_mutable_timer_scale_factors(envoy_config_overload_v3_ScaleTimersOverloadActionConfig *msg, size_t *len) {
+ return (envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer** envoy_config_overload_v3_ScaleTimersOverloadActionConfig_resize_timer_scale_factors(envoy_config_overload_v3_ScaleTimersOverloadActionConfig *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer* envoy_config_overload_v3_ScaleTimersOverloadActionConfig_add_timer_scale_factors(envoy_config_overload_v3_ScaleTimersOverloadActionConfig *msg, upb_arena *arena) {
+ struct envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer* sub = (struct envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer*)_upb_msg_new(&envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer */
+
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_new(upb_arena *arena) {
+ return (envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *)_upb_msg_new(&envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena);
+}
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *ret = envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *ret = envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_serialize(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_overload_adjust_min_timeout = 2,
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_overload_adjust_min_scale = 3,
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_overload_adjust_NOT_SET = 0
+} envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_overload_adjust_oneofcases;
+UPB_INLINE envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_overload_adjust_oneofcases envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_overload_adjust_case(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer* msg) { return (envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_overload_adjust_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(8, 16), int32_t); }
+
+UPB_INLINE int32_t envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_timer(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), int32_t); }
+UPB_INLINE bool envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_has_min_timeout(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg) { return _upb_getoneofcase(msg, UPB_SIZE(8, 16)) == 2; }
+UPB_INLINE const struct google_protobuf_Duration* envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_min_timeout(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg) { return UPB_READ_ONEOF(msg, const struct google_protobuf_Duration*, UPB_SIZE(4, 8), UPB_SIZE(8, 16), 2, NULL); }
+UPB_INLINE bool envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_has_min_scale(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg) { return _upb_getoneofcase(msg, UPB_SIZE(8, 16)) == 3; }
+UPB_INLINE const struct envoy_type_v3_Percent* envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_min_scale(const envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg) { return UPB_READ_ONEOF(msg, const struct envoy_type_v3_Percent*, UPB_SIZE(4, 8), UPB_SIZE(8, 16), 3, NULL); }
+
+UPB_INLINE void envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_set_timer(envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), int32_t) = value;
+}
+UPB_INLINE void envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_set_min_timeout(envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg, struct google_protobuf_Duration* value) {
+ UPB_WRITE_ONEOF(msg, struct google_protobuf_Duration*, UPB_SIZE(4, 8), value, UPB_SIZE(8, 16), 2);
+}
+UPB_INLINE struct google_protobuf_Duration* envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_mutable_min_timeout(envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg, upb_arena *arena) {
+ struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_min_timeout(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_set_min_timeout(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_set_min_scale(envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg, struct envoy_type_v3_Percent* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_type_v3_Percent*, UPB_SIZE(4, 8), value, UPB_SIZE(8, 16), 3);
+}
+UPB_INLINE struct envoy_type_v3_Percent* envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_mutable_min_scale(envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer *msg, upb_arena *arena) {
+ struct envoy_type_v3_Percent* sub = (struct envoy_type_v3_Percent*)envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_min_scale(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_type_v3_Percent*)_upb_msg_new(&envoy_type_v3_Percent_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_set_min_scale(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.overload.v3.OverloadAction */
+
+UPB_INLINE envoy_config_overload_v3_OverloadAction *envoy_config_overload_v3_OverloadAction_new(upb_arena *arena) {
+ return (envoy_config_overload_v3_OverloadAction *)_upb_msg_new(&envoy_config_overload_v3_OverloadAction_msginit, arena);
+}
+UPB_INLINE envoy_config_overload_v3_OverloadAction *envoy_config_overload_v3_OverloadAction_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_overload_v3_OverloadAction *ret = envoy_config_overload_v3_OverloadAction_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadAction_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_overload_v3_OverloadAction *envoy_config_overload_v3_OverloadAction_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_overload_v3_OverloadAction *ret = envoy_config_overload_v3_OverloadAction_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadAction_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_overload_v3_OverloadAction_serialize(const envoy_config_overload_v3_OverloadAction *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_overload_v3_OverloadAction_msginit, arena, len);
+}
+
+UPB_INLINE upb_strview envoy_config_overload_v3_OverloadAction_name(const envoy_config_overload_v3_OverloadAction *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview); }
+UPB_INLINE bool envoy_config_overload_v3_OverloadAction_has_triggers(const envoy_config_overload_v3_OverloadAction *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(16, 32)); }
+UPB_INLINE const envoy_config_overload_v3_Trigger* const* envoy_config_overload_v3_OverloadAction_triggers(const envoy_config_overload_v3_OverloadAction *msg, size_t *len) { return (const envoy_config_overload_v3_Trigger* const*)_upb_array_accessor(msg, UPB_SIZE(16, 32), len); }
+UPB_INLINE bool envoy_config_overload_v3_OverloadAction_has_typed_config(const envoy_config_overload_v3_OverloadAction *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Any* envoy_config_overload_v3_OverloadAction_typed_config(const envoy_config_overload_v3_OverloadAction *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(12, 24), const struct google_protobuf_Any*); }
+
+UPB_INLINE void envoy_config_overload_v3_OverloadAction_set_name(envoy_config_overload_v3_OverloadAction *msg, upb_strview value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), upb_strview) = value;
+}
+UPB_INLINE envoy_config_overload_v3_Trigger** envoy_config_overload_v3_OverloadAction_mutable_triggers(envoy_config_overload_v3_OverloadAction *msg, size_t *len) {
+ return (envoy_config_overload_v3_Trigger**)_upb_array_mutable_accessor(msg, UPB_SIZE(16, 32), len);
+}
+UPB_INLINE envoy_config_overload_v3_Trigger** envoy_config_overload_v3_OverloadAction_resize_triggers(envoy_config_overload_v3_OverloadAction *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_overload_v3_Trigger**)_upb_array_resize_accessor2(msg, UPB_SIZE(16, 32), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_overload_v3_Trigger* envoy_config_overload_v3_OverloadAction_add_triggers(envoy_config_overload_v3_OverloadAction *msg, upb_arena *arena) {
+ struct envoy_config_overload_v3_Trigger* sub = (struct envoy_config_overload_v3_Trigger*)_upb_msg_new(&envoy_config_overload_v3_Trigger_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(16, 32), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_config_overload_v3_OverloadAction_set_typed_config(envoy_config_overload_v3_OverloadAction *msg, struct google_protobuf_Any* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(12, 24), struct google_protobuf_Any*) = value;
+}
+UPB_INLINE struct google_protobuf_Any* envoy_config_overload_v3_OverloadAction_mutable_typed_config(envoy_config_overload_v3_OverloadAction *msg, upb_arena *arena) {
+ struct google_protobuf_Any* sub = (struct google_protobuf_Any*)envoy_config_overload_v3_OverloadAction_typed_config(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Any*)_upb_msg_new(&google_protobuf_Any_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_overload_v3_OverloadAction_set_typed_config(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.config.overload.v3.OverloadManager */
+
+UPB_INLINE envoy_config_overload_v3_OverloadManager *envoy_config_overload_v3_OverloadManager_new(upb_arena *arena) {
+ return (envoy_config_overload_v3_OverloadManager *)_upb_msg_new(&envoy_config_overload_v3_OverloadManager_msginit, arena);
+}
+UPB_INLINE envoy_config_overload_v3_OverloadManager *envoy_config_overload_v3_OverloadManager_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_config_overload_v3_OverloadManager *ret = envoy_config_overload_v3_OverloadManager_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadManager_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_config_overload_v3_OverloadManager *envoy_config_overload_v3_OverloadManager_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_config_overload_v3_OverloadManager *ret = envoy_config_overload_v3_OverloadManager_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_config_overload_v3_OverloadManager_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_config_overload_v3_OverloadManager_serialize(const envoy_config_overload_v3_OverloadManager *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_config_overload_v3_OverloadManager_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_config_overload_v3_OverloadManager_has_refresh_interval(const envoy_config_overload_v3_OverloadManager *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct google_protobuf_Duration* envoy_config_overload_v3_OverloadManager_refresh_interval(const envoy_config_overload_v3_OverloadManager *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct google_protobuf_Duration*); }
+UPB_INLINE bool envoy_config_overload_v3_OverloadManager_has_resource_monitors(const envoy_config_overload_v3_OverloadManager *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const envoy_config_overload_v3_ResourceMonitor* const* envoy_config_overload_v3_OverloadManager_resource_monitors(const envoy_config_overload_v3_OverloadManager *msg, size_t *len) { return (const envoy_config_overload_v3_ResourceMonitor* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+UPB_INLINE bool envoy_config_overload_v3_OverloadManager_has_actions(const envoy_config_overload_v3_OverloadManager *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(12, 24)); }
+UPB_INLINE const envoy_config_overload_v3_OverloadAction* const* envoy_config_overload_v3_OverloadManager_actions(const envoy_config_overload_v3_OverloadManager *msg, size_t *len) { return (const envoy_config_overload_v3_OverloadAction* const*)_upb_array_accessor(msg, UPB_SIZE(12, 24), len); }
+
+UPB_INLINE void envoy_config_overload_v3_OverloadManager_set_refresh_interval(envoy_config_overload_v3_OverloadManager *msg, struct google_protobuf_Duration* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct google_protobuf_Duration*) = value;
+}
+UPB_INLINE struct google_protobuf_Duration* envoy_config_overload_v3_OverloadManager_mutable_refresh_interval(envoy_config_overload_v3_OverloadManager *msg, upb_arena *arena) {
+ struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)envoy_config_overload_v3_OverloadManager_refresh_interval(msg);
+ if (sub == NULL) {
+ sub = (struct google_protobuf_Duration*)_upb_msg_new(&google_protobuf_Duration_msginit, arena);
+ if (!sub) return NULL;
+ envoy_config_overload_v3_OverloadManager_set_refresh_interval(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE envoy_config_overload_v3_ResourceMonitor** envoy_config_overload_v3_OverloadManager_mutable_resource_monitors(envoy_config_overload_v3_OverloadManager *msg, size_t *len) {
+ return (envoy_config_overload_v3_ResourceMonitor**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE envoy_config_overload_v3_ResourceMonitor** envoy_config_overload_v3_OverloadManager_resize_resource_monitors(envoy_config_overload_v3_OverloadManager *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_overload_v3_ResourceMonitor**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_overload_v3_ResourceMonitor* envoy_config_overload_v3_OverloadManager_add_resource_monitors(envoy_config_overload_v3_OverloadManager *msg, upb_arena *arena) {
+ struct envoy_config_overload_v3_ResourceMonitor* sub = (struct envoy_config_overload_v3_ResourceMonitor*)_upb_msg_new(&envoy_config_overload_v3_ResourceMonitor_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE envoy_config_overload_v3_OverloadAction** envoy_config_overload_v3_OverloadManager_mutable_actions(envoy_config_overload_v3_OverloadManager *msg, size_t *len) {
+ return (envoy_config_overload_v3_OverloadAction**)_upb_array_mutable_accessor(msg, UPB_SIZE(12, 24), len);
+}
+UPB_INLINE envoy_config_overload_v3_OverloadAction** envoy_config_overload_v3_OverloadManager_resize_actions(envoy_config_overload_v3_OverloadManager *msg, size_t len, upb_arena *arena) {
+ return (envoy_config_overload_v3_OverloadAction**)_upb_array_resize_accessor2(msg, UPB_SIZE(12, 24), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_config_overload_v3_OverloadAction* envoy_config_overload_v3_OverloadManager_add_actions(envoy_config_overload_v3_OverloadManager *msg, upb_arena *arena) {
+ struct envoy_config_overload_v3_OverloadAction* sub = (struct envoy_config_overload_v3_OverloadAction*)_upb_msg_new(&envoy_config_overload_v3_OverloadAction_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(12, 24), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_CONFIG_OVERLOAD_V3_OVERLOAD_PROTO_UPB_H_ */
diff --git a/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c b/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c
new file mode 100644
index 00000000000..40e086cba51
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c
@@ -0,0 +1,93 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/service/status/v3/csds.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include
+#include "upb/msg.h"
+#include "envoy/service/status/v3/csds.upb.h"
+#include "envoy/admin/v3/config_dump.upb.h"
+#include "envoy/config/core/v3/base.upb.h"
+#include "envoy/type/matcher/v3/node.upb.h"
+#include "google/api/annotations.upb.h"
+#include "udpa/annotations/migrate.upb.h"
+#include "udpa/annotations/status.upb.h"
+#include "udpa/annotations/versioning.upb.h"
+
+#include "upb/port_def.inc"
+
+static const upb_msglayout *const envoy_service_status_v3_ClientStatusRequest_submsgs[2] = {
+ &envoy_config_core_v3_Node_msginit,
+ &envoy_type_matcher_v3_NodeMatcher_msginit,
+};
+
+static const upb_msglayout_field envoy_service_status_v3_ClientStatusRequest__fields[2] = {
+ {1, UPB_SIZE(8, 16), 0, 1, 11, 3},
+ {2, UPB_SIZE(4, 8), 1, 0, 11, 1},
+};
+
+const upb_msglayout envoy_service_status_v3_ClientStatusRequest_msginit = {
+ &envoy_service_status_v3_ClientStatusRequest_submsgs[0],
+ &envoy_service_status_v3_ClientStatusRequest__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_service_status_v3_PerXdsConfig_submsgs[5] = {
+ &envoy_admin_v3_ClustersConfigDump_msginit,
+ &envoy_admin_v3_EndpointsConfigDump_msginit,
+ &envoy_admin_v3_ListenersConfigDump_msginit,
+ &envoy_admin_v3_RoutesConfigDump_msginit,
+ &envoy_admin_v3_ScopedRoutesConfigDump_msginit,
+};
+
+static const upb_msglayout_field envoy_service_status_v3_PerXdsConfig__fields[7] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 14, 1},
+ {2, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 2, 11, 1},
+ {3, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 0, 11, 1},
+ {4, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 3, 11, 1},
+ {5, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 4, 11, 1},
+ {6, UPB_SIZE(8, 8), UPB_SIZE(-13, -17), 1, 11, 1},
+ {7, UPB_SIZE(4, 4), 0, 0, 14, 1},
+};
+
+const upb_msglayout envoy_service_status_v3_PerXdsConfig_msginit = {
+ &envoy_service_status_v3_PerXdsConfig_submsgs[0],
+ &envoy_service_status_v3_PerXdsConfig__fields[0],
+ UPB_SIZE(16, 24), 7, false, 255,
+};
+
+static const upb_msglayout *const envoy_service_status_v3_ClientConfig_submsgs[2] = {
+ &envoy_config_core_v3_Node_msginit,
+ &envoy_service_status_v3_PerXdsConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_service_status_v3_ClientConfig__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 0, 1, 11, 3},
+};
+
+const upb_msglayout envoy_service_status_v3_ClientConfig_msginit = {
+ &envoy_service_status_v3_ClientConfig_submsgs[0],
+ &envoy_service_status_v3_ClientConfig__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout *const envoy_service_status_v3_ClientStatusResponse_submsgs[1] = {
+ &envoy_service_status_v3_ClientConfig_msginit,
+};
+
+static const upb_msglayout_field envoy_service_status_v3_ClientStatusResponse__fields[1] = {
+ {1, UPB_SIZE(0, 0), 0, 0, 11, 3},
+};
+
+const upb_msglayout envoy_service_status_v3_ClientStatusResponse_msginit = {
+ &envoy_service_status_v3_ClientStatusResponse_submsgs[0],
+ &envoy_service_status_v3_ClientStatusResponse__fields[0],
+ UPB_SIZE(8, 8), 1, false, 255,
+};
+
+#include "upb/port_undef.inc"
+
diff --git a/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h b/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h
new file mode 100644
index 00000000000..87f807cdf1a
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h
@@ -0,0 +1,323 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/service/status/v3/csds.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_SERVICE_STATUS_V3_CSDS_PROTO_UPB_H_
+#define ENVOY_SERVICE_STATUS_V3_CSDS_PROTO_UPB_H_
+
+#include "upb/msg.h"
+#include "upb/decode.h"
+#include "upb/decode_fast.h"
+#include "upb/encode.h"
+
+#include "upb/port_def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct envoy_service_status_v3_ClientStatusRequest;
+struct envoy_service_status_v3_PerXdsConfig;
+struct envoy_service_status_v3_ClientConfig;
+struct envoy_service_status_v3_ClientStatusResponse;
+typedef struct envoy_service_status_v3_ClientStatusRequest envoy_service_status_v3_ClientStatusRequest;
+typedef struct envoy_service_status_v3_PerXdsConfig envoy_service_status_v3_PerXdsConfig;
+typedef struct envoy_service_status_v3_ClientConfig envoy_service_status_v3_ClientConfig;
+typedef struct envoy_service_status_v3_ClientStatusResponse envoy_service_status_v3_ClientStatusResponse;
+extern const upb_msglayout envoy_service_status_v3_ClientStatusRequest_msginit;
+extern const upb_msglayout envoy_service_status_v3_PerXdsConfig_msginit;
+extern const upb_msglayout envoy_service_status_v3_ClientConfig_msginit;
+extern const upb_msglayout envoy_service_status_v3_ClientStatusResponse_msginit;
+struct envoy_admin_v3_ClustersConfigDump;
+struct envoy_admin_v3_EndpointsConfigDump;
+struct envoy_admin_v3_ListenersConfigDump;
+struct envoy_admin_v3_RoutesConfigDump;
+struct envoy_admin_v3_ScopedRoutesConfigDump;
+struct envoy_config_core_v3_Node;
+struct envoy_type_matcher_v3_NodeMatcher;
+extern const upb_msglayout envoy_admin_v3_ClustersConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_EndpointsConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_RoutesConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_msginit;
+extern const upb_msglayout envoy_config_core_v3_Node_msginit;
+extern const upb_msglayout envoy_type_matcher_v3_NodeMatcher_msginit;
+
+typedef enum {
+ envoy_service_status_v3_CLIENT_UNKNOWN = 0,
+ envoy_service_status_v3_CLIENT_REQUESTED = 1,
+ envoy_service_status_v3_CLIENT_ACKED = 2,
+ envoy_service_status_v3_CLIENT_NACKED = 3
+} envoy_service_status_v3_ClientConfigStatus;
+
+typedef enum {
+ envoy_service_status_v3_UNKNOWN = 0,
+ envoy_service_status_v3_SYNCED = 1,
+ envoy_service_status_v3_NOT_SENT = 2,
+ envoy_service_status_v3_STALE = 3,
+ envoy_service_status_v3_ERROR = 4
+} envoy_service_status_v3_ConfigStatus;
+
+
+/* envoy.service.status.v3.ClientStatusRequest */
+
+UPB_INLINE envoy_service_status_v3_ClientStatusRequest *envoy_service_status_v3_ClientStatusRequest_new(upb_arena *arena) {
+ return (envoy_service_status_v3_ClientStatusRequest *)_upb_msg_new(&envoy_service_status_v3_ClientStatusRequest_msginit, arena);
+}
+UPB_INLINE envoy_service_status_v3_ClientStatusRequest *envoy_service_status_v3_ClientStatusRequest_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_service_status_v3_ClientStatusRequest *ret = envoy_service_status_v3_ClientStatusRequest_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusRequest_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_service_status_v3_ClientStatusRequest *envoy_service_status_v3_ClientStatusRequest_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_service_status_v3_ClientStatusRequest *ret = envoy_service_status_v3_ClientStatusRequest_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusRequest_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_service_status_v3_ClientStatusRequest_serialize(const envoy_service_status_v3_ClientStatusRequest *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_service_status_v3_ClientStatusRequest_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_service_status_v3_ClientStatusRequest_has_node_matchers(const envoy_service_status_v3_ClientStatusRequest *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const struct envoy_type_matcher_v3_NodeMatcher* const* envoy_service_status_v3_ClientStatusRequest_node_matchers(const envoy_service_status_v3_ClientStatusRequest *msg, size_t *len) { return (const struct envoy_type_matcher_v3_NodeMatcher* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+UPB_INLINE bool envoy_service_status_v3_ClientStatusRequest_has_node(const envoy_service_status_v3_ClientStatusRequest *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_Node* envoy_service_status_v3_ClientStatusRequest_node(const envoy_service_status_v3_ClientStatusRequest *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct envoy_config_core_v3_Node*); }
+
+UPB_INLINE struct envoy_type_matcher_v3_NodeMatcher** envoy_service_status_v3_ClientStatusRequest_mutable_node_matchers(envoy_service_status_v3_ClientStatusRequest *msg, size_t *len) {
+ return (struct envoy_type_matcher_v3_NodeMatcher**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE struct envoy_type_matcher_v3_NodeMatcher** envoy_service_status_v3_ClientStatusRequest_resize_node_matchers(envoy_service_status_v3_ClientStatusRequest *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_type_matcher_v3_NodeMatcher**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_type_matcher_v3_NodeMatcher* envoy_service_status_v3_ClientStatusRequest_add_node_matchers(envoy_service_status_v3_ClientStatusRequest *msg, upb_arena *arena) {
+ struct envoy_type_matcher_v3_NodeMatcher* sub = (struct envoy_type_matcher_v3_NodeMatcher*)_upb_msg_new(&envoy_type_matcher_v3_NodeMatcher_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_service_status_v3_ClientStatusRequest_set_node(envoy_service_status_v3_ClientStatusRequest *msg, struct envoy_config_core_v3_Node* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct envoy_config_core_v3_Node*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_Node* envoy_service_status_v3_ClientStatusRequest_mutable_node(envoy_service_status_v3_ClientStatusRequest *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_Node* sub = (struct envoy_config_core_v3_Node*)envoy_service_status_v3_ClientStatusRequest_node(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Node*)_upb_msg_new(&envoy_config_core_v3_Node_msginit, arena);
+ if (!sub) return NULL;
+ envoy_service_status_v3_ClientStatusRequest_set_node(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.service.status.v3.PerXdsConfig */
+
+UPB_INLINE envoy_service_status_v3_PerXdsConfig *envoy_service_status_v3_PerXdsConfig_new(upb_arena *arena) {
+ return (envoy_service_status_v3_PerXdsConfig *)_upb_msg_new(&envoy_service_status_v3_PerXdsConfig_msginit, arena);
+}
+UPB_INLINE envoy_service_status_v3_PerXdsConfig *envoy_service_status_v3_PerXdsConfig_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_service_status_v3_PerXdsConfig *ret = envoy_service_status_v3_PerXdsConfig_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_PerXdsConfig_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_service_status_v3_PerXdsConfig *envoy_service_status_v3_PerXdsConfig_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_service_status_v3_PerXdsConfig *ret = envoy_service_status_v3_PerXdsConfig_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_PerXdsConfig_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_service_status_v3_PerXdsConfig_serialize(const envoy_service_status_v3_PerXdsConfig *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_service_status_v3_PerXdsConfig_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_service_status_v3_PerXdsConfig_per_xds_config_listener_config = 2,
+ envoy_service_status_v3_PerXdsConfig_per_xds_config_cluster_config = 3,
+ envoy_service_status_v3_PerXdsConfig_per_xds_config_route_config = 4,
+ envoy_service_status_v3_PerXdsConfig_per_xds_config_scoped_route_config = 5,
+ envoy_service_status_v3_PerXdsConfig_per_xds_config_endpoint_config = 6,
+ envoy_service_status_v3_PerXdsConfig_per_xds_config_NOT_SET = 0
+} envoy_service_status_v3_PerXdsConfig_per_xds_config_oneofcases;
+UPB_INLINE envoy_service_status_v3_PerXdsConfig_per_xds_config_oneofcases envoy_service_status_v3_PerXdsConfig_per_xds_config_case(const envoy_service_status_v3_PerXdsConfig* msg) { return (envoy_service_status_v3_PerXdsConfig_per_xds_config_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(12, 16), int32_t); }
+
+UPB_INLINE int32_t envoy_service_status_v3_PerXdsConfig_status(const envoy_service_status_v3_PerXdsConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(0, 0), int32_t); }
+UPB_INLINE bool envoy_service_status_v3_PerXdsConfig_has_listener_config(const envoy_service_status_v3_PerXdsConfig *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 16)) == 2; }
+UPB_INLINE const struct envoy_admin_v3_ListenersConfigDump* envoy_service_status_v3_PerXdsConfig_listener_config(const envoy_service_status_v3_PerXdsConfig *msg) { return UPB_READ_ONEOF(msg, const struct envoy_admin_v3_ListenersConfigDump*, UPB_SIZE(8, 8), UPB_SIZE(12, 16), 2, NULL); }
+UPB_INLINE bool envoy_service_status_v3_PerXdsConfig_has_cluster_config(const envoy_service_status_v3_PerXdsConfig *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 16)) == 3; }
+UPB_INLINE const struct envoy_admin_v3_ClustersConfigDump* envoy_service_status_v3_PerXdsConfig_cluster_config(const envoy_service_status_v3_PerXdsConfig *msg) { return UPB_READ_ONEOF(msg, const struct envoy_admin_v3_ClustersConfigDump*, UPB_SIZE(8, 8), UPB_SIZE(12, 16), 3, NULL); }
+UPB_INLINE bool envoy_service_status_v3_PerXdsConfig_has_route_config(const envoy_service_status_v3_PerXdsConfig *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 16)) == 4; }
+UPB_INLINE const struct envoy_admin_v3_RoutesConfigDump* envoy_service_status_v3_PerXdsConfig_route_config(const envoy_service_status_v3_PerXdsConfig *msg) { return UPB_READ_ONEOF(msg, const struct envoy_admin_v3_RoutesConfigDump*, UPB_SIZE(8, 8), UPB_SIZE(12, 16), 4, NULL); }
+UPB_INLINE bool envoy_service_status_v3_PerXdsConfig_has_scoped_route_config(const envoy_service_status_v3_PerXdsConfig *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 16)) == 5; }
+UPB_INLINE const struct envoy_admin_v3_ScopedRoutesConfigDump* envoy_service_status_v3_PerXdsConfig_scoped_route_config(const envoy_service_status_v3_PerXdsConfig *msg) { return UPB_READ_ONEOF(msg, const struct envoy_admin_v3_ScopedRoutesConfigDump*, UPB_SIZE(8, 8), UPB_SIZE(12, 16), 5, NULL); }
+UPB_INLINE bool envoy_service_status_v3_PerXdsConfig_has_endpoint_config(const envoy_service_status_v3_PerXdsConfig *msg) { return _upb_getoneofcase(msg, UPB_SIZE(12, 16)) == 6; }
+UPB_INLINE const struct envoy_admin_v3_EndpointsConfigDump* envoy_service_status_v3_PerXdsConfig_endpoint_config(const envoy_service_status_v3_PerXdsConfig *msg) { return UPB_READ_ONEOF(msg, const struct envoy_admin_v3_EndpointsConfigDump*, UPB_SIZE(8, 8), UPB_SIZE(12, 16), 6, NULL); }
+UPB_INLINE int32_t envoy_service_status_v3_PerXdsConfig_client_status(const envoy_service_status_v3_PerXdsConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t); }
+
+UPB_INLINE void envoy_service_status_v3_PerXdsConfig_set_status(envoy_service_status_v3_PerXdsConfig *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(0, 0), int32_t) = value;
+}
+UPB_INLINE void envoy_service_status_v3_PerXdsConfig_set_listener_config(envoy_service_status_v3_PerXdsConfig *msg, struct envoy_admin_v3_ListenersConfigDump* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_admin_v3_ListenersConfigDump*, UPB_SIZE(8, 8), value, UPB_SIZE(12, 16), 2);
+}
+UPB_INLINE struct envoy_admin_v3_ListenersConfigDump* envoy_service_status_v3_PerXdsConfig_mutable_listener_config(envoy_service_status_v3_PerXdsConfig *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ListenersConfigDump* sub = (struct envoy_admin_v3_ListenersConfigDump*)envoy_service_status_v3_PerXdsConfig_listener_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_ListenersConfigDump*)_upb_msg_new(&envoy_admin_v3_ListenersConfigDump_msginit, arena);
+ if (!sub) return NULL;
+ envoy_service_status_v3_PerXdsConfig_set_listener_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_service_status_v3_PerXdsConfig_set_cluster_config(envoy_service_status_v3_PerXdsConfig *msg, struct envoy_admin_v3_ClustersConfigDump* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_admin_v3_ClustersConfigDump*, UPB_SIZE(8, 8), value, UPB_SIZE(12, 16), 3);
+}
+UPB_INLINE struct envoy_admin_v3_ClustersConfigDump* envoy_service_status_v3_PerXdsConfig_mutable_cluster_config(envoy_service_status_v3_PerXdsConfig *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ClustersConfigDump* sub = (struct envoy_admin_v3_ClustersConfigDump*)envoy_service_status_v3_PerXdsConfig_cluster_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_ClustersConfigDump*)_upb_msg_new(&envoy_admin_v3_ClustersConfigDump_msginit, arena);
+ if (!sub) return NULL;
+ envoy_service_status_v3_PerXdsConfig_set_cluster_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_service_status_v3_PerXdsConfig_set_route_config(envoy_service_status_v3_PerXdsConfig *msg, struct envoy_admin_v3_RoutesConfigDump* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_admin_v3_RoutesConfigDump*, UPB_SIZE(8, 8), value, UPB_SIZE(12, 16), 4);
+}
+UPB_INLINE struct envoy_admin_v3_RoutesConfigDump* envoy_service_status_v3_PerXdsConfig_mutable_route_config(envoy_service_status_v3_PerXdsConfig *msg, upb_arena *arena) {
+ struct envoy_admin_v3_RoutesConfigDump* sub = (struct envoy_admin_v3_RoutesConfigDump*)envoy_service_status_v3_PerXdsConfig_route_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_RoutesConfigDump*)_upb_msg_new(&envoy_admin_v3_RoutesConfigDump_msginit, arena);
+ if (!sub) return NULL;
+ envoy_service_status_v3_PerXdsConfig_set_route_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_service_status_v3_PerXdsConfig_set_scoped_route_config(envoy_service_status_v3_PerXdsConfig *msg, struct envoy_admin_v3_ScopedRoutesConfigDump* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_admin_v3_ScopedRoutesConfigDump*, UPB_SIZE(8, 8), value, UPB_SIZE(12, 16), 5);
+}
+UPB_INLINE struct envoy_admin_v3_ScopedRoutesConfigDump* envoy_service_status_v3_PerXdsConfig_mutable_scoped_route_config(envoy_service_status_v3_PerXdsConfig *msg, upb_arena *arena) {
+ struct envoy_admin_v3_ScopedRoutesConfigDump* sub = (struct envoy_admin_v3_ScopedRoutesConfigDump*)envoy_service_status_v3_PerXdsConfig_scoped_route_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_ScopedRoutesConfigDump*)_upb_msg_new(&envoy_admin_v3_ScopedRoutesConfigDump_msginit, arena);
+ if (!sub) return NULL;
+ envoy_service_status_v3_PerXdsConfig_set_scoped_route_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_service_status_v3_PerXdsConfig_set_endpoint_config(envoy_service_status_v3_PerXdsConfig *msg, struct envoy_admin_v3_EndpointsConfigDump* value) {
+ UPB_WRITE_ONEOF(msg, struct envoy_admin_v3_EndpointsConfigDump*, UPB_SIZE(8, 8), value, UPB_SIZE(12, 16), 6);
+}
+UPB_INLINE struct envoy_admin_v3_EndpointsConfigDump* envoy_service_status_v3_PerXdsConfig_mutable_endpoint_config(envoy_service_status_v3_PerXdsConfig *msg, upb_arena *arena) {
+ struct envoy_admin_v3_EndpointsConfigDump* sub = (struct envoy_admin_v3_EndpointsConfigDump*)envoy_service_status_v3_PerXdsConfig_endpoint_config(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_admin_v3_EndpointsConfigDump*)_upb_msg_new(&envoy_admin_v3_EndpointsConfigDump_msginit, arena);
+ if (!sub) return NULL;
+ envoy_service_status_v3_PerXdsConfig_set_endpoint_config(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE void envoy_service_status_v3_PerXdsConfig_set_client_status(envoy_service_status_v3_PerXdsConfig *msg, int32_t value) {
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 4), int32_t) = value;
+}
+
+/* envoy.service.status.v3.ClientConfig */
+
+UPB_INLINE envoy_service_status_v3_ClientConfig *envoy_service_status_v3_ClientConfig_new(upb_arena *arena) {
+ return (envoy_service_status_v3_ClientConfig *)_upb_msg_new(&envoy_service_status_v3_ClientConfig_msginit, arena);
+}
+UPB_INLINE envoy_service_status_v3_ClientConfig *envoy_service_status_v3_ClientConfig_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_service_status_v3_ClientConfig *ret = envoy_service_status_v3_ClientConfig_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_service_status_v3_ClientConfig *envoy_service_status_v3_ClientConfig_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_service_status_v3_ClientConfig *ret = envoy_service_status_v3_ClientConfig_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_ClientConfig_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_service_status_v3_ClientConfig_serialize(const envoy_service_status_v3_ClientConfig *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_service_status_v3_ClientConfig_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_service_status_v3_ClientConfig_has_node(const envoy_service_status_v3_ClientConfig *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_config_core_v3_Node* envoy_service_status_v3_ClientConfig_node(const envoy_service_status_v3_ClientConfig *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct envoy_config_core_v3_Node*); }
+UPB_INLINE bool envoy_service_status_v3_ClientConfig_has_xds_config(const envoy_service_status_v3_ClientConfig *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const envoy_service_status_v3_PerXdsConfig* const* envoy_service_status_v3_ClientConfig_xds_config(const envoy_service_status_v3_ClientConfig *msg, size_t *len) { return (const envoy_service_status_v3_PerXdsConfig* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+
+UPB_INLINE void envoy_service_status_v3_ClientConfig_set_node(envoy_service_status_v3_ClientConfig *msg, struct envoy_config_core_v3_Node* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct envoy_config_core_v3_Node*) = value;
+}
+UPB_INLINE struct envoy_config_core_v3_Node* envoy_service_status_v3_ClientConfig_mutable_node(envoy_service_status_v3_ClientConfig *msg, upb_arena *arena) {
+ struct envoy_config_core_v3_Node* sub = (struct envoy_config_core_v3_Node*)envoy_service_status_v3_ClientConfig_node(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_config_core_v3_Node*)_upb_msg_new(&envoy_config_core_v3_Node_msginit, arena);
+ if (!sub) return NULL;
+ envoy_service_status_v3_ClientConfig_set_node(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE envoy_service_status_v3_PerXdsConfig** envoy_service_status_v3_ClientConfig_mutable_xds_config(envoy_service_status_v3_ClientConfig *msg, size_t *len) {
+ return (envoy_service_status_v3_PerXdsConfig**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE envoy_service_status_v3_PerXdsConfig** envoy_service_status_v3_ClientConfig_resize_xds_config(envoy_service_status_v3_ClientConfig *msg, size_t len, upb_arena *arena) {
+ return (envoy_service_status_v3_PerXdsConfig**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_service_status_v3_PerXdsConfig* envoy_service_status_v3_ClientConfig_add_xds_config(envoy_service_status_v3_ClientConfig *msg, upb_arena *arena) {
+ struct envoy_service_status_v3_PerXdsConfig* sub = (struct envoy_service_status_v3_PerXdsConfig*)_upb_msg_new(&envoy_service_status_v3_PerXdsConfig_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+/* envoy.service.status.v3.ClientStatusResponse */
+
+UPB_INLINE envoy_service_status_v3_ClientStatusResponse *envoy_service_status_v3_ClientStatusResponse_new(upb_arena *arena) {
+ return (envoy_service_status_v3_ClientStatusResponse *)_upb_msg_new(&envoy_service_status_v3_ClientStatusResponse_msginit, arena);
+}
+UPB_INLINE envoy_service_status_v3_ClientStatusResponse *envoy_service_status_v3_ClientStatusResponse_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_service_status_v3_ClientStatusResponse *ret = envoy_service_status_v3_ClientStatusResponse_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusResponse_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_service_status_v3_ClientStatusResponse *envoy_service_status_v3_ClientStatusResponse_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_service_status_v3_ClientStatusResponse *ret = envoy_service_status_v3_ClientStatusResponse_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_service_status_v3_ClientStatusResponse_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_service_status_v3_ClientStatusResponse_serialize(const envoy_service_status_v3_ClientStatusResponse *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_service_status_v3_ClientStatusResponse_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_service_status_v3_ClientStatusResponse_has_config(const envoy_service_status_v3_ClientStatusResponse *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(0, 0)); }
+UPB_INLINE const envoy_service_status_v3_ClientConfig* const* envoy_service_status_v3_ClientStatusResponse_config(const envoy_service_status_v3_ClientStatusResponse *msg, size_t *len) { return (const envoy_service_status_v3_ClientConfig* const*)_upb_array_accessor(msg, UPB_SIZE(0, 0), len); }
+
+UPB_INLINE envoy_service_status_v3_ClientConfig** envoy_service_status_v3_ClientStatusResponse_mutable_config(envoy_service_status_v3_ClientStatusResponse *msg, size_t *len) {
+ return (envoy_service_status_v3_ClientConfig**)_upb_array_mutable_accessor(msg, UPB_SIZE(0, 0), len);
+}
+UPB_INLINE envoy_service_status_v3_ClientConfig** envoy_service_status_v3_ClientStatusResponse_resize_config(envoy_service_status_v3_ClientStatusResponse *msg, size_t len, upb_arena *arena) {
+ return (envoy_service_status_v3_ClientConfig**)_upb_array_resize_accessor2(msg, UPB_SIZE(0, 0), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_service_status_v3_ClientConfig* envoy_service_status_v3_ClientStatusResponse_add_config(envoy_service_status_v3_ClientStatusResponse *msg, upb_arena *arena) {
+ struct envoy_service_status_v3_ClientConfig* sub = (struct envoy_service_status_v3_ClientConfig*)_upb_msg_new(&envoy_service_status_v3_ClientConfig_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(0, 0), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_SERVICE_STATUS_V3_CSDS_PROTO_UPB_H_ */
diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c
new file mode 100644
index 00000000000..8ef51fb91ec
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c
@@ -0,0 +1,36 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/type/matcher/v3/node.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include
+#include "upb/msg.h"
+#include "envoy/type/matcher/v3/node.upb.h"
+#include "envoy/type/matcher/v3/string.upb.h"
+#include "envoy/type/matcher/v3/struct.upb.h"
+#include "udpa/annotations/status.upb.h"
+#include "udpa/annotations/versioning.upb.h"
+
+#include "upb/port_def.inc"
+
+static const upb_msglayout *const envoy_type_matcher_v3_NodeMatcher_submsgs[2] = {
+ &envoy_type_matcher_v3_StringMatcher_msginit,
+ &envoy_type_matcher_v3_StructMatcher_msginit,
+};
+
+static const upb_msglayout_field envoy_type_matcher_v3_NodeMatcher__fields[2] = {
+ {1, UPB_SIZE(4, 8), 1, 0, 11, 1},
+ {2, UPB_SIZE(8, 16), 0, 1, 11, 3},
+};
+
+const upb_msglayout envoy_type_matcher_v3_NodeMatcher_msginit = {
+ &envoy_type_matcher_v3_NodeMatcher_submsgs[0],
+ &envoy_type_matcher_v3_NodeMatcher__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+#include "upb/port_undef.inc"
+
diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h
new file mode 100644
index 00000000000..94e2257fdfc
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h
@@ -0,0 +1,90 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/type/matcher/v3/node.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_TYPE_MATCHER_V3_NODE_PROTO_UPB_H_
+#define ENVOY_TYPE_MATCHER_V3_NODE_PROTO_UPB_H_
+
+#include "upb/msg.h"
+#include "upb/decode.h"
+#include "upb/decode_fast.h"
+#include "upb/encode.h"
+
+#include "upb/port_def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct envoy_type_matcher_v3_NodeMatcher;
+typedef struct envoy_type_matcher_v3_NodeMatcher envoy_type_matcher_v3_NodeMatcher;
+extern const upb_msglayout envoy_type_matcher_v3_NodeMatcher_msginit;
+struct envoy_type_matcher_v3_StringMatcher;
+struct envoy_type_matcher_v3_StructMatcher;
+extern const upb_msglayout envoy_type_matcher_v3_StringMatcher_msginit;
+extern const upb_msglayout envoy_type_matcher_v3_StructMatcher_msginit;
+
+
+/* envoy.type.matcher.v3.NodeMatcher */
+
+UPB_INLINE envoy_type_matcher_v3_NodeMatcher *envoy_type_matcher_v3_NodeMatcher_new(upb_arena *arena) {
+ return (envoy_type_matcher_v3_NodeMatcher *)_upb_msg_new(&envoy_type_matcher_v3_NodeMatcher_msginit, arena);
+}
+UPB_INLINE envoy_type_matcher_v3_NodeMatcher *envoy_type_matcher_v3_NodeMatcher_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_type_matcher_v3_NodeMatcher *ret = envoy_type_matcher_v3_NodeMatcher_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_NodeMatcher_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_type_matcher_v3_NodeMatcher *envoy_type_matcher_v3_NodeMatcher_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_type_matcher_v3_NodeMatcher *ret = envoy_type_matcher_v3_NodeMatcher_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_NodeMatcher_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_type_matcher_v3_NodeMatcher_serialize(const envoy_type_matcher_v3_NodeMatcher *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_type_matcher_v3_NodeMatcher_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_type_matcher_v3_NodeMatcher_has_node_id(const envoy_type_matcher_v3_NodeMatcher *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_type_matcher_v3_StringMatcher* envoy_type_matcher_v3_NodeMatcher_node_id(const envoy_type_matcher_v3_NodeMatcher *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct envoy_type_matcher_v3_StringMatcher*); }
+UPB_INLINE bool envoy_type_matcher_v3_NodeMatcher_has_node_metadatas(const envoy_type_matcher_v3_NodeMatcher *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const struct envoy_type_matcher_v3_StructMatcher* const* envoy_type_matcher_v3_NodeMatcher_node_metadatas(const envoy_type_matcher_v3_NodeMatcher *msg, size_t *len) { return (const struct envoy_type_matcher_v3_StructMatcher* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+
+UPB_INLINE void envoy_type_matcher_v3_NodeMatcher_set_node_id(envoy_type_matcher_v3_NodeMatcher *msg, struct envoy_type_matcher_v3_StringMatcher* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct envoy_type_matcher_v3_StringMatcher*) = value;
+}
+UPB_INLINE struct envoy_type_matcher_v3_StringMatcher* envoy_type_matcher_v3_NodeMatcher_mutable_node_id(envoy_type_matcher_v3_NodeMatcher *msg, upb_arena *arena) {
+ struct envoy_type_matcher_v3_StringMatcher* sub = (struct envoy_type_matcher_v3_StringMatcher*)envoy_type_matcher_v3_NodeMatcher_node_id(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_type_matcher_v3_StringMatcher*)_upb_msg_new(&envoy_type_matcher_v3_StringMatcher_msginit, arena);
+ if (!sub) return NULL;
+ envoy_type_matcher_v3_NodeMatcher_set_node_id(msg, sub);
+ }
+ return sub;
+}
+UPB_INLINE struct envoy_type_matcher_v3_StructMatcher** envoy_type_matcher_v3_NodeMatcher_mutable_node_metadatas(envoy_type_matcher_v3_NodeMatcher *msg, size_t *len) {
+ return (struct envoy_type_matcher_v3_StructMatcher**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE struct envoy_type_matcher_v3_StructMatcher** envoy_type_matcher_v3_NodeMatcher_resize_node_metadatas(envoy_type_matcher_v3_NodeMatcher *msg, size_t len, upb_arena *arena) {
+ return (struct envoy_type_matcher_v3_StructMatcher**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_type_matcher_v3_StructMatcher* envoy_type_matcher_v3_NodeMatcher_add_node_metadatas(envoy_type_matcher_v3_NodeMatcher *msg, upb_arena *arena) {
+ struct envoy_type_matcher_v3_StructMatcher* sub = (struct envoy_type_matcher_v3_StructMatcher*)_upb_msg_new(&envoy_type_matcher_v3_StructMatcher_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_TYPE_MATCHER_V3_NODE_PROTO_UPB_H_ */
diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c b/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c
new file mode 100644
index 00000000000..05ea6a3ffcb
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c
@@ -0,0 +1,46 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/type/matcher/v3/struct.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include
+#include "upb/msg.h"
+#include "envoy/type/matcher/v3/struct.upb.h"
+#include "envoy/type/matcher/v3/value.upb.h"
+#include "udpa/annotations/status.upb.h"
+#include "udpa/annotations/versioning.upb.h"
+#include "validate/validate.upb.h"
+
+#include "upb/port_def.inc"
+
+static const upb_msglayout *const envoy_type_matcher_v3_StructMatcher_submsgs[2] = {
+ &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit,
+ &envoy_type_matcher_v3_ValueMatcher_msginit,
+};
+
+static const upb_msglayout_field envoy_type_matcher_v3_StructMatcher__fields[2] = {
+ {2, UPB_SIZE(8, 16), 0, 0, 11, 3},
+ {3, UPB_SIZE(4, 8), 1, 1, 11, 1},
+};
+
+const upb_msglayout envoy_type_matcher_v3_StructMatcher_msginit = {
+ &envoy_type_matcher_v3_StructMatcher_submsgs[0],
+ &envoy_type_matcher_v3_StructMatcher__fields[0],
+ UPB_SIZE(16, 24), 2, false, 255,
+};
+
+static const upb_msglayout_field envoy_type_matcher_v3_StructMatcher_PathSegment__fields[1] = {
+ {1, UPB_SIZE(0, 0), UPB_SIZE(-9, -17), 0, 9, 1},
+};
+
+const upb_msglayout envoy_type_matcher_v3_StructMatcher_PathSegment_msginit = {
+ NULL,
+ &envoy_type_matcher_v3_StructMatcher_PathSegment__fields[0],
+ UPB_SIZE(16, 32), 1, false, 255,
+};
+
+#include "upb/port_undef.inc"
+
diff --git a/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h b/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h
new file mode 100644
index 00000000000..53e521385de
--- /dev/null
+++ b/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h
@@ -0,0 +1,124 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/type/matcher/v3/struct.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_TYPE_MATCHER_V3_STRUCT_PROTO_UPB_H_
+#define ENVOY_TYPE_MATCHER_V3_STRUCT_PROTO_UPB_H_
+
+#include "upb/msg.h"
+#include "upb/decode.h"
+#include "upb/decode_fast.h"
+#include "upb/encode.h"
+
+#include "upb/port_def.inc"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct envoy_type_matcher_v3_StructMatcher;
+struct envoy_type_matcher_v3_StructMatcher_PathSegment;
+typedef struct envoy_type_matcher_v3_StructMatcher envoy_type_matcher_v3_StructMatcher;
+typedef struct envoy_type_matcher_v3_StructMatcher_PathSegment envoy_type_matcher_v3_StructMatcher_PathSegment;
+extern const upb_msglayout envoy_type_matcher_v3_StructMatcher_msginit;
+extern const upb_msglayout envoy_type_matcher_v3_StructMatcher_PathSegment_msginit;
+struct envoy_type_matcher_v3_ValueMatcher;
+extern const upb_msglayout envoy_type_matcher_v3_ValueMatcher_msginit;
+
+
+/* envoy.type.matcher.v3.StructMatcher */
+
+UPB_INLINE envoy_type_matcher_v3_StructMatcher *envoy_type_matcher_v3_StructMatcher_new(upb_arena *arena) {
+ return (envoy_type_matcher_v3_StructMatcher *)_upb_msg_new(&envoy_type_matcher_v3_StructMatcher_msginit, arena);
+}
+UPB_INLINE envoy_type_matcher_v3_StructMatcher *envoy_type_matcher_v3_StructMatcher_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_type_matcher_v3_StructMatcher *ret = envoy_type_matcher_v3_StructMatcher_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_type_matcher_v3_StructMatcher *envoy_type_matcher_v3_StructMatcher_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_type_matcher_v3_StructMatcher *ret = envoy_type_matcher_v3_StructMatcher_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_type_matcher_v3_StructMatcher_serialize(const envoy_type_matcher_v3_StructMatcher *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_type_matcher_v3_StructMatcher_msginit, arena, len);
+}
+
+UPB_INLINE bool envoy_type_matcher_v3_StructMatcher_has_path(const envoy_type_matcher_v3_StructMatcher *msg) { return _upb_has_submsg_nohasbit(msg, UPB_SIZE(8, 16)); }
+UPB_INLINE const envoy_type_matcher_v3_StructMatcher_PathSegment* const* envoy_type_matcher_v3_StructMatcher_path(const envoy_type_matcher_v3_StructMatcher *msg, size_t *len) { return (const envoy_type_matcher_v3_StructMatcher_PathSegment* const*)_upb_array_accessor(msg, UPB_SIZE(8, 16), len); }
+UPB_INLINE bool envoy_type_matcher_v3_StructMatcher_has_value(const envoy_type_matcher_v3_StructMatcher *msg) { return _upb_hasbit(msg, 1); }
+UPB_INLINE const struct envoy_type_matcher_v3_ValueMatcher* envoy_type_matcher_v3_StructMatcher_value(const envoy_type_matcher_v3_StructMatcher *msg) { return *UPB_PTR_AT(msg, UPB_SIZE(4, 8), const struct envoy_type_matcher_v3_ValueMatcher*); }
+
+UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment** envoy_type_matcher_v3_StructMatcher_mutable_path(envoy_type_matcher_v3_StructMatcher *msg, size_t *len) {
+ return (envoy_type_matcher_v3_StructMatcher_PathSegment**)_upb_array_mutable_accessor(msg, UPB_SIZE(8, 16), len);
+}
+UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment** envoy_type_matcher_v3_StructMatcher_resize_path(envoy_type_matcher_v3_StructMatcher *msg, size_t len, upb_arena *arena) {
+ return (envoy_type_matcher_v3_StructMatcher_PathSegment**)_upb_array_resize_accessor2(msg, UPB_SIZE(8, 16), len, UPB_SIZE(2, 3), arena);
+}
+UPB_INLINE struct envoy_type_matcher_v3_StructMatcher_PathSegment* envoy_type_matcher_v3_StructMatcher_add_path(envoy_type_matcher_v3_StructMatcher *msg, upb_arena *arena) {
+ struct envoy_type_matcher_v3_StructMatcher_PathSegment* sub = (struct envoy_type_matcher_v3_StructMatcher_PathSegment*)_upb_msg_new(&envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena);
+ bool ok = _upb_array_append_accessor2(
+ msg, UPB_SIZE(8, 16), UPB_SIZE(2, 3), &sub, arena);
+ if (!ok) return NULL;
+ return sub;
+}
+UPB_INLINE void envoy_type_matcher_v3_StructMatcher_set_value(envoy_type_matcher_v3_StructMatcher *msg, struct envoy_type_matcher_v3_ValueMatcher* value) {
+ _upb_sethas(msg, 1);
+ *UPB_PTR_AT(msg, UPB_SIZE(4, 8), struct envoy_type_matcher_v3_ValueMatcher*) = value;
+}
+UPB_INLINE struct envoy_type_matcher_v3_ValueMatcher* envoy_type_matcher_v3_StructMatcher_mutable_value(envoy_type_matcher_v3_StructMatcher *msg, upb_arena *arena) {
+ struct envoy_type_matcher_v3_ValueMatcher* sub = (struct envoy_type_matcher_v3_ValueMatcher*)envoy_type_matcher_v3_StructMatcher_value(msg);
+ if (sub == NULL) {
+ sub = (struct envoy_type_matcher_v3_ValueMatcher*)_upb_msg_new(&envoy_type_matcher_v3_ValueMatcher_msginit, arena);
+ if (!sub) return NULL;
+ envoy_type_matcher_v3_StructMatcher_set_value(msg, sub);
+ }
+ return sub;
+}
+
+/* envoy.type.matcher.v3.StructMatcher.PathSegment */
+
+UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment *envoy_type_matcher_v3_StructMatcher_PathSegment_new(upb_arena *arena) {
+ return (envoy_type_matcher_v3_StructMatcher_PathSegment *)_upb_msg_new(&envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena);
+}
+UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment *envoy_type_matcher_v3_StructMatcher_PathSegment_parse(const char *buf, size_t size,
+ upb_arena *arena) {
+ envoy_type_matcher_v3_StructMatcher_PathSegment *ret = envoy_type_matcher_v3_StructMatcher_PathSegment_new(arena);
+ return (ret && upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena)) ? ret : NULL;
+}
+UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment *envoy_type_matcher_v3_StructMatcher_PathSegment_parse_ex(const char *buf, size_t size,
+ upb_arena *arena, int options) {
+ envoy_type_matcher_v3_StructMatcher_PathSegment *ret = envoy_type_matcher_v3_StructMatcher_PathSegment_new(arena);
+ return (ret && _upb_decode(buf, size, ret, &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena, options))
+ ? ret : NULL;
+}
+UPB_INLINE char *envoy_type_matcher_v3_StructMatcher_PathSegment_serialize(const envoy_type_matcher_v3_StructMatcher_PathSegment *msg, upb_arena *arena, size_t *len) {
+ return upb_encode(msg, &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit, arena, len);
+}
+
+typedef enum {
+ envoy_type_matcher_v3_StructMatcher_PathSegment_segment_key = 1,
+ envoy_type_matcher_v3_StructMatcher_PathSegment_segment_NOT_SET = 0
+} envoy_type_matcher_v3_StructMatcher_PathSegment_segment_oneofcases;
+UPB_INLINE envoy_type_matcher_v3_StructMatcher_PathSegment_segment_oneofcases envoy_type_matcher_v3_StructMatcher_PathSegment_segment_case(const envoy_type_matcher_v3_StructMatcher_PathSegment* msg) { return (envoy_type_matcher_v3_StructMatcher_PathSegment_segment_oneofcases)*UPB_PTR_AT(msg, UPB_SIZE(8, 16), int32_t); }
+
+UPB_INLINE bool envoy_type_matcher_v3_StructMatcher_PathSegment_has_key(const envoy_type_matcher_v3_StructMatcher_PathSegment *msg) { return _upb_getoneofcase(msg, UPB_SIZE(8, 16)) == 1; }
+UPB_INLINE upb_strview envoy_type_matcher_v3_StructMatcher_PathSegment_key(const envoy_type_matcher_v3_StructMatcher_PathSegment *msg) { return UPB_READ_ONEOF(msg, upb_strview, UPB_SIZE(0, 0), UPB_SIZE(8, 16), 1, upb_strview_make("", strlen(""))); }
+
+UPB_INLINE void envoy_type_matcher_v3_StructMatcher_PathSegment_set_key(envoy_type_matcher_v3_StructMatcher_PathSegment *msg, upb_strview value) {
+ UPB_WRITE_ONEOF(msg, upb_strview, UPB_SIZE(0, 0), value, UPB_SIZE(8, 16), 1);
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_TYPE_MATCHER_V3_STRUCT_PROTO_UPB_H_ */
diff --git a/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c b/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c
new file mode 100644
index 00000000000..8418d1e9284
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c
@@ -0,0 +1,354 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/admin/v3/config_dump.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include "upb/def.h"
+#include "envoy/admin/v3/config_dump.upbdefs.h"
+
+extern upb_def_init envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit;
+extern upb_def_init google_protobuf_any_proto_upbdefinit;
+extern upb_def_init google_protobuf_timestamp_proto_upbdefinit;
+extern upb_def_init udpa_annotations_status_proto_upbdefinit;
+extern upb_def_init udpa_annotations_versioning_proto_upbdefinit;
+extern const upb_msglayout envoy_admin_v3_ConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_UpdateFailureState_msginit;
+extern const upb_msglayout envoy_admin_v3_BootstrapConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_StaticListener_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit;
+extern const upb_msglayout envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit;
+extern const upb_msglayout envoy_admin_v3_ClustersConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit;
+extern const upb_msglayout envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit;
+extern const upb_msglayout envoy_admin_v3_RoutesConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit;
+extern const upb_msglayout envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit;
+extern const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit;
+extern const upb_msglayout envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit;
+extern const upb_msglayout envoy_admin_v3_SecretsConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit;
+extern const upb_msglayout envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit;
+extern const upb_msglayout envoy_admin_v3_EndpointsConfigDump_msginit;
+extern const upb_msglayout envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit;
+extern const upb_msglayout envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit;
+
+static const upb_msglayout *layouts[22] = {
+ &envoy_admin_v3_ConfigDump_msginit,
+ &envoy_admin_v3_UpdateFailureState_msginit,
+ &envoy_admin_v3_BootstrapConfigDump_msginit,
+ &envoy_admin_v3_ListenersConfigDump_msginit,
+ &envoy_admin_v3_ListenersConfigDump_StaticListener_msginit,
+ &envoy_admin_v3_ListenersConfigDump_DynamicListenerState_msginit,
+ &envoy_admin_v3_ListenersConfigDump_DynamicListener_msginit,
+ &envoy_admin_v3_ClustersConfigDump_msginit,
+ &envoy_admin_v3_ClustersConfigDump_StaticCluster_msginit,
+ &envoy_admin_v3_ClustersConfigDump_DynamicCluster_msginit,
+ &envoy_admin_v3_RoutesConfigDump_msginit,
+ &envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_msginit,
+ &envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_msginit,
+ &envoy_admin_v3_ScopedRoutesConfigDump_msginit,
+ &envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_msginit,
+ &envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_msginit,
+ &envoy_admin_v3_SecretsConfigDump_msginit,
+ &envoy_admin_v3_SecretsConfigDump_DynamicSecret_msginit,
+ &envoy_admin_v3_SecretsConfigDump_StaticSecret_msginit,
+ &envoy_admin_v3_EndpointsConfigDump_msginit,
+ &envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_msginit,
+ &envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_msginit,
+};
+
+static const char descriptor[6802] = {'\n', ' ', 'e', 'n', 'v', 'o', 'y', '/', 'a', 'd', 'm', 'i', 'n', '/', 'v', '3', '/', 'c', 'o', 'n', 'f', 'i', 'g', '_', 'd',
+'u', 'm', 'p', '.', 'p', 'r', 'o', 't', 'o', '\022', '\016', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3',
+'\032', ')', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '/',
+'v', '3', '/', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'p', 'r', 'o', 't', 'o', '\032', '\031', 'g', 'o', 'o', 'g', 'l',
+'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'a', 'n', 'y', '.', 'p', 'r', 'o', 't', 'o', '\032', '\037', 'g', 'o', 'o',
+'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', '.', 'p', 'r',
+'o', 't', 'o', '\032', '\035', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a',
+'t', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o',
+'n', 's', '/', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\"', 'c', '\n', '\n', 'C', 'o',
+'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\022', '.', '\n', '\007', 'c', 'o', 'n', 'f', 'i', 'g', 's', '\030', '\001', ' ', '\003', '(', '\013',
+'2', '\024', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\007', 'c',
+'o', 'n', 'f', 'i', 'g', 's', ':', '%', '\232', '\305', '\210', '\036', ' ', '\n', '\036', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i',
+'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\"', '\225', '\002', '\n', '\022',
+'U', 'p', 'd', 'a', 't', 'e', 'F', 'a', 'i', 'l', 'u', 'r', 'e', 'S', 't', 'a', 't', 'e', '\022', 'G', '\n', '\024', 'f', 'a', 'i',
+'l', 'e', 'd', '_', 'c', 'o', 'n', 'f', 'i', 'g', 'u', 'r', 'a', 't', 'i', 'o', 'n', '\030', '\001', ' ', '\001', '(', '\013', '2', '\024',
+'.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\023', 'f', 'a', 'i',
+'l', 'e', 'd', 'C', 'o', 'n', 'f', 'i', 'g', 'u', 'r', 'a', 't', 'i', 'o', 'n', '\022', 'J', '\n', '\023', 'l', 'a', 's', 't', '_',
+'u', 'p', 'd', 'a', 't', 'e', '_', 'a', 't', 't', 'e', 'm', 'p', 't', '\030', '\002', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o',
+'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\021',
+'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't', 'e', 'A', 't', 't', 'e', 'm', 'p', 't', '\022', '\030', '\n', '\007', 'd', 'e', 't', 'a',
+'i', 'l', 's', '\030', '\003', ' ', '\001', '(', '\t', 'R', '\007', 'd', 'e', 't', 'a', 'i', 'l', 's', '\022', '!', '\n', '\014', 'v', 'e', 'r',
+'s', 'i', 'o', 'n', '_', 'i', 'n', 'f', 'o', '\030', '\004', ' ', '\001', '(', '\t', 'R', '\013', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'I',
+'n', 'f', 'o', ':', '-', '\232', '\305', '\210', '\036', '(', '\n', '&', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v',
+'2', 'a', 'l', 'p', 'h', 'a', '.', 'U', 'p', 'd', 'a', 't', 'e', 'F', 'a', 'i', 'l', 'u', 'r', 'e', 'S', 't', 'a', 't', 'e',
+'\"', '\310', '\001', '\n', '\023', 'B', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\022',
+'B', '\n', '\t', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '\030', '\001', ' ', '\001', '(', '\013', '2', '$', '.', 'e', 'n', 'v', 'o',
+'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'B', 'o', 'o',
+'t', 's', 't', 'r', 'a', 'p', 'R', '\t', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '\022', '=', '\n', '\014', 'l', 'a', 's', 't',
+'_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030', '\002', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p',
+'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p',
+'d', 'a', 't', 'e', 'd', ':', '.', '\232', '\305', '\210', '\036', ')', '\n', '\'', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n',
+'.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'B', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', 'C', 'o', 'n', 'f', 'i', 'g', 'D',
+'u', 'm', 'p', '\"', '\363', '\t', '\n', '\023', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u',
+'m', 'p', '\022', '!', '\n', '\014', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 'f', 'o', '\030', '\001', ' ', '\001', '(', '\t', 'R',
+'\013', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'I', 'n', 'f', 'o', '\022', ']', '\n', '\020', 's', 't', 'a', 't', 'i', 'c', '_', 'l', 'i',
+'s', 't', 'e', 'n', 'e', 'r', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '2', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm',
+'i', 'n', '.', 'v', '3', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p',
+'.', 'S', 't', 'a', 't', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 'R', '\017', 's', 't', 'a', 't', 'i', 'c', 'L', 'i',
+'s', 't', 'e', 'n', 'e', 'r', 's', '\022', '`', '\n', '\021', 'd', 'y', 'n', 'a', 'm', 'i', 'c', '_', 'l', 'i', 's', 't', 'e', 'n',
+'e', 'r', 's', '\030', '\003', ' ', '\003', '(', '\013', '2', '3', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v',
+'3', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n',
+'a', 'm', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 'R', '\020', 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'L', 'i', 's', 't',
+'e', 'n', 'e', 'r', 's', '\032', '\300', '\001', '\n', '\016', 'S', 't', 'a', 't', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', '\022',
+'0', '\n', '\010', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '\030', '\001', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g', 'l',
+'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\010', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '\022',
+'=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030', '\002', ' ', '\001', '(', '\013', '2', '\032', '.', 'g',
+'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R',
+'\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't', 'e', 'd', ':', '=', '\232', '\305', '\210', '\036', '8', '\n', '6', 'e', 'n', 'v', 'o',
+'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's',
+'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'S', 't', 'a', 't', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r',
+'\032', '\357', '\001', '\n', '\024', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 'S', 't', 'a', 't', 'e',
+'\022', '!', '\n', '\014', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 'f', 'o', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\013', 'v',
+'e', 'r', 's', 'i', 'o', 'n', 'I', 'n', 'f', 'o', '\022', '0', '\n', '\010', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '\030', '\002', ' ',
+'\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y',
+'R', '\010', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '\022', '=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p', 'd', 'a', 't', 'e',
+'d', '\030', '\003', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f',
+'.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't', 'e', 'd', ':', 'C',
+'\232', '\305', '\210', '\036', '>', '\n', '<', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h',
+'a', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n',
+'a', 'm', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 'S', 't', 'a', 't', 'e', '\032', '\222', '\004', '\n', '\017', 'D', 'y', 'n',
+'a', 'm', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', '\022', '\022', '\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(',
+'\t', 'R', '\004', 'n', 'a', 'm', 'e', '\022', '[', '\n', '\014', 'a', 'c', 't', 'i', 'v', 'e', '_', 's', 't', 'a', 't', 'e', '\030', '\002',
+' ', '\001', '(', '\013', '2', '8', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'L', 'i', 's',
+'t', 'e', 'n', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'L',
+'i', 's', 't', 'e', 'n', 'e', 'r', 'S', 't', 'a', 't', 'e', 'R', '\013', 'a', 'c', 't', 'i', 'v', 'e', 'S', 't', 'a', 't', 'e',
+'\022', ']', '\n', '\r', 'w', 'a', 'r', 'm', 'i', 'n', 'g', '_', 's', 't', 'a', 't', 'e', '\030', '\003', ' ', '\001', '(', '\013', '2', '8',
+'.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's',
+'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e',
+'r', 'S', 't', 'a', 't', 'e', 'R', '\014', 'w', 'a', 'r', 'm', 'i', 'n', 'g', 'S', 't', 'a', 't', 'e', '\022', '_', '\n', '\016', 'd',
+'r', 'a', 'i', 'n', 'i', 'n', 'g', '_', 's', 't', 'a', 't', 'e', '\030', '\004', ' ', '\001', '(', '\013', '2', '8', '.', 'e', 'n', 'v',
+'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's', 'C', 'o', 'n', 'f',
+'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 'S', 't', 'a',
+'t', 'e', 'R', '\r', 'd', 'r', 'a', 'i', 'n', 'i', 'n', 'g', 'S', 't', 'a', 't', 'e', '\022', 'C', '\n', '\013', 'e', 'r', 'r', 'o',
+'r', '_', 's', 't', 'a', 't', 'e', '\030', '\005', ' ', '\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm',
+'i', 'n', '.', 'v', '3', '.', 'U', 'p', 'd', 'a', 't', 'e', 'F', 'a', 'i', 'l', 'u', 'r', 'e', 'S', 't', 'a', 't', 'e', 'R',
+'\n', 'e', 'r', 'r', 'o', 'r', 'S', 't', 'a', 't', 'e', '\022', 'I', '\n', '\r', 'c', 'l', 'i', 'e', 'n', 't', '_', 's', 't', 'a',
+'t', 'u', 's', '\030', '\006', ' ', '\001', '(', '\016', '2', '$', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v',
+'3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'S', 't', 'a', 't', 'u', 's', 'R', '\014', 'c',
+'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', ':', '>', '\232', '\305', '\210', '\036', '9', '\n', '7', 'e', 'n', 'v', 'o', 'y',
+'.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's', 'C',
+'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r',
+':', '.', '\232', '\305', '\210', '\036', ')', '\n', '\'', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l',
+'p', 'h', 'a', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\"', '\312',
+'\007', '\n', '\022', 'C', 'l', 'u', 's', 't', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\022', '!', '\n', '\014',
+'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 'f', 'o', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\013', 'v', 'e', 'r', 's', 'i',
+'o', 'n', 'I', 'n', 'f', 'o', '\022', 'Y', '\n', '\017', 's', 't', 'a', 't', 'i', 'c', '_', 'c', 'l', 'u', 's', 't', 'e', 'r', 's',
+'\030', '\002', ' ', '\003', '(', '\013', '2', '0', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'C',
+'l', 'u', 's', 't', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'S', 't', 'a', 't', 'i', 'c', 'C',
+'l', 'u', 's', 't', 'e', 'r', 'R', '\016', 's', 't', 'a', 't', 'i', 'c', 'C', 'l', 'u', 's', 't', 'e', 'r', 's', '\022', 'i', '\n',
+'\027', 'd', 'y', 'n', 'a', 'm', 'i', 'c', '_', 'a', 'c', 't', 'i', 'v', 'e', '_', 'c', 'l', 'u', 's', 't', 'e', 'r', 's', '\030',
+'\003', ' ', '\003', '(', '\013', '2', '1', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'C', 'l',
+'u', 's', 't', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'C',
+'l', 'u', 's', 't', 'e', 'r', 'R', '\025', 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'A', 'c', 't', 'i', 'v', 'e', 'C', 'l', 'u', 's',
+'t', 'e', 'r', 's', '\022', 'k', '\n', '\030', 'd', 'y', 'n', 'a', 'm', 'i', 'c', '_', 'w', 'a', 'r', 'm', 'i', 'n', 'g', '_', 'c',
+'l', 'u', 's', 't', 'e', 'r', 's', '\030', '\004', ' ', '\003', '(', '\013', '2', '1', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm',
+'i', 'n', '.', 'v', '3', '.', 'C', 'l', 'u', 's', 't', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.',
+'D', 'y', 'n', 'a', 'm', 'i', 'c', 'C', 'l', 'u', 's', 't', 'e', 'r', 'R', '\026', 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'W', 'a',
+'r', 'm', 'i', 'n', 'g', 'C', 'l', 'u', 's', 't', 'e', 'r', 's', '\032', '\273', '\001', '\n', '\r', 'S', 't', 'a', 't', 'i', 'c', 'C',
+'l', 'u', 's', 't', 'e', 'r', '\022', '.', '\n', '\007', 'c', 'l', 'u', 's', 't', 'e', 'r', '\030', '\001', ' ', '\001', '(', '\013', '2', '\024',
+'.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\007', 'c', 'l', 'u',
+'s', 't', 'e', 'r', '\022', '=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030', '\002', ' ', '\001', '(',
+'\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's',
+'t', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't', 'e', 'd', ':', ';', '\232', '\305', '\210', '\036', '6', '\n',
+'4', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'C', 'l', 'u', 's',
+'t', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'S', 't', 'a', 't', 'i', 'c', 'C', 'l', 'u', 's',
+'t', 'e', 'r', '\032', '\360', '\002', '\n', '\016', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'C', 'l', 'u', 's', 't', 'e', 'r', '\022', '!', '\n',
+'\014', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 'f', 'o', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\013', 'v', 'e', 'r', 's',
+'i', 'o', 'n', 'I', 'n', 'f', 'o', '\022', '.', '\n', '\007', 'c', 'l', 'u', 's', 't', 'e', 'r', '\030', '\002', ' ', '\001', '(', '\013', '2',
+'\024', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\007', 'c', 'l',
+'u', 's', 't', 'e', 'r', '\022', '=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030', '\003', ' ', '\001',
+'(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e',
+'s', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't', 'e', 'd', '\022', 'C', '\n', '\013', 'e', 'r', 'r',
+'o', 'r', '_', 's', 't', 'a', 't', 'e', '\030', '\004', ' ', '\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd',
+'m', 'i', 'n', '.', 'v', '3', '.', 'U', 'p', 'd', 'a', 't', 'e', 'F', 'a', 'i', 'l', 'u', 'r', 'e', 'S', 't', 'a', 't', 'e',
+'R', '\n', 'e', 'r', 'r', 'o', 'r', 'S', 't', 'a', 't', 'e', '\022', 'I', '\n', '\r', 'c', 'l', 'i', 'e', 'n', 't', '_', 's', 't',
+'a', 't', 'u', 's', '\030', '\005', ' ', '\001', '(', '\016', '2', '$', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.',
+'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'S', 't', 'a', 't', 'u', 's', 'R', '\014',
+'c', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', ':', '<', '\232', '\305', '\210', '\036', '7', '\n', '5', 'e', 'n', 'v', 'o',
+'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'C', 'l', 'u', 's', 't', 'e', 'r', 's', 'C',
+'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'C', 'l', 'u', 's', 't', 'e', 'r', ':',
+'-', '\232', '\305', '\210', '\036', '(', '\n', '&', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p',
+'h', 'a', '.', 'C', 'l', 'u', 's', 't', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\"', '\335', '\006', '\n',
+'\020', 'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\022', 'd', '\n', '\024', 's', 't', 'a', 't',
+'i', 'c', '_', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n', 'f', 'i', 'g', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '2', '.',
+'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n', 'f',
+'i', 'g', 'D', 'u', 'm', 'p', '.', 'S', 't', 'a', 't', 'i', 'c', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 'R',
+'\022', 's', 't', 'a', 't', 'i', 'c', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\022', 'g', '\n', '\025', 'd', 'y',
+'n', 'a', 'm', 'i', 'c', '_', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n', 'f', 'i', 'g', 's', '\030', '\003', ' ', '\003', '(', '\013',
+'2', '3', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'R', 'o', 'u', 't', 'e', 's', 'C',
+'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n',
+'f', 'i', 'g', 'R', '\023', 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\032',
+'\312', '\001', '\n', '\021', 'S', 't', 'a', 't', 'i', 'c', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '7', '\n', '\014',
+'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\001', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g',
+'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\013', 'r', 'o', 'u', 't', 'e', 'C', 'o', 'n',
+'f', 'i', 'g', '\022', '=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030', '\002', ' ', '\001', '(', '\013',
+'2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't',
+'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't', 'e', 'd', ':', '=', '\232', '\305', '\210', '\036', '8', '\n', '6',
+'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'R', 'o', 'u', 't', 'e',
+'s', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'S', 't', 'a', 't', 'i', 'c', 'R', 'o', 'u', 't', 'e', 'C', 'o',
+'n', 'f', 'i', 'g', '\032', '\377', '\002', '\n', '\022', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f',
+'i', 'g', '\022', '!', '\n', '\014', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 'f', 'o', '\030', '\001', ' ', '\001', '(', '\t', 'R',
+'\013', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'I', 'n', 'f', 'o', '\022', '7', '\n', '\014', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n',
+'f', 'i', 'g', '\030', '\002', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b',
+'u', 'f', '.', 'A', 'n', 'y', 'R', '\013', 'r', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '=', '\n', '\014', 'l', 'a',
+'s', 't', '_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030', '\003', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e',
+'.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't',
+'U', 'p', 'd', 'a', 't', 'e', 'd', '\022', 'C', '\n', '\013', 'e', 'r', 'r', 'o', 'r', '_', 's', 't', 'a', 't', 'e', '\030', '\004', ' ',
+'\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'U', 'p', 'd', 'a',
+'t', 'e', 'F', 'a', 'i', 'l', 'u', 'r', 'e', 'S', 't', 'a', 't', 'e', 'R', '\n', 'e', 'r', 'r', 'o', 'r', 'S', 't', 'a', 't',
+'e', '\022', 'I', '\n', '\r', 'c', 'l', 'i', 'e', 'n', 't', '_', 's', 't', 'a', 't', 'u', 's', '\030', '\005', ' ', '\001', '(', '\016', '2',
+'$', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'R', 'e',
+'s', 'o', 'u', 'r', 'c', 'e', 'S', 't', 'a', 't', 'u', 's', 'R', '\014', 'c', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u',
+'s', ':', '>', '\232', '\305', '\210', '\036', '9', '\n', '7', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a',
+'l', 'p', 'h', 'a', '.', 'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n',
+'a', 'm', 'i', 'c', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', ':', '+', '\232', '\305', '\210', '\036', '&', '\n', '$', 'e',
+'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'R', 'o', 'u', 't', 'e', 's',
+'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\"', '\214', '\010', '\n', '\026', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't',
+'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\022', '~', '\n', '\033', 'i', 'n', 'l', 'i', 'n', 'e', '_', 's', 'c',
+'o', 'p', 'e', 'd', '_', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n', 'f', 'i', 'g', 's', '\030', '\001', ' ', '\003', '(', '\013', '2',
+'?', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o',
+'u', 't', 'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'I', 'n', 'l', 'i', 'n', 'e', 'S', 'c', 'o', 'p',
+'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', 'R', '\030', 'i', 'n', 'l', 'i', 'n', 'e', 'S', 'c', 'o',
+'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\022', '\201', '\001', '\n', '\034', 'd', 'y', 'n', 'a', 'm',
+'i', 'c', '_', 's', 'c', 'o', 'p', 'e', 'd', '_', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n', 'f', 'i', 'g', 's', '\030', '\002',
+' ', '\003', '(', '\013', '2', '@', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'S', 'c', 'o',
+'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm',
+'i', 'c', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', 'R', '\031', 'd', 'y', 'n',
+'a', 'm', 'i', 'c', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\032', '\201', '\002',
+'\n', '\030', 'I', 'n', 'l', 'i', 'n', 'e', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g',
+'s', '\022', '\022', '\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\004', 'n', 'a', 'm', 'e', '\022', 'F', '\n', '\024',
+'s', 'c', 'o', 'p', 'e', 'd', '_', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n', 'f', 'i', 'g', 's', '\030', '\002', ' ', '\003', '(',
+'\013', '2', '\024', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\022',
+'s', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\022', '=', '\n', '\014', 'l', 'a', 's',
+'t', '_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030', '\003', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.',
+'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U',
+'p', 'd', 'a', 't', 'e', 'd', ':', 'J', '\232', '\305', '\210', '\036', 'E', '\n', 'C', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i',
+'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n',
+'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'I', 'n', 'l', 'i', 'n', 'e', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e',
+'C', 'o', 'n', 'f', 'i', 'g', 's', '\032', '\266', '\003', '\n', '\031', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'S', 'c', 'o', 'p', 'e', 'd',
+'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\022', '\022', '\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(',
+'\t', 'R', '\004', 'n', 'a', 'm', 'e', '\022', '!', '\n', '\014', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 'f', 'o', '\030', '\002',
+' ', '\001', '(', '\t', 'R', '\013', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'I', 'n', 'f', 'o', '\022', 'F', '\n', '\024', 's', 'c', 'o', 'p',
+'e', 'd', '_', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n', 'f', 'i', 'g', 's', '\030', '\003', ' ', '\003', '(', '\013', '2', '\024', '.',
+'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\022', 's', 'c', 'o', 'p',
+'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\022', '=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p',
+'d', 'a', 't', 'e', 'd', '\030', '\004', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't',
+'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't',
+'e', 'd', '\022', 'C', '\n', '\013', 'e', 'r', 'r', 'o', 'r', '_', 's', 't', 'a', 't', 'e', '\030', '\005', ' ', '\001', '(', '\013', '2', '\"',
+'.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'U', 'p', 'd', 'a', 't', 'e', 'F', 'a', 'i',
+'l', 'u', 'r', 'e', 'S', 't', 'a', 't', 'e', 'R', '\n', 'e', 'r', 'r', 'o', 'r', 'S', 't', 'a', 't', 'e', '\022', 'I', '\n', '\r',
+'c', 'l', 'i', 'e', 'n', 't', '_', 's', 't', 'a', 't', 'u', 's', '\030', '\006', ' ', '\001', '(', '\016', '2', '$', '.', 'e', 'n', 'v',
+'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'R', 'e', 's', 'o', 'u', 'r', 'c',
+'e', 'S', 't', 'a', 't', 'u', 's', 'R', '\014', 'c', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', ':', 'K', '\232', '\305',
+'\210', '\036', 'F', '\n', 'D', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.',
+'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y',
+'n', 'a', 'm', 'i', 'c', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 's', ':', '1',
+'\232', '\305', '\210', '\036', ',', '\n', '*', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h',
+'a', '.', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\"',
+'\267', '\007', '\n', '\021', 'S', 'e', 'c', 'r', 'e', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '\022', 'U', '\n', '\016',
+'s', 't', 'a', 't', 'i', 'c', '_', 's', 'e', 'c', 'r', 'e', 't', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '.', '.', 'e', 'n',
+'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'S', 'e', 'c', 'r', 'e', 't', 's', 'C', 'o', 'n', 'f', 'i',
+'g', 'D', 'u', 'm', 'p', '.', 'S', 't', 'a', 't', 'i', 'c', 'S', 'e', 'c', 'r', 'e', 't', 'R', '\r', 's', 't', 'a', 't', 'i',
+'c', 'S', 'e', 'c', 'r', 'e', 't', 's', '\022', 'e', '\n', '\026', 'd', 'y', 'n', 'a', 'm', 'i', 'c', '_', 'a', 'c', 't', 'i', 'v',
+'e', '_', 's', 'e', 'c', 'r', 'e', 't', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '/', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a',
+'d', 'm', 'i', 'n', '.', 'v', '3', '.', 'S', 'e', 'c', 'r', 'e', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p',
+'.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'S', 'e', 'c', 'r', 'e', 't', 'R', '\024', 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'A', 'c',
+'t', 'i', 'v', 'e', 'S', 'e', 'c', 'r', 'e', 't', 's', '\022', 'g', '\n', '\027', 'd', 'y', 'n', 'a', 'm', 'i', 'c', '_', 'w', 'a',
+'r', 'm', 'i', 'n', 'g', '_', 's', 'e', 'c', 'r', 'e', 't', 's', '\030', '\003', ' ', '\003', '(', '\013', '2', '/', '.', 'e', 'n', 'v',
+'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'S', 'e', 'c', 'r', 'e', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g',
+'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'S', 'e', 'c', 'r', 'e', 't', 'R', '\025', 'd', 'y', 'n', 'a', 'm',
+'i', 'c', 'W', 'a', 'r', 'm', 'i', 'n', 'g', 'S', 'e', 'c', 'r', 'e', 't', 's', '\032', '\377', '\002', '\n', '\r', 'D', 'y', 'n', 'a',
+'m', 'i', 'c', 'S', 'e', 'c', 'r', 'e', 't', '\022', '\022', '\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\004',
+'n', 'a', 'm', 'e', '\022', '!', '\n', '\014', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 'f', 'o', '\030', '\002', ' ', '\001', '(',
+'\t', 'R', '\013', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'I', 'n', 'f', 'o', '\022', '=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p',
+'d', 'a', 't', 'e', 'd', '\030', '\003', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't',
+'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't',
+'e', 'd', '\022', ',', '\n', '\006', 's', 'e', 'c', 'r', 'e', 't', '\030', '\004', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g',
+'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\006', 's', 'e', 'c', 'r', 'e', 't', '\022', 'C',
+'\n', '\013', 'e', 'r', 'r', 'o', 'r', '_', 's', 't', 'a', 't', 'e', '\030', '\005', ' ', '\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v',
+'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'U', 'p', 'd', 'a', 't', 'e', 'F', 'a', 'i', 'l', 'u', 'r', 'e',
+'S', 't', 'a', 't', 'e', 'R', '\n', 'e', 'r', 'r', 'o', 'r', 'S', 't', 'a', 't', 'e', '\022', 'I', '\n', '\r', 'c', 'l', 'i', 'e',
+'n', 't', '_', 's', 't', 'a', 't', 'u', 's', '\030', '\006', ' ', '\001', '(', '\016', '2', '$', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a',
+'d', 'm', 'i', 'n', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'S', 't', 'a',
+'t', 'u', 's', 'R', '\014', 'c', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', ':', ':', '\232', '\305', '\210', '\036', '5', '\n',
+'3', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'S', 'e', 'c', 'r',
+'e', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'S', 'e', 'c', 'r',
+'e', 't', '\032', '\312', '\001', '\n', '\014', 'S', 't', 'a', 't', 'i', 'c', 'S', 'e', 'c', 'r', 'e', 't', '\022', '\022', '\n', '\004', 'n', 'a',
+'m', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\004', 'n', 'a', 'm', 'e', '\022', '=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p',
+'d', 'a', 't', 'e', 'd', '\030', '\002', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't',
+'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't',
+'e', 'd', '\022', ',', '\n', '\006', 's', 'e', 'c', 'r', 'e', 't', '\030', '\003', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g',
+'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\006', 's', 'e', 'c', 'r', 'e', 't', ':', '9',
+'\232', '\305', '\210', '\036', '4', '\n', '2', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h',
+'a', '.', 'S', 'e', 'c', 'r', 'e', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'S', 't', 'a', 't', 'i',
+'c', 'S', 'e', 'c', 'r', 'e', 't', ':', ',', '\232', '\305', '\210', '\036', '\'', '\n', '%', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm',
+'i', 'n', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'S', 'e', 'c', 'r', 'e', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D',
+'u', 'm', 'p', '\"', '\336', '\005', '\n', '\023', 'E', 'n', 'd', 'p', 'o', 'i', 'n', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u',
+'m', 'p', '\022', 'p', '\n', '\027', 's', 't', 'a', 't', 'i', 'c', '_', 'e', 'n', 'd', 'p', 'o', 'i', 'n', 't', '_', 'c', 'o', 'n',
+'f', 'i', 'g', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '8', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.',
+'v', '3', '.', 'E', 'n', 'd', 'p', 'o', 'i', 'n', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'S', 't',
+'a', 't', 'i', 'c', 'E', 'n', 'd', 'p', 'o', 'i', 'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\025', 's', 't', 'a', 't', 'i',
+'c', 'E', 'n', 'd', 'p', 'o', 'i', 'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\022', 's', '\n', '\030', 'd', 'y', 'n', 'a', 'm',
+'i', 'c', '_', 'e', 'n', 'd', 'p', 'o', 'i', 'n', 't', '_', 'c', 'o', 'n', 'f', 'i', 'g', 's', '\030', '\003', ' ', '\003', '(', '\013',
+'2', '9', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'E', 'n', 'd', 'p', 'o', 'i', 'n',
+'t', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'E', 'n', 'd', 'p', 'o',
+'i', 'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\026', 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'E', 'n', 'd', 'p', 'o', 'i', 'n',
+'t', 'C', 'o', 'n', 'f', 'i', 'g', 's', '\032', '\224', '\001', '\n', '\024', 'S', 't', 'a', 't', 'i', 'c', 'E', 'n', 'd', 'p', 'o', 'i',
+'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '=', '\n', '\017', 'e', 'n', 'd', 'p', 'o', 'i', 'n', 't', '_', 'c', 'o', 'n', 'f',
+'i', 'g', '\030', '\001', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u',
+'f', '.', 'A', 'n', 'y', 'R', '\016', 'e', 'n', 'd', 'p', 'o', 'i', 'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '=', '\n', '\014',
+'l', 'a', 's', 't', '_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030', '\002', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g',
+'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a',
+'s', 't', 'U', 'p', 'd', 'a', 't', 'e', 'd', '\032', '\310', '\002', '\n', '\025', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'E', 'n', 'd', 'p',
+'o', 'i', 'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '!', '\n', '\014', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 'f',
+'o', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\013', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'I', 'n', 'f', 'o', '\022', '=', '\n', '\017', 'e',
+'n', 'd', 'p', 'o', 'i', 'n', 't', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\002', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o',
+'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\016', 'e', 'n', 'd', 'p', 'o', 'i',
+'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '=', '\n', '\014', 'l', 'a', 's', 't', '_', 'u', 'p', 'd', 'a', 't', 'e', 'd', '\030',
+'\003', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'T',
+'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'R', '\013', 'l', 'a', 's', 't', 'U', 'p', 'd', 'a', 't', 'e', 'd', '\022', 'C', '\n', '\013',
+'e', 'r', 'r', 'o', 'r', '_', 's', 't', 'a', 't', 'e', '\030', '\004', ' ', '\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y',
+'.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'U', 'p', 'd', 'a', 't', 'e', 'F', 'a', 'i', 'l', 'u', 'r', 'e', 'S', 't',
+'a', 't', 'e', 'R', '\n', 'e', 'r', 'r', 'o', 'r', 'S', 't', 'a', 't', 'e', '\022', 'I', '\n', '\r', 'c', 'l', 'i', 'e', 'n', 't',
+'_', 's', 't', 'a', 't', 'u', 's', '\030', '\005', ' ', '\001', '(', '\016', '2', '$', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm',
+'i', 'n', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'S', 't', 'a', 't', 'u',
+'s', 'R', '\014', 'c', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', '*', ']', '\n', '\024', 'C', 'l', 'i', 'e', 'n', 't',
+'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'S', 't', 'a', 't', 'u', 's', '\022', '\013', '\n', '\007', 'U', 'N', 'K', 'N', 'O', 'W', 'N',
+'\020', '\000', '\022', '\r', '\n', '\t', 'R', 'E', 'Q', 'U', 'E', 'S', 'T', 'E', 'D', '\020', '\001', '\022', '\022', '\n', '\016', 'D', 'O', 'E', 'S',
+'_', 'N', 'O', 'T', '_', 'E', 'X', 'I', 'S', 'T', '\020', '\002', '\022', '\t', '\n', '\005', 'A', 'C', 'K', 'E', 'D', '\020', '\003', '\022', '\n',
+'\n', '\006', 'N', 'A', 'C', 'K', 'E', 'D', '\020', '\004', 'B', '9', '\n', '\034', 'i', 'o', '.', 'e', 'n', 'v', 'o', 'y', 'p', 'r', 'o',
+'x', 'y', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', 'B', '\017', 'C', 'o', 'n', 'f', 'i', 'g',
+'D', 'u', 'm', 'p', 'P', 'r', 'o', 't', 'o', 'P', '\001', '\272', '\200', '\310', '\321', '\006', '\002', '\020', '\002', 'b', '\006', 'p', 'r', 'o', 't',
+'o', '3',
+};
+
+static upb_def_init *deps[6] = {
+ &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit,
+ &google_protobuf_any_proto_upbdefinit,
+ &google_protobuf_timestamp_proto_upbdefinit,
+ &udpa_annotations_status_proto_upbdefinit,
+ &udpa_annotations_versioning_proto_upbdefinit,
+ NULL
+};
+
+upb_def_init envoy_admin_v3_config_dump_proto_upbdefinit = {
+ deps,
+ layouts,
+ "envoy/admin/v3/config_dump.proto",
+ UPB_STRVIEW_INIT(descriptor, 6802)
+};
diff --git a/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h b/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h
new file mode 100644
index 00000000000..8e62d4e4444
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h
@@ -0,0 +1,140 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/admin/v3/config_dump.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_ADMIN_V3_CONFIG_DUMP_PROTO_UPBDEFS_H_
+#define ENVOY_ADMIN_V3_CONFIG_DUMP_PROTO_UPBDEFS_H_
+
+#include "upb/def.h"
+#include "upb/port_def.inc"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "upb/def.h"
+
+#include "upb/port_def.inc"
+
+extern upb_def_init envoy_admin_v3_config_dump_proto_upbdefinit;
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ConfigDump_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ConfigDump");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_UpdateFailureState_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.UpdateFailureState");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_BootstrapConfigDump_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.BootstrapConfigDump");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ListenersConfigDump_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ListenersConfigDump");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ListenersConfigDump_StaticListener_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ListenersConfigDump.StaticListener");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ListenersConfigDump_DynamicListenerState_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ListenersConfigDump.DynamicListenerState");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ListenersConfigDump_DynamicListener_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ListenersConfigDump.DynamicListener");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ClustersConfigDump_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ClustersConfigDump");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ClustersConfigDump_StaticCluster_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ClustersConfigDump.StaticCluster");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ClustersConfigDump_DynamicCluster_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ClustersConfigDump.DynamicCluster");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_RoutesConfigDump_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.RoutesConfigDump");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_RoutesConfigDump_StaticRouteConfig_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.RoutesConfigDump.StaticRouteConfig");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.RoutesConfigDump.DynamicRouteConfig");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ScopedRoutesConfigDump_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ScopedRoutesConfigDump");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ScopedRoutesConfigDump.InlineScopedRouteConfigs");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfigs_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.ScopedRoutesConfigDump.DynamicScopedRouteConfigs");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_SecretsConfigDump_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.SecretsConfigDump");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_SecretsConfigDump_DynamicSecret_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.SecretsConfigDump.DynamicSecret");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_SecretsConfigDump_StaticSecret_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.SecretsConfigDump.StaticSecret");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_EndpointsConfigDump_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.EndpointsConfigDump");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.EndpointsConfigDump.StaticEndpointConfig");
+}
+
+UPB_INLINE const upb_msgdef *envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_admin_v3_config_dump_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.admin.v3.EndpointsConfigDump.DynamicEndpointConfig");
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_ADMIN_V3_CONFIG_DUMP_PROTO_UPBDEFS_H_ */
diff --git a/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c b/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c
new file mode 100644
index 00000000000..f86bfe76f4a
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c
@@ -0,0 +1,383 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/bootstrap/v3/bootstrap.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include "upb/def.h"
+#include "envoy/config/bootstrap/v3/bootstrap.upbdefs.h"
+
+extern upb_def_init envoy_config_cluster_v3_cluster_proto_upbdefinit;
+extern upb_def_init envoy_config_core_v3_address_proto_upbdefinit;
+extern upb_def_init envoy_config_core_v3_base_proto_upbdefinit;
+extern upb_def_init envoy_config_core_v3_config_source_proto_upbdefinit;
+extern upb_def_init envoy_config_core_v3_event_service_config_proto_upbdefinit;
+extern upb_def_init envoy_config_core_v3_extension_proto_upbdefinit;
+extern upb_def_init envoy_config_core_v3_socket_option_proto_upbdefinit;
+extern upb_def_init envoy_config_listener_v3_listener_proto_upbdefinit;
+extern upb_def_init envoy_config_metrics_v3_stats_proto_upbdefinit;
+extern upb_def_init envoy_config_overload_v3_overload_proto_upbdefinit;
+extern upb_def_init envoy_config_trace_v3_http_tracer_proto_upbdefinit;
+extern upb_def_init envoy_extensions_transport_sockets_tls_v3_secret_proto_upbdefinit;
+extern upb_def_init envoy_type_v3_percent_proto_upbdefinit;
+extern upb_def_init google_protobuf_duration_proto_upbdefinit;
+extern upb_def_init google_protobuf_struct_proto_upbdefinit;
+extern upb_def_init google_protobuf_wrappers_proto_upbdefinit;
+extern upb_def_init udpa_annotations_migrate_proto_upbdefinit;
+extern upb_def_init udpa_annotations_security_proto_upbdefinit;
+extern upb_def_init udpa_annotations_status_proto_upbdefinit;
+extern upb_def_init udpa_annotations_versioning_proto_upbdefinit;
+extern upb_def_init validate_validate_proto_upbdefinit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Admin_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_ClusterManager_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Watchdogs_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Watchdog_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_FatalAction_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_Runtime_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit;
+extern const upb_msglayout envoy_config_bootstrap_v3_LayeredRuntime_msginit;
+
+static const upb_msglayout *layouts[17] = {
+ &envoy_config_bootstrap_v3_Bootstrap_msginit,
+ &envoy_config_bootstrap_v3_Bootstrap_StaticResources_msginit,
+ &envoy_config_bootstrap_v3_Bootstrap_DynamicResources_msginit,
+ &envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_msginit,
+ &envoy_config_bootstrap_v3_Admin_msginit,
+ &envoy_config_bootstrap_v3_ClusterManager_msginit,
+ &envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_msginit,
+ &envoy_config_bootstrap_v3_Watchdogs_msginit,
+ &envoy_config_bootstrap_v3_Watchdog_msginit,
+ &envoy_config_bootstrap_v3_Watchdog_WatchdogAction_msginit,
+ &envoy_config_bootstrap_v3_FatalAction_msginit,
+ &envoy_config_bootstrap_v3_Runtime_msginit,
+ &envoy_config_bootstrap_v3_RuntimeLayer_msginit,
+ &envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_msginit,
+ &envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_msginit,
+ &envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_msginit,
+ &envoy_config_bootstrap_v3_LayeredRuntime_msginit,
+};
+
+static const char descriptor[6993] = {'\n', ')', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '/',
+'v', '3', '/', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'p', 'r', 'o', 't', 'o', '\022', '\031', 'e', 'n', 'v', 'o', 'y',
+'.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '\032', '%', 'e', 'n', 'v',
+'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c', 'l', 'u', 's', 't', 'e', 'r', '/', 'v', '3', '/', 'c', 'l', 'u', 's',
+'t', 'e', 'r', '.', 'p', 'r', 'o', 't', 'o', '\032', '\"', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c',
+'o', 'r', 'e', '/', 'v', '3', '/', 'a', 'd', 'd', 'r', 'e', 's', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '\037', 'e', 'n', 'v',
+'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'b', 'a', 's', 'e', '.', 'p', 'r',
+'o', 't', 'o', '\032', '(', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c', 'o', 'r', 'e', '/', 'v', '3',
+'/', 'c', 'o', 'n', 'f', 'i', 'g', '_', 's', 'o', 'u', 'r', 'c', 'e', '.', 'p', 'r', 'o', 't', 'o', '\032', '/', 'e', 'n', 'v',
+'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'e', 'v', 'e', 'n', 't', '_', 's',
+'e', 'r', 'v', 'i', 'c', 'e', '_', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '$', 'e', 'n', 'v', 'o',
+'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o',
+'n', '.', 'p', 'r', 'o', 't', 'o', '\032', '(', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c', 'o', 'r',
+'e', '/', 'v', '3', '/', 's', 'o', 'c', 'k', 'e', 't', '_', 'o', 'p', 't', 'i', 'o', 'n', '.', 'p', 'r', 'o', 't', 'o', '\032',
+'\'', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '/', 'v', '3',
+'/', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '.', 'p', 'r', 'o', 't', 'o', '\032', '#', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o',
+'n', 'f', 'i', 'g', '/', 'm', 'e', 't', 'r', 'i', 'c', 's', '/', 'v', '3', '/', 's', 't', 'a', 't', 's', '.', 'p', 'r', 'o',
+'t', 'o', '\032', '\'', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd',
+'/', 'v', '3', '/', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'p', 'r', 'o', 't', 'o', '\032', '\'', 'e', 'n', 'v', 'o', 'y',
+'/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 't', 'r', 'a', 'c', 'e', '/', 'v', '3', '/', 'h', 't', 't', 'p', '_', 't', 'r', 'a',
+'c', 'e', 'r', '.', 'p', 'r', 'o', 't', 'o', '\032', '6', 'e', 'n', 'v', 'o', 'y', '/', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o',
+'n', 's', '/', 't', 'r', 'a', 'n', 's', 'p', 'o', 'r', 't', '_', 's', 'o', 'c', 'k', 'e', 't', 's', '/', 't', 'l', 's', '/',
+'v', '3', '/', 's', 'e', 'c', 'r', 'e', 't', '.', 'p', 'r', 'o', 't', 'o', '\032', '\033', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y',
+'p', 'e', '/', 'v', '3', '/', 'p', 'e', 'r', 'c', 'e', 'n', 't', '.', 'p', 'r', 'o', 't', 'o', '\032', '\036', 'g', 'o', 'o', 'g',
+'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'd', 'u', 'r', 'a', 't', 'i', 'o', 'n', '.', 'p', 'r', 'o', 't',
+'o', '\032', '\034', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 's', 't', 'r', 'u', 'c', 't',
+'.', 'p', 'r', 'o', 't', 'o', '\032', '\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'w',
+'r', 'a', 'p', 'p', 'e', 'r', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '\036', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't',
+'a', 't', 'i', 'o', 'n', 's', '/', 'm', 'i', 'g', 'r', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\032', '\037', 'u', 'd', 'p',
+'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'p', 'r',
+'o', 't', 'o', '\032', '\035', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a',
+'t', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o',
+'n', 's', '/', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '\027', 'v', 'a', 'l', 'i',
+'d', 'a', 't', 'e', '/', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\341', '\026', '\n', '\t', 'B',
+'o', 'o', 't', 's', 't', 'r', 'a', 'p', '\022', '.', '\n', '\004', 'n', 'o', 'd', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2', '\032', '.',
+'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'N', 'o', 'd', 'e',
+'R', '\004', 'n', 'o', 'd', 'e', '\022', '.', '\n', '\023', 'n', 'o', 'd', 'e', '_', 'c', 'o', 'n', 't', 'e', 'x', 't', '_', 'p', 'a',
+'r', 'a', 'm', 's', '\030', '\032', ' ', '\003', '(', '\t', 'R', '\021', 'n', 'o', 'd', 'e', 'C', 'o', 'n', 't', 'e', 'x', 't', 'P', 'a',
+'r', 'a', 'm', 's', '\022', '_', '\n', '\020', 's', 't', 'a', 't', 'i', 'c', '_', 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', '\030',
+'\002', ' ', '\001', '(', '\013', '2', '4', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't',
+'s', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'B', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'S', 't', 'a', 't', 'i', 'c',
+'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', 'R', '\017', 's', 't', 'a', 't', 'i', 'c', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e',
+'s', '\022', 'b', '\n', '\021', 'd', 'y', 'n', 'a', 'm', 'i', 'c', '_', 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', '\030', '\003', ' ',
+'\001', '(', '\013', '2', '5', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't',
+'r', 'a', 'p', '.', 'v', '3', '.', 'B', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'R',
+'e', 's', 'o', 'u', 'r', 'c', 'e', 's', 'R', '\020', 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e',
+'s', '\022', 'R', '\n', '\017', 'c', 'l', 'u', 's', 't', 'e', 'r', '_', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '\030', '\004', ' ', '\001', '(',
+'\013', '2', ')', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a',
+'p', '.', 'v', '3', '.', 'C', 'l', 'u', 's', 't', 'e', 'r', 'M', 'a', 'n', 'a', 'g', 'e', 'r', 'R', '\016', 'c', 'l', 'u', 's',
+'t', 'e', 'r', 'M', 'a', 'n', 'a', 'g', 'e', 'r', '\022', 'D', '\n', '\n', 'h', 'd', 's', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030',
+'\016', ' ', '\001', '(', '\013', '2', '%', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e',
+'.', 'v', '3', '.', 'A', 'p', 'i', 'C', 'o', 'n', 'f', 'i', 'g', 'S', 'o', 'u', 'r', 'c', 'e', 'R', '\t', 'h', 'd', 's', 'C',
+'o', 'n', 'f', 'i', 'g', '\022', '\035', '\n', '\n', 'f', 'l', 'a', 'g', 's', '_', 'p', 'a', 't', 'h', '\030', '\005', ' ', '\001', '(', '\t',
+'R', '\t', 'f', 'l', 'a', 'g', 's', 'P', 'a', 't', 'h', '\022', 'C', '\n', '\013', 's', 't', 'a', 't', 's', '_', 's', 'i', 'n', 'k',
+'s', '\030', '\006', ' ', '\003', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm', 'e',
+'t', 'r', 'i', 'c', 's', '.', 'v', '3', '.', 'S', 't', 'a', 't', 's', 'S', 'i', 'n', 'k', 'R', '\n', 's', 't', 'a', 't', 's',
+'S', 'i', 'n', 'k', 's', '\022', 'G', '\n', '\014', 's', 't', 'a', 't', 's', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\r', ' ', '\001',
+'(', '\013', '2', '$', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm', 'e', 't', 'r', 'i', 'c', 's',
+'.', 'v', '3', '.', 'S', 't', 'a', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\013', 's', 't', 'a', 't', 's', 'C', 'o', 'n',
+'f', 'i', 'g', '\022', 'q', '\n', '\024', 's', 't', 'a', 't', 's', '_', 'f', 'l', 'u', 's', 'h', '_', 'i', 'n', 't', 'e', 'r', 'v',
+'a', 'l', '\030', '\007', ' ', '\001', '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u',
+'f', '.', 'D', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'B', '$', '\372', 'B', '\016', '\252', '\001', '\013', '\032', '\003', '\010', '\254', '\002', '2', '\004',
+'\020', '\300', '\204', '=', '\362', '\230', '\376', '\217', '\005', '\r', '\022', '\013', 's', 't', 'a', 't', 's', '_', 'f', 'l', 'u', 's', 'h', 'R', '\022',
+'s', 't', 'a', 't', 's', 'F', 'l', 'u', 's', 'h', 'I', 'n', 't', 'e', 'r', 'v', 'a', 'l', '\022', ':', '\n', '\024', 's', 't', 'a',
+'t', 's', '_', 'f', 'l', 'u', 's', 'h', '_', 'o', 'n', '_', 'a', 'd', 'm', 'i', 'n', '\030', '\035', ' ', '\001', '(', '\010', 'B', '\007',
+'\372', 'B', '\004', 'j', '\002', '\010', '\001', 'H', '\000', 'R', '\021', 's', 't', 'a', 't', 's', 'F', 'l', 'u', 's', 'h', 'O', 'n', 'A', 'd',
+'m', 'i', 'n', '\022', 'C', '\n', '\010', 'w', 'a', 't', 'c', 'h', 'd', 'o', 'g', '\030', '\010', ' ', '\001', '(', '\013', '2', '#', '.', 'e',
+'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.',
+'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', 'B', '\002', '\030', '\001', 'R', '\010', 'w', 'a', 't', 'c', 'h', 'd', 'o', 'g', '\022', 'B', '\n',
+'\t', 'w', 'a', 't', 'c', 'h', 'd', 'o', 'g', 's', '\030', '\033', ' ', '\001', '(', '\013', '2', '$', '.', 'e', 'n', 'v', 'o', 'y', '.',
+'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'W', 'a', 't', 'c', 'h',
+'d', 'o', 'g', 's', 'R', '\t', 'w', 'a', 't', 'c', 'h', 'd', 'o', 'g', 's', '\022', '<', '\n', '\007', 't', 'r', 'a', 'c', 'i', 'n',
+'g', '\030', '\t', ' ', '\001', '(', '\013', '2', '\036', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 't', 'r',
+'a', 'c', 'e', '.', 'v', '3', '.', 'T', 'r', 'a', 'c', 'i', 'n', 'g', 'B', '\002', '\030', '\001', 'R', '\007', 't', 'r', 'a', 'c', 'i',
+'n', 'g', '\022', 'R', '\n', '\017', 'l', 'a', 'y', 'e', 'r', 'e', 'd', '_', 'r', 'u', 'n', 't', 'i', 'm', 'e', '\030', '\021', ' ', '\001',
+'(', '\013', '2', ')', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r',
+'a', 'p', '.', 'v', '3', '.', 'L', 'a', 'y', 'e', 'r', 'e', 'd', 'R', 'u', 'n', 't', 'i', 'm', 'e', 'R', '\016', 'l', 'a', 'y',
+'e', 'r', 'e', 'd', 'R', 'u', 'n', 't', 'i', 'm', 'e', '\022', '6', '\n', '\005', 'a', 'd', 'm', 'i', 'n', '\030', '\014', ' ', '\001', '(',
+'\013', '2', ' ', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a',
+'p', '.', 'v', '3', '.', 'A', 'd', 'm', 'i', 'n', 'R', '\005', 'a', 'd', 'm', 'i', 'n', '\022', 'd', '\n', '\020', 'o', 'v', 'e', 'r',
+'l', 'o', 'a', 'd', '_', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '\030', '\017', ' ', '\001', '(', '\013', '2', ')', '.', 'e', 'n', 'v', 'o',
+'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '3', '.', 'O', 'v', 'e', 'r',
+'l', 'o', 'a', 'd', 'M', 'a', 'n', 'a', 'g', 'e', 'r', 'B', '\016', '\212', '\223', '\267', '*', '\002', '\010', '\001', '\212', '\223', '\267', '*', '\002',
+'\020', '\001', 'R', '\017', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'M', 'a', 'n', 'a', 'g', 'e', 'r', '\022', '6', '\n', '\027', 'e', 'n',
+'a', 'b', 'l', 'e', '_', 'd', 'i', 's', 'p', 'a', 't', 'c', 'h', 'e', 'r', '_', 's', 't', 'a', 't', 's', '\030', '\020', ' ', '\001',
+'(', '\010', 'R', '\025', 'e', 'n', 'a', 'b', 'l', 'e', 'D', 'i', 's', 'p', 'a', 't', 'c', 'h', 'e', 'r', 'S', 't', 'a', 't', 's',
+'\022', '#', '\n', '\r', 'h', 'e', 'a', 'd', 'e', 'r', '_', 'p', 'r', 'e', 'f', 'i', 'x', '\030', '\022', ' ', '\001', '(', '\t', 'R', '\014',
+'h', 'e', 'a', 'd', 'e', 'r', 'P', 'r', 'e', 'f', 'i', 'x', '\022', '_', '\n', '\035', 's', 't', 'a', 't', 's', '_', 's', 'e', 'r',
+'v', 'e', 'r', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'o', 'v', 'e', 'r', 'r', 'i', 'd', 'e', '\030', '\023', ' ', '\001', '(',
+'\013', '2', '\034', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'U', 'I', 'n', 't', '6',
+'4', 'V', 'a', 'l', 'u', 'e', 'R', '\032', 's', 't', 'a', 't', 's', 'S', 'e', 'r', 'v', 'e', 'r', 'V', 'e', 'r', 's', 'i', 'o',
+'n', 'O', 'v', 'e', 'r', 'r', 'i', 'd', 'e', '\022', '4', '\n', '\027', 'u', 's', 'e', '_', 't', 'c', 'p', '_', 'f', 'o', 'r', '_',
+'d', 'n', 's', '_', 'l', 'o', 'o', 'k', 'u', 'p', 's', '\030', '\024', ' ', '\001', '(', '\010', 'R', '\023', 'u', 's', 'e', 'T', 'c', 'p',
+'F', 'o', 'r', 'D', 'n', 's', 'L', 'o', 'o', 'k', 'u', 'p', 's', '\022', ']', '\n', '\024', 'b', 'o', 'o', 't', 's', 't', 'r', 'a',
+'p', '_', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 's', '\030', '\025', ' ', '\003', '(', '\013', '2', '*', '.', 'e', 'n', 'v', 'o',
+'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't',
+'e', 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\023', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', 'E', 'x',
+'t', 'e', 'n', 's', 'i', 'o', 'n', 's', '\022', 'K', '\n', '\r', 'f', 'a', 't', 'a', 'l', '_', 'a', 'c', 't', 'i', 'o', 'n', 's',
+'\030', '\034', ' ', '\003', '(', '\013', '2', '&', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o',
+'t', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'F', 'a', 't', 'a', 'l', 'A', 'c', 't', 'i', 'o', 'n', 'R', '\014', 'f', 'a',
+'t', 'a', 'l', 'A', 'c', 't', 'i', 'o', 'n', 's', '\022', 'I', '\n', '\016', 'c', 'o', 'n', 'f', 'i', 'g', '_', 's', 'o', 'u', 'r',
+'c', 'e', 's', '\030', '\026', ' ', '\003', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.',
+'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'C', 'o', 'n', 'f', 'i', 'g', 'S', 'o', 'u', 'r', 'c', 'e', 'R', '\r', 'c', 'o', 'n',
+'f', 'i', 'g', 'S', 'o', 'u', 'r', 'c', 'e', 's', '\022', 'V', '\n', '\025', 'd', 'e', 'f', 'a', 'u', 'l', 't', '_', 'c', 'o', 'n',
+'f', 'i', 'g', '_', 's', 'o', 'u', 'r', 'c', 'e', '\030', '\027', ' ', '\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.',
+'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'C', 'o', 'n', 'f', 'i', 'g', 'S', 'o', 'u', 'r',
+'c', 'e', 'R', '\023', 'd', 'e', 'f', 'a', 'u', 'l', 't', 'C', 'o', 'n', 'f', 'i', 'g', 'S', 'o', 'u', 'r', 'c', 'e', '\022', '8',
+'\n', '\030', 'd', 'e', 'f', 'a', 'u', 'l', 't', '_', 's', 'o', 'c', 'k', 'e', 't', '_', 'i', 'n', 't', 'e', 'r', 'f', 'a', 'c',
+'e', '\030', '\030', ' ', '\001', '(', '\t', 'R', '\026', 'd', 'e', 'f', 'a', 'u', 'l', 't', 'S', 'o', 'c', 'k', 'e', 't', 'I', 'n', 't',
+'e', 'r', 'f', 'a', 'c', 'e', '\022', '\214', '\001', '\n', '\036', 'c', 'e', 'r', 't', 'i', 'f', 'i', 'c', 'a', 't', 'e', '_', 'p', 'r',
+'o', 'v', 'i', 'd', 'e', 'r', '_', 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', 's', '\030', '\031', ' ', '\003', '(', '\013', '2', 'F', '.',
+'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3',
+'.', 'B', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'C', 'e', 'r', 't', 'i', 'f', 'i', 'c', 'a', 't', 'e', 'P', 'r', 'o',
+'v', 'i', 'd', 'e', 'r', 'I', 'n', 's', 't', 'a', 'n', 'c', 'e', 's', 'E', 'n', 't', 'r', 'y', 'R', '\034', 'c', 'e', 'r', 't',
+'i', 'f', 'i', 'c', 'a', 't', 'e', 'P', 'r', 'o', 'v', 'i', 'd', 'e', 'r', 'I', 'n', 's', 't', 'a', 'n', 'c', 'e', 's', '\032',
+'\232', '\002', '\n', '\017', 'S', 't', 'a', 't', 'i', 'c', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', '\022', '@', '\n', '\t', 'l', 'i',
+'s', 't', 'e', 'n', 'e', 'r', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n',
+'f', 'i', 'g', '.', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '.', 'v', '3', '.', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', 'R',
+'\t', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', 's', '\022', '<', '\n', '\010', 'c', 'l', 'u', 's', 't', 'e', 'r', 's', '\030', '\002', ' ',
+'\003', '(', '\013', '2', ' ', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'l', 'u', 's', 't', 'e',
+'r', '.', 'v', '3', '.', 'C', 'l', 'u', 's', 't', 'e', 'r', 'R', '\010', 'c', 'l', 'u', 's', 't', 'e', 'r', 's', '\022', 'K', '\n',
+'\007', 's', 'e', 'c', 'r', 'e', 't', 's', '\030', '\003', ' ', '\003', '(', '\013', '2', '1', '.', 'e', 'n', 'v', 'o', 'y', '.', 'e', 'x',
+'t', 'e', 'n', 's', 'i', 'o', 'n', 's', '.', 't', 'r', 'a', 'n', 's', 'p', 'o', 'r', 't', '_', 's', 'o', 'c', 'k', 'e', 't',
+'s', '.', 't', 'l', 's', '.', 'v', '3', '.', 'S', 'e', 'c', 'r', 'e', 't', 'R', '\007', 's', 'e', 'c', 'r', 'e', 't', 's', ':',
+':', '\232', '\305', '\210', '\036', '5', '\n', '3', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't',
+'s', 't', 'r', 'a', 'p', '.', 'v', '2', '.', 'B', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'S', 't', 'a', 't', 'i', 'c',
+'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', '\032', '\211', '\003', '\n', '\020', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'R', 'e', 's', 'o',
+'u', 'r', 'c', 'e', 's', '\022', 'A', '\n', '\n', 'l', 'd', 's', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\001', ' ', '\001', '(', '\013',
+'2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'C',
+'o', 'n', 'f', 'i', 'g', 'S', 'o', 'u', 'r', 'c', 'e', 'R', '\t', 'l', 'd', 's', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '2', '\n',
+'\025', 'l', 'd', 's', '_', 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', '_', 'l', 'o', 'c', 'a', 't', 'o', 'r', '\030', '\005', ' ',
+'\001', '(', '\t', 'R', '\023', 'l', 'd', 's', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', 'L', 'o', 'c', 'a', 't', 'o', 'r', '\022',
+'A', '\n', '\n', 'c', 'd', 's', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\002', ' ', '\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v',
+'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'C', 'o', 'n', 'f', 'i', 'g', 'S',
+'o', 'u', 'r', 'c', 'e', 'R', '\t', 'c', 'd', 's', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '2', '\n', '\025', 'c', 'd', 's', '_', 'r',
+'e', 's', 'o', 'u', 'r', 'c', 'e', 's', '_', 'l', 'o', 'c', 'a', 't', 'o', 'r', '\030', '\006', ' ', '\001', '(', '\t', 'R', '\023', 'c',
+'d', 's', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', 'L', 'o', 'c', 'a', 't', 'o', 'r', '\022', 'D', '\n', '\n', 'a', 'd', 's',
+'_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\003', ' ', '\001', '(', '\013', '2', '%', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n',
+'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'A', 'p', 'i', 'C', 'o', 'n', 'f', 'i', 'g', 'S', 'o', 'u', 'r',
+'c', 'e', 'R', '\t', 'a', 'd', 's', 'C', 'o', 'n', 'f', 'i', 'g', ':', ';', '\232', '\305', '\210', '\036', '6', '\n', '4', 'e', 'n', 'v',
+'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '2', '.', 'B', 'o',
+'o', 't', 's', 't', 'r', 'a', 'p', '.', 'D', 'y', 'n', 'a', 'm', 'i', 'c', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', 'J',
+'\004', '\010', '\004', '\020', '\005', '\032', '{', '\n', '!', 'C', 'e', 'r', 't', 'i', 'f', 'i', 'c', 'a', 't', 'e', 'P', 'r', 'o', 'v', 'i',
+'d', 'e', 'r', 'I', 'n', 's', 't', 'a', 'n', 'c', 'e', 's', 'E', 'n', 't', 'r', 'y', '\022', '\020', '\n', '\003', 'k', 'e', 'y', '\030',
+'\001', ' ', '\001', '(', '\t', 'R', '\003', 'k', 'e', 'y', '\022', '@', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\013',
+'2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'T',
+'y', 'p', 'e', 'd', 'E', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\005', 'v', 'a', 'l', 'u',
+'e', ':', '\002', '8', '\001', ':', '*', '\232', '\305', '\210', '\036', '%', '\n', '#', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i',
+'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '2', '.', 'B', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', 'B',
+'\r', '\n', '\013', 's', 't', 'a', 't', 's', '_', 'f', 'l', 'u', 's', 'h', 'J', '\004', '\010', '\n', '\020', '\013', 'J', '\004', '\010', '\013', '\020',
+'\014', 'R', '\007', 'r', 'u', 'n', 't', 'i', 'm', 'e', '\"', '\376', '\001', '\n', '\005', 'A', 'd', 'm', 'i', 'n', '\022', '&', '\n', '\017', 'a',
+'c', 'c', 'e', 's', 's', '_', 'l', 'o', 'g', '_', 'p', 'a', 't', 'h', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\r', 'a', 'c', 'c',
+'e', 's', 's', 'L', 'o', 'g', 'P', 'a', 't', 'h', '\022', '!', '\n', '\014', 'p', 'r', 'o', 'f', 'i', 'l', 'e', '_', 'p', 'a', 't',
+'h', '\030', '\002', ' ', '\001', '(', '\t', 'R', '\013', 'p', 'r', 'o', 'f', 'i', 'l', 'e', 'P', 'a', 't', 'h', '\022', '7', '\n', '\007', 'a',
+'d', 'd', 'r', 'e', 's', 's', '\030', '\003', ' ', '\001', '(', '\013', '2', '\035', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f',
+'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'A', 'd', 'd', 'r', 'e', 's', 's', 'R', '\007', 'a', 'd', 'd', 'r', 'e',
+'s', 's', '\022', 'I', '\n', '\016', 's', 'o', 'c', 'k', 'e', 't', '_', 'o', 'p', 't', 'i', 'o', 'n', 's', '\030', '\004', ' ', '\003', '(',
+'\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.',
+'S', 'o', 'c', 'k', 'e', 't', 'O', 'p', 't', 'i', 'o', 'n', 'R', '\r', 's', 'o', 'c', 'k', 'e', 't', 'O', 'p', 't', 'i', 'o',
+'n', 's', ':', '&', '\232', '\305', '\210', '\036', '!', '\n', '\037', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b',
+'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '2', '.', 'A', 'd', 'm', 'i', 'n', '\"', '\313', '\004', '\n', '\016', 'C', 'l', 'u',
+'s', 't', 'e', 'r', 'M', 'a', 'n', 'a', 'g', 'e', 'r', '\022', ',', '\n', '\022', 'l', 'o', 'c', 'a', 'l', '_', 'c', 'l', 'u', 's',
+'t', 'e', 'r', '_', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\020', 'l', 'o', 'c', 'a', 'l', 'C', 'l', 'u', 's',
+'t', 'e', 'r', 'N', 'a', 'm', 'e', '\022', 'g', '\n', '\021', 'o', 'u', 't', 'l', 'i', 'e', 'r', '_', 'd', 'e', 't', 'e', 'c', 't',
+'i', 'o', 'n', '\030', '\002', ' ', '\001', '(', '\013', '2', ':', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.',
+'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'C', 'l', 'u', 's', 't', 'e', 'r', 'M', 'a', 'n', 'a', 'g',
+'e', 'r', '.', 'O', 'u', 't', 'l', 'i', 'e', 'r', 'D', 'e', 't', 'e', 'c', 't', 'i', 'o', 'n', 'R', '\020', 'o', 'u', 't', 'l',
+'i', 'e', 'r', 'D', 'e', 't', 'e', 'c', 't', 'i', 'o', 'n', '\022', 'R', '\n', '\024', 'u', 'p', 's', 't', 'r', 'e', 'a', 'm', '_',
+'b', 'i', 'n', 'd', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\003', ' ', '\001', '(', '\013', '2', ' ', '.', 'e', 'n', 'v', 'o', 'y',
+'.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'B', 'i', 'n', 'd', 'C', 'o', 'n', 'f', 'i',
+'g', 'R', '\022', 'u', 'p', 's', 't', 'r', 'e', 'a', 'm', 'B', 'i', 'n', 'd', 'C', 'o', 'n', 'f', 'i', 'g', '\022', 'Q', '\n', '\021',
+'l', 'o', 'a', 'd', '_', 's', 't', 'a', 't', 's', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\004', ' ', '\001', '(', '\013', '2', '%',
+'.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'A', 'p', 'i',
+'C', 'o', 'n', 'f', 'i', 'g', 'S', 'o', 'u', 'r', 'c', 'e', 'R', '\017', 'l', 'o', 'a', 'd', 'S', 't', 'a', 't', 's', 'C', 'o',
+'n', 'f', 'i', 'g', '\032', '\311', '\001', '\n', '\020', 'O', 'u', 't', 'l', 'i', 'e', 'r', 'D', 'e', 't', 'e', 'c', 't', 'i', 'o', 'n',
+'\022', '$', '\n', '\016', 'e', 'v', 'e', 'n', 't', '_', 'l', 'o', 'g', '_', 'p', 'a', 't', 'h', '\030', '\001', ' ', '\001', '(', '\t', 'R',
+'\014', 'e', 'v', 'e', 'n', 't', 'L', 'o', 'g', 'P', 'a', 't', 'h', '\022', 'M', '\n', '\r', 'e', 'v', 'e', 'n', 't', '_', 's', 'e',
+'r', 'v', 'i', 'c', 'e', '\030', '\002', ' ', '\001', '(', '\013', '2', '(', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i',
+'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'E', 'v', 'e', 'n', 't', 'S', 'e', 'r', 'v', 'i', 'c', 'e', 'C', 'o', 'n',
+'f', 'i', 'g', 'R', '\014', 'e', 'v', 'e', 'n', 't', 'S', 'e', 'r', 'v', 'i', 'c', 'e', ':', '@', '\232', '\305', '\210', '\036', ';', '\n',
+'9', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v',
+'2', '.', 'C', 'l', 'u', 's', 't', 'e', 'r', 'M', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'O', 'u', 't', 'l', 'i', 'e', 'r', 'D',
+'e', 't', 'e', 'c', 't', 'i', 'o', 'n', ':', '/', '\232', '\305', '\210', '\036', '*', '\n', '(', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o',
+'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '2', '.', 'C', 'l', 'u', 's', 't', 'e', 'r',
+'M', 'a', 'n', 'a', 'g', 'e', 'r', '\"', '\260', '\001', '\n', '\t', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', 's', '\022', 'U', '\n', '\024',
+'m', 'a', 'i', 'n', '_', 't', 'h', 'r', 'e', 'a', 'd', '_', 'w', 'a', 't', 'c', 'h', 'd', 'o', 'g', '\030', '\001', ' ', '\001', '(',
+'\013', '2', '#', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a',
+'p', '.', 'v', '3', '.', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', 'R', '\022', 'm', 'a', 'i', 'n', 'T', 'h', 'r', 'e', 'a', 'd',
+'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', '\022', 'L', '\n', '\017', 'w', 'o', 'r', 'k', 'e', 'r', '_', 'w', 'a', 't', 'c', 'h', 'd',
+'o', 'g', '\030', '\002', ' ', '\001', '(', '\013', '2', '#', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b',
+'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', 'R', '\016', 'w', 'o', 'r',
+'k', 'e', 'r', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', '\"', '\272', '\006', '\n', '\010', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', '\022',
+'L', '\n', '\007', 'a', 'c', 't', 'i', 'o', 'n', 's', '\030', '\007', ' ', '\003', '(', '\013', '2', '2', '.', 'e', 'n', 'v', 'o', 'y', '.',
+'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'W', 'a', 't', 'c', 'h',
+'d', 'o', 'g', '.', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', 'A', 'c', 't', 'i', 'o', 'n', 'R', '\007', 'a', 'c', 't', 'i', 'o',
+'n', 's', '\022', '<', '\n', '\014', 'm', 'i', 's', 's', '_', 't', 'i', 'm', 'e', 'o', 'u', 't', '\030', '\001', ' ', '\001', '(', '\013', '2',
+'\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'D', 'u', 'r', 'a', 't', 'i', 'o',
+'n', 'R', '\013', 'm', 'i', 's', 's', 'T', 'i', 'm', 'e', 'o', 'u', 't', '\022', 'D', '\n', '\020', 'm', 'e', 'g', 'a', 'm', 'i', 's',
+'s', '_', 't', 'i', 'm', 'e', 'o', 'u', 't', '\030', '\002', ' ', '\001', '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.',
+'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'D', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'R', '\017', 'm', 'e', 'g', 'a', 'm', 'i',
+'s', 's', 'T', 'i', 'm', 'e', 'o', 'u', 't', '\022', '<', '\n', '\014', 'k', 'i', 'l', 'l', '_', 't', 'i', 'm', 'e', 'o', 'u', 't',
+'\030', '\003', ' ', '\001', '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.',
+'D', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'R', '\013', 'k', 'i', 'l', 'l', 'T', 'i', 'm', 'e', 'o', 'u', 't', '\022', 'Z', '\n', '\027',
+'m', 'a', 'x', '_', 'k', 'i', 'l', 'l', '_', 't', 'i', 'm', 'e', 'o', 'u', 't', '_', 'j', 'i', 't', 't', 'e', 'r', '\030', '\006',
+' ', '\001', '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'D', 'u',
+'r', 'a', 't', 'i', 'o', 'n', 'B', '\010', '\372', 'B', '\005', '\252', '\001', '\002', '2', '\000', 'R', '\024', 'm', 'a', 'x', 'K', 'i', 'l', 'l',
+'T', 'i', 'm', 'e', 'o', 'u', 't', 'J', 'i', 't', 't', 'e', 'r', '\022', 'F', '\n', '\021', 'm', 'u', 'l', 't', 'i', 'k', 'i', 'l',
+'l', '_', 't', 'i', 'm', 'e', 'o', 'u', 't', '\030', '\004', ' ', '\001', '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.',
+'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'D', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'R', '\020', 'm', 'u', 'l', 't', 'i', 'k',
+'i', 'l', 'l', 'T', 'i', 'm', 'e', 'o', 'u', 't', '\022', 'G', '\n', '\023', 'm', 'u', 'l', 't', 'i', 'k', 'i', 'l', 'l', '_', 't',
+'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', '\030', '\005', ' ', '\001', '(', '\013', '2', '\026', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y',
+'p', 'e', '.', 'v', '3', '.', 'P', 'e', 'r', 'c', 'e', 'n', 't', 'R', '\022', 'm', 'u', 'l', 't', 'i', 'k', 'i', 'l', 'l', 'T',
+'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', '\032', '\205', '\002', '\n', '\016', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', 'A', 'c', 't', 'i',
+'o', 'n', '\022', 'B', '\n', '\006', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\001', ' ', '\001', '(', '\013', '2', '*', '.', 'e', 'n', 'v', 'o',
+'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'T', 'y', 'p', 'e', 'd', 'E', 'x', 't',
+'e', 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\006', 'c', 'o', 'n', 'f', 'i', 'g', '\022', '`', '\n', '\005', 'e',
+'v', 'e', 'n', 't', '\030', '\002', ' ', '\001', '(', '\016', '2', '@', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g',
+'.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', '.', 'W', 'a',
+'t', 'c', 'h', 'd', 'o', 'g', 'A', 'c', 't', 'i', 'o', 'n', '.', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', 'E', 'v', 'e', 'n',
+'t', 'B', '\010', '\372', 'B', '\005', '\202', '\001', '\002', '\020', '\001', 'R', '\005', 'e', 'v', 'e', 'n', 't', '\"', 'M', '\n', '\r', 'W', 'a', 't',
+'c', 'h', 'd', 'o', 'g', 'E', 'v', 'e', 'n', 't', '\022', '\013', '\n', '\007', 'U', 'N', 'K', 'N', 'O', 'W', 'N', '\020', '\000', '\022', '\010',
+'\n', '\004', 'K', 'I', 'L', 'L', '\020', '\001', '\022', '\r', '\n', '\t', 'M', 'U', 'L', 'T', 'I', 'K', 'I', 'L', 'L', '\020', '\002', '\022', '\014',
+'\n', '\010', 'M', 'E', 'G', 'A', 'M', 'I', 'S', 'S', '\020', '\003', '\022', '\010', '\n', '\004', 'M', 'I', 'S', 'S', '\020', '\004', ':', ')', '\232',
+'\305', '\210', '\036', '$', '\n', '\"', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't',
+'r', 'a', 'p', '.', 'v', '2', '.', 'W', 'a', 't', 'c', 'h', 'd', 'o', 'g', '\"', 'Q', '\n', '\013', 'F', 'a', 't', 'a', 'l', 'A',
+'c', 't', 'i', 'o', 'n', '\022', 'B', '\n', '\006', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\001', ' ', '\001', '(', '\013', '2', '*', '.', 'e',
+'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'T', 'y', 'p', 'e', 'd',
+'E', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\006', 'c', 'o', 'n', 'f', 'i', 'g', '\"', '\334',
+'\001', '\n', '\007', 'R', 'u', 'n', 't', 'i', 'm', 'e', '\022', '!', '\n', '\014', 's', 'y', 'm', 'l', 'i', 'n', 'k', '_', 'r', 'o', 'o',
+'t', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\013', 's', 'y', 'm', 'l', 'i', 'n', 'k', 'R', 'o', 'o', 't', '\022', '\"', '\n', '\014', 's',
+'u', 'b', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '\030', '\002', ' ', '\001', '(', '\t', 'R', '\014', 's', 'u', 'b', 'd', 'i', 'r',
+'e', 'c', 't', 'o', 'r', 'y', '\022', '3', '\n', '\025', 'o', 'v', 'e', 'r', 'r', 'i', 'd', 'e', '_', 's', 'u', 'b', 'd', 'i', 'r',
+'e', 'c', 't', 'o', 'r', 'y', '\030', '\003', ' ', '\001', '(', '\t', 'R', '\024', 'o', 'v', 'e', 'r', 'r', 'i', 'd', 'e', 'S', 'u', 'b',
+'d', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '\022', '+', '\n', '\004', 'b', 'a', 's', 'e', '\030', '\004', ' ', '\001', '(', '\013', '2', '\027',
+'.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'S', 't', 'r', 'u', 'c', 't', 'R', '\004',
+'b', 'a', 's', 'e', ':', '(', '\232', '\305', '\210', '\036', '#', '\n', '!', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g',
+'.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '2', '.', 'R', 'u', 'n', 't', 'i', 'm', 'e', '\"', '\333', '\006', '\n',
+'\014', 'R', 'u', 'n', 't', 'i', 'm', 'e', 'L', 'a', 'y', 'e', 'r', '\022', '\033', '\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001',
+'(', '\t', 'B', '\007', '\372', 'B', '\004', 'r', '\002', '\020', '\001', 'R', '\004', 'n', 'a', 'm', 'e', '\022', '<', '\n', '\014', 's', 't', 'a', 't',
+'i', 'c', '_', 'l', 'a', 'y', 'e', 'r', '\030', '\002', ' ', '\001', '(', '\013', '2', '\027', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p',
+'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'S', 't', 'r', 'u', 'c', 't', 'H', '\000', 'R', '\013', 's', 't', 'a', 't', 'i', 'c', 'L',
+'a', 'y', 'e', 'r', '\022', 'R', '\n', '\n', 'd', 'i', 's', 'k', '_', 'l', 'a', 'y', 'e', 'r', '\030', '\003', ' ', '\001', '(', '\013', '2',
+'1', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.',
+'v', '3', '.', 'R', 'u', 'n', 't', 'i', 'm', 'e', 'L', 'a', 'y', 'e', 'r', '.', 'D', 'i', 's', 'k', 'L', 'a', 'y', 'e', 'r',
+'H', '\000', 'R', '\t', 'd', 'i', 's', 'k', 'L', 'a', 'y', 'e', 'r', '\022', 'U', '\n', '\013', 'a', 'd', 'm', 'i', 'n', '_', 'l', 'a',
+'y', 'e', 'r', '\030', '\004', ' ', '\001', '(', '\013', '2', '2', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.',
+'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'R', 'u', 'n', 't', 'i', 'm', 'e', 'L', 'a', 'y', 'e', 'r',
+'.', 'A', 'd', 'm', 'i', 'n', 'L', 'a', 'y', 'e', 'r', 'H', '\000', 'R', '\n', 'a', 'd', 'm', 'i', 'n', 'L', 'a', 'y', 'e', 'r',
+'\022', 'R', '\n', '\n', 'r', 't', 'd', 's', '_', 'l', 'a', 'y', 'e', 'r', '\030', '\005', ' ', '\001', '(', '\013', '2', '1', '.', 'e', 'n',
+'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'R',
+'u', 'n', 't', 'i', 'm', 'e', 'L', 'a', 'y', 'e', 'r', '.', 'R', 't', 'd', 's', 'L', 'a', 'y', 'e', 'r', 'H', '\000', 'R', '\t',
+'r', 't', 'd', 's', 'L', 'a', 'y', 'e', 'r', '\032', '\301', '\001', '\n', '\t', 'D', 'i', 's', 'k', 'L', 'a', 'y', 'e', 'r', '\022', '!',
+'\n', '\014', 's', 'y', 'm', 'l', 'i', 'n', 'k', '_', 'r', 'o', 'o', 't', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\013', 's', 'y', 'm',
+'l', 'i', 'n', 'k', 'R', 'o', 'o', 't', '\022', '\"', '\n', '\014', 's', 'u', 'b', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '\030',
+'\003', ' ', '\001', '(', '\t', 'R', '\014', 's', 'u', 'b', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '\022', '4', '\n', '\026', 'a', 'p',
+'p', 'e', 'n', 'd', '_', 's', 'e', 'r', 'v', 'i', 'c', 'e', '_', 'c', 'l', 'u', 's', 't', 'e', 'r', '\030', '\002', ' ', '\001', '(',
+'\010', 'R', '\024', 'a', 'p', 'p', 'e', 'n', 'd', 'S', 'e', 'r', 'v', 'i', 'c', 'e', 'C', 'l', 'u', 's', 't', 'e', 'r', ':', '7',
+'\232', '\305', '\210', '\036', '2', '\n', '0', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's',
+'t', 'r', 'a', 'p', '.', 'v', '2', '.', 'R', 'u', 'n', 't', 'i', 'm', 'e', 'L', 'a', 'y', 'e', 'r', '.', 'D', 'i', 's', 'k',
+'L', 'a', 'y', 'e', 'r', '\032', 'F', '\n', '\n', 'A', 'd', 'm', 'i', 'n', 'L', 'a', 'y', 'e', 'r', ':', '8', '\232', '\305', '\210', '\036',
+'3', '\n', '1', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p',
+'.', 'v', '2', '.', 'R', 'u', 'n', 't', 'i', 'm', 'e', 'L', 'a', 'y', 'e', 'r', '.', 'A', 'd', 'm', 'i', 'n', 'L', 'a', 'y',
+'e', 'r', '\032', '\235', '\001', '\n', '\t', 'R', 't', 'd', 's', 'L', 'a', 'y', 'e', 'r', '\022', '\022', '\n', '\004', 'n', 'a', 'm', 'e', '\030',
+'\001', ' ', '\001', '(', '\t', 'R', '\004', 'n', 'a', 'm', 'e', '\022', 'C', '\n', '\013', 'r', 't', 'd', 's', '_', 'c', 'o', 'n', 'f', 'i',
+'g', '\030', '\002', ' ', '\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o',
+'r', 'e', '.', 'v', '3', '.', 'C', 'o', 'n', 'f', 'i', 'g', 'S', 'o', 'u', 'r', 'c', 'e', 'R', '\n', 'r', 't', 'd', 's', 'C',
+'o', 'n', 'f', 'i', 'g', ':', '7', '\232', '\305', '\210', '\036', '2', '\n', '0', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i',
+'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '2', '.', 'R', 'u', 'n', 't', 'i', 'm', 'e', 'L', 'a', 'y',
+'e', 'r', '.', 'R', 't', 'd', 's', 'L', 'a', 'y', 'e', 'r', ':', '-', '\232', '\305', '\210', '\036', '(', '\n', '&', 'e', 'n', 'v', 'o',
+'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '2', '.', 'R', 'u', 'n',
+'t', 'i', 'm', 'e', 'L', 'a', 'y', 'e', 'r', 'B', '\026', '\n', '\017', 'l', 'a', 'y', 'e', 'r', '_', 's', 'p', 'e', 'c', 'i', 'f',
+'i', 'e', 'r', '\022', '\003', '\370', 'B', '\001', '\"', '\202', '\001', '\n', '\016', 'L', 'a', 'y', 'e', 'r', 'e', 'd', 'R', 'u', 'n', 't', 'i',
+'m', 'e', '\022', '?', '\n', '\006', 'l', 'a', 'y', 'e', 'r', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '\'', '.', 'e', 'n', 'v', 'o',
+'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v', '3', '.', 'R', 'u', 'n',
+'t', 'i', 'm', 'e', 'L', 'a', 'y', 'e', 'r', 'R', '\006', 'l', 'a', 'y', 'e', 'r', 's', ':', '/', '\232', '\305', '\210', '\036', '*', '\n',
+'(', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', '.', 'v',
+'2', '.', 'L', 'a', 'y', 'e', 'r', 'e', 'd', 'R', 'u', 'n', 't', 'i', 'm', 'e', 'B', 'C', '\n', '\'', 'i', 'o', '.', 'e', 'n',
+'v', 'o', 'y', 'p', 'r', 'o', 'x', 'y', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'b', 'o', 'o',
+'t', 's', 't', 'r', 'a', 'p', '.', 'v', '3', 'B', '\016', 'B', 'o', 'o', 't', 's', 't', 'r', 'a', 'p', 'P', 'r', 'o', 't', 'o',
+'P', '\001', '\272', '\200', '\310', '\321', '\006', '\002', '\020', '\002', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3',
+};
+
+static upb_def_init *deps[22] = {
+ &envoy_config_cluster_v3_cluster_proto_upbdefinit,
+ &envoy_config_core_v3_address_proto_upbdefinit,
+ &envoy_config_core_v3_base_proto_upbdefinit,
+ &envoy_config_core_v3_config_source_proto_upbdefinit,
+ &envoy_config_core_v3_event_service_config_proto_upbdefinit,
+ &envoy_config_core_v3_extension_proto_upbdefinit,
+ &envoy_config_core_v3_socket_option_proto_upbdefinit,
+ &envoy_config_listener_v3_listener_proto_upbdefinit,
+ &envoy_config_metrics_v3_stats_proto_upbdefinit,
+ &envoy_config_overload_v3_overload_proto_upbdefinit,
+ &envoy_config_trace_v3_http_tracer_proto_upbdefinit,
+ &envoy_extensions_transport_sockets_tls_v3_secret_proto_upbdefinit,
+ &envoy_type_v3_percent_proto_upbdefinit,
+ &google_protobuf_duration_proto_upbdefinit,
+ &google_protobuf_struct_proto_upbdefinit,
+ &google_protobuf_wrappers_proto_upbdefinit,
+ &udpa_annotations_migrate_proto_upbdefinit,
+ &udpa_annotations_security_proto_upbdefinit,
+ &udpa_annotations_status_proto_upbdefinit,
+ &udpa_annotations_versioning_proto_upbdefinit,
+ &validate_validate_proto_upbdefinit,
+ NULL
+};
+
+upb_def_init envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit = {
+ deps,
+ layouts,
+ "envoy/config/bootstrap/v3/bootstrap.proto",
+ UPB_STRVIEW_INIT(descriptor, 6993)
+};
diff --git a/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h b/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h
new file mode 100644
index 00000000000..666cbed19e3
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h
@@ -0,0 +1,115 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/bootstrap/v3/bootstrap.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_CONFIG_BOOTSTRAP_V3_BOOTSTRAP_PROTO_UPBDEFS_H_
+#define ENVOY_CONFIG_BOOTSTRAP_V3_BOOTSTRAP_PROTO_UPBDEFS_H_
+
+#include "upb/def.h"
+#include "upb/port_def.inc"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "upb/def.h"
+
+#include "upb/port_def.inc"
+
+extern upb_def_init envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit;
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Bootstrap_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Bootstrap");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Bootstrap_StaticResources_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Bootstrap.StaticResources");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Bootstrap_DynamicResources_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Bootstrap.DynamicResources");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Bootstrap_CertificateProviderInstancesEntry_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Bootstrap.CertificateProviderInstancesEntry");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Admin_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Admin");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_ClusterManager_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.ClusterManager");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_ClusterManager_OutlierDetection_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.ClusterManager.OutlierDetection");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Watchdogs_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Watchdogs");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Watchdog_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Watchdog");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Watchdog_WatchdogAction_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Watchdog.WatchdogAction");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_FatalAction_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.FatalAction");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_Runtime_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.Runtime");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_RuntimeLayer_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.RuntimeLayer");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.RuntimeLayer.DiskLayer");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.RuntimeLayer.AdminLayer");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.RuntimeLayer.RtdsLayer");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_bootstrap_v3_LayeredRuntime_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_bootstrap_v3_bootstrap_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.bootstrap.v3.LayeredRuntime");
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_CONFIG_BOOTSTRAP_V3_BOOTSTRAP_PROTO_UPBDEFS_H_ */
diff --git a/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c b/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c
new file mode 100644
index 00000000000..e49149aad7b
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c
@@ -0,0 +1,141 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/metrics/v3/stats.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include "upb/def.h"
+#include "envoy/config/metrics/v3/stats.upbdefs.h"
+
+extern upb_def_init envoy_config_core_v3_address_proto_upbdefinit;
+extern upb_def_init envoy_type_matcher_v3_string_proto_upbdefinit;
+extern upb_def_init google_protobuf_any_proto_upbdefinit;
+extern upb_def_init google_protobuf_wrappers_proto_upbdefinit;
+extern upb_def_init udpa_annotations_status_proto_upbdefinit;
+extern upb_def_init udpa_annotations_versioning_proto_upbdefinit;
+extern upb_def_init validate_validate_proto_upbdefinit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsSink_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsConfig_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsMatcher_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_TagSpecifier_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_HistogramBucketSettings_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_StatsdSink_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_DogStatsdSink_msginit;
+extern const upb_msglayout envoy_config_metrics_v3_HystrixSink_msginit;
+
+static const upb_msglayout *layouts[8] = {
+ &envoy_config_metrics_v3_StatsSink_msginit,
+ &envoy_config_metrics_v3_StatsConfig_msginit,
+ &envoy_config_metrics_v3_StatsMatcher_msginit,
+ &envoy_config_metrics_v3_TagSpecifier_msginit,
+ &envoy_config_metrics_v3_HistogramBucketSettings_msginit,
+ &envoy_config_metrics_v3_StatsdSink_msginit,
+ &envoy_config_metrics_v3_DogStatsdSink_msginit,
+ &envoy_config_metrics_v3_HystrixSink_msginit,
+};
+
+static const char descriptor[2091] = {'\n', '#', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'm', 'e', 't', 'r', 'i', 'c', 's', '/', 'v', '3',
+'/', 's', 't', 'a', 't', 's', '.', 'p', 'r', 'o', 't', 'o', '\022', '\027', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i',
+'g', '.', 'm', 'e', 't', 'r', 'i', 'c', 's', '.', 'v', '3', '\032', '\"', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i',
+'g', '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'a', 'd', 'd', 'r', 'e', 's', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '\"',
+'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 's', 't', 'r',
+'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '\031', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u',
+'f', '/', 'a', 'n', 'y', '.', 'p', 'r', 'o', 't', 'o', '\032', '\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o',
+'b', 'u', 'f', '/', 'w', 'r', 'a', 'p', 'p', 'e', 'r', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '\035', 'u', 'd', 'p', 'a', '/',
+'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\032',
+'!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'v', 'e', 'r', 's', 'i', 'o', 'n',
+'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '\027', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', 'a', 'l', 'i', 'd',
+'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\241', '\001', '\n', '\t', 'S', 't', 'a', 't', 's', 'S', 'i', 'n', 'k', '\022', '\022',
+'\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\004', 'n', 'a', 'm', 'e', '\022', '9', '\n', '\014', 't', 'y', 'p',
+'e', 'd', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\003', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.',
+'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'H', '\000', 'R', '\013', 't', 'y', 'p', 'e', 'd', 'C', 'o', 'n', 'f',
+'i', 'g', ':', '(', '\232', '\305', '\210', '\036', '#', '\n', '!', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm',
+'e', 't', 'r', 'i', 'c', 's', '.', 'v', '2', '.', 'S', 't', 'a', 't', 's', 'S', 'i', 'n', 'k', 'B', '\r', '\n', '\013', 'c', 'o',
+'n', 'f', 'i', 'g', '_', 't', 'y', 'p', 'e', 'J', '\004', '\010', '\002', '\020', '\003', 'R', '\006', 'c', 'o', 'n', 'f', 'i', 'g', '\"', '\206',
+'\003', '\n', '\013', 'S', 't', 'a', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', '\022', 'D', '\n', '\n', 's', 't', 'a', 't', 's', '_', 't',
+'a', 'g', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '%', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.',
+'m', 'e', 't', 'r', 'i', 'c', 's', '.', 'v', '3', '.', 'T', 'a', 'g', 'S', 'p', 'e', 'c', 'i', 'f', 'i', 'e', 'r', 'R', '\t',
+'s', 't', 'a', 't', 's', 'T', 'a', 'g', 's', '\022', 'K', '\n', '\024', 'u', 's', 'e', '_', 'a', 'l', 'l', '_', 'd', 'e', 'f', 'a',
+'u', 'l', 't', '_', 't', 'a', 'g', 's', '\030', '\002', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p',
+'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'B', 'o', 'o', 'l', 'V', 'a', 'l', 'u', 'e', 'R', '\021', 'u', 's', 'e', 'A', 'l', 'l',
+'D', 'e', 'f', 'a', 'u', 'l', 't', 'T', 'a', 'g', 's', '\022', 'J', '\n', '\r', 's', 't', 'a', 't', 's', '_', 'm', 'a', 't', 'c',
+'h', 'e', 'r', '\030', '\003', ' ', '\001', '(', '\013', '2', '%', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.',
+'m', 'e', 't', 'r', 'i', 'c', 's', '.', 'v', '3', '.', 'S', 't', 'a', 't', 's', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'R', '\014',
+'s', 't', 'a', 't', 's', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', 'l', '\n', '\031', 'h', 'i', 's', 't', 'o', 'g', 'r', 'a', 'm',
+'_', 'b', 'u', 'c', 'k', 'e', 't', '_', 's', 'e', 't', 't', 'i', 'n', 'g', 's', '\030', '\004', ' ', '\003', '(', '\013', '2', '0', '.',
+'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm', 'e', 't', 'r', 'i', 'c', 's', '.', 'v', '3', '.', 'H',
+'i', 's', 't', 'o', 'g', 'r', 'a', 'm', 'B', 'u', 'c', 'k', 'e', 't', 'S', 'e', 't', 't', 'i', 'n', 'g', 's', 'R', '\027', 'h',
+'i', 's', 't', 'o', 'g', 'r', 'a', 'm', 'B', 'u', 'c', 'k', 'e', 't', 'S', 'e', 't', 't', 'i', 'n', 'g', 's', ':', '*', '\232',
+'\305', '\210', '\036', '%', '\n', '#', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm', 'e', 't', 'r', 'i', 'c',
+'s', '.', 'v', '2', '.', 'S', 't', 'a', 't', 's', 'C', 'o', 'n', 'f', 'i', 'g', '\"', '\230', '\002', '\n', '\014', 'S', 't', 'a', 't',
+'s', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', '\037', '\n', '\n', 'r', 'e', 'j', 'e', 'c', 't', '_', 'a', 'l', 'l', '\030', '\001', ' ',
+'\001', '(', '\010', 'H', '\000', 'R', '\t', 'r', 'e', 'j', 'e', 'c', 't', 'A', 'l', 'l', '\022', 'Q', '\n', '\016', 'e', 'x', 'c', 'l', 'u',
+'s', 'i', 'o', 'n', '_', 'l', 'i', 's', 't', '\030', '\002', ' ', '\001', '(', '\013', '2', '(', '.', 'e', 'n', 'v', 'o', 'y', '.', 't',
+'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'L', 'i', 's', 't', 'S', 't', 'r', 'i', 'n', 'g',
+'M', 'a', 't', 'c', 'h', 'e', 'r', 'H', '\000', 'R', '\r', 'e', 'x', 'c', 'l', 'u', 's', 'i', 'o', 'n', 'L', 'i', 's', 't', '\022',
+'Q', '\n', '\016', 'i', 'n', 'c', 'l', 'u', 's', 'i', 'o', 'n', '_', 'l', 'i', 's', 't', '\030', '\003', ' ', '\001', '(', '\013', '2', '(',
+'.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'L', 'i',
+'s', 't', 'S', 't', 'r', 'i', 'n', 'g', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'H', '\000', 'R', '\r', 'i', 'n', 'c', 'l', 'u', 's',
+'i', 'o', 'n', 'L', 'i', 's', 't', ':', '+', '\232', '\305', '\210', '\036', '&', '\n', '$', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n',
+'f', 'i', 'g', '.', 'm', 'e', 't', 'r', 'i', 'c', 's', '.', 'v', '2', '.', 'S', 't', 'a', 't', 's', 'M', 'a', 't', 'c', 'h',
+'e', 'r', 'B', '\024', '\n', '\r', 's', 't', 'a', 't', 's', '_', 'm', 'a', 't', 'c', 'h', 'e', 'r', '\022', '\003', '\370', 'B', '\001', '\"',
+'\250', '\001', '\n', '\014', 'T', 'a', 'g', 'S', 'p', 'e', 'c', 'i', 'f', 'i', 'e', 'r', '\022', '\031', '\n', '\010', 't', 'a', 'g', '_', 'n',
+'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'R', '\007', 't', 'a', 'g', 'N', 'a', 'm', 'e', '\022', ' ', '\n', '\005', 'r', 'e', 'g',
+'e', 'x', '\030', '\002', ' ', '\001', '(', '\t', 'B', '\010', '\372', 'B', '\005', 'r', '\003', '(', '\200', '\010', 'H', '\000', 'R', '\005', 'r', 'e', 'g',
+'e', 'x', '\022', '!', '\n', '\013', 'f', 'i', 'x', 'e', 'd', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\003', ' ', '\001', '(', '\t', 'H', '\000',
+'R', '\n', 'f', 'i', 'x', 'e', 'd', 'V', 'a', 'l', 'u', 'e', ':', '+', '\232', '\305', '\210', '\036', '&', '\n', '$', 'e', 'n', 'v', 'o',
+'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm', 'e', 't', 'r', 'i', 'c', 's', '.', 'v', '2', '.', 'T', 'a', 'g', 'S', 'p',
+'e', 'c', 'i', 'f', 'i', 'e', 'r', 'B', '\013', '\n', '\t', 't', 'a', 'g', '_', 'v', 'a', 'l', 'u', 'e', '\"', '\222', '\001', '\n', '\027',
+'H', 'i', 's', 't', 'o', 'g', 'r', 'a', 'm', 'B', 'u', 'c', 'k', 'e', 't', 'S', 'e', 't', 't', 'i', 'n', 'g', 's', '\022', 'D',
+'\n', '\005', 'm', 'a', 't', 'c', 'h', '\030', '\001', ' ', '\001', '(', '\013', '2', '$', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p',
+'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'S', 't', 'r', 'i', 'n', 'g', 'M', 'a', 't', 'c', 'h', 'e',
+'r', 'B', '\010', '\372', 'B', '\005', '\212', '\001', '\002', '\020', '\001', 'R', '\005', 'm', 'a', 't', 'c', 'h', '\022', '1', '\n', '\007', 'b', 'u', 'c',
+'k', 'e', 't', 's', '\030', '\002', ' ', '\003', '(', '\001', 'B', '\027', '\372', 'B', '\024', '\222', '\001', '\021', '\010', '\001', '\030', '\001', '\"', '\013', '\022',
+'\t', '!', '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000', 'R', '\007', 'b', 'u', 'c', 'k', 'e', 't', 's', '\"', '\317', '\001', '\n', '\n', 'S',
+'t', 'a', 't', 's', 'd', 'S', 'i', 'n', 'k', '\022', '9', '\n', '\007', 'a', 'd', 'd', 'r', 'e', 's', 's', '\030', '\001', ' ', '\001', '(',
+'\013', '2', '\035', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.',
+'A', 'd', 'd', 'r', 'e', 's', 's', 'H', '\000', 'R', '\007', 'a', 'd', 'd', 'r', 'e', 's', 's', '\022', '*', '\n', '\020', 't', 'c', 'p',
+'_', 'c', 'l', 'u', 's', 't', 'e', 'r', '_', 'n', 'a', 'm', 'e', '\030', '\002', ' ', '\001', '(', '\t', 'H', '\000', 'R', '\016', 't', 'c',
+'p', 'C', 'l', 'u', 's', 't', 'e', 'r', 'N', 'a', 'm', 'e', '\022', '\026', '\n', '\006', 'p', 'r', 'e', 'f', 'i', 'x', '\030', '\003', ' ',
+'\001', '(', '\t', 'R', '\006', 'p', 'r', 'e', 'f', 'i', 'x', ':', ')', '\232', '\305', '\210', '\036', '$', '\n', '\"', 'e', 'n', 'v', 'o', 'y',
+'.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm', 'e', 't', 'r', 'i', 'c', 's', '.', 'v', '2', '.', 'S', 't', 'a', 't', 's', 'd',
+'S', 'i', 'n', 'k', 'B', '\027', '\n', '\020', 's', 't', 'a', 't', 's', 'd', '_', 's', 'p', 'e', 'c', 'i', 'f', 'i', 'e', 'r', '\022',
+'\003', '\370', 'B', '\001', '\"', '\217', '\002', '\n', '\r', 'D', 'o', 'g', 'S', 't', 'a', 't', 's', 'd', 'S', 'i', 'n', 'k', '\022', '9', '\n',
+'\007', 'a', 'd', 'd', 'r', 'e', 's', 's', '\030', '\001', ' ', '\001', '(', '\013', '2', '\035', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o',
+'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'A', 'd', 'd', 'r', 'e', 's', 's', 'H', '\000', 'R', '\007', 'a',
+'d', 'd', 'r', 'e', 's', 's', '\022', '\026', '\n', '\006', 'p', 'r', 'e', 'f', 'i', 'x', '\030', '\003', ' ', '\001', '(', '\t', 'R', '\006', 'p',
+'r', 'e', 'f', 'i', 'x', '\022', 'Z', '\n', '\026', 'm', 'a', 'x', '_', 'b', 'y', 't', 'e', 's', '_', 'p', 'e', 'r', '_', 'd', 'a',
+'t', 'a', 'g', 'r', 'a', 'm', '\030', '\004', ' ', '\001', '(', '\013', '2', '\034', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o',
+'t', 'o', 'b', 'u', 'f', '.', 'U', 'I', 'n', 't', '6', '4', 'V', 'a', 'l', 'u', 'e', 'B', '\007', '\372', 'B', '\004', '2', '\002', ' ',
+'\000', 'R', '\023', 'm', 'a', 'x', 'B', 'y', 't', 'e', 's', 'P', 'e', 'r', 'D', 'a', 't', 'a', 'g', 'r', 'a', 'm', ':', ',', '\232',
+'\305', '\210', '\036', '\'', '\n', '%', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm', 'e', 't', 'r', 'i', 'c',
+'s', '.', 'v', '2', '.', 'D', 'o', 'g', 'S', 't', 'a', 't', 's', 'd', 'S', 'i', 'n', 'k', 'B', '\033', '\n', '\024', 'd', 'o', 'g',
+'_', 's', 't', 'a', 't', 's', 'd', '_', 's', 'p', 'e', 'c', 'i', 'f', 'i', 'e', 'r', '\022', '\003', '\370', 'B', '\001', 'J', '\004', '\010',
+'\002', '\020', '\003', '\"', 'Z', '\n', '\013', 'H', 'y', 's', 't', 'r', 'i', 'x', 'S', 'i', 'n', 'k', '\022', '\037', '\n', '\013', 'n', 'u', 'm',
+'_', 'b', 'u', 'c', 'k', 'e', 't', 's', '\030', '\001', ' ', '\001', '(', '\003', 'R', '\n', 'n', 'u', 'm', 'B', 'u', 'c', 'k', 'e', 't',
+'s', ':', '*', '\232', '\305', '\210', '\036', '%', '\n', '#', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'm', 'e',
+'t', 'r', 'i', 'c', 's', '.', 'v', '2', '.', 'H', 'y', 's', 't', 'r', 'i', 'x', 'S', 'i', 'n', 'k', 'B', '=', '\n', '%', 'i',
+'o', '.', 'e', 'n', 'v', 'o', 'y', 'p', 'r', 'o', 'x', 'y', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g',
+'.', 'm', 'e', 't', 'r', 'i', 'c', 's', '.', 'v', '3', 'B', '\n', 'S', 't', 'a', 't', 's', 'P', 'r', 'o', 't', 'o', 'P', '\001',
+'\272', '\200', '\310', '\321', '\006', '\002', '\020', '\002', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3',
+};
+
+static upb_def_init *deps[8] = {
+ &envoy_config_core_v3_address_proto_upbdefinit,
+ &envoy_type_matcher_v3_string_proto_upbdefinit,
+ &google_protobuf_any_proto_upbdefinit,
+ &google_protobuf_wrappers_proto_upbdefinit,
+ &udpa_annotations_status_proto_upbdefinit,
+ &udpa_annotations_versioning_proto_upbdefinit,
+ &validate_validate_proto_upbdefinit,
+ NULL
+};
+
+upb_def_init envoy_config_metrics_v3_stats_proto_upbdefinit = {
+ deps,
+ layouts,
+ "envoy/config/metrics/v3/stats.proto",
+ UPB_STRVIEW_INIT(descriptor, 2091)
+};
diff --git a/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h b/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h
new file mode 100644
index 00000000000..0432cfd1f06
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h
@@ -0,0 +1,70 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/metrics/v3/stats.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_CONFIG_METRICS_V3_STATS_PROTO_UPBDEFS_H_
+#define ENVOY_CONFIG_METRICS_V3_STATS_PROTO_UPBDEFS_H_
+
+#include "upb/def.h"
+#include "upb/port_def.inc"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "upb/def.h"
+
+#include "upb/port_def.inc"
+
+extern upb_def_init envoy_config_metrics_v3_stats_proto_upbdefinit;
+
+UPB_INLINE const upb_msgdef *envoy_config_metrics_v3_StatsSink_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_metrics_v3_stats_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.metrics.v3.StatsSink");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_metrics_v3_StatsConfig_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_metrics_v3_stats_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.metrics.v3.StatsConfig");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_metrics_v3_StatsMatcher_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_metrics_v3_stats_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.metrics.v3.StatsMatcher");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_metrics_v3_TagSpecifier_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_metrics_v3_stats_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.metrics.v3.TagSpecifier");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_metrics_v3_HistogramBucketSettings_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_metrics_v3_stats_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.metrics.v3.HistogramBucketSettings");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_metrics_v3_StatsdSink_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_metrics_v3_stats_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.metrics.v3.StatsdSink");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_metrics_v3_DogStatsdSink_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_metrics_v3_stats_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.metrics.v3.DogStatsdSink");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_metrics_v3_HystrixSink_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_metrics_v3_stats_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.metrics.v3.HystrixSink");
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_CONFIG_METRICS_V3_STATS_PROTO_UPBDEFS_H_ */
diff --git a/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c b/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c
new file mode 100644
index 00000000000..e189d990001
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c
@@ -0,0 +1,141 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/overload/v3/overload.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include "upb/def.h"
+#include "envoy/config/overload/v3/overload.upbdefs.h"
+
+extern upb_def_init envoy_type_v3_percent_proto_upbdefinit;
+extern upb_def_init google_protobuf_any_proto_upbdefinit;
+extern upb_def_init google_protobuf_duration_proto_upbdefinit;
+extern upb_def_init udpa_annotations_status_proto_upbdefinit;
+extern upb_def_init udpa_annotations_versioning_proto_upbdefinit;
+extern upb_def_init validate_validate_proto_upbdefinit;
+extern const upb_msglayout envoy_config_overload_v3_ResourceMonitor_msginit;
+extern const upb_msglayout envoy_config_overload_v3_ThresholdTrigger_msginit;
+extern const upb_msglayout envoy_config_overload_v3_ScaledTrigger_msginit;
+extern const upb_msglayout envoy_config_overload_v3_Trigger_msginit;
+extern const upb_msglayout envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit;
+extern const upb_msglayout envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit;
+extern const upb_msglayout envoy_config_overload_v3_OverloadAction_msginit;
+extern const upb_msglayout envoy_config_overload_v3_OverloadManager_msginit;
+
+static const upb_msglayout *layouts[8] = {
+ &envoy_config_overload_v3_ResourceMonitor_msginit,
+ &envoy_config_overload_v3_ThresholdTrigger_msginit,
+ &envoy_config_overload_v3_ScaledTrigger_msginit,
+ &envoy_config_overload_v3_Trigger_msginit,
+ &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_msginit,
+ &envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_msginit,
+ &envoy_config_overload_v3_OverloadAction_msginit,
+ &envoy_config_overload_v3_OverloadManager_msginit,
+};
+
+static const char descriptor[2145] = {'\n', '\'', 'e', 'n', 'v', 'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '/', 'v',
+'3', '/', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'p', 'r', 'o', 't', 'o', '\022', '\030', 'e', 'n', 'v', 'o', 'y', '.', 'c',
+'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '3', '\032', '\033', 'e', 'n', 'v', 'o', 'y', '/',
+'t', 'y', 'p', 'e', '/', 'v', '3', '/', 'p', 'e', 'r', 'c', 'e', 'n', 't', '.', 'p', 'r', 'o', 't', 'o', '\032', '\031', 'g', 'o',
+'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'a', 'n', 'y', '.', 'p', 'r', 'o', 't', 'o', '\032', '\036',
+'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'd', 'u', 'r', 'a', 't', 'i', 'o', 'n', '.',
+'p', 'r', 'o', 't', 'o', '\032', '\035', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's',
+'t', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't',
+'i', 'o', 'n', 's', '/', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '\027', 'v', 'a',
+'l', 'i', 'd', 'a', 't', 'e', '/', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\274', '\001', '\n',
+'\017', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'M', 'o', 'n', 'i', 't', 'o', 'r', '\022', '\033', '\n', '\004', 'n', 'a', 'm', 'e', '\030',
+'\001', ' ', '\001', '(', '\t', 'B', '\007', '\372', 'B', '\004', 'r', '\002', '\020', '\001', 'R', '\004', 'n', 'a', 'm', 'e', '\022', '9', '\n', '\014', 't',
+'y', 'p', 'e', 'd', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\003', ' ', '\001', '(', '\013', '2', '\024', '.', 'g', 'o', 'o', 'g', 'l',
+'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'H', '\000', 'R', '\013', 't', 'y', 'p', 'e', 'd', 'C', 'o',
+'n', 'f', 'i', 'g', ':', '4', '\232', '\305', '\210', '\036', '/', '\n', '-', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g',
+'.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'R', 'e', 's', 'o', 'u', 'r', 'c',
+'e', 'M', 'o', 'n', 'i', 't', 'o', 'r', 'B', '\r', '\n', '\013', 'c', 'o', 'n', 'f', 'i', 'g', '_', 't', 'y', 'p', 'e', 'J', '\004',
+'\010', '\002', '\020', '\003', 'R', '\006', 'c', 'o', 'n', 'f', 'i', 'g', '\"', 'x', '\n', '\020', 'T', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd',
+'T', 'r', 'i', 'g', 'g', 'e', 'r', '\022', '-', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\001', 'B', '\027', '\372',
+'B', '\024', '\022', '\022', '\031', '\000', '\000', '\000', '\000', '\000', '\000', '\360', '?', ')', '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000', 'R', '\005', 'v',
+'a', 'l', 'u', 'e', ':', '5', '\232', '\305', '\210', '\036', '0', '\n', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g',
+'.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'T', 'h', 'r', 'e', 's', 'h', 'o',
+'l', 'd', 'T', 'r', 'i', 'g', 'g', 'e', 'r', '\"', '\241', '\001', '\n', '\r', 'S', 'c', 'a', 'l', 'e', 'd', 'T', 'r', 'i', 'g', 'g',
+'e', 'r', '\022', 'D', '\n', '\021', 's', 'c', 'a', 'l', 'i', 'n', 'g', '_', 't', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', '\030', '\001',
+' ', '\001', '(', '\001', 'B', '\027', '\372', 'B', '\024', '\022', '\022', '\031', '\000', '\000', '\000', '\000', '\000', '\000', '\360', '?', ')', '\000', '\000', '\000', '\000',
+'\000', '\000', '\000', '\000', 'R', '\020', 's', 'c', 'a', 'l', 'i', 'n', 'g', 'T', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', '\022', 'J', '\n',
+'\024', 's', 'a', 't', 'u', 'r', 'a', 't', 'i', 'o', 'n', '_', 't', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', '\030', '\002', ' ', '\001',
+'(', '\001', 'B', '\027', '\372', 'B', '\024', '\022', '\022', '\031', '\000', '\000', '\000', '\000', '\000', '\000', '\360', '?', ')', '\000', '\000', '\000', '\000', '\000', '\000',
+'\000', '\000', 'R', '\023', 's', 'a', 't', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'T', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', '\"', '\371',
+'\001', '\n', '\007', 'T', 'r', 'i', 'g', 'g', 'e', 'r', '\022', '\033', '\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'B',
+'\007', '\372', 'B', '\004', 'r', '\002', '\020', '\001', 'R', '\004', 'n', 'a', 'm', 'e', '\022', 'J', '\n', '\t', 't', 'h', 'r', 'e', 's', 'h', 'o',
+'l', 'd', '\030', '\002', ' ', '\001', '(', '\013', '2', '*', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'o',
+'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '3', '.', 'T', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', 'T', 'r', 'i', 'g', 'g',
+'e', 'r', 'H', '\000', 'R', '\t', 't', 'h', 'r', 'e', 's', 'h', 'o', 'l', 'd', '\022', 'A', '\n', '\006', 's', 'c', 'a', 'l', 'e', 'd',
+'\030', '\003', ' ', '\001', '(', '\013', '2', '\'', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e',
+'r', 'l', 'o', 'a', 'd', '.', 'v', '3', '.', 'S', 'c', 'a', 'l', 'e', 'd', 'T', 'r', 'i', 'g', 'g', 'e', 'r', 'H', '\000', 'R',
+'\006', 's', 'c', 'a', 'l', 'e', 'd', ':', ',', '\232', '\305', '\210', '\036', '\'', '\n', '%', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n',
+'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'T', 'r', 'i', 'g',
+'g', 'e', 'r', 'B', '\024', '\n', '\r', 't', 'r', 'i', 'g', 'g', 'e', 'r', '_', 'o', 'n', 'e', 'o', 'f', '\022', '\003', '\370', 'B', '\001',
+'\"', '\247', '\004', '\n', '\037', 'S', 'c', 'a', 'l', 'e', 'T', 'i', 'm', 'e', 'r', 's', 'O', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'A',
+'c', 't', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', '\022', '~', '\n', '\023', 't', 'i', 'm', 'e', 'r', '_', 's', 'c', 'a', 'l',
+'e', '_', 'f', 'a', 'c', 't', 'o', 'r', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', 'D', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c',
+'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '3', '.', 'S', 'c', 'a', 'l', 'e', 'T', 'i',
+'m', 'e', 'r', 's', 'O', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'A', 'c', 't', 'i', 'o', 'n', 'C', 'o', 'n', 'f', 'i', 'g', '.',
+'S', 'c', 'a', 'l', 'e', 'T', 'i', 'm', 'e', 'r', 'B', '\010', '\372', 'B', '\005', '\222', '\001', '\002', '\010', '\001', 'R', '\021', 't', 'i', 'm',
+'e', 'r', 'S', 'c', 'a', 'l', 'e', 'F', 'a', 'c', 't', 'o', 'r', 's', '\032', '\200', '\002', '\n', '\n', 'S', 'c', 'a', 'l', 'e', 'T',
+'i', 'm', 'e', 'r', '\022', 'e', '\n', '\005', 't', 'i', 'm', 'e', 'r', '\030', '\001', ' ', '\001', '(', '\016', '2', 'C', '.', 'e', 'n', 'v',
+'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '3', '.', 'S', 'c', 'a',
+'l', 'e', 'T', 'i', 'm', 'e', 'r', 's', 'O', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'A', 'c', 't', 'i', 'o', 'n', 'C', 'o', 'n',
+'f', 'i', 'g', '.', 'T', 'i', 'm', 'e', 'r', 'T', 'y', 'p', 'e', 'B', '\n', '\372', 'B', '\007', '\202', '\001', '\004', '\020', '\001', ' ', '\000',
+'R', '\005', 't', 'i', 'm', 'e', 'r', '\022', '<', '\n', '\013', 'm', 'i', 'n', '_', 't', 'i', 'm', 'e', 'o', 'u', 't', '\030', '\002', ' ',
+'\001', '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'D', 'u', 'r',
+'a', 't', 'i', 'o', 'n', 'H', '\000', 'R', '\n', 'm', 'i', 'n', 'T', 'i', 'm', 'e', 'o', 'u', 't', '\022', '5', '\n', '\t', 'm', 'i',
+'n', '_', 's', 'c', 'a', 'l', 'e', '\030', '\003', ' ', '\001', '(', '\013', '2', '\026', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p',
+'e', '.', 'v', '3', '.', 'P', 'e', 'r', 'c', 'e', 'n', 't', 'H', '\000', 'R', '\010', 'm', 'i', 'n', 'S', 'c', 'a', 'l', 'e', 'B',
+'\026', '\n', '\017', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '_', 'a', 'd', 'j', 'u', 's', 't', '\022', '\003', '\370', 'B', '\001', '\"', '\200',
+'\001', '\n', '\t', 'T', 'i', 'm', 'e', 'r', 'T', 'y', 'p', 'e', '\022', '\017', '\n', '\013', 'U', 'N', 'S', 'P', 'E', 'C', 'I', 'F', 'I',
+'E', 'D', '\020', '\000', '\022', '#', '\n', '\037', 'H', 'T', 'T', 'P', '_', 'D', 'O', 'W', 'N', 'S', 'T', 'R', 'E', 'A', 'M', '_', 'C',
+'O', 'N', 'N', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'I', 'D', 'L', 'E', '\020', '\001', '\022', '\037', '\n', '\033', 'H', 'T', 'T', 'P', '_',
+'D', 'O', 'W', 'N', 'S', 'T', 'R', 'E', 'A', 'M', '_', 'S', 'T', 'R', 'E', 'A', 'M', '_', 'I', 'D', 'L', 'E', '\020', '\002', '\022',
+'\034', '\n', '\030', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'R', 'T', '_', 'S', 'O', 'C', 'K', 'E', 'T', '_', 'C', 'O', 'N', 'N', 'E',
+'C', 'T', '\020', '\003', '\"', '\344', '\001', '\n', '\016', 'O', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'A', 'c', 't', 'i', 'o', 'n', '\022', '\033',
+'\n', '\004', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'B', '\007', '\372', 'B', '\004', 'r', '\002', '\020', '\001', 'R', '\004', 'n', 'a',
+'m', 'e', '\022', 'G', '\n', '\010', 't', 'r', 'i', 'g', 'g', 'e', 'r', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '!', '.', 'e', 'n',
+'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '3', '.', 'T', 'r',
+'i', 'g', 'g', 'e', 'r', 'B', '\010', '\372', 'B', '\005', '\222', '\001', '\002', '\010', '\001', 'R', '\010', 't', 'r', 'i', 'g', 'g', 'e', 'r', 's',
+'\022', '7', '\n', '\014', 't', 'y', 'p', 'e', 'd', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\003', ' ', '\001', '(', '\013', '2', '\024', '.',
+'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'A', 'n', 'y', 'R', '\013', 't', 'y', 'p', 'e',
+'d', 'C', 'o', 'n', 'f', 'i', 'g', ':', '3', '\232', '\305', '\210', '\036', '.', '\n', ',', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n',
+'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '2', 'a', 'l', 'p', 'h', 'a', '.', 'O', 'v', 'e', 'r',
+'l', 'o', 'a', 'd', 'A', 'c', 't', 'i', 'o', 'n', '\"', '\263', '\002', '\n', '\017', 'O', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'M', 'a',
+'n', 'a', 'g', 'e', 'r', '\022', 'D', '\n', '\020', 'r', 'e', 'f', 'r', 'e', 's', 'h', '_', 'i', 'n', 't', 'e', 'r', 'v', 'a', 'l',
+'\030', '\001', ' ', '\001', '(', '\013', '2', '\031', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.',
+'D', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'R', '\017', 'r', 'e', 'f', 'r', 'e', 's', 'h', 'I', 'n', 't', 'e', 'r', 'v', 'a', 'l',
+'\022', '`', '\n', '\021', 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', '_', 'm', 'o', 'n', 'i', 't', 'o', 'r', 's', '\030', '\002', ' ', '\003',
+'(', '\013', '2', ')', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a',
+'d', '.', 'v', '3', '.', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'M', 'o', 'n', 'i', 't', 'o', 'r', 'B', '\010', '\372', 'B', '\005',
+'\222', '\001', '\002', '\010', '\001', 'R', '\020', 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'M', 'o', 'n', 'i', 't', 'o', 'r', 's', '\022', 'B',
+'\n', '\007', 'a', 'c', 't', 'i', 'o', 'n', 's', '\030', '\003', ' ', '\003', '(', '\013', '2', '(', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c',
+'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '3', '.', 'O', 'v', 'e', 'r', 'l', 'o', 'a',
+'d', 'A', 'c', 't', 'i', 'o', 'n', 'R', '\007', 'a', 'c', 't', 'i', 'o', 'n', 's', ':', '4', '\232', '\305', '\210', '\036', '/', '\n', '-',
+'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '2', 'a',
+'l', 'p', 'h', 'a', '.', 'O', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'M', 'a', 'n', 'a', 'g', 'e', 'r', 'B', 'A', '\n', '&', 'i',
+'o', '.', 'e', 'n', 'v', 'o', 'y', 'p', 'r', 'o', 'x', 'y', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g',
+'.', 'o', 'v', 'e', 'r', 'l', 'o', 'a', 'd', '.', 'v', '3', 'B', '\r', 'O', 'v', 'e', 'r', 'l', 'o', 'a', 'd', 'P', 'r', 'o',
+'t', 'o', 'P', '\001', '\272', '\200', '\310', '\321', '\006', '\002', '\020', '\002', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3',
+};
+
+static upb_def_init *deps[7] = {
+ &envoy_type_v3_percent_proto_upbdefinit,
+ &google_protobuf_any_proto_upbdefinit,
+ &google_protobuf_duration_proto_upbdefinit,
+ &udpa_annotations_status_proto_upbdefinit,
+ &udpa_annotations_versioning_proto_upbdefinit,
+ &validate_validate_proto_upbdefinit,
+ NULL
+};
+
+upb_def_init envoy_config_overload_v3_overload_proto_upbdefinit = {
+ deps,
+ layouts,
+ "envoy/config/overload/v3/overload.proto",
+ UPB_STRVIEW_INIT(descriptor, 2145)
+};
diff --git a/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h b/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h
new file mode 100644
index 00000000000..ca1dc51729c
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h
@@ -0,0 +1,70 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/config/overload/v3/overload.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_CONFIG_OVERLOAD_V3_OVERLOAD_PROTO_UPBDEFS_H_
+#define ENVOY_CONFIG_OVERLOAD_V3_OVERLOAD_PROTO_UPBDEFS_H_
+
+#include "upb/def.h"
+#include "upb/port_def.inc"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "upb/def.h"
+
+#include "upb/port_def.inc"
+
+extern upb_def_init envoy_config_overload_v3_overload_proto_upbdefinit;
+
+UPB_INLINE const upb_msgdef *envoy_config_overload_v3_ResourceMonitor_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_overload_v3_overload_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.overload.v3.ResourceMonitor");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_overload_v3_ThresholdTrigger_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_overload_v3_overload_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.overload.v3.ThresholdTrigger");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_overload_v3_ScaledTrigger_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_overload_v3_overload_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.overload.v3.ScaledTrigger");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_overload_v3_Trigger_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_overload_v3_overload_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.overload.v3.Trigger");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_overload_v3_overload_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.overload.v3.ScaleTimersOverloadActionConfig");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_overload_v3_ScaleTimersOverloadActionConfig_ScaleTimer_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_overload_v3_overload_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_overload_v3_OverloadAction_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_overload_v3_overload_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.overload.v3.OverloadAction");
+}
+
+UPB_INLINE const upb_msgdef *envoy_config_overload_v3_OverloadManager_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_config_overload_v3_overload_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.config.overload.v3.OverloadManager");
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_CONFIG_OVERLOAD_V3_OVERLOAD_PROTO_UPBDEFS_H_ */
diff --git a/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c b/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c
new file mode 100644
index 00000000000..2673ebbbdee
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c
@@ -0,0 +1,130 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/service/status/v3/csds.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include "upb/def.h"
+#include "envoy/service/status/v3/csds.upbdefs.h"
+
+extern upb_def_init envoy_admin_v3_config_dump_proto_upbdefinit;
+extern upb_def_init envoy_config_core_v3_base_proto_upbdefinit;
+extern upb_def_init envoy_type_matcher_v3_node_proto_upbdefinit;
+extern upb_def_init google_api_annotations_proto_upbdefinit;
+extern upb_def_init udpa_annotations_migrate_proto_upbdefinit;
+extern upb_def_init udpa_annotations_status_proto_upbdefinit;
+extern upb_def_init udpa_annotations_versioning_proto_upbdefinit;
+extern const upb_msglayout envoy_service_status_v3_ClientStatusRequest_msginit;
+extern const upb_msglayout envoy_service_status_v3_PerXdsConfig_msginit;
+extern const upb_msglayout envoy_service_status_v3_ClientConfig_msginit;
+extern const upb_msglayout envoy_service_status_v3_ClientStatusResponse_msginit;
+
+static const upb_msglayout *layouts[4] = {
+ &envoy_service_status_v3_ClientStatusRequest_msginit,
+ &envoy_service_status_v3_PerXdsConfig_msginit,
+ &envoy_service_status_v3_ClientConfig_msginit,
+ &envoy_service_status_v3_ClientStatusResponse_msginit,
+};
+
+static const char descriptor[2001] = {'\n', '\"', 'e', 'n', 'v', 'o', 'y', '/', 's', 'e', 'r', 'v', 'i', 'c', 'e', '/', 's', 't', 'a', 't', 'u', 's', '/', 'v', '3',
+'/', 'c', 's', 'd', 's', '.', 'p', 'r', 'o', 't', 'o', '\022', '\027', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e', 'r', 'v', 'i', 'c',
+'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', '\032', ' ', 'e', 'n', 'v', 'o', 'y', '/', 'a', 'd', 'm', 'i', 'n', '/',
+'v', '3', '/', 'c', 'o', 'n', 'f', 'i', 'g', '_', 'd', 'u', 'm', 'p', '.', 'p', 'r', 'o', 't', 'o', '\032', '\037', 'e', 'n', 'v',
+'o', 'y', '/', 'c', 'o', 'n', 'f', 'i', 'g', '/', 'c', 'o', 'r', 'e', '/', 'v', '3', '/', 'b', 'a', 's', 'e', '.', 'p', 'r',
+'o', 't', 'o', '\032', ' ', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v',
+'3', '/', 'n', 'o', 'd', 'e', '.', 'p', 'r', 'o', 't', 'o', '\032', '\034', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'a', 'p', 'i', '/',
+'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '\036', 'u', 'd', 'p', 'a', '/', 'a',
+'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'm', 'i', 'g', 'r', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\032',
+'\035', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a', 't', 'u', 's', '.',
+'p', 'r', 'o', 't', 'o', '\032', '!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'v',
+'e', 'r', 's', 'i', 'o', 'n', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\"', '\302', '\001', '\n', '\023', 'C', 'l', 'i', 'e', 'n',
+'t', 'S', 't', 'a', 't', 'u', 's', 'R', 'e', 'q', 'u', 'e', 's', 't', '\022', 'G', '\n', '\r', 'n', 'o', 'd', 'e', '_', 'm', 'a',
+'t', 'c', 'h', 'e', 'r', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e',
+'.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'N', 'o', 'd', 'e', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'R', '\014',
+'n', 'o', 'd', 'e', 'M', 'a', 't', 'c', 'h', 'e', 'r', 's', '\022', '.', '\n', '\004', 'n', 'o', 'd', 'e', '\030', '\002', ' ', '\001', '(',
+'\013', '2', '\032', '.', 'e', 'n', 'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.',
+'N', 'o', 'd', 'e', 'R', '\004', 'n', 'o', 'd', 'e', ':', '2', '\232', '\305', '\210', '\036', '-', '\n', '+', 'e', 'n', 'v', 'o', 'y', '.',
+'s', 'e', 'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '2', '.', 'C', 'l', 'i', 'e', 'n', 't', 'S',
+'t', 'a', 't', 'u', 's', 'R', 'e', 'q', 'u', 'e', 's', 't', '\"', '\360', '\004', '\n', '\014', 'P', 'e', 'r', 'X', 'd', 's', 'C', 'o',
+'n', 'f', 'i', 'g', '\022', '=', '\n', '\006', 's', 't', 'a', 't', 'u', 's', '\030', '\001', ' ', '\001', '(', '\016', '2', '%', '.', 'e', 'n',
+'v', 'o', 'y', '.', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', '.', 'C', 'o', 'n',
+'f', 'i', 'g', 'S', 't', 'a', 't', 'u', 's', 'R', '\006', 's', 't', 'a', 't', 'u', 's', '\022', 'T', '\n', '\r', 'c', 'l', 'i', 'e',
+'n', 't', '_', 's', 't', 'a', 't', 'u', 's', '\030', '\007', ' ', '\001', '(', '\016', '2', '+', '.', 'e', 'n', 'v', 'o', 'y', '.', 's',
+'e', 'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'C', 'o',
+'n', 'f', 'i', 'g', 'S', 't', 'a', 't', 'u', 's', 'B', '\002', '\030', '\001', 'R', '\014', 'c', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a',
+'t', 'u', 's', '\022', 'N', '\n', '\017', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\002', ' ',
+'\001', '(', '\013', '2', '#', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'L', 'i', 's', 't',
+'e', 'n', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', 'H', '\000', 'R', '\016', 'l', 'i', 's', 't', 'e', 'n',
+'e', 'r', 'C', 'o', 'n', 'f', 'i', 'g', '\022', 'K', '\n', '\016', 'c', 'l', 'u', 's', 't', 'e', 'r', '_', 'c', 'o', 'n', 'f', 'i',
+'g', '\030', '\003', ' ', '\001', '(', '\013', '2', '\"', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.',
+'C', 'l', 'u', 's', 't', 'e', 'r', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', 'H', '\000', 'R', '\r', 'c', 'l', 'u',
+'s', 't', 'e', 'r', 'C', 'o', 'n', 'f', 'i', 'g', '\022', 'E', '\n', '\014', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o', 'n', 'f', 'i',
+'g', '\030', '\004', ' ', '\001', '(', '\013', '2', ' ', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.',
+'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', 'H', '\000', 'R', '\013', 'r', 'o', 'u', 't', 'e',
+'C', 'o', 'n', 'f', 'i', 'g', '\022', 'X', '\n', '\023', 's', 'c', 'o', 'p', 'e', 'd', '_', 'r', 'o', 'u', 't', 'e', '_', 'c', 'o',
+'n', 'f', 'i', 'g', '\030', '\005', ' ', '\001', '(', '\013', '2', '&', '.', 'e', 'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.',
+'v', '3', '.', 'S', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p',
+'H', '\000', 'R', '\021', 's', 'c', 'o', 'p', 'e', 'd', 'R', 'o', 'u', 't', 'e', 'C', 'o', 'n', 'f', 'i', 'g', '\022', 'N', '\n', '\017',
+'e', 'n', 'd', 'p', 'o', 'i', 'n', 't', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\006', ' ', '\001', '(', '\013', '2', '#', '.', 'e',
+'n', 'v', 'o', 'y', '.', 'a', 'd', 'm', 'i', 'n', '.', 'v', '3', '.', 'E', 'n', 'd', 'p', 'o', 'i', 'n', 't', 's', 'C', 'o',
+'n', 'f', 'i', 'g', 'D', 'u', 'm', 'p', 'H', '\000', 'R', '\016', 'e', 'n', 'd', 'p', 'o', 'i', 'n', 't', 'C', 'o', 'n', 'f', 'i',
+'g', ':', '+', '\232', '\305', '\210', '\036', '&', '\n', '$', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 's',
+'t', 'a', 't', 'u', 's', '.', 'v', '2', '.', 'P', 'e', 'r', 'X', 'd', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'B', '\020', '\n', '\016',
+'p', 'e', 'r', '_', 'x', 'd', 's', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\"', '\261', '\001', '\n', '\014', 'C', 'l', 'i', 'e', 'n', 't',
+'C', 'o', 'n', 'f', 'i', 'g', '\022', '.', '\n', '\004', 'n', 'o', 'd', 'e', '\030', '\001', ' ', '\001', '(', '\013', '2', '\032', '.', 'e', 'n',
+'v', 'o', 'y', '.', 'c', 'o', 'n', 'f', 'i', 'g', '.', 'c', 'o', 'r', 'e', '.', 'v', '3', '.', 'N', 'o', 'd', 'e', 'R', '\004',
+'n', 'o', 'd', 'e', '\022', 'D', '\n', '\n', 'x', 'd', 's', '_', 'c', 'o', 'n', 'f', 'i', 'g', '\030', '\002', ' ', '\003', '(', '\013', '2',
+'%', '.', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3',
+'.', 'P', 'e', 'r', 'X', 'd', 's', 'C', 'o', 'n', 'f', 'i', 'g', 'R', '\t', 'x', 'd', 's', 'C', 'o', 'n', 'f', 'i', 'g', ':',
+'+', '\232', '\305', '\210', '\036', '&', '\n', '$', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a',
+'t', 'u', 's', '.', 'v', '2', '.', 'C', 'l', 'i', 'e', 'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', '\"', '\212', '\001', '\n', '\024', 'C',
+'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', 'R', 'e', 's', 'p', 'o', 'n', 's', 'e', '\022', '=', '\n', '\006', 'c', 'o',
+'n', 'f', 'i', 'g', '\030', '\001', ' ', '\003', '(', '\013', '2', '%', '.', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e', 'r', 'v', 'i', 'c',
+'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'C', 'o', 'n', 'f', 'i', 'g', 'R',
+'\006', 'c', 'o', 'n', 'f', 'i', 'g', ':', '3', '\232', '\305', '\210', '\036', '.', '\n', ',', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e', 'r',
+'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '2', '.', 'C', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't',
+'u', 's', 'R', 'e', 's', 'p', 'o', 'n', 's', 'e', '*', 'K', '\n', '\014', 'C', 'o', 'n', 'f', 'i', 'g', 'S', 't', 'a', 't', 'u',
+'s', '\022', '\013', '\n', '\007', 'U', 'N', 'K', 'N', 'O', 'W', 'N', '\020', '\000', '\022', '\n', '\n', '\006', 'S', 'Y', 'N', 'C', 'E', 'D', '\020',
+'\001', '\022', '\014', '\n', '\010', 'N', 'O', 'T', '_', 'S', 'E', 'N', 'T', '\020', '\002', '\022', '\t', '\n', '\005', 'S', 'T', 'A', 'L', 'E', '\020',
+'\003', '\022', '\t', '\n', '\005', 'E', 'R', 'R', 'O', 'R', '\020', '\004', '*', 'c', '\n', '\022', 'C', 'l', 'i', 'e', 'n', 't', 'C', 'o', 'n',
+'f', 'i', 'g', 'S', 't', 'a', 't', 'u', 's', '\022', '\022', '\n', '\016', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'U', 'N', 'K', 'N', 'O',
+'W', 'N', '\020', '\000', '\022', '\024', '\n', '\020', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'R', 'E', 'Q', 'U', 'E', 'S', 'T', 'E', 'D', '\020',
+'\001', '\022', '\020', '\n', '\014', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'A', 'C', 'K', 'E', 'D', '\020', '\002', '\022', '\021', '\n', '\r', 'C', 'L',
+'I', 'E', 'N', 'T', '_', 'N', 'A', 'C', 'K', 'E', 'D', '\020', '\003', '2', '\270', '\002', '\n', '\034', 'C', 'l', 'i', 'e', 'n', 't', 'S',
+'t', 'a', 't', 'u', 's', 'D', 'i', 's', 'c', 'o', 'v', 'e', 'r', 'y', 'S', 'e', 'r', 'v', 'i', 'c', 'e', '\022', 'w', '\n', '\022',
+'S', 't', 'r', 'e', 'a', 'm', 'C', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', '\022', ',', '.', 'e', 'n', 'v', 'o',
+'y', '.', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n',
+'t', 'S', 't', 'a', 't', 'u', 's', 'R', 'e', 'q', 'u', 'e', 's', 't', '\032', '-', '.', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e',
+'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a',
+'t', 'u', 's', 'R', 'e', 's', 'p', 'o', 'n', 's', 'e', '\"', '\000', '(', '\001', '0', '\001', '\022', '\236', '\001', '\n', '\021', 'F', 'e', 't',
+'c', 'h', 'C', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', '\022', ',', '.', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e',
+'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a',
+'t', 'u', 's', 'R', 'e', 'q', 'u', 'e', 's', 't', '\032', '-', '.', 'e', 'n', 'v', 'o', 'y', '.', 's', 'e', 'r', 'v', 'i', 'c',
+'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', '.', 'C', 'l', 'i', 'e', 'n', 't', 'S', 't', 'a', 't', 'u', 's', 'R',
+'e', 's', 'p', 'o', 'n', 's', 'e', '\"', ',', '\202', '\323', '\344', '\223', '\002', '\035', '\"', '\033', '/', 'v', '3', '/', 'd', 'i', 's', 'c',
+'o', 'v', 'e', 'r', 'y', ':', 'c', 'l', 'i', 'e', 'n', 't', '_', 's', 't', 'a', 't', 'u', 's', '\202', '\323', '\344', '\223', '\002', '\003',
+':', '\001', '*', 'B', '?', '\n', '%', 'i', 'o', '.', 'e', 'n', 'v', 'o', 'y', 'p', 'r', 'o', 'x', 'y', '.', 'e', 'n', 'v', 'o',
+'y', '.', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 's', 't', 'a', 't', 'u', 's', '.', 'v', '3', 'B', '\t', 'C', 's', 'd', 's',
+'P', 'r', 'o', 't', 'o', 'P', '\001', '\210', '\001', '\001', '\272', '\200', '\310', '\321', '\006', '\002', '\020', '\002', 'b', '\006', 'p', 'r', 'o', 't', 'o',
+'3',
+};
+
+static upb_def_init *deps[8] = {
+ &envoy_admin_v3_config_dump_proto_upbdefinit,
+ &envoy_config_core_v3_base_proto_upbdefinit,
+ &envoy_type_matcher_v3_node_proto_upbdefinit,
+ &google_api_annotations_proto_upbdefinit,
+ &udpa_annotations_migrate_proto_upbdefinit,
+ &udpa_annotations_status_proto_upbdefinit,
+ &udpa_annotations_versioning_proto_upbdefinit,
+ NULL
+};
+
+upb_def_init envoy_service_status_v3_csds_proto_upbdefinit = {
+ deps,
+ layouts,
+ "envoy/service/status/v3/csds.proto",
+ UPB_STRVIEW_INIT(descriptor, 2001)
+};
diff --git a/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h b/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h
new file mode 100644
index 00000000000..91723cc10ae
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h
@@ -0,0 +1,50 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/service/status/v3/csds.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_SERVICE_STATUS_V3_CSDS_PROTO_UPBDEFS_H_
+#define ENVOY_SERVICE_STATUS_V3_CSDS_PROTO_UPBDEFS_H_
+
+#include "upb/def.h"
+#include "upb/port_def.inc"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "upb/def.h"
+
+#include "upb/port_def.inc"
+
+extern upb_def_init envoy_service_status_v3_csds_proto_upbdefinit;
+
+UPB_INLINE const upb_msgdef *envoy_service_status_v3_ClientStatusRequest_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_service_status_v3_csds_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.service.status.v3.ClientStatusRequest");
+}
+
+UPB_INLINE const upb_msgdef *envoy_service_status_v3_PerXdsConfig_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_service_status_v3_csds_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.service.status.v3.PerXdsConfig");
+}
+
+UPB_INLINE const upb_msgdef *envoy_service_status_v3_ClientConfig_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_service_status_v3_csds_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.service.status.v3.ClientConfig");
+}
+
+UPB_INLINE const upb_msgdef *envoy_service_status_v3_ClientStatusResponse_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_service_status_v3_csds_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.service.status.v3.ClientStatusResponse");
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_SERVICE_STATUS_V3_CSDS_PROTO_UPBDEFS_H_ */
diff --git a/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c b/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c
new file mode 100644
index 00000000000..8b0ecb58151
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c
@@ -0,0 +1,56 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/type/matcher/v3/node.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include "upb/def.h"
+#include "envoy/type/matcher/v3/node.upbdefs.h"
+
+extern upb_def_init envoy_type_matcher_v3_string_proto_upbdefinit;
+extern upb_def_init envoy_type_matcher_v3_struct_proto_upbdefinit;
+extern upb_def_init udpa_annotations_status_proto_upbdefinit;
+extern upb_def_init udpa_annotations_versioning_proto_upbdefinit;
+extern const upb_msglayout envoy_type_matcher_v3_NodeMatcher_msginit;
+
+static const upb_msglayout *layouts[1] = {
+ &envoy_type_matcher_v3_NodeMatcher_msginit,
+};
+
+static const char descriptor[458] = {'\n', ' ', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 'n',
+'o', 'd', 'e', '.', 'p', 'r', 'o', 't', 'o', '\022', '\025', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't',
+'c', 'h', 'e', 'r', '.', 'v', '3', '\032', '\"', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h',
+'e', 'r', '/', 'v', '3', '/', 's', 't', 'r', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '\"', 'e', 'n', 'v', 'o', 'y',
+'/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 's', 't', 'r', 'u', 'c', 't', '.', 'p',
+'r', 'o', 't', 'o', '\032', '\035', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't',
+'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '\032', '!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i',
+'o', 'n', 's', '/', 'v', 'e', 'r', 's', 'i', 'o', 'n', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\"', '\300', '\001', '\n', '\013',
+'N', 'o', 'd', 'e', 'M', 'a', 't', 'c', 'h', 'e', 'r', '\022', '=', '\n', '\007', 'n', 'o', 'd', 'e', '_', 'i', 'd', '\030', '\001', ' ',
+'\001', '(', '\013', '2', '$', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.',
+'v', '3', '.', 'S', 't', 'r', 'i', 'n', 'g', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'R', '\006', 'n', 'o', 'd', 'e', 'I', 'd', '\022',
+'K', '\n', '\016', 'n', 'o', 'd', 'e', '_', 'm', 'e', 't', 'a', 'd', 'a', 't', 'a', 's', '\030', '\002', ' ', '\003', '(', '\013', '2', '$',
+'.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'S', 't',
+'r', 'u', 'c', 't', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'R', '\r', 'n', 'o', 'd', 'e', 'M', 'e', 't', 'a', 'd', 'a', 't', 'a',
+'s', ':', '%', '\232', '\305', '\210', '\036', ' ', '\n', '\036', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c',
+'h', 'e', 'r', '.', 'N', 'o', 'd', 'e', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'B', ':', '\n', '#', 'i', 'o', '.', 'e', 'n', 'v',
+'o', 'y', 'p', 'r', 'o', 'x', 'y', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e',
+'r', '.', 'v', '3', 'B', '\t', 'N', 'o', 'd', 'e', 'P', 'r', 'o', 't', 'o', 'P', '\001', '\272', '\200', '\310', '\321', '\006', '\002', '\020', '\002',
+'b', '\006', 'p', 'r', 'o', 't', 'o', '3',
+};
+
+static upb_def_init *deps[5] = {
+ &envoy_type_matcher_v3_string_proto_upbdefinit,
+ &envoy_type_matcher_v3_struct_proto_upbdefinit,
+ &udpa_annotations_status_proto_upbdefinit,
+ &udpa_annotations_versioning_proto_upbdefinit,
+ NULL
+};
+
+upb_def_init envoy_type_matcher_v3_node_proto_upbdefinit = {
+ deps,
+ layouts,
+ "envoy/type/matcher/v3/node.proto",
+ UPB_STRVIEW_INIT(descriptor, 458)
+};
diff --git a/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h b/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h
new file mode 100644
index 00000000000..9ec4a6def6a
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h
@@ -0,0 +1,35 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/type/matcher/v3/node.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_TYPE_MATCHER_V3_NODE_PROTO_UPBDEFS_H_
+#define ENVOY_TYPE_MATCHER_V3_NODE_PROTO_UPBDEFS_H_
+
+#include "upb/def.h"
+#include "upb/port_def.inc"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "upb/def.h"
+
+#include "upb/port_def.inc"
+
+extern upb_def_init envoy_type_matcher_v3_node_proto_upbdefinit;
+
+UPB_INLINE const upb_msgdef *envoy_type_matcher_v3_NodeMatcher_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_type_matcher_v3_node_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.type.matcher.v3.NodeMatcher");
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_TYPE_MATCHER_V3_NODE_PROTO_UPBDEFS_H_ */
diff --git a/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c b/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c
new file mode 100644
index 00000000000..6660ffad3a1
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c
@@ -0,0 +1,63 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/type/matcher/v3/struct.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#include "upb/def.h"
+#include "envoy/type/matcher/v3/struct.upbdefs.h"
+
+extern upb_def_init envoy_type_matcher_v3_value_proto_upbdefinit;
+extern upb_def_init udpa_annotations_status_proto_upbdefinit;
+extern upb_def_init udpa_annotations_versioning_proto_upbdefinit;
+extern upb_def_init validate_validate_proto_upbdefinit;
+extern const upb_msglayout envoy_type_matcher_v3_StructMatcher_msginit;
+extern const upb_msglayout envoy_type_matcher_v3_StructMatcher_PathSegment_msginit;
+
+static const upb_msglayout *layouts[2] = {
+ &envoy_type_matcher_v3_StructMatcher_msginit,
+ &envoy_type_matcher_v3_StructMatcher_PathSegment_msginit,
+};
+
+static const char descriptor[576] = {'\n', '\"', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't', 'c', 'h', 'e', 'r', '/', 'v', '3', '/', 's',
+'t', 'r', 'u', 'c', 't', '.', 'p', 'r', 'o', 't', 'o', '\022', '\025', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm',
+'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '\032', '!', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'm', 'a', 't',
+'c', 'h', 'e', 'r', '/', 'v', '3', '/', 'v', 'a', 'l', 'u', 'e', '.', 'p', 'r', 'o', 't', 'o', '\032', '\035', 'u', 'd', 'p', 'a',
+'/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o',
+'\032', '!', 'u', 'd', 'p', 'a', '/', 'a', 'n', 'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 'v', 'e', 'r', 's', 'i', 'o',
+'n', 'i', 'n', 'g', '.', 'p', 'r', 'o', 't', 'o', '\032', '\027', 'v', 'a', 'l', 'i', 'd', 'a', 't', 'e', '/', 'v', 'a', 'l', 'i',
+'d', 'a', 't', 'e', '.', 'p', 'r', 'o', 't', 'o', '\"', '\276', '\002', '\n', '\r', 'S', 't', 'r', 'u', 'c', 't', 'M', 'a', 't', 'c',
+'h', 'e', 'r', '\022', 'N', '\n', '\004', 'p', 'a', 't', 'h', '\030', '\002', ' ', '\003', '(', '\013', '2', '0', '.', 'e', 'n', 'v', 'o', 'y',
+'.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'S', 't', 'r', 'u', 'c', 't', 'M', 'a',
+'t', 'c', 'h', 'e', 'r', '.', 'P', 'a', 't', 'h', 'S', 'e', 'g', 'm', 'e', 'n', 't', 'B', '\010', '\372', 'B', '\005', '\222', '\001', '\002',
+'\010', '\001', 'R', '\004', 'p', 'a', 't', 'h', '\022', 'C', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\003', ' ', '\001', '(', '\013', '2', '#',
+'.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', '.', 'V', 'a',
+'l', 'u', 'e', 'M', 'a', 't', 'c', 'h', 'e', 'r', 'B', '\010', '\372', 'B', '\005', '\212', '\001', '\002', '\020', '\001', 'R', '\005', 'v', 'a', 'l',
+'u', 'e', '\032', 'o', '\n', '\013', 'P', 'a', 't', 'h', 'S', 'e', 'g', 'm', 'e', 'n', 't', '\022', '\033', '\n', '\003', 'k', 'e', 'y', '\030',
+'\001', ' ', '\001', '(', '\t', 'B', '\007', '\372', 'B', '\004', 'r', '\002', '\020', '\001', 'H', '\000', 'R', '\003', 'k', 'e', 'y', ':', '3', '\232', '\305',
+'\210', '\036', '.', '\n', ',', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'S',
+'t', 'r', 'u', 'c', 't', 'M', 'a', 't', 'c', 'h', 'e', 'r', '.', 'P', 'a', 't', 'h', 'S', 'e', 'g', 'm', 'e', 'n', 't', 'B',
+'\016', '\n', '\007', 's', 'e', 'g', 'm', 'e', 'n', 't', '\022', '\003', '\370', 'B', '\001', ':', '\'', '\232', '\305', '\210', '\036', '\"', '\n', ' ', 'e',
+'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'S', 't', 'r', 'u', 'c', 't', 'M',
+'a', 't', 'c', 'h', 'e', 'r', 'B', '<', '\n', '#', 'i', 'o', '.', 'e', 'n', 'v', 'o', 'y', 'p', 'r', 'o', 'x', 'y', '.', 'e',
+'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'm', 'a', 't', 'c', 'h', 'e', 'r', '.', 'v', '3', 'B', '\013', 'S', 't', 'r',
+'u', 'c', 't', 'P', 'r', 'o', 't', 'o', 'P', '\001', '\272', '\200', '\310', '\321', '\006', '\002', '\020', '\002', 'b', '\006', 'p', 'r', 'o', 't', 'o',
+'3',
+};
+
+static upb_def_init *deps[5] = {
+ &envoy_type_matcher_v3_value_proto_upbdefinit,
+ &udpa_annotations_status_proto_upbdefinit,
+ &udpa_annotations_versioning_proto_upbdefinit,
+ &validate_validate_proto_upbdefinit,
+ NULL
+};
+
+upb_def_init envoy_type_matcher_v3_struct_proto_upbdefinit = {
+ deps,
+ layouts,
+ "envoy/type/matcher/v3/struct.proto",
+ UPB_STRVIEW_INIT(descriptor, 576)
+};
diff --git a/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h b/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h
new file mode 100644
index 00000000000..472d486aa8b
--- /dev/null
+++ b/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h
@@ -0,0 +1,40 @@
+/* This file was generated by upbc (the upb compiler) from the input
+ * file:
+ *
+ * envoy/type/matcher/v3/struct.proto
+ *
+ * Do not edit -- your changes will be discarded when the file is
+ * regenerated. */
+
+#ifndef ENVOY_TYPE_MATCHER_V3_STRUCT_PROTO_UPBDEFS_H_
+#define ENVOY_TYPE_MATCHER_V3_STRUCT_PROTO_UPBDEFS_H_
+
+#include "upb/def.h"
+#include "upb/port_def.inc"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "upb/def.h"
+
+#include "upb/port_def.inc"
+
+extern upb_def_init envoy_type_matcher_v3_struct_proto_upbdefinit;
+
+UPB_INLINE const upb_msgdef *envoy_type_matcher_v3_StructMatcher_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_type_matcher_v3_struct_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.type.matcher.v3.StructMatcher");
+}
+
+UPB_INLINE const upb_msgdef *envoy_type_matcher_v3_StructMatcher_PathSegment_getmsgdef(upb_symtab *s) {
+ _upb_symtab_loaddefinit(s, &envoy_type_matcher_v3_struct_proto_upbdefinit);
+ return upb_symtab_lookupmsg(s, "envoy.type.matcher.v3.StructMatcher.PathSegment");
+}
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#include "upb/port_undef.inc"
+
+#endif /* ENVOY_TYPE_MATCHER_V3_STRUCT_PROTO_UPBDEFS_H_ */
diff --git a/src/core/ext/xds/xds_api.cc b/src/core/ext/xds/xds_api.cc
index be2abf5b98e..766ded0e5a8 100644
--- a/src/core/ext/xds/xds_api.cc
+++ b/src/core/ext/xds/xds_api.cc
@@ -28,11 +28,13 @@
#include "absl/strings/str_format.h"
#include "absl/strings/str_join.h"
#include "absl/strings/str_split.h"
+#include "envoy/admin/v3/config_dump.upb.h"
#include "envoy/config/cluster/v3/circuit_breaker.upb.h"
#include "envoy/config/cluster/v3/cluster.upb.h"
#include "envoy/config/cluster/v3/cluster.upbdefs.h"
#include "envoy/config/core/v3/address.upb.h"
#include "envoy/config/core/v3/base.upb.h"
+#include "envoy/config/core/v3/base.upbdefs.h"
#include "envoy/config/core/v3/config_source.upb.h"
#include "envoy/config/core/v3/health_check.upb.h"
#include "envoy/config/core/v3/protocol.upb.h"
@@ -47,11 +49,14 @@
#include "envoy/config/route/v3/route.upb.h"
#include "envoy/config/route/v3/route.upbdefs.h"
#include "envoy/config/route/v3/route_components.upb.h"
+#include "envoy/config/route/v3/route_components.upbdefs.h"
#include "envoy/extensions/clusters/aggregate/v3/cluster.upb.h"
+#include "envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h"
#include "envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h"
#include "envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h"
#include "envoy/extensions/transport_sockets/tls/v3/common.upb.h"
#include "envoy/extensions/transport_sockets/tls/v3/tls.upb.h"
+#include "envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h"
#include "envoy/service/cluster/v3/cds.upb.h"
#include "envoy/service/cluster/v3/cds.upbdefs.h"
#include "envoy/service/discovery/v3/discovery.upb.h"
@@ -63,6 +68,8 @@
#include "envoy/service/load_stats/v3/lrs.upbdefs.h"
#include "envoy/service/route/v3/rds.upb.h"
#include "envoy/service/route/v3/rds.upbdefs.h"
+#include "envoy/service/status/v3/csds.upb.h"
+#include "envoy/service/status/v3/csds.upbdefs.h"
#include "envoy/type/matcher/v3/regex.upb.h"
#include "envoy/type/matcher/v3/string.upb.h"
#include "envoy/type/v3/percent.upb.h"
@@ -70,6 +77,7 @@
#include "google/protobuf/any.upb.h"
#include "google/protobuf/duration.upb.h"
#include "google/protobuf/struct.upb.h"
+#include "google/protobuf/timestamp.upb.h"
#include "google/protobuf/wrappers.upb.h"
#include "google/rpc/status.upb.h"
#include "udpa/type/v1/typed_struct.upb.h"
@@ -726,7 +734,11 @@ XdsApi::XdsApi(XdsClient* client, TraceFlag* tracer,
envoy_config_listener_v3_Listener_getmsgdef(symtab_.ptr());
envoy_config_route_v3_RouteConfiguration_getmsgdef(symtab_.ptr());
envoy_config_cluster_v3_Cluster_getmsgdef(symtab_.ptr());
+ envoy_extensions_clusters_aggregate_v3_ClusterConfig_getmsgdef(symtab_.ptr());
+ envoy_config_cluster_v3_Cluster_getmsgdef(symtab_.ptr());
envoy_config_endpoint_v3_ClusterLoadAssignment_getmsgdef(symtab_.ptr());
+ envoy_extensions_transport_sockets_tls_v3_UpstreamTlsContext_getmsgdef(
+ symtab_.ptr());
envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_getmsgdef(
symtab_.ptr());
// Load HTTP filter proto messages into the upb symtab.
@@ -1514,6 +1526,9 @@ grpc_error* RouteConfigParse(
for (size_t j = 0; j < num_routes; ++j) {
const envoy_config_route_v3_RouteMatch* match =
envoy_config_route_v3_Route_match(routes[j]);
+ if (match == nullptr) {
+ return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Match can't be null.");
+ }
size_t query_parameters_size;
static_cast(envoy_config_route_v3_RouteMatch_query_parameters(
match, &query_parameters_size));
@@ -2128,7 +2143,11 @@ grpc_error* LdsResponseParse(
resource_names_failed->insert(listener_name);
continue;
}
- XdsApi::LdsUpdate& lds_update = (*lds_update_map)[listener_name];
+ // Serialize into JSON and store it in the LdsUpdateMap
+ XdsApi::LdsResourceData& lds_resource_data =
+ (*lds_update_map)[listener_name];
+ XdsApi::LdsUpdate& lds_update = lds_resource_data.resource;
+ lds_resource_data.serialized_proto = UpbStringToStdString(encoded_listener);
// Check whether it's a client or server listener.
const envoy_config_listener_v3_ApiListener* api_listener =
envoy_config_listener_v3_Listener_api_listener(listener);
@@ -2217,8 +2236,13 @@ grpc_error* RdsResponseParse(
resource_names_failed->insert(route_config_name);
continue;
}
+ // Serialize into JSON and store it in the RdsUpdateMap
+ XdsApi::RdsResourceData& rds_resource_data =
+ (*rds_update_map)[route_config_name];
+ XdsApi::RdsUpdate& rds_update = rds_resource_data.resource;
+ rds_resource_data.serialized_proto =
+ UpbStringToStdString(encoded_route_config);
// Parse the route_config.
- XdsApi::RdsUpdate& rds_update = (*rds_update_map)[route_config_name];
grpc_error* error = RouteConfigParse(context, route_config, &rds_update);
if (error != GRPC_ERROR_NONE) {
errors.push_back(grpc_error_add_child(
@@ -2280,7 +2304,11 @@ grpc_error* CdsResponseParse(
resource_names_failed->insert(cluster_name);
continue;
}
- XdsApi::CdsUpdate& cds_update = (*cds_update_map)[cluster_name];
+ // Serialize into JSON and store it in the CdsUpdateMap
+ XdsApi::CdsResourceData& cds_resource_data =
+ (*cds_update_map)[cluster_name];
+ XdsApi::CdsUpdate& cds_update = cds_resource_data.resource;
+ cds_resource_data.serialized_proto = UpbStringToStdString(encoded_cluster);
// Check the cluster_discovery_type.
if (!envoy_config_cluster_v3_Cluster_has_type(cluster) &&
!envoy_config_cluster_v3_Cluster_has_cluster_type(cluster)) {
@@ -2608,6 +2636,9 @@ grpc_error* LocalityParse(
const envoy_config_core_v3_Locality* locality =
envoy_config_endpoint_v3_LocalityLbEndpoints_locality(
locality_lb_endpoints);
+ if (locality == nullptr) {
+ return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Empty locality.");
+ }
std::string region =
UpbStringToStdString(envoy_config_core_v3_Locality_region(locality));
std::string zone =
@@ -2723,7 +2754,12 @@ grpc_error* EdsResponseParse(
resource_names_failed->insert(eds_service_name);
continue;
}
- XdsApi::EdsUpdate& eds_update = (*eds_update_map)[eds_service_name];
+ // Serialize into JSON and store it in the EdsUpdateMap
+ XdsApi::EdsResourceData& eds_resource_data =
+ (*eds_update_map)[eds_service_name];
+ XdsApi::EdsUpdate& eds_update = eds_resource_data.resource;
+ eds_resource_data.serialized_proto =
+ UpbStringToStdString(encoded_cluster_load_assignment);
// Get the endpoints.
size_t locality_size;
const envoy_config_endpoint_v3_LocalityLbEndpoints* const* endpoints =
@@ -3083,4 +3119,276 @@ grpc_error* XdsApi::ParseLrsResponse(const grpc_slice& encoded_response,
return GRPC_ERROR_NONE;
}
+namespace {
+google_protobuf_Timestamp* GrpcMillisToTimestamp(const EncodingContext& context,
+ grpc_millis value) {
+ google_protobuf_Timestamp* timestamp =
+ google_protobuf_Timestamp_new(context.arena);
+ gpr_timespec timespec = grpc_millis_to_timespec(value, GPR_CLOCK_MONOTONIC);
+ google_protobuf_Timestamp_set_seconds(timestamp, timespec.tv_sec);
+ google_protobuf_Timestamp_set_nanos(timestamp, timespec.tv_nsec);
+ return timestamp;
+}
+
+envoy_admin_v3_UpdateFailureState* CreateUpdateFailureStateUpb(
+ const EncodingContext& context,
+ const XdsApi::ResourceMetadata* resource_metadata) {
+ auto* update_failure_state =
+ envoy_admin_v3_UpdateFailureState_new(context.arena);
+ envoy_admin_v3_UpdateFailureState_set_details(
+ update_failure_state,
+ StdStringToUpbString(resource_metadata->failed_details));
+ envoy_admin_v3_UpdateFailureState_set_version_info(
+ update_failure_state,
+ StdStringToUpbString(resource_metadata->failed_version));
+ envoy_admin_v3_UpdateFailureState_set_last_update_attempt(
+ update_failure_state,
+ GrpcMillisToTimestamp(context, resource_metadata->failed_update_time));
+ return update_failure_state;
+}
+
+void DumpLdsConfig(const EncodingContext& context,
+ const XdsApi::ResourceTypeMetadata& resource_type_metadata,
+ envoy_service_status_v3_PerXdsConfig* per_xds_config) {
+ upb_strview kLdsTypeUrlUpb = upb_strview_makez(XdsApi::kLdsTypeUrl);
+ auto* listener_config_dump =
+ envoy_service_status_v3_PerXdsConfig_mutable_listener_config(
+ per_xds_config, context.arena);
+ envoy_admin_v3_ListenersConfigDump_set_version_info(
+ listener_config_dump,
+ StdStringToUpbString(resource_type_metadata.version));
+ for (auto& p : resource_type_metadata.resource_metadata_map) {
+ absl::string_view name = p.first;
+ const XdsApi::ResourceMetadata* meta = p.second;
+ const upb_strview name_upb = StdStringToUpbString(name);
+ auto* dynamic_listener =
+ envoy_admin_v3_ListenersConfigDump_add_dynamic_listeners(
+ listener_config_dump, context.arena);
+ envoy_admin_v3_ListenersConfigDump_DynamicListener_set_name(
+ dynamic_listener, name_upb);
+ envoy_admin_v3_ListenersConfigDump_DynamicListener_set_client_status(
+ dynamic_listener, meta->client_status);
+ if (!meta->serialized_proto.empty()) {
+ // Set in-effective listeners
+ auto* dynamic_listener_state =
+ envoy_admin_v3_ListenersConfigDump_DynamicListener_mutable_active_state(
+ dynamic_listener, context.arena);
+ envoy_admin_v3_ListenersConfigDump_DynamicListenerState_set_version_info(
+ dynamic_listener_state, StdStringToUpbString(meta->version));
+ envoy_admin_v3_ListenersConfigDump_DynamicListenerState_set_last_updated(
+ dynamic_listener_state,
+ GrpcMillisToTimestamp(context, meta->update_time));
+ auto* listener_any =
+ envoy_admin_v3_ListenersConfigDump_DynamicListenerState_mutable_listener(
+ dynamic_listener_state, context.arena);
+ google_protobuf_Any_set_type_url(listener_any, kLdsTypeUrlUpb);
+ google_protobuf_Any_set_value(
+ listener_any, StdStringToUpbString(meta->serialized_proto));
+ }
+ if (meta->client_status == XdsApi::ResourceMetadata::NACKED) {
+ // Set error_state if NACKED
+ envoy_admin_v3_ListenersConfigDump_DynamicListener_set_error_state(
+ dynamic_listener, CreateUpdateFailureStateUpb(context, meta));
+ }
+ }
+}
+
+void DumpRdsConfig(const EncodingContext& context,
+ const XdsApi::ResourceTypeMetadata& resource_type_metadata,
+ envoy_service_status_v3_PerXdsConfig* per_xds_config) {
+ upb_strview kRdsTypeUrlUpb = upb_strview_makez(XdsApi::kRdsTypeUrl);
+ auto* route_config_dump =
+ envoy_service_status_v3_PerXdsConfig_mutable_route_config(per_xds_config,
+ context.arena);
+ for (auto& p : resource_type_metadata.resource_metadata_map) {
+ absl::string_view name = p.first;
+ const XdsApi::ResourceMetadata* meta = p.second;
+ const upb_strview name_upb = StdStringToUpbString(name);
+ auto* dynamic_route_config =
+ envoy_admin_v3_RoutesConfigDump_add_dynamic_route_configs(
+ route_config_dump, context.arena);
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_client_status(
+ dynamic_route_config, meta->client_status);
+ auto* route_config_any =
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_mutable_route_config(
+ dynamic_route_config, context.arena);
+ if (!meta->serialized_proto.empty()) {
+ // Set in-effective route configs
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_version_info(
+ dynamic_route_config, StdStringToUpbString(meta->version));
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_last_updated(
+ dynamic_route_config,
+ GrpcMillisToTimestamp(context, meta->update_time));
+ google_protobuf_Any_set_type_url(route_config_any, kRdsTypeUrlUpb);
+ google_protobuf_Any_set_value(
+ route_config_any, StdStringToUpbString(meta->serialized_proto));
+ } else {
+ // If there isn't a working route config, we still need to print the
+ // name.
+ auto* route_config =
+ envoy_config_route_v3_RouteConfiguration_new(context.arena);
+ envoy_config_route_v3_RouteConfiguration_set_name(route_config, name_upb);
+ size_t length;
+ char* bytes = envoy_config_route_v3_RouteConfiguration_serialize(
+ route_config, context.arena, &length);
+ google_protobuf_Any_set_type_url(route_config_any, kRdsTypeUrlUpb);
+ google_protobuf_Any_set_value(route_config_any,
+ upb_strview_make(bytes, length));
+ }
+ if (meta->client_status == XdsApi::ResourceMetadata::NACKED) {
+ // Set error_state if NACKED
+ envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig_set_error_state(
+ dynamic_route_config, CreateUpdateFailureStateUpb(context, meta));
+ }
+ }
+}
+
+void DumpCdsConfig(const EncodingContext& context,
+ const XdsApi::ResourceTypeMetadata& resource_type_metadata,
+ envoy_service_status_v3_PerXdsConfig* per_xds_config) {
+ upb_strview kCdsTypeUrlUpb = upb_strview_makez(XdsApi::kCdsTypeUrl);
+ auto* cluster_config_dump =
+ envoy_service_status_v3_PerXdsConfig_mutable_cluster_config(
+ per_xds_config, context.arena);
+ envoy_admin_v3_ClustersConfigDump_set_version_info(
+ cluster_config_dump,
+ StdStringToUpbString(resource_type_metadata.version));
+ for (auto& p : resource_type_metadata.resource_metadata_map) {
+ absl::string_view name = p.first;
+ const XdsApi::ResourceMetadata* meta = p.second;
+ const upb_strview name_upb = StdStringToUpbString(name);
+ auto* dynamic_cluster =
+ envoy_admin_v3_ClustersConfigDump_add_dynamic_active_clusters(
+ cluster_config_dump, context.arena);
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_client_status(
+ dynamic_cluster, meta->client_status);
+ auto* cluster_any =
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster_mutable_cluster(
+ dynamic_cluster, context.arena);
+ if (!meta->serialized_proto.empty()) {
+ // Set in-effective clusters
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_version_info(
+ dynamic_cluster, StdStringToUpbString(meta->version));
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_last_updated(
+ dynamic_cluster, GrpcMillisToTimestamp(context, meta->update_time));
+ google_protobuf_Any_set_type_url(cluster_any, kCdsTypeUrlUpb);
+ google_protobuf_Any_set_value(
+ cluster_any, StdStringToUpbString(meta->serialized_proto));
+ } else {
+ // If there isn't a working cluster, we still need to print the name.
+ auto* cluster = envoy_config_cluster_v3_Cluster_new(context.arena);
+ envoy_config_cluster_v3_Cluster_set_name(cluster, name_upb);
+ size_t length;
+ char* bytes = envoy_config_cluster_v3_Cluster_serialize(
+ cluster, context.arena, &length);
+ google_protobuf_Any_set_type_url(cluster_any, kCdsTypeUrlUpb);
+ google_protobuf_Any_set_value(cluster_any,
+ upb_strview_make(bytes, length));
+ }
+ if (meta->client_status == XdsApi::ResourceMetadata::NACKED) {
+ // Set error_state if NACKED
+ envoy_admin_v3_ClustersConfigDump_DynamicCluster_set_error_state(
+ dynamic_cluster, CreateUpdateFailureStateUpb(context, meta));
+ }
+ }
+}
+
+void DumpEdsConfig(const EncodingContext& context,
+ const XdsApi::ResourceTypeMetadata& resource_type_metadata,
+ envoy_service_status_v3_PerXdsConfig* per_xds_config) {
+ upb_strview kEdsTypeUrlUpb = upb_strview_makez(XdsApi::kEdsTypeUrl);
+ auto* endpoint_config_dump =
+ envoy_service_status_v3_PerXdsConfig_mutable_endpoint_config(
+ per_xds_config, context.arena);
+ for (auto& p : resource_type_metadata.resource_metadata_map) {
+ absl::string_view name = p.first;
+ const XdsApi::ResourceMetadata* meta = p.second;
+ const upb_strview name_upb = StdStringToUpbString(name);
+ auto* dynamic_endpoint =
+ envoy_admin_v3_EndpointsConfigDump_add_dynamic_endpoint_configs(
+ endpoint_config_dump, context.arena);
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_client_status(
+ dynamic_endpoint, meta->client_status);
+ auto* endpoint_any =
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_mutable_endpoint_config(
+ dynamic_endpoint, context.arena);
+ if (!meta->serialized_proto.empty()) {
+ // Set in-effective endpoints
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_version_info(
+ dynamic_endpoint, StdStringToUpbString(meta->version));
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_last_updated(
+ dynamic_endpoint, GrpcMillisToTimestamp(context, meta->update_time));
+ google_protobuf_Any_set_type_url(endpoint_any, kEdsTypeUrlUpb);
+ google_protobuf_Any_set_value(
+ endpoint_any, StdStringToUpbString(meta->serialized_proto));
+ } else {
+ // If there isn't a working endpoint, we still need to print the name.
+ auto* cluster_load_assignment =
+ envoy_config_endpoint_v3_ClusterLoadAssignment_new(context.arena);
+ envoy_config_endpoint_v3_ClusterLoadAssignment_set_cluster_name(
+ cluster_load_assignment, name_upb);
+ size_t length;
+ char* bytes = envoy_config_endpoint_v3_ClusterLoadAssignment_serialize(
+ cluster_load_assignment, context.arena, &length);
+ google_protobuf_Any_set_type_url(endpoint_any, kEdsTypeUrlUpb);
+ google_protobuf_Any_set_value(endpoint_any,
+ upb_strview_make(bytes, length));
+ }
+ if (meta->client_status == XdsApi::ResourceMetadata::NACKED) {
+ // Set error_state if NACKED
+ envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig_set_error_state(
+ dynamic_endpoint, CreateUpdateFailureStateUpb(context, meta));
+ }
+ }
+}
+
+} // namespace
+
+std::string XdsApi::AssembleClientConfig(
+ const ResourceTypeMetadataMap& resource_type_metadata_map) {
+ upb::Arena arena;
+ // Create the ClientConfig for resource metadata from XdsClient
+ auto* client_config = envoy_service_status_v3_ClientConfig_new(arena.ptr());
+ // Fill-in the node information
+ auto* node = envoy_service_status_v3_ClientConfig_mutable_node(client_config,
+ arena.ptr());
+ const EncodingContext context = {client_, tracer_, symtab_.ptr(), arena.ptr(),
+ true};
+ PopulateNode(context, node_, build_version_, user_agent_name_, node);
+ // Dump each xDS-type config into PerXdsConfig
+ for (auto& p : resource_type_metadata_map) {
+ absl::string_view type_url = p.first;
+ const ResourceTypeMetadata& resource_type_metadata = p.second;
+ if (type_url == kLdsTypeUrl) {
+ auto* per_xds_config =
+ envoy_service_status_v3_ClientConfig_add_xds_config(client_config,
+ context.arena);
+ DumpLdsConfig(context, resource_type_metadata, per_xds_config);
+ } else if (type_url == kRdsTypeUrl) {
+ auto* per_xds_config =
+ envoy_service_status_v3_ClientConfig_add_xds_config(client_config,
+ context.arena);
+ DumpRdsConfig(context, resource_type_metadata, per_xds_config);
+ } else if (type_url == kCdsTypeUrl) {
+ auto* per_xds_config =
+ envoy_service_status_v3_ClientConfig_add_xds_config(client_config,
+ context.arena);
+ DumpCdsConfig(context, resource_type_metadata, per_xds_config);
+ } else if (type_url == kEdsTypeUrl) {
+ auto* per_xds_config =
+ envoy_service_status_v3_ClientConfig_add_xds_config(client_config,
+ context.arena);
+ DumpEdsConfig(context, resource_type_metadata, per_xds_config);
+ } else {
+ gpr_log(GPR_ERROR, "invalid type_url %s", std::string(type_url).c_str());
+ return "";
+ }
+ }
+ // Serialize the upb message to bytes
+ size_t output_length;
+ char* output = envoy_service_status_v3_ClientConfig_serialize(
+ client_config, arena.ptr(), &output_length);
+ return std::string(output, output_length);
+}
+
} // namespace grpc_core
diff --git a/src/core/ext/xds/xds_api.h b/src/core/ext/xds/xds_api.h
index f936c192ec2..bc689976a7d 100644
--- a/src/core/ext/xds/xds_api.h
+++ b/src/core/ext/xds/xds_api.h
@@ -33,6 +33,7 @@
#include
+#include "envoy/admin/v3/config_dump.upb.h"
#include "src/core/ext/filters/client_channel/server_address.h"
#include "src/core/ext/xds/xds_bootstrap.h"
#include "src/core/ext/xds/xds_client_stats.h"
@@ -329,9 +330,20 @@ class XdsApi {
std::string ToString() const;
};
- using LdsUpdateMap = std::map;
+ struct LdsResourceData {
+ LdsUpdate resource;
+ std::string serialized_proto;
+ };
+
+ using LdsUpdateMap = std::map;
- using RdsUpdateMap = std::map;
+ struct RdsResourceData {
+ RdsUpdate resource;
+ std::string serialized_proto;
+ };
+
+ using RdsUpdateMap =
+ std::map;
struct CdsUpdate {
enum ClusterType { EDS, LOGICAL_DNS, AGGREGATE };
@@ -374,7 +386,12 @@ class XdsApi {
std::string ToString() const;
};
- using CdsUpdateMap = std::map;
+ struct CdsResourceData {
+ CdsUpdate resource;
+ std::string serialized_proto;
+ };
+
+ using CdsUpdateMap = std::map;
struct EdsUpdate {
struct Priority {
@@ -458,7 +475,13 @@ class XdsApi {
std::string ToString() const;
};
- using EdsUpdateMap = std::map;
+ struct EdsResourceData {
+ EdsUpdate resource;
+ std::string serialized_proto;
+ };
+
+ using EdsUpdateMap =
+ std::map;
struct ClusterLoadReport {
XdsClusterDropStats::Snapshot dropped_requests;
@@ -471,18 +494,66 @@ class XdsApi {
std::pair,
ClusterLoadReport>;
- XdsApi(XdsClient* client, TraceFlag* tracer, const XdsBootstrap::Node* node);
+ // The metadata of the xDS resource; used by the xDS config dump.
+ struct ResourceMetadata {
+ // Resource status from the view of a xDS client, which tells the
+ // synchronization status between the xDS client and the xDS server.
+ enum ClientResourceStatus {
+ // Client requested this resource but hasn't received any update from
+ // management server. The client will not fail requests, but will queue
+ // them
+ // until update arrives or the client times out waiting for the resource.
+ REQUESTED = 1,
+ // This resource has been requested by the client but has either not been
+ // delivered by the server or was previously delivered by the server and
+ // then subsequently removed from resources provided by the server.
+ DOES_NOT_EXIST,
+ // Client received this resource and replied with ACK.
+ ACKED,
+ // Client received this resource and replied with NACK.
+ NACKED
+ };
- // Creates an ADS request.
- // Takes ownership of \a error.
- grpc_slice CreateAdsRequest(const XdsBootstrap::XdsServer& server,
- const std::string& type_url,
- const std::set& resource_names,
- const std::string& version,
- const std::string& nonce, grpc_error* error,
- bool populate_node);
+ // The client status of this resource.
+ ClientResourceStatus client_status = REQUESTED;
+ // The serialized bytes of the last successfully updated raw xDS resource.
+ std::string serialized_proto;
+ // The timestamp when the resource was last successfully updated.
+ grpc_millis update_time = 0;
+ // The last successfully updated version of the resource.
+ std::string version;
+ // The rejected version string of the last failed update attempt.
+ std::string failed_version;
+ // Details about the last failed update attempt.
+ std::string failed_details;
+ // Timestamp of the last failed update attempt.
+ grpc_millis failed_update_time = 0;
+ };
+ using ResourceMetadataMap =
+ std::map;
+ struct ResourceTypeMetadata {
+ absl::string_view version;
+ ResourceMetadataMap resource_metadata_map;
+ };
+ using ResourceTypeMetadataMap =
+ std::map;
+ static_assert(static_cast(
+ envoy_admin_v3_REQUESTED) ==
+ ResourceMetadata::ClientResourceStatus::REQUESTED,
+ "");
+ static_assert(static_cast(
+ envoy_admin_v3_DOES_NOT_EXIST) ==
+ ResourceMetadata::ClientResourceStatus::DOES_NOT_EXIST,
+ "");
+ static_assert(static_cast(
+ envoy_admin_v3_ACKED) ==
+ ResourceMetadata::ClientResourceStatus::ACKED,
+ "");
+ static_assert(static_cast(
+ envoy_admin_v3_NACKED) ==
+ ResourceMetadata::ClientResourceStatus::NACKED,
+ "");
- // Parses an ADS response.
// If the response can't be parsed at the top level, the resulting
// type_url will be empty.
// If there is any other type of validation error, the parse_error
@@ -501,6 +572,19 @@ class XdsApi {
EdsUpdateMap eds_update_map;
std::set resource_names_failed;
};
+
+ XdsApi(XdsClient* client, TraceFlag* tracer, const XdsBootstrap::Node* node);
+
+ // Creates an ADS request.
+ // Takes ownership of \a error.
+ grpc_slice CreateAdsRequest(const XdsBootstrap::XdsServer& server,
+ const std::string& type_url,
+ const std::set& resource_names,
+ const std::string& version,
+ const std::string& nonce, grpc_error* error,
+ bool populate_node);
+
+ // Parses an ADS response.
AdsParseResult ParseAdsResponse(
const XdsBootstrap::XdsServer& server, const grpc_slice& encoded_response,
const std::set& expected_listener_names,
@@ -522,6 +606,10 @@ class XdsApi {
std::set* cluster_names,
grpc_millis* load_reporting_interval);
+ // Assemble the client config proto message and return the serialized result.
+ std::string AssembleClientConfig(
+ const ResourceTypeMetadataMap& resource_type_metadata_map);
+
private:
XdsClient* client_;
TraceFlag* tracer_;
diff --git a/src/core/ext/xds/xds_client.cc b/src/core/ext/xds/xds_client.cc
index 1d27c344446..f0b576206bc 100644
--- a/src/core/ext/xds/xds_client.cc
+++ b/src/core/ext/xds/xds_client.cc
@@ -35,6 +35,7 @@
#include "src/core/ext/filters/client_channel/client_channel.h"
#include "src/core/ext/filters/client_channel/service_config.h"
#include "src/core/ext/xds/xds_api.h"
+#include "src/core/ext/xds/xds_bootstrap.h"
#include "src/core/ext/xds/xds_channel_args.h"
#include "src/core/ext/xds/xds_client.h"
#include "src/core/ext/xds/xds_client_stats.h"
@@ -195,28 +196,34 @@ class XdsClient::ChannelState::AdsCallState
"timeout obtaining resource {type=%s name=%s} from xds server",
type_url_, name_)
.c_str());
+ watcher_error = grpc_error_set_int(
+ watcher_error, GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE);
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
gpr_log(GPR_INFO, "[xds_client %p] %s", ads_calld_->xds_client(),
grpc_error_string(watcher_error));
}
if (type_url_ == XdsApi::kLdsTypeUrl) {
ListenerState& state = ads_calld_->xds_client()->listener_map_[name_];
+ state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
for (const auto& p : state.watchers) {
p.first->OnError(GRPC_ERROR_REF(watcher_error));
}
} else if (type_url_ == XdsApi::kRdsTypeUrl) {
RouteConfigState& state =
ads_calld_->xds_client()->route_config_map_[name_];
+ state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
for (const auto& p : state.watchers) {
p.first->OnError(GRPC_ERROR_REF(watcher_error));
}
} else if (type_url_ == XdsApi::kCdsTypeUrl) {
ClusterState& state = ads_calld_->xds_client()->cluster_map_[name_];
+ state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
for (const auto& p : state.watchers) {
p.first->OnError(GRPC_ERROR_REF(watcher_error));
}
} else if (type_url_ == XdsApi::kEdsTypeUrl) {
EndpointState& state = ads_calld_->xds_client()->endpoint_map_[name_];
+ state.meta.client_status = XdsApi::ResourceMetadata::DOES_NOT_EXIST;
for (const auto& p : state.watchers) {
p.first->OnError(GRPC_ERROR_REF(watcher_error));
}
@@ -252,10 +259,14 @@ class XdsClient::ChannelState::AdsCallState
void SendMessageLocked(const std::string& type_url);
- void AcceptLdsUpdate(XdsApi::LdsUpdateMap lds_update_map);
- void AcceptRdsUpdate(XdsApi::RdsUpdateMap rds_update_map);
- void AcceptCdsUpdate(XdsApi::CdsUpdateMap cds_update_map);
- void AcceptEdsUpdate(XdsApi::EdsUpdateMap eds_update_map);
+ void AcceptLdsUpdate(std::string version, grpc_millis update_time,
+ XdsApi::LdsUpdateMap lds_update_map);
+ void AcceptRdsUpdate(std::string version, grpc_millis update_time,
+ XdsApi::RdsUpdateMap rds_update_map);
+ void AcceptCdsUpdate(std::string version, grpc_millis update_time,
+ XdsApi::CdsUpdateMap cds_update_map);
+ void AcceptEdsUpdate(std::string version, grpc_millis update_time,
+ XdsApi::EdsUpdateMap eds_update_map);
static void OnRequestSent(void* arg, grpc_error* error);
void OnRequestSentLocked(grpc_error* error);
@@ -504,7 +515,7 @@ XdsClient::ChannelState::LrsCallState* XdsClient::ChannelState::lrs_calld()
}
bool XdsClient::ChannelState::HasActiveAdsCall() const {
- return ads_calld_->calld() != nullptr;
+ return ads_calld_ != nullptr && ads_calld_->calld() != nullptr;
}
void XdsClient::ChannelState::MaybeStartLrsCall() {
@@ -867,7 +878,24 @@ bool XdsClient::ChannelState::AdsCallState::HasSubscribedResources() const {
return false;
}
+namespace {
+
+// Build a resource metadata struct for ADS result accepting methods and CSDS.
+XdsApi::ResourceMetadata CreateResourceMetadataAcked(
+ std::string serialized_proto, std::string version,
+ grpc_millis update_time) {
+ XdsApi::ResourceMetadata resource_metadata;
+ resource_metadata.serialized_proto = std::move(serialized_proto);
+ resource_metadata.update_time = update_time;
+ resource_metadata.version = std::move(version);
+ resource_metadata.client_status = XdsApi::ResourceMetadata::ACKED;
+ return resource_metadata;
+}
+
+} // namespace
+
void XdsClient::ChannelState::AdsCallState::AcceptLdsUpdate(
+ std::string version, grpc_millis update_time,
XdsApi::LdsUpdateMap lds_update_map) {
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
gpr_log(GPR_INFO,
@@ -879,7 +907,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptLdsUpdate(
std::set rds_resource_names_seen;
for (auto& p : lds_update_map) {
const std::string& listener_name = p.first;
- XdsApi::LdsUpdate& lds_update = p.second;
+ XdsApi::LdsUpdate& lds_update = p.second.resource;
auto& state = lds_state.subscribed_resources[listener_name];
if (state != nullptr) state->Finish();
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
@@ -905,6 +933,8 @@ void XdsClient::ChannelState::AdsCallState::AcceptLdsUpdate(
}
// Update the listener state.
listener_state.update = std::move(lds_update);
+ listener_state.meta = CreateResourceMetadataAcked(
+ std::move(p.second.serialized_proto), version, update_time);
// Notify watchers.
for (const auto& p : listener_state.watchers) {
p.first->OnListenerChanged(*listener_state.update);
@@ -949,6 +979,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptLdsUpdate(
}
void XdsClient::ChannelState::AdsCallState::AcceptRdsUpdate(
+ std::string version, grpc_millis update_time,
XdsApi::RdsUpdateMap rds_update_map) {
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
gpr_log(GPR_INFO,
@@ -959,7 +990,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptRdsUpdate(
auto& rds_state = state_map_[XdsApi::kRdsTypeUrl];
for (auto& p : rds_update_map) {
const std::string& route_config_name = p.first;
- XdsApi::RdsUpdate& rds_update = p.second;
+ XdsApi::RdsUpdate& rds_update = p.second.resource;
auto& state = rds_state.subscribed_resources[route_config_name];
if (state != nullptr) state->Finish();
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
@@ -980,6 +1011,8 @@ void XdsClient::ChannelState::AdsCallState::AcceptRdsUpdate(
}
// Update the cache.
route_config_state.update = std::move(rds_update);
+ route_config_state.meta = CreateResourceMetadataAcked(
+ std::move(p.second.serialized_proto), version, update_time);
// Notify all watchers.
for (const auto& p : route_config_state.watchers) {
p.first->OnRouteConfigChanged(*route_config_state.update);
@@ -988,6 +1021,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptRdsUpdate(
}
void XdsClient::ChannelState::AdsCallState::AcceptCdsUpdate(
+ std::string version, grpc_millis update_time,
XdsApi::CdsUpdateMap cds_update_map) {
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
gpr_log(GPR_INFO,
@@ -999,7 +1033,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptCdsUpdate(
std::set eds_resource_names_seen;
for (auto& p : cds_update_map) {
const char* cluster_name = p.first.c_str();
- XdsApi::CdsUpdate& cds_update = p.second;
+ XdsApi::CdsUpdate& cds_update = p.second.resource;
auto& state = cds_state.subscribed_resources[cluster_name];
if (state != nullptr) state->Finish();
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
@@ -1023,6 +1057,8 @@ void XdsClient::ChannelState::AdsCallState::AcceptCdsUpdate(
}
// Update the cluster state.
cluster_state.update = std::move(cds_update);
+ cluster_state.meta = CreateResourceMetadataAcked(
+ std::move(p.second.serialized_proto), version, update_time);
// Notify all watchers.
for (const auto& p : cluster_state.watchers) {
p.first->OnClusterChanged(cluster_state.update.value());
@@ -1066,6 +1102,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptCdsUpdate(
}
void XdsClient::ChannelState::AdsCallState::AcceptEdsUpdate(
+ std::string version, grpc_millis update_time,
XdsApi::EdsUpdateMap eds_update_map) {
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
gpr_log(GPR_INFO,
@@ -1076,7 +1113,7 @@ void XdsClient::ChannelState::AdsCallState::AcceptEdsUpdate(
auto& eds_state = state_map_[XdsApi::kEdsTypeUrl];
for (auto& p : eds_update_map) {
const char* eds_service_name = p.first.c_str();
- XdsApi::EdsUpdate& eds_update = p.second;
+ XdsApi::EdsUpdate& eds_update = p.second.resource;
auto& state = eds_state.subscribed_resources[eds_service_name];
if (state != nullptr) state->Finish();
if (GRPC_TRACE_FLAG_ENABLED(grpc_xds_client_trace)) {
@@ -1097,6 +1134,8 @@ void XdsClient::ChannelState::AdsCallState::AcceptEdsUpdate(
}
// Update the cluster state.
endpoint_state.update = std::move(eds_update);
+ endpoint_state.meta = CreateResourceMetadataAcked(
+ std::move(p.second.serialized_proto), version, update_time);
// Notify all watchers.
for (const auto& p : endpoint_state.watchers) {
p.first->OnEndpointChanged(endpoint_state.update.value());
@@ -1176,11 +1215,14 @@ bool XdsClient::ChannelState::AdsCallState::OnResponseReceivedLocked() {
xds_client(), grpc_error_string(result.parse_error));
GRPC_ERROR_UNREF(result.parse_error);
} else {
+ grpc_millis update_time = grpc_core::ExecCtx::Get()->Now();
// Update nonce.
auto& state = state_map_[result.type_url];
state.nonce = std::move(result.nonce);
// NACK or ACK the response.
if (result.parse_error != GRPC_ERROR_NONE) {
+ xds_client()->UpdateResourceMetadataWithFailedParseResult(update_time,
+ result);
GRPC_ERROR_UNREF(state.error);
state.error = result.parse_error;
// NACK unacceptable update.
@@ -1194,13 +1236,17 @@ bool XdsClient::ChannelState::AdsCallState::OnResponseReceivedLocked() {
seen_response_ = true;
// Accept the ADS response according to the type_url.
if (result.type_url == XdsApi::kLdsTypeUrl) {
- AcceptLdsUpdate(std::move(result.lds_update_map));
+ AcceptLdsUpdate(result.version, update_time,
+ std::move(result.lds_update_map));
} else if (result.type_url == XdsApi::kRdsTypeUrl) {
- AcceptRdsUpdate(std::move(result.rds_update_map));
+ AcceptRdsUpdate(result.version, update_time,
+ std::move(result.rds_update_map));
} else if (result.type_url == XdsApi::kCdsTypeUrl) {
- AcceptCdsUpdate(std::move(result.cds_update_map));
+ AcceptCdsUpdate(result.version, update_time,
+ std::move(result.cds_update_map));
} else if (result.type_url == XdsApi::kEdsTypeUrl) {
- AcceptEdsUpdate(std::move(result.eds_update_map));
+ AcceptEdsUpdate(result.version, update_time,
+ std::move(result.eds_update_map));
}
xds_client()->resource_version_map_[result.type_url] =
std::move(result.version);
@@ -2195,6 +2241,80 @@ XdsApi::ClusterLoadReportMap XdsClient::BuildLoadReportSnapshotLocked(
return snapshot_map;
}
+void XdsClient::UpdateResourceMetadataWithFailedParseResult(
+ grpc_millis update_time, const XdsApi::AdsParseResult& result) {
+ // ADS update is rejected and the resource names in the failed update is
+ // available.
+ absl::string_view details = grpc_error_string(result.parse_error);
+ for (auto& name : result.resource_names_failed) {
+ XdsApi::ResourceMetadata* resource_metadata = nullptr;
+ if (result.type_url == XdsApi::kLdsTypeUrl) {
+ auto it = listener_map_.find(name);
+ if (it != listener_map_.end()) {
+ resource_metadata = &it->second.meta;
+ }
+ } else if (result.type_url == XdsApi::kRdsTypeUrl) {
+ auto it = route_config_map_.find(name);
+ if (route_config_map_.find(name) != route_config_map_.end()) {
+ resource_metadata = &it->second.meta;
+ }
+ } else if (result.type_url == XdsApi::kCdsTypeUrl) {
+ auto it = cluster_map_.find(name);
+ if (cluster_map_.find(name) != cluster_map_.end()) {
+ resource_metadata = &it->second.meta;
+ }
+ } else if (result.type_url == XdsApi::kEdsTypeUrl) {
+ auto it = endpoint_map_.find(name);
+ if (endpoint_map_.find(name) != endpoint_map_.end()) {
+ resource_metadata = &it->second.meta;
+ }
+ }
+ if (resource_metadata == nullptr) {
+ return;
+ }
+ resource_metadata->client_status = XdsApi::ResourceMetadata::NACKED;
+ resource_metadata->failed_version = result.version;
+ resource_metadata->failed_details = std::string(details);
+ resource_metadata->failed_update_time = update_time;
+ }
+}
+
+std::string XdsClient::DumpClientConfigBinary() {
+ MutexLock lock(&mu_);
+ XdsApi::ResourceTypeMetadataMap resource_type_metadata_map;
+ // Update per-xds-type version if available, this version corresponding to the
+ // last successful ADS update version.
+ for (auto& p : resource_version_map_) {
+ resource_type_metadata_map[p.first].version = p.second;
+ }
+ // Collect resource metadata from listeners
+ auto& lds_map =
+ resource_type_metadata_map[XdsApi::kLdsTypeUrl].resource_metadata_map;
+ for (auto& p : listener_map_) {
+ lds_map[p.first] = &p.second.meta;
+ }
+ // Collect resource metadata from route configs
+ auto& rds_map =
+ resource_type_metadata_map[XdsApi::kRdsTypeUrl].resource_metadata_map;
+ for (auto& p : route_config_map_) {
+ rds_map[p.first] = &p.second.meta;
+ }
+ // Collect resource metadata from clusters
+ auto& cds_map =
+ resource_type_metadata_map[XdsApi::kCdsTypeUrl].resource_metadata_map;
+ for (auto& p : cluster_map_) {
+ cds_map[p.first] = &p.second.meta;
+ }
+ // Collect resource metadata from endpoints
+ auto& eds_map =
+ resource_type_metadata_map[XdsApi::kEdsTypeUrl].resource_metadata_map;
+ for (auto& p : endpoint_map_) {
+ eds_map[p.first] = &p.second.meta;
+ }
+ // Assemble config dump messages
+ return api_.AssembleClientConfig(resource_type_metadata_map);
+}
+
//
// accessors for global state
//
@@ -2248,3 +2368,17 @@ void SetXdsFallbackBootstrapConfig(const char* config) {
} // namespace internal
} // namespace grpc_core
+
+// The returned bytes may contain NULL(0), so we can't use c-string.
+grpc_slice grpc_dump_xds_configs() {
+ grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
+ grpc_core::ExecCtx exec_ctx;
+ grpc_error* error = GRPC_ERROR_NONE;
+ auto xds_client = grpc_core::XdsClient::GetOrCreate(&error);
+ if (error != GRPC_ERROR_NONE) {
+ // If we isn't using xDS, just return an empty string.
+ GRPC_ERROR_UNREF(error);
+ return grpc_empty_slice();
+ }
+ return grpc_slice_from_cpp_string(xds_client->DumpClientConfigBinary());
+}
diff --git a/src/core/ext/xds/xds_client.h b/src/core/ext/xds/xds_client.h
index 059e49cab3a..41e0a379568 100644
--- a/src/core/ext/xds/xds_client.h
+++ b/src/core/ext/xds/xds_client.h
@@ -191,6 +191,15 @@ class XdsClient : public DualRefCounted {
// Resets connection backoff state.
void ResetBackoff();
+ // Dumps the active xDS config in JSON format.
+ // Individual xDS resource is encoded as envoy.admin.v3.*ConfigDump. Returns
+ // envoy.service.status.v3.ClientConfig which also includes the config
+ // status (e.g., CLIENT_REQUESTED, CLIENT_ACKED, CLIENT_NACKED).
+ //
+ // Expected to be invoked by wrapper languages in their CSDS service
+ // implementation.
+ std::string DumpClientConfigBinary();
+
private:
// Contains a channel to the xds server and all the data related to the
// channel. Holds a ref to the xds client object.
@@ -221,6 +230,7 @@ class XdsClient : public DualRefCounted {
void MaybeStartLrsCall();
void StopLrsCall();
+ bool HasAdsCall() const;
bool HasActiveAdsCall() const;
void StartConnectivityWatchLocked();
@@ -254,6 +264,7 @@ class XdsClient : public DualRefCounted {
watchers;
// The latest data seen from LDS.
absl::optional update;
+ XdsApi::ResourceMetadata meta;
};
struct RouteConfigState {
@@ -262,6 +273,7 @@ class XdsClient : public DualRefCounted {
watchers;
// The latest data seen from RDS.
absl::optional update;
+ XdsApi::ResourceMetadata meta;
};
struct ClusterState {
@@ -269,6 +281,7 @@ class XdsClient : public DualRefCounted {
watchers;
// The latest data seen from CDS.
absl::optional update;
+ XdsApi::ResourceMetadata meta;
};
struct EndpointState {
@@ -277,6 +290,7 @@ class XdsClient : public DualRefCounted {
watchers;
// The latest data seen from EDS.
absl::optional update;
+ XdsApi::ResourceMetadata meta;
};
struct LoadReportState {
@@ -299,6 +313,12 @@ class XdsClient : public DualRefCounted {
XdsApi::ClusterLoadReportMap BuildLoadReportSnapshotLocked(
bool send_all_clusters, const std::set& clusters);
+ void UpdateResourceMetadataWithFailedParseResult(
+ grpc_millis update_time, const XdsApi::AdsParseResult& result);
+ void UpdatePendingResources(
+ const std::string& type_url,
+ XdsApi::ResourceMetadataMap* resource_metadata_map);
+
const grpc_millis request_timeout_;
grpc_pollset_set* interested_parties_;
std::unique_ptr bootstrap_;
diff --git a/src/cpp/server/csds/csds.cc b/src/cpp/server/csds/csds.cc
new file mode 100644
index 00000000000..fc8e7e0e3c2
--- /dev/null
+++ b/src/cpp/server/csds/csds.cc
@@ -0,0 +1,94 @@
+//
+//
+// Copyright 2021 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+
+#include
+
+#include "src/cpp/server/csds/csds.h"
+
+#include "absl/status/statusor.h"
+
+#include
+#include
+#include
+
+#include
+
+#include "src/proto/grpc/testing/xds/v3/csds.grpc.pb.h"
+
+namespace grpc {
+namespace xds {
+namespace experimental {
+
+using envoy::service::status::v3::ClientConfig;
+using envoy::service::status::v3::ClientStatusRequest;
+using envoy::service::status::v3::ClientStatusResponse;
+
+namespace {
+
+absl::StatusOr DumpClientConfig() {
+ ClientConfig client_config;
+ grpc_slice serialized_client_config = grpc_dump_xds_configs();
+ std::string bytes = StringFromCopiedSlice(serialized_client_config);
+ grpc_slice_unref(serialized_client_config);
+ if (!client_config.ParseFromString(bytes)) {
+ return absl::InternalError("Failed to parse ClientConfig.");
+ }
+ return client_config;
+}
+
+} // namespace
+
+Status ClientStatusDiscoveryService::StreamClientStatus(
+ ServerContext* /*context*/,
+ ServerReaderWriter* stream) {
+ ClientStatusRequest request;
+ while (stream->Read(&request)) {
+ ClientStatusResponse response;
+ absl::StatusOr s = DumpClientConfig();
+ if (!s.ok()) {
+ if (s.status().code() == absl::StatusCode::kUnavailable) {
+ // If the xDS client is not initialized, return empty response
+ stream->Write(response);
+ continue;
+ }
+ return Status(StatusCode(s.status().raw_code()), s.status().ToString());
+ }
+ *response.add_config() = std::move(s.value());
+ stream->Write(response);
+ }
+ return Status::OK;
+}
+
+Status ClientStatusDiscoveryService::FetchClientStatus(
+ ServerContext* /*context*/, const ClientStatusRequest* /*request*/,
+ ClientStatusResponse* response) {
+ absl::StatusOr s = DumpClientConfig();
+ if (!s.ok()) {
+ if (s.status().code() == absl::StatusCode::kUnavailable) {
+ // If the xDS client is not initialized, return empty response
+ return Status::OK;
+ }
+ return Status(StatusCode(s.status().raw_code()), s.status().ToString());
+ }
+ *response->add_config() = std::move(s.value());
+ return Status::OK;
+}
+
+} // namespace experimental
+} // namespace xds
+} // namespace grpc
diff --git a/src/cpp/server/csds/csds.h b/src/cpp/server/csds/csds.h
new file mode 100644
index 00000000000..be2a4aa1ee8
--- /dev/null
+++ b/src/cpp/server/csds/csds.h
@@ -0,0 +1,55 @@
+//
+//
+// Copyright 2021 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+
+#ifndef GRPC_INTERNAL_CPP_SERVER_CSDS_H
+#define GRPC_INTERNAL_CPP_SERVER_CSDS_H
+
+#include
+#include
+#include "absl/status/status.h"
+
+#include "src/proto/grpc/testing/xds/v3/csds.grpc.pb.h"
+
+namespace grpc {
+namespace xds {
+namespace experimental {
+
+// The implementation of
+// envoy::service::status::v3::ClientStatusDiscoveryService
+class ClientStatusDiscoveryService final
+ : public envoy::service::status::v3::ClientStatusDiscoveryService::Service {
+ public:
+ // A streaming call that responds client status for each request.
+ Status StreamClientStatus(
+ ServerContext* /*context*/,
+ ServerReaderWriter*
+ stream) override;
+
+ // An unary call to fetch client status.
+ Status FetchClientStatus(
+ ServerContext* /*unused*/,
+ const envoy::service::status::v3::ClientStatusRequest* /*request*/,
+ envoy::service::status::v3::ClientStatusResponse* response) override;
+};
+
+} // namespace experimental
+} // namespace xds
+} // namespace grpc
+
+#endif // GRPC_INTERNAL_CPP_SERVER_CSDS_H
diff --git a/src/proto/grpc/testing/xds/v3/BUILD b/src/proto/grpc/testing/xds/v3/BUILD
index 7b0ebdc73be..38a1c14b63b 100644
--- a/src/proto/grpc/testing/xds/v3/BUILD
+++ b/src/proto/grpc/testing/xds/v3/BUILD
@@ -245,6 +245,26 @@ grpc_proto_library(
],
)
+grpc_proto_library(
+ name = "config_dump_proto",
+ srcs = [
+ "config_dump.proto",
+ ],
+ well_known_protos = True,
+)
+
+grpc_proto_library(
+ name = "csds_proto",
+ srcs = [
+ "csds.proto",
+ ],
+ well_known_protos = True,
+ deps = [
+ "base_proto",
+ "config_dump_proto",
+ ],
+)
+
grpc_proto_library(
name = "fault_proto",
srcs = [
diff --git a/src/proto/grpc/testing/xds/v3/config_dump.proto b/src/proto/grpc/testing/xds/v3/config_dump.proto
new file mode 100644
index 00000000000..d69b3109aac
--- /dev/null
+++ b/src/proto/grpc/testing/xds/v3/config_dump.proto
@@ -0,0 +1,284 @@
+// Copyright 2021 The gRPC Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Local copy of Envoy xDS proto file, used for testing only.
+
+syntax = "proto3";
+
+package envoy.admin.v3;
+
+import "google/protobuf/any.proto";
+import "google/protobuf/timestamp.proto";
+
+// Resource status from the view of a xDS client, which tells the synchronization
+// status between the xDS client and the xDS server.
+enum ClientResourceStatus {
+ // Resource status is not available/unknown.
+ UNKNOWN = 0;
+
+ // Client requested this resource but hasn't received any update from management
+ // server. The client will not fail requests, but will queue them until update
+ // arrives or the client times out waiting for the resource.
+ REQUESTED = 1;
+
+ // This resource has been requested by the client but has either not been
+ // delivered by the server or was previously delivered by the server and then
+ // subsequently removed from resources provided by the server. For more
+ // information, please refer to the :ref:`"Knowing When a Requested Resource
+ // Does Not Exist" ` section.
+ DOES_NOT_EXIST = 2;
+
+ // Client received this resource and replied with ACK.
+ ACKED = 3;
+
+ // Client received this resource and replied with NACK.
+ NACKED = 4;
+}
+
+message UpdateFailureState {
+ // What the component configuration would have been if the update had succeeded.
+ // This field may not be populated by xDS clients due to storage overhead.
+ google.protobuf.Any failed_configuration = 1;
+
+ // Time of the latest failed update attempt.
+ google.protobuf.Timestamp last_update_attempt = 2;
+
+ // Details about the last failed update attempt.
+ string details = 3;
+
+ // This is the version of the rejected resource.
+ // [#not-implemented-hide:]
+ string version_info = 4;
+}
+
+// Envoy's listener manager fills this message with all currently known listeners. Listener
+// configuration information can be used to recreate an Envoy configuration by populating all
+// listeners as static listeners or by returning them in a LDS response.
+message ListenersConfigDump {
+ // Describes a statically loaded listener.
+ message StaticListener {
+ // The listener config.
+ google.protobuf.Any listener = 1;
+
+ // The timestamp when the Listener was last successfully updated.
+ google.protobuf.Timestamp last_updated = 2;
+ }
+
+ message DynamicListenerState {
+ // This is the per-resource version information. This version is currently taken from the
+ // :ref:`version_info ` field at the time
+ // that the listener was loaded. In the future, discrete per-listener versions may be supported
+ // by the API.
+ string version_info = 1;
+
+ // The listener config.
+ google.protobuf.Any listener = 2;
+
+ // The timestamp when the Listener was last successfully updated.
+ google.protobuf.Timestamp last_updated = 3;
+ }
+
+ // Describes a dynamically loaded listener via the LDS API.
+ // [#next-free-field: 7]
+ message DynamicListener {
+ // The name or unique id of this listener, pulled from the DynamicListenerState config.
+ string name = 1;
+
+ // The listener state for any active listener by this name.
+ // These are listeners that are available to service data plane traffic.
+ DynamicListenerState active_state = 2;
+
+ // The listener state for any warming listener by this name.
+ // These are listeners that are currently undergoing warming in preparation to service data
+ // plane traffic. Note that if attempting to recreate an Envoy configuration from a
+ // configuration dump, the warming listeners should generally be discarded.
+ DynamicListenerState warming_state = 3;
+
+ // The listener state for any draining listener by this name.
+ // These are listeners that are currently undergoing draining in preparation to stop servicing
+ // data plane traffic. Note that if attempting to recreate an Envoy configuration from a
+ // configuration dump, the draining listeners should generally be discarded.
+ DynamicListenerState draining_state = 4;
+
+ // Set if the last update failed, cleared after the next successful update.
+ // The *error_state* field contains the rejected version of this particular
+ // resource along with the reason and timestamp. For successfully updated or
+ // acknowledged resource, this field should be empty.
+ UpdateFailureState error_state = 5;
+
+ // The client status of this resource.
+ // [#not-implemented-hide:]
+ ClientResourceStatus client_status = 6;
+ }
+
+ // This is the :ref:`version_info ` in the
+ // last processed LDS discovery response. If there are only static bootstrap listeners, this field
+ // will be "".
+ string version_info = 1;
+
+ // The statically loaded listener configs.
+ repeated StaticListener static_listeners = 2;
+
+ // State for any warming, active, or draining listeners.
+ repeated DynamicListener dynamic_listeners = 3;
+}
+
+// Envoy's cluster manager fills this message with all currently known clusters. Cluster
+// configuration information can be used to recreate an Envoy configuration by populating all
+// clusters as static clusters or by returning them in a CDS response.
+message ClustersConfigDump {
+ // Describes a statically loaded cluster.
+ message StaticCluster {
+ // The cluster config.
+ google.protobuf.Any cluster = 1;
+
+ // The timestamp when the Cluster was last updated.
+ google.protobuf.Timestamp last_updated = 2;
+ }
+
+ // Describes a dynamically loaded cluster via the CDS API.
+ // [#next-free-field: 6]
+ message DynamicCluster {
+ // This is the per-resource version information. This version is currently taken from the
+ // :ref:`version_info ` field at the time
+ // that the cluster was loaded. In the future, discrete per-cluster versions may be supported by
+ // the API.
+ string version_info = 1;
+
+ // The cluster config.
+ google.protobuf.Any cluster = 2;
+
+ // The timestamp when the Cluster was last updated.
+ google.protobuf.Timestamp last_updated = 3;
+
+ // Set if the last update failed, cleared after the next successful update.
+ // The *error_state* field contains the rejected version of this particular
+ // resource along with the reason and timestamp. For successfully updated or
+ // acknowledged resource, this field should be empty.
+ // [#not-implemented-hide:]
+ UpdateFailureState error_state = 4;
+
+ // The client status of this resource.
+ // [#not-implemented-hide:]
+ ClientResourceStatus client_status = 5;
+ }
+
+ // This is the :ref:`version_info ` in the
+ // last processed CDS discovery response. If there are only static bootstrap clusters, this field
+ // will be "".
+ string version_info = 1;
+
+ // The statically loaded cluster configs.
+ repeated StaticCluster static_clusters = 2;
+
+ // The dynamically loaded active clusters. These are clusters that are available to service
+ // data plane traffic.
+ repeated DynamicCluster dynamic_active_clusters = 3;
+
+ // The dynamically loaded warming clusters. These are clusters that are currently undergoing
+ // warming in preparation to service data plane traffic. Note that if attempting to recreate an
+ // Envoy configuration from a configuration dump, the warming clusters should generally be
+ // discarded.
+ repeated DynamicCluster dynamic_warming_clusters = 4;
+}
+
+// Envoy's RDS implementation fills this message with all currently loaded routes, as described by
+// their RouteConfiguration objects. Static routes that are either defined in the bootstrap configuration
+// or defined inline while configuring listeners are separated from those configured dynamically via RDS.
+// Route configuration information can be used to recreate an Envoy configuration by populating all routes
+// as static routes or by returning them in RDS responses.
+message RoutesConfigDump {
+ message StaticRouteConfig {
+ // The route config.
+ google.protobuf.Any route_config = 1;
+
+ // The timestamp when the Route was last updated.
+ google.protobuf.Timestamp last_updated = 2;
+ }
+
+ // [#next-free-field: 6]
+ message DynamicRouteConfig {
+ // This is the per-resource version information. This version is currently taken from the
+ // :ref:`version_info ` field at the time that
+ // the route configuration was loaded.
+ string version_info = 1;
+
+ // The route config.
+ google.protobuf.Any route_config = 2;
+
+ // The timestamp when the Route was last updated.
+ google.protobuf.Timestamp last_updated = 3;
+
+ // Set if the last update failed, cleared after the next successful update.
+ // The *error_state* field contains the rejected version of this particular
+ // resource along with the reason and timestamp. For successfully updated or
+ // acknowledged resource, this field should be empty.
+ // [#not-implemented-hide:]
+ UpdateFailureState error_state = 4;
+
+ // The client status of this resource.
+ // [#not-implemented-hide:]
+ ClientResourceStatus client_status = 5;
+ }
+
+ // The statically loaded route configs.
+ repeated StaticRouteConfig static_route_configs = 2;
+
+ // The dynamically loaded route configs.
+ repeated DynamicRouteConfig dynamic_route_configs = 3;
+}
+
+// Envoy's admin fill this message with all currently known endpoints. Endpoint
+// configuration information can be used to recreate an Envoy configuration by populating all
+// endpoints as static endpoints or by returning them in an EDS response.
+message EndpointsConfigDump {
+ message StaticEndpointConfig {
+ // The endpoint config.
+ google.protobuf.Any endpoint_config = 1;
+
+ // [#not-implemented-hide:] The timestamp when the Endpoint was last updated.
+ google.protobuf.Timestamp last_updated = 2;
+ }
+
+ // [#next-free-field: 6]
+ message DynamicEndpointConfig {
+ // [#not-implemented-hide:] This is the per-resource version information. This version is currently taken from the
+ // :ref:`version_info ` field at the time that
+ // the endpoint configuration was loaded.
+ string version_info = 1;
+
+ // The endpoint config.
+ google.protobuf.Any endpoint_config = 2;
+
+ // [#not-implemented-hide:] The timestamp when the Endpoint was last updated.
+ google.protobuf.Timestamp last_updated = 3;
+
+ // Set if the last update failed, cleared after the next successful update.
+ // The *error_state* field contains the rejected version of this particular
+ // resource along with the reason and timestamp. For successfully updated or
+ // acknowledged resource, this field should be empty.
+ // [#not-implemented-hide:]
+ UpdateFailureState error_state = 4;
+
+ // The client status of this resource.
+ // [#not-implemented-hide:]
+ ClientResourceStatus client_status = 5;
+ }
+
+ // The statically loaded endpoint configs.
+ repeated StaticEndpointConfig static_endpoint_configs = 2;
+
+ // The dynamically loaded endpoint configs.
+ repeated DynamicEndpointConfig dynamic_endpoint_configs = 3;
+}
diff --git a/src/proto/grpc/testing/xds/v3/csds.proto b/src/proto/grpc/testing/xds/v3/csds.proto
new file mode 100644
index 00000000000..bbdfd4e048b
--- /dev/null
+++ b/src/proto/grpc/testing/xds/v3/csds.proto
@@ -0,0 +1,89 @@
+// Copyright 2021 The gRPC Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Local copy of Envoy xDS proto file, used for testing only.
+
+syntax = "proto3";
+
+package envoy.service.status.v3;
+
+import "src/proto/grpc/testing/xds/v3/config_dump.proto";
+import "src/proto/grpc/testing/xds/v3/base.proto";
+
+
+// CSDS is Client Status Discovery Service. It can be used to get the status of
+// an xDS-compliant client from the management server's point of view. It can
+// also be used to get the current xDS states directly from the client.
+service ClientStatusDiscoveryService {
+ rpc StreamClientStatus(stream ClientStatusRequest) returns (stream ClientStatusResponse) {}
+ rpc FetchClientStatus(ClientStatusRequest) returns (ClientStatusResponse) {}
+}
+
+// Status of a config from a management server view.
+enum ConfigStatus {
+ // Status info is not available/unknown.
+ UNKNOWN = 0;
+
+ // Management server has sent the config to client and received ACK.
+ SYNCED = 1;
+
+ // Config is not sent.
+ NOT_SENT = 2;
+
+ // Management server has sent the config to client but hasn’t received
+ // ACK/NACK.
+ STALE = 3;
+
+ // Management server has sent the config to client but received NACK. The
+ // attached config dump will be the latest config (the rejected one), since
+ // it is the persisted version in the management server.
+ ERROR = 4;
+}
+
+// Request for client status of clients identified by a list of NodeMatchers.
+message ClientStatusRequest {
+ // The node making the csds request.
+ config.core.v3.Node node = 2;
+}
+
+// Detailed config (per xDS) with status.
+// [#next-free-field: 8]
+message PerXdsConfig {
+ // Config status generated by management servers. Will not be present if the
+ // CSDS server is an xDS client.
+ ConfigStatus status = 1;
+
+ oneof per_xds_config {
+ admin.v3.ListenersConfigDump listener_config = 2;
+
+ admin.v3.ClustersConfigDump cluster_config = 3;
+
+ admin.v3.RoutesConfigDump route_config = 4;
+
+ admin.v3.EndpointsConfigDump endpoint_config = 6;
+ }
+}
+
+// All xds configs for a particular client.
+message ClientConfig {
+ // Node for a particular client.
+ config.core.v3.Node node = 1;
+
+ repeated PerXdsConfig xds_config = 2;
+}
+
+message ClientStatusResponse {
+ // Client configs for the clients specified in the ClientStatusRequest.
+ repeated ClientConfig config = 1;
+}
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index c35d1cd6591..33b8b0b2dc4 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -122,9 +122,11 @@ CORE_SOURCE_FILES = [
'src/core/ext/transport/chttp2/transport/writing.cc',
'src/core/ext/transport/inproc/inproc_plugin.cc',
'src/core/ext/transport/inproc/inproc_transport.cc',
+ 'src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c',
'src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c',
'src/core/ext/upb-generated/envoy/annotations/resource.upb.c',
'src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c',
'src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c',
'src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c',
'src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c',
@@ -149,6 +151,8 @@ CORE_SOURCE_FILES = [
'src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c',
'src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c',
'src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c',
+ 'src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c',
'src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c',
'src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c',
'src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c',
@@ -171,11 +175,14 @@ CORE_SOURCE_FILES = [
'src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c',
'src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c',
'src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c',
+ 'src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c',
+ 'src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c',
'src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c',
'src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c',
'src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c',
@@ -214,9 +221,11 @@ CORE_SOURCE_FILES = [
'src/core/ext/upb-generated/xds/core/v3/resource.upb.c',
'src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c',
'src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c',
+ 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c',
@@ -241,6 +250,8 @@ CORE_SOURCE_FILES = [
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c',
@@ -262,11 +273,14 @@ CORE_SOURCE_FILES = [
'src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c',
+ 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c',
'src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c',
@@ -1022,8 +1036,6 @@ CORE_SOURCE_FILES = [
'third_party/upb/upb/decode_fast.c',
'third_party/upb/upb/def.c',
'third_party/upb/upb/encode.c',
- 'third_party/upb/upb/json_decode.c',
- 'third_party/upb/upb/json_encode.c',
'third_party/upb/upb/msg.c',
'third_party/upb/upb/reflection.c',
'third_party/upb/upb/table.c',
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.c b/src/ruby/ext/grpc/rb_grpc_imports.generated.c
index 5d5d3e01d8a..8d799baa72d 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.c
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.c
@@ -98,6 +98,7 @@ grpc_resource_quota_ref_type grpc_resource_quota_ref_import;
grpc_resource_quota_unref_type grpc_resource_quota_unref_import;
grpc_resource_quota_resize_type grpc_resource_quota_resize_import;
grpc_resource_quota_set_max_threads_type grpc_resource_quota_set_max_threads_import;
+grpc_dump_xds_configs_type grpc_dump_xds_configs_import;
grpc_resource_quota_arg_vtable_type grpc_resource_quota_arg_vtable_import;
grpc_channelz_get_top_channels_type grpc_channelz_get_top_channels_import;
grpc_channelz_get_servers_type grpc_channelz_get_servers_import;
@@ -382,6 +383,7 @@ void grpc_rb_load_imports(HMODULE library) {
grpc_resource_quota_unref_import = (grpc_resource_quota_unref_type) GetProcAddress(library, "grpc_resource_quota_unref");
grpc_resource_quota_resize_import = (grpc_resource_quota_resize_type) GetProcAddress(library, "grpc_resource_quota_resize");
grpc_resource_quota_set_max_threads_import = (grpc_resource_quota_set_max_threads_type) GetProcAddress(library, "grpc_resource_quota_set_max_threads");
+ grpc_dump_xds_configs_import = (grpc_dump_xds_configs_type) GetProcAddress(library, "grpc_dump_xds_configs");
grpc_resource_quota_arg_vtable_import = (grpc_resource_quota_arg_vtable_type) GetProcAddress(library, "grpc_resource_quota_arg_vtable");
grpc_channelz_get_top_channels_import = (grpc_channelz_get_top_channels_type) GetProcAddress(library, "grpc_channelz_get_top_channels");
grpc_channelz_get_servers_import = (grpc_channelz_get_servers_type) GetProcAddress(library, "grpc_channelz_get_servers");
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.h b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
index 36af484e6a8..a61d1b2279e 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.h
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
@@ -269,6 +269,9 @@ extern grpc_resource_quota_resize_type grpc_resource_quota_resize_import;
typedef void(*grpc_resource_quota_set_max_threads_type)(grpc_resource_quota* resource_quota, int new_max_threads);
extern grpc_resource_quota_set_max_threads_type grpc_resource_quota_set_max_threads_import;
#define grpc_resource_quota_set_max_threads grpc_resource_quota_set_max_threads_import
+typedef grpc_slice(*grpc_dump_xds_configs_type)();
+extern grpc_dump_xds_configs_type grpc_dump_xds_configs_import;
+#define grpc_dump_xds_configs grpc_dump_xds_configs_import
typedef const grpc_arg_pointer_vtable*(*grpc_resource_quota_arg_vtable_type)(void);
extern grpc_resource_quota_arg_vtable_type grpc_resource_quota_arg_vtable_import;
#define grpc_resource_quota_arg_vtable grpc_resource_quota_arg_vtable_import
diff --git a/src/upb/gen_build_yaml.py b/src/upb/gen_build_yaml.py
index c2ceb9792d5..b556c3dea89 100755
--- a/src/upb/gen_build_yaml.py
+++ b/src/upb/gen_build_yaml.py
@@ -33,8 +33,6 @@ try:
"third_party/upb/upb/decode.c",
"third_party/upb/upb/def.c",
"third_party/upb/upb/encode.c",
- "third_party/upb/upb/json_decode.c",
- "third_party/upb/upb/json_encode.c",
"third_party/upb/upb/msg.c",
"third_party/upb/upb/reflection.c",
"third_party/upb/upb/table.c",
@@ -50,8 +48,6 @@ try:
"third_party/upb/upb/def.h",
"third_party/upb/upb/def.hpp",
"third_party/upb/upb/encode.h",
- "third_party/upb/upb/json_decode.h",
- "third_party/upb/upb/json_encode.h",
"third_party/upb/upb/msg.h",
"third_party/upb/upb/port_def.inc",
"third_party/upb/upb/port_undef.inc",
diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c
index 22f89ba27a4..6651afb2069 100644
--- a/test/core/surface/public_headers_must_be_c89.c
+++ b/test/core/surface/public_headers_must_be_c89.c
@@ -144,6 +144,7 @@ int main(int argc, char **argv) {
printf("%lx", (unsigned long) grpc_resource_quota_unref);
printf("%lx", (unsigned long) grpc_resource_quota_resize);
printf("%lx", (unsigned long) grpc_resource_quota_set_max_threads);
+ printf("%lx", (unsigned long) grpc_dump_xds_configs);
printf("%lx", (unsigned long) grpc_resource_quota_arg_vtable);
printf("%lx", (unsigned long) grpc_channelz_get_top_channels);
printf("%lx", (unsigned long) grpc_channelz_get_servers);
diff --git a/test/cpp/end2end/BUILD b/test/cpp/end2end/BUILD
index b4ea79d9cc8..09d631922e2 100644
--- a/test/cpp/end2end/BUILD
+++ b/test/cpp/end2end/BUILD
@@ -538,6 +538,7 @@ grpc_cc_test(
"//:grpc",
"//:grpc++",
"//:grpc_resolver_fake",
+ "//:grpcpp_csds",
"//src/proto/grpc/testing:echo_messages_proto",
"//src/proto/grpc/testing:echo_proto",
"//src/proto/grpc/testing/duplicate:echo_duplicate_proto",
diff --git a/test/cpp/end2end/xds_end2end_test.cc b/test/cpp/end2end/xds_end2end_test.cc
index 9a45e10be93..3cd0641502f 100644
--- a/test/cpp/end2end/xds_end2end_test.cc
+++ b/test/cpp/end2end/xds_end2end_test.cc
@@ -69,23 +69,18 @@
#include "src/core/lib/iomgr/sockaddr.h"
#include "src/core/lib/security/credentials/fake/fake_credentials.h"
#include "src/cpp/client/secure_credentials.h"
+#include "src/cpp/server/csds/csds.h"
#include "src/cpp/server/secure_server_credentials.h"
-
-#include "test/core/util/port.h"
-#include "test/core/util/resolve_localhost_ip46.h"
-#include "test/core/util/test_config.h"
-#include "test/cpp/end2end/test_service_impl.h"
-
#include "src/proto/grpc/testing/echo.grpc.pb.h"
#include "src/proto/grpc/testing/xds/ads_for_test.grpc.pb.h"
#include "src/proto/grpc/testing/xds/cds_for_test.grpc.pb.h"
#include "src/proto/grpc/testing/xds/eds_for_test.grpc.pb.h"
#include "src/proto/grpc/testing/xds/lds_rds_for_test.grpc.pb.h"
#include "src/proto/grpc/testing/xds/lrs_for_test.grpc.pb.h"
-
#include "src/proto/grpc/testing/xds/v3/ads.grpc.pb.h"
#include "src/proto/grpc/testing/xds/v3/aggregate_cluster.grpc.pb.h"
#include "src/proto/grpc/testing/xds/v3/cluster.grpc.pb.h"
+#include "src/proto/grpc/testing/xds/v3/csds.grpc.pb.h"
#include "src/proto/grpc/testing/xds/v3/discovery.grpc.pb.h"
#include "src/proto/grpc/testing/xds/v3/endpoint.grpc.pb.h"
#include "src/proto/grpc/testing/xds/v3/fault.grpc.pb.h"
@@ -95,6 +90,10 @@
#include "src/proto/grpc/testing/xds/v3/route.grpc.pb.h"
#include "src/proto/grpc/testing/xds/v3/router.grpc.pb.h"
#include "src/proto/grpc/testing/xds/v3/tls.grpc.pb.h"
+#include "test/core/util/port.h"
+#include "test/core/util/resolve_localhost_ip46.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/end2end/test_service_impl.h"
namespace grpc {
namespace testing {
@@ -102,6 +101,7 @@ namespace {
using std::chrono::system_clock;
+using ::envoy::admin::v3::ClientResourceStatus;
using ::envoy::config::cluster::v3::CircuitBreakers;
using ::envoy::config::cluster::v3::Cluster;
using ::envoy::config::cluster::v3::CustomClusterType;
@@ -1341,6 +1341,11 @@ class TestType {
return *this;
}
+ TestType& set_use_csds_streaming() {
+ use_csds_streaming_ = true;
+ return *this;
+ }
+
TestType& set_filter_config_setup(const FilterConfigSetup& setup) {
filter_config_setup_ = setup;
return *this;
@@ -1351,6 +1356,7 @@ class TestType {
bool enable_rds_testing() const { return enable_rds_testing_; }
bool use_v2() const { return use_v2_; }
bool use_xds_credentials() const { return use_xds_credentials_; }
+ bool use_csds_streaming() const { return use_csds_streaming_; }
const FilterConfigSetup& filter_config_setup() const {
return filter_config_setup_;
}
@@ -1361,6 +1367,7 @@ class TestType {
if (enable_load_reporting_) retval += "WithLoadReporting";
if (enable_rds_testing_) retval += "Rds";
if (use_xds_credentials_) retval += "XdsCreds";
+ if (use_csds_streaming_) retval += "CsdsStreaming";
if (filter_config_setup_ == kRouteOverride) {
retval += "FilterPerRouteOverride";
}
@@ -1373,6 +1380,7 @@ class TestType {
bool enable_rds_testing_ = false;
bool use_v2_ = false;
bool use_xds_credentials_ = false;
+ bool use_csds_streaming_ = false;
FilterConfigSetup filter_config_setup_ = kHTTPConnectionManagerOriginal;
};
@@ -1878,6 +1886,7 @@ class XdsEnd2endTest : public ::testing::TestWithParam {
case METHOD_ECHO2:
return (*stub)->Echo2(context, request, response);
}
+ GPR_UNREACHABLE_CODE();
}
void ResetBackendCounters(size_t start_index = 0, size_t stop_index = 0) {
@@ -2419,6 +2428,19 @@ class XdsEnd2endTest : public ::testing::TestWithParam {
std::shared_ptr lrs_service_;
};
+ class AdminServerThread : public ServerThread {
+ private:
+ void RegisterAllServices(ServerBuilder* builder) override {
+ builder->RegisterService(&csds_service_);
+ }
+ void StartAllServices() override {}
+ void ShutdownAllServices() override {}
+
+ const char* Type() override { return "Admin"; }
+
+ grpc::xds::experimental::ClientStatusDiscoveryService csds_service_;
+ };
+
class LongRunningRpc {
public:
void StartRpc(grpc::testing::EchoTestService::Stub* stub,
@@ -10014,6 +10036,768 @@ TEST_P(BootstrapContentsFromEnvVarTest, Vanilla) {
WaitForAllBackends();
}
+class ClientStatusDiscoveryServiceTest : public XdsEnd2endTest {
+ public:
+ ClientStatusDiscoveryServiceTest() : XdsEnd2endTest(1, 1) {}
+
+ void SetUp() override {
+ XdsEnd2endTest::SetUp();
+ admin_server_thread_ = absl::make_unique();
+ admin_server_thread_->Start();
+ std::string admin_server_address = absl::StrCat(
+ ipv6_only_ ? "[::1]:" : "127.0.0.1:", admin_server_thread_->port());
+ admin_channel_ = grpc::CreateChannel(
+ admin_server_address,
+ std::make_shared(
+ grpc_fake_transport_security_credentials_create()));
+ csds_stub_ =
+ envoy::service::status::v3::ClientStatusDiscoveryService::NewStub(
+ admin_channel_);
+ if (GetParam().use_csds_streaming()) {
+ stream_ = csds_stub_->StreamClientStatus(&stream_context_);
+ }
+ }
+
+ void TearDown() override {
+ if (stream_ != nullptr) {
+ EXPECT_TRUE(stream_->WritesDone());
+ Status status = stream_->Finish();
+ EXPECT_TRUE(status.ok()) << "code=" << status.error_code()
+ << " message=" << status.error_message();
+ }
+ admin_server_thread_->Shutdown();
+ XdsEnd2endTest::TearDown();
+ }
+
+ envoy::service::status::v3::ClientStatusResponse FetchCsdsResponse() {
+ envoy::service::status::v3::ClientStatusResponse response;
+ if (!GetParam().use_csds_streaming()) {
+ // Fetch through unary pulls
+ ClientContext context;
+ Status status = csds_stub_->FetchClientStatus(
+ &context, envoy::service::status::v3::ClientStatusRequest(),
+ &response);
+ EXPECT_TRUE(status.ok()) << "code=" << status.error_code()
+ << " message=" << status.error_message();
+ } else {
+ // Fetch through streaming pulls
+ EXPECT_TRUE(
+ stream_->Write(envoy::service::status::v3::ClientStatusRequest()));
+ EXPECT_TRUE(stream_->Read(&response));
+ }
+ return response;
+ }
+
+ private:
+ std::unique_ptr admin_server_thread_;
+ std::shared_ptr admin_channel_;
+ std::unique_ptr<
+ envoy::service::status::v3::ClientStatusDiscoveryService::Stub>
+ csds_stub_;
+ ClientContext stream_context_;
+ std::unique_ptr<
+ ClientReaderWriter>
+ stream_;
+};
+
+MATCHER_P4(EqNode, id, user_agent_name, user_agent_version, client_features,
+ "equals Node") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(id, arg.id(), result_listener);
+ ok &= ::testing::ExplainMatchResult(user_agent_name, arg.user_agent_name(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(
+ user_agent_version, arg.user_agent_version(), result_listener);
+ ok &= ::testing::ExplainMatchResult(client_features, arg.client_features(),
+ result_listener);
+ return ok;
+}
+
+MATCHER_P2(EqListenersConfigDump, version_info, dynamic_listeners,
+ "equals ListenerConfigDump") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(::testing::ElementsAre(),
+ arg.static_listeners(), result_listener);
+ ok &= ::testing::ExplainMatchResult(version_info, arg.version_info(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(dynamic_listeners,
+ arg.dynamic_listeners(), result_listener);
+ return ok;
+}
+
+MATCHER_P2(EqDynamicListenerState, version_info, listener,
+ "equals DynamicListenerState") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(version_info, arg.version_info(),
+ result_listener);
+ ok &=
+ ::testing::ExplainMatchResult(listener, arg.listener(), result_listener);
+ return ok;
+}
+
+MATCHER_P2(EqListener, name, api_listener, "equals Listener") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(name, arg.name(), result_listener);
+ ok &= ::testing::ExplainMatchResult(
+ api_listener, arg.api_listener().api_listener(), result_listener);
+ return ok;
+}
+
+MATCHER_P(EqHttpConnectionManagerNotRds, route_config,
+ "equals HttpConnectionManager") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(route_config, arg.route_config(),
+ result_listener);
+ return ok;
+}
+
+MATCHER_P(EqRouteConfigurationName, name, "equals RouteConfiguration") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(name, arg.name(), result_listener);
+ return ok;
+}
+
+MATCHER_P2(EqRouteConfiguration, name, cluster_name,
+ "equals RouteConfiguration") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(name, arg.name(), result_listener);
+ ok &= ::testing::ExplainMatchResult(
+ ::testing::ElementsAre(::testing::Property(
+ &envoy::config::route::v3::VirtualHost::routes,
+ ::testing::ElementsAre(::testing::Property(
+ &envoy::config::route::v3::Route::route,
+ ::testing::Property(
+ &envoy::config::route::v3::RouteAction::cluster,
+ cluster_name))))),
+ arg.virtual_hosts(), result_listener);
+ return ok;
+}
+
+MATCHER_P(EqRoutesConfigDump, dynamic_route_configs,
+ "equals RoutesConfigDump") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(
+ ::testing::ElementsAre(), arg.static_route_configs(), result_listener);
+ ok &= ::testing::ExplainMatchResult(
+ dynamic_route_configs, arg.dynamic_route_configs(), result_listener);
+ return ok;
+}
+
+MATCHER_P2(EqClustersConfigDump, version_info, dynamic_active_clusters,
+ "equals ClustersConfigDump") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(::testing::ElementsAre(),
+ arg.static_clusters(), result_listener);
+ ok &= ::testing::ExplainMatchResult(::testing::ElementsAre(),
+ arg.dynamic_warming_clusters(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(version_info, arg.version_info(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(
+ dynamic_active_clusters, arg.dynamic_active_clusters(), result_listener);
+ return ok;
+}
+
+MATCHER_P(EqCluster, name, "equals Cluster") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(name, arg.name(), result_listener);
+ return ok;
+}
+
+MATCHER_P(EqEndpointsConfigDump, dynamic_endpoint_configs,
+ "equals EndpointsConfigDump") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(dynamic_endpoint_configs,
+ arg.dynamic_endpoint_configs(),
+ result_listener);
+ return ok;
+}
+
+MATCHER_P(EqEndpoint, port, "equals Endpoint") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(
+ port, arg.address().socket_address().port_value(), result_listener);
+ return ok;
+}
+
+MATCHER_P2(EqLocalityLbEndpoints, port, weight, "equals LocalityLbEndpoints") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(
+ ::testing::ElementsAre(::testing::Property(
+ &envoy::config::endpoint::v3::LbEndpoint::endpoint,
+ EqEndpoint(port))),
+ arg.lb_endpoints(), result_listener);
+ ok &= ::testing::ExplainMatchResult(
+ weight, arg.load_balancing_weight().value(), result_listener);
+ return ok;
+}
+
+MATCHER_P(EqClusterLoadAssignmentName, cluster_name,
+ "equals ClusterLoadAssignment") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(cluster_name, arg.cluster_name(),
+ result_listener);
+ return ok;
+}
+
+MATCHER_P3(EqClusterLoadAssignment, cluster_name, port, weight,
+ "equals ClusterLoadAssignment") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(cluster_name, arg.cluster_name(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(
+ ::testing::ElementsAre(EqLocalityLbEndpoints(port, weight)),
+ arg.endpoints(), result_listener);
+ return ok;
+}
+
+MATCHER_P2(EqUpdateFailureState, details, version_info,
+ "equals UpdateFailureState") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(details, arg.details(), result_listener);
+ ok &= ::testing::ExplainMatchResult(version_info, arg.version_info(),
+ result_listener);
+ return ok;
+}
+
+MATCHER_P(UnpackListener, matcher, "is a Listener") {
+ Listener config;
+ if (!::testing::ExplainMatchResult(true, arg.UnpackTo(&config),
+ result_listener)) {
+ return false;
+ }
+ return ::testing::ExplainMatchResult(matcher, config, result_listener);
+}
+
+MATCHER_P(UnpackRouteConfiguration, matcher, "is a RouteConfiguration") {
+ RouteConfiguration config;
+ if (!::testing::ExplainMatchResult(true, arg.UnpackTo(&config),
+ result_listener)) {
+ return false;
+ }
+ return ::testing::ExplainMatchResult(matcher, config, result_listener);
+}
+
+MATCHER_P(UnpackHttpConnectionManager, matcher, "is a HttpConnectionManager") {
+ HttpConnectionManager config;
+ if (!::testing::ExplainMatchResult(true, arg.UnpackTo(&config),
+ result_listener)) {
+ return false;
+ }
+ return ::testing::ExplainMatchResult(matcher, config, result_listener);
+}
+
+MATCHER_P(UnpackCluster, matcher, "is a Cluster") {
+ Cluster config;
+ if (!::testing::ExplainMatchResult(true, arg.UnpackTo(&config),
+ result_listener)) {
+ return false;
+ }
+ return ::testing::ExplainMatchResult(matcher, config, result_listener);
+}
+
+MATCHER_P(UnpackClusterLoadAssignment, matcher, "is a ClusterLoadAssignment") {
+ ClusterLoadAssignment config;
+ if (!::testing::ExplainMatchResult(true, arg.UnpackTo(&config),
+ result_listener)) {
+ return false;
+ }
+ return ::testing::ExplainMatchResult(matcher, config, result_listener);
+}
+
+MATCHER_P5(EqDynamicListener, name, version_info, client_status,
+ api_listener_matcher, error_state, "equals DynamicListener") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(false, arg.has_warming_state(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(false, arg.has_draining_state(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(name, arg.name(), result_listener);
+ ok &= ::testing::ExplainMatchResult(client_status, arg.client_status(),
+ result_listener);
+ if (client_status == ClientResourceStatus::ACKED ||
+ client_status == ClientResourceStatus::NACKED) {
+ ok &= ::testing::ExplainMatchResult(
+ EqDynamicListenerState(version_info, UnpackListener(EqListener(
+ name, api_listener_matcher))),
+ arg.active_state(), result_listener);
+ }
+ ok &= ::testing::ExplainMatchResult(error_state, arg.error_state(),
+ result_listener);
+ return ok;
+}
+
+MATCHER_P5(EqDynamicRouteConfig, name, version_info, client_status,
+ cluster_name, error_state, "equals DynamicRouteConfig") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(version_info, arg.version_info(),
+ result_listener);
+ if (client_status == ClientResourceStatus::REQUESTED ||
+ client_status == ClientResourceStatus::DOES_NOT_EXIST) {
+ ok &= ::testing::ExplainMatchResult(
+ UnpackRouteConfiguration(EqRouteConfigurationName(name)),
+ arg.route_config(), result_listener);
+ } else {
+ ok &= ::testing::ExplainMatchResult(
+ UnpackRouteConfiguration(EqRouteConfiguration(name, cluster_name)),
+ arg.route_config(), result_listener);
+ }
+ ok &= ::testing::ExplainMatchResult(error_state, arg.error_state(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(client_status, arg.client_status(),
+ result_listener);
+ return ok;
+}
+
+MATCHER_P4(EqDynamicCluster, name, version_info, client_status, error_state,
+ "equals DynamicCluster") {
+ bool ok = true;
+ ok &= ::testing::ExplainMatchResult(UnpackCluster(EqCluster(name)),
+ arg.cluster(), result_listener);
+ ok &= ::testing::ExplainMatchResult(version_info, arg.version_info(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(client_status, arg.client_status(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(error_state, arg.error_state(),
+ result_listener);
+ return ok;
+}
+
+MATCHER_P6(EqDynamicEndpointConfig, name, version_info, client_status, port,
+ weight, error_state, "equals DynamicEndpointConfig") {
+ bool ok = true;
+ if (client_status == ClientResourceStatus::REQUESTED ||
+ client_status == ClientResourceStatus::DOES_NOT_EXIST) {
+ ok &= ::testing::ExplainMatchResult(
+ UnpackClusterLoadAssignment(EqClusterLoadAssignmentName(name)),
+ arg.endpoint_config(), result_listener);
+ } else {
+ ok &= ::testing::ExplainMatchResult(
+ UnpackClusterLoadAssignment(
+ EqClusterLoadAssignment(name, port, weight)),
+ arg.endpoint_config(), result_listener);
+ }
+ ok &= ::testing::ExplainMatchResult(version_info, arg.version_info(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(client_status, arg.client_status(),
+ result_listener);
+ ok &= ::testing::ExplainMatchResult(error_state, arg.error_state(),
+ result_listener);
+ return ok;
+}
+
+MATCHER(IsRdsEnabledHCM, "is a RDS enabled HttpConnectionManager") {
+ return ::testing::ExplainMatchResult(
+ UnpackHttpConnectionManager(
+ ::testing::Property(&HttpConnectionManager::has_rds, true)),
+ arg, result_listener);
+}
+
+MATCHER_P2(EqNoRdsHCM, route_configuration_name, cluster_name,
+ "equals RDS disabled HttpConnectionManager") {
+ return ::testing::ExplainMatchResult(
+ UnpackHttpConnectionManager(EqHttpConnectionManagerNotRds(
+ EqRouteConfiguration(route_configuration_name, cluster_name))),
+ arg, result_listener);
+}
+
+TEST_P(ClientStatusDiscoveryServiceTest, XdsConfigDumpVanilla) {
+ const size_t kNumRpcs = 5;
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ AdsServiceImpl::EdsResourceArgs args({
+ {"locality0", {backends_[0]->port()}},
+ });
+ balancers_[0]->ads_service()->SetEdsResource(
+ BuildEdsResource(args, DefaultEdsServiceName()));
+ // Send several RPCs to ensure the xDS setup works
+ CheckRpcSendOk(kNumRpcs);
+ // Fetches the client config
+ auto csds_response = FetchCsdsResponse();
+ gpr_log(GPR_INFO, "xDS config dump: %s", csds_response.DebugString().c_str());
+ EXPECT_EQ(1, csds_response.config_size());
+ const auto& client_config = csds_response.config(0);
+ // Validate the Node information
+ EXPECT_THAT(client_config.node(),
+ EqNode("xds_end2end_test", ::testing::HasSubstr("C-core"),
+ ::testing::HasSubstr(grpc_version_string()),
+ ::testing::ElementsAre(
+ "envoy.lb.does_not_support_overprovisioning")));
+ // Prepare matches for RDS on or off
+ ::testing::Matcher api_listener_matcher;
+ ::testing::Matcher
+ route_config_dump_matcher;
+ if (GetParam().enable_rds_testing()) {
+ api_listener_matcher = IsRdsEnabledHCM();
+ route_config_dump_matcher =
+ EqRoutesConfigDump(::testing::ElementsAre(EqDynamicRouteConfig(
+ kDefaultRouteConfigurationName, "1", ClientResourceStatus::ACKED,
+ kDefaultClusterName, ::testing::_)));
+ } else {
+ api_listener_matcher =
+ EqNoRdsHCM(kDefaultRouteConfigurationName, kDefaultClusterName);
+ route_config_dump_matcher = EqRoutesConfigDump(::testing::ElementsAre());
+ }
+ // Validate the dumped xDS configs
+ EXPECT_THAT(
+ client_config.xds_config(),
+ ::testing::UnorderedElementsAre(
+ ::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::listener_config,
+ EqListenersConfigDump(
+ "1", ::testing::ElementsAre(EqDynamicListener(
+ kServerName, "1", ClientResourceStatus::ACKED,
+ api_listener_matcher, ::testing::_)))),
+ ::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::route_config,
+ route_config_dump_matcher),
+ ::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::cluster_config,
+ EqClustersConfigDump(
+ "1", ::testing::ElementsAre(EqDynamicCluster(
+ kDefaultClusterName, "1",
+ ClientResourceStatus::ACKED, ::testing::_)))),
+ ::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::endpoint_config,
+ EqEndpointsConfigDump(
+ ::testing::ElementsAre(EqDynamicEndpointConfig(
+ kDefaultEdsServiceName, "1", ClientResourceStatus::ACKED,
+ backends_[0]->port(), kDefaultLocalityWeight,
+ ::testing::_))))));
+}
+
+TEST_P(ClientStatusDiscoveryServiceTest, XdsConfigDumpEmpty) {
+ // The CSDS service should not fail if XdsClient is not initialized or there
+ // is no working xDS configs.
+ FetchCsdsResponse();
+}
+
+TEST_P(ClientStatusDiscoveryServiceTest, XdsConfigDumpListenerError) {
+ int kFetchConfigRetries = 3;
+ int kFetchIntervalMilliseconds = 200;
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ AdsServiceImpl::EdsResourceArgs args({
+ {"locality0", {backends_[0]->port()}},
+ });
+ balancers_[0]->ads_service()->SetEdsResource(
+ BuildEdsResource(args, DefaultEdsServiceName()));
+ // Ensure the xDS resolver has working configs.
+ CheckRpcSendOk();
+ // Bad Listener should be rejected.
+ Listener listener;
+ listener.set_name(kServerName);
+ balancers_[0]->ads_service()->SetLdsResource(listener);
+ // The old xDS configs should still be effective.
+ CheckRpcSendOk();
+ ::testing::Matcher api_listener_matcher;
+ if (GetParam().enable_rds_testing()) {
+ api_listener_matcher = IsRdsEnabledHCM();
+ } else {
+ api_listener_matcher =
+ EqNoRdsHCM(kDefaultRouteConfigurationName, kDefaultClusterName);
+ }
+ for (int o = 0; o < kFetchConfigRetries; o++) {
+ auto csds_response = FetchCsdsResponse();
+ // Check if error state is propagated
+ bool ok = ::testing::Value(
+ csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::listener_config,
+ EqListenersConfigDump(
+ "1",
+ ::testing::ElementsAre(EqDynamicListener(
+ kServerName, "1", ClientResourceStatus::NACKED,
+ api_listener_matcher,
+ EqUpdateFailureState(
+ ::testing::HasSubstr(
+ "Listener has neither address nor ApiListener"),
+ "2")))))));
+ if (ok) return; // TEST PASSED!
+ gpr_sleep_until(
+ grpc_timeout_milliseconds_to_deadline(kFetchIntervalMilliseconds));
+ }
+ FAIL() << "error_state not seen in CSDS responses";
+}
+
+TEST_P(ClientStatusDiscoveryServiceTest, XdsConfigDumpRouteError) {
+ int kFetchConfigRetries = 3;
+ int kFetchIntervalMilliseconds = 200;
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ AdsServiceImpl::EdsResourceArgs args({
+ {"locality0", {backends_[0]->port()}},
+ });
+ balancers_[0]->ads_service()->SetEdsResource(
+ BuildEdsResource(args, DefaultEdsServiceName()));
+ // Ensure the xDS resolver has working configs.
+ CheckRpcSendOk();
+ // Bad route config will be rejected.
+ RouteConfiguration route_config;
+ route_config.set_name(kDefaultRouteConfigurationName);
+ route_config.add_virtual_hosts();
+ SetRouteConfiguration(0, route_config);
+ // The old xDS configs should still be effective.
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ CheckRpcSendOk();
+ for (int o = 0; o < kFetchConfigRetries; o++) {
+ auto csds_response = FetchCsdsResponse();
+ bool ok = false;
+ if (GetParam().enable_rds_testing()) {
+ ok = ::testing::Value(
+ csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::route_config,
+ EqRoutesConfigDump(::testing::ElementsAre(EqDynamicRouteConfig(
+ kDefaultRouteConfigurationName, "1",
+ ClientResourceStatus::NACKED, kDefaultClusterName,
+ EqUpdateFailureState(
+ ::testing::HasSubstr("VirtualHost has no domains"),
+ "2")))))));
+ } else {
+ ok = ::testing::Value(
+ csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::listener_config,
+ EqListenersConfigDump(
+ "1",
+ ::testing::ElementsAre(EqDynamicListener(
+ kServerName, "1", ClientResourceStatus::NACKED,
+ EqNoRdsHCM(kDefaultRouteConfigurationName,
+ kDefaultClusterName),
+ EqUpdateFailureState(
+ ::testing::HasSubstr("VirtualHost has no domains"),
+ "2")))))));
+ }
+ if (ok) return; // TEST PASSED!
+ gpr_sleep_until(
+ grpc_timeout_milliseconds_to_deadline(kFetchIntervalMilliseconds));
+ }
+ FAIL() << "error_state not seen in CSDS responses";
+}
+
+TEST_P(ClientStatusDiscoveryServiceTest, XdsConfigDumpClusterError) {
+ int kFetchConfigRetries = 3;
+ int kFetchIntervalMilliseconds = 200;
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ AdsServiceImpl::EdsResourceArgs args({
+ {"locality0", {backends_[0]->port()}},
+ });
+ balancers_[0]->ads_service()->SetEdsResource(
+ BuildEdsResource(args, DefaultEdsServiceName()));
+ // Ensure the xDS resolver has working configs.
+ CheckRpcSendOk();
+ // Listener without any route, will be rejected.
+ Cluster cluster;
+ cluster.set_name(kDefaultClusterName);
+ balancers_[0]->ads_service()->SetCdsResource(cluster);
+ // The old xDS configs should still be effective.
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ CheckRpcSendOk();
+ for (int o = 0; o < kFetchConfigRetries; o++) {
+ auto csds_response = FetchCsdsResponse();
+ // Check if error state is propagated
+ bool ok = ::testing::Value(
+ csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::cluster_config,
+ EqClustersConfigDump(
+ "1", ::testing::ElementsAre(EqDynamicCluster(
+ kDefaultClusterName, "1", ClientResourceStatus::NACKED,
+ EqUpdateFailureState(
+ ::testing::HasSubstr("DiscoveryType not found"),
+ "2")))))));
+ if (ok) return; // TEST PASSED!
+ gpr_sleep_until(
+ grpc_timeout_milliseconds_to_deadline(kFetchIntervalMilliseconds));
+ }
+ FAIL() << "error_state not seen in CSDS responses";
+}
+
+TEST_P(ClientStatusDiscoveryServiceTest, XdsConfigDumpEndpointError) {
+ int kFetchConfigRetries = 3;
+ int kFetchIntervalMilliseconds = 200;
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ AdsServiceImpl::EdsResourceArgs args({
+ {"locality0", {backends_[0]->port()}},
+ });
+ balancers_[0]->ads_service()->SetEdsResource(
+ BuildEdsResource(args, DefaultEdsServiceName()));
+ // Ensure the xDS resolver has working configs.
+ CheckRpcSendOk();
+ // Bad endpoint config will be rejected.
+ ClusterLoadAssignment cluster_load_assignment;
+ cluster_load_assignment.set_cluster_name(kDefaultEdsServiceName);
+ auto* endpoints = cluster_load_assignment.add_endpoints();
+ endpoints->mutable_load_balancing_weight()->set_value(1);
+ auto* endpoint = endpoints->add_lb_endpoints()->mutable_endpoint();
+ endpoint->mutable_address()->mutable_socket_address()->set_port_value(1 << 1);
+ balancers_[0]->ads_service()->SetEdsResource(cluster_load_assignment);
+ // The old xDS configs should still be effective.
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ CheckRpcSendOk();
+ for (int o = 0; o < kFetchConfigRetries; o++) {
+ auto csds_response = FetchCsdsResponse();
+
+ // Check if error state is propagated
+ bool ok = ::testing::Value(
+ csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::endpoint_config,
+ EqEndpointsConfigDump(
+ ::testing::ElementsAre(EqDynamicEndpointConfig(
+ kDefaultEdsServiceName, "1", ClientResourceStatus::NACKED,
+ backends_[0]->port(), kDefaultLocalityWeight,
+ EqUpdateFailureState(::testing::HasSubstr("Empty locality"),
+ "2")))))));
+ if (ok) return; // TEST PASSED!
+ gpr_sleep_until(
+ grpc_timeout_milliseconds_to_deadline(kFetchIntervalMilliseconds));
+ }
+ FAIL() << "error_state not seen in CSDS responses";
+}
+
+TEST_P(ClientStatusDiscoveryServiceTest, XdsConfigDumpListenerRequested) {
+ int kTimeoutMillisecond = 1000;
+ balancers_[0]->ads_service()->UnsetResource(kLdsTypeUrl, kServerName);
+ CheckRpcSendFailure(1, RpcOptions().set_timeout_ms(kTimeoutMillisecond),
+ grpc::DEADLINE_EXCEEDED);
+ auto csds_response = FetchCsdsResponse();
+ EXPECT_THAT(csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::listener_config,
+ EqListenersConfigDump(
+ ::testing::_, ::testing::ElementsAre(EqDynamicListener(
+ kServerName, ::testing::_,
+ ClientResourceStatus::REQUESTED,
+ ::testing::_, ::testing::_))))));
+}
+
+TEST_P(ClientStatusDiscoveryServiceTest, XdsConfigDumpClusterRequested) {
+ int kTimeoutMillisecond = 1000;
+ std::string kClusterName1 = "cluster-1";
+ std::string kClusterName2 = "cluster-2";
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ // Create a route config requesting two non-existing clusters
+ RouteConfiguration route_config;
+ route_config.set_name(kDefaultRouteConfigurationName);
+ auto* vh = route_config.add_virtual_hosts();
+ // The VirtualHost must match the domain name, otherwise will cause resolver
+ // transient failure.
+ vh->add_domains("*");
+ auto* routes1 = vh->add_routes();
+ routes1->mutable_match()->set_prefix("");
+ routes1->mutable_route()->set_cluster(kClusterName1);
+ auto* routes2 = vh->add_routes();
+ routes2->mutable_match()->set_prefix("");
+ routes2->mutable_route()->set_cluster(kClusterName2);
+ SetRouteConfiguration(0, route_config);
+ // Try to get the configs plumb through
+ CheckRpcSendFailure(1, RpcOptions().set_timeout_ms(kTimeoutMillisecond),
+ grpc::DEADLINE_EXCEEDED);
+ auto csds_response = FetchCsdsResponse();
+ EXPECT_THAT(csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::cluster_config,
+ EqClustersConfigDump(
+ ::testing::_,
+ ::testing::UnorderedElementsAre(
+ EqDynamicCluster(kClusterName1, ::testing::_,
+ ClientResourceStatus::REQUESTED,
+ ::testing::_),
+ EqDynamicCluster(kClusterName2, ::testing::_,
+ ClientResourceStatus::REQUESTED,
+ ::testing::_))))));
+}
+
+class CsdsShortAdsTimeoutTest : public ClientStatusDiscoveryServiceTest {
+ void SetUp() override {
+ // Shorten the ADS subscription timeout to speed up the test run.
+ xds_resource_does_not_exist_timeout_ms_ = 500;
+ ClientStatusDiscoveryServiceTest::SetUp();
+ }
+};
+
+TEST_P(CsdsShortAdsTimeoutTest, XdsConfigDumpListenerDoesNotExist) {
+ int kTimeoutMillisecond = 1000000; // 1000s wait for the transient failure.
+ balancers_[0]->ads_service()->UnsetResource(kLdsTypeUrl, kServerName);
+ CheckRpcSendFailure(1, RpcOptions().set_timeout_ms(kTimeoutMillisecond),
+ grpc::UNAVAILABLE);
+ auto csds_response = FetchCsdsResponse();
+ EXPECT_THAT(csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::listener_config,
+ EqListenersConfigDump(
+ ::testing::_, ::testing::ElementsAre(EqDynamicListener(
+ kServerName, ::testing::_,
+ ClientResourceStatus::DOES_NOT_EXIST,
+ ::testing::_, ::testing::_))))));
+}
+
+TEST_P(CsdsShortAdsTimeoutTest, XdsConfigDumpRouteConfigDoesNotExist) {
+ if (!GetParam().enable_rds_testing()) return;
+ int kTimeoutMillisecond = 1000000; // 1000s wait for the transient failure.
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ balancers_[0]->ads_service()->UnsetResource(kRdsTypeUrl,
+ kDefaultRouteConfigurationName);
+ CheckRpcSendFailure(1, RpcOptions().set_timeout_ms(kTimeoutMillisecond),
+ grpc::UNAVAILABLE);
+ auto csds_response = FetchCsdsResponse();
+ EXPECT_THAT(
+ csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::route_config,
+ EqRoutesConfigDump(::testing::ElementsAre(
+ EqDynamicRouteConfig(kDefaultRouteConfigurationName, ::testing::_,
+ ClientResourceStatus::DOES_NOT_EXIST,
+ ::testing::_, ::testing::_))))));
+}
+
+TEST_P(CsdsShortAdsTimeoutTest, XdsConfigDumpClusterDoesNotExist) {
+ int kTimeoutMillisecond = 1000000; // 1000s wait for the transient failure.
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ balancers_[0]->ads_service()->UnsetResource(kCdsTypeUrl, kDefaultClusterName);
+ CheckRpcSendFailure(1, RpcOptions().set_timeout_ms(kTimeoutMillisecond),
+ grpc::UNAVAILABLE);
+ auto csds_response = FetchCsdsResponse();
+ EXPECT_THAT(csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::cluster_config,
+ EqClustersConfigDump(::testing::_,
+ ::testing::ElementsAre(EqDynamicCluster(
+ kDefaultClusterName, ::testing::_,
+ ClientResourceStatus::DOES_NOT_EXIST,
+ ::testing::_))))));
+}
+
+TEST_P(CsdsShortAdsTimeoutTest, XdsConfigDumpEndpointDoesNotExist) {
+ int kTimeoutMillisecond = 1000000; // 1000s wait for the transient failure.
+ SetNextResolution({});
+ SetNextResolutionForLbChannelAllBalancers();
+ balancers_[0]->ads_service()->UnsetResource(kEdsTypeUrl,
+ kDefaultEdsServiceName);
+ CheckRpcSendFailure(1, RpcOptions().set_timeout_ms(kTimeoutMillisecond),
+ grpc::UNAVAILABLE);
+ auto csds_response = FetchCsdsResponse();
+ EXPECT_THAT(
+ csds_response.config(0).xds_config(),
+ ::testing::Contains(::testing::Property(
+ &envoy::service::status::v3::PerXdsConfig::endpoint_config,
+ EqEndpointsConfigDump(::testing::ElementsAre(EqDynamicEndpointConfig(
+ kDefaultEdsServiceName, ::testing::_,
+ ClientResourceStatus::DOES_NOT_EXIST, ::testing::_, ::testing::_,
+ ::testing::_))))));
+}
+
std::string TestTypeName(const ::testing::TestParamInfo& info) {
return info.param.AsString();
}
@@ -10169,6 +10953,23 @@ INSTANTIATE_TEST_SUITE_P(
INSTANTIATE_TEST_SUITE_P(XdsTest, BootstrapContentsFromEnvVarTest,
::testing::Values(TestType()), &TestTypeName);
+// Run CSDS tests with RDS enabled and disabled.
+INSTANTIATE_TEST_SUITE_P(
+ XdsTest, ClientStatusDiscoveryServiceTest,
+ ::testing::Values(
+ TestType(), TestType().set_enable_rds_testing(),
+ TestType().set_use_csds_streaming(),
+ TestType().set_enable_rds_testing().set_use_csds_streaming()),
+ &TestTypeName);
+
+INSTANTIATE_TEST_SUITE_P(
+ XdsTest, CsdsShortAdsTimeoutTest,
+ ::testing::Values(
+ TestType(), TestType().set_enable_rds_testing(),
+ TestType().set_use_csds_streaming(),
+ TestType().set_enable_rds_testing().set_use_csds_streaming()),
+ &TestTypeName);
+
} // namespace
} // namespace testing
} // namespace grpc
diff --git a/tools/codegen/core/gen_upb_api.sh b/tools/codegen/core/gen_upb_api.sh
index 3fd675b8edb..63ed717ec45 100755
--- a/tools/codegen/core/gen_upb_api.sh
+++ b/tools/codegen/core/gen_upb_api.sh
@@ -43,9 +43,11 @@ $bazel build @upb//upbc:protoc-gen-upbdefs
UPBDEFS_PLUGIN=$PWD/bazel-bin/external/upb/upbc/protoc-gen-upbdefs
proto_files=( \
+ "envoy/admin/v3/config_dump.proto" \
"envoy/annotations/deprecation.proto" \
"envoy/annotations/resource.proto" \
"envoy/config/accesslog/v3/accesslog.proto" \
+ "envoy/config/bootstrap/v3/bootstrap.proto" \
"envoy/config/cluster/v3/circuit_breaker.proto" \
"envoy/config/cluster/v3/cluster.proto" \
"envoy/config/cluster/v3/filter.proto" \
@@ -70,6 +72,8 @@ proto_files=( \
"envoy/config/listener/v3/listener.proto" \
"envoy/config/listener/v3/listener_components.proto" \
"envoy/config/listener/v3/udp_listener_config.proto" \
+ "envoy/config/metrics/v3/stats.proto" \
+ "envoy/config/overload/v3/overload.proto" \
"envoy/config/rbac/v3/rbac.proto" \
"envoy/config/route/v3/route.proto" \
"envoy/config/route/v3/route_components.proto" \
@@ -92,11 +96,14 @@ proto_files=( \
"envoy/service/load_stats/v3/lrs.proto" \
"envoy/service/route/v3/rds.proto" \
"envoy/service/route/v3/srds.proto" \
+ "envoy/service/status/v3/csds.proto" \
"envoy/type/matcher/v3/metadata.proto" \
+ "envoy/type/matcher/v3/node.proto" \
"envoy/type/matcher/v3/number.proto" \
"envoy/type/matcher/v3/path.proto" \
"envoy/type/matcher/v3/regex.proto" \
"envoy/type/matcher/v3/string.proto" \
+ "envoy/type/matcher/v3/struct.proto" \
"envoy/type/matcher/v3/value.proto" \
"envoy/type/metadata/v3/metadata.proto" \
"envoy/type/tracing/v3/custom_tag.proto" \
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 452680c5a36..ba378fdaf5c 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -1231,12 +1231,16 @@ src/core/ext/transport/chttp2/transport/writing.cc \
src/core/ext/transport/inproc/inproc_plugin.cc \
src/core/ext/transport/inproc/inproc_transport.cc \
src/core/ext/transport/inproc/inproc_transport.h \
+src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c \
+src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h \
src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c \
src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h \
src/core/ext/upb-generated/envoy/annotations/resource.upb.c \
src/core/ext/upb-generated/envoy/annotations/resource.upb.h \
src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c \
src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h \
+src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c \
+src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h \
src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c \
src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h \
src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c \
@@ -1285,6 +1289,10 @@ src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c \
src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h \
src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c \
src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h \
+src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c \
+src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h \
+src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c \
+src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h \
src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c \
src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h \
src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c \
@@ -1329,8 +1337,12 @@ src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c \
src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h \
src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c \
src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h \
+src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c \
+src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h \
+src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c \
+src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c \
@@ -1339,6 +1351,8 @@ src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h \
+src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c \
+src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h \
src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c \
@@ -1413,12 +1427,16 @@ src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c \
src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h \
src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c \
src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h \
+src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c \
@@ -1467,6 +1485,10 @@ src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbd
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c \
@@ -1509,8 +1531,12 @@ src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c \
@@ -1519,6 +1545,8 @@ src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c \
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 72d0a522f65..094c5a092e8 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -1066,12 +1066,16 @@ src/core/ext/transport/chttp2/transport/writing.cc \
src/core/ext/transport/inproc/inproc_plugin.cc \
src/core/ext/transport/inproc/inproc_transport.cc \
src/core/ext/transport/inproc/inproc_transport.h \
+src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c \
+src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h \
src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c \
src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h \
src/core/ext/upb-generated/envoy/annotations/resource.upb.c \
src/core/ext/upb-generated/envoy/annotations/resource.upb.h \
src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c \
src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h \
+src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c \
+src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h \
src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c \
src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h \
src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c \
@@ -1120,6 +1124,10 @@ src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c \
src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h \
src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c \
src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h \
+src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c \
+src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h \
+src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c \
+src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h \
src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c \
src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h \
src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c \
@@ -1164,8 +1172,12 @@ src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c \
src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h \
src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c \
src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h \
+src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c \
+src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h \
+src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c \
+src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c \
@@ -1174,6 +1186,8 @@ src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h \
+src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c \
+src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h \
src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c \
src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h \
src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c \
@@ -1248,12 +1262,16 @@ src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c \
src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h \
src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c \
src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h \
+src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c \
@@ -1302,6 +1320,10 @@ src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbd
src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c \
@@ -1344,8 +1366,12 @@ src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c \
@@ -1354,6 +1380,8 @@ src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h \
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c \
+src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c \
src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h \
src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c \