async-grpc-xds 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/fixtures/async/grpc/test_interface.rb +79 -0
- data/fixtures/async/grpc/test_message.rb +56 -0
- data/lib/async/grpc/xds/ads_stream.rb +70 -0
- data/lib/async/grpc/xds/client.rb +255 -0
- data/lib/async/grpc/xds/context.rb +201 -0
- data/lib/async/grpc/xds/control_plane.rb +143 -0
- data/lib/async/grpc/xds/discovery_client.rb +356 -0
- data/lib/async/grpc/xds/health_checker.rb +88 -0
- data/lib/async/grpc/xds/load_balancer.rb +196 -0
- data/lib/async/grpc/xds/resource_builder.rb +138 -0
- data/lib/async/grpc/xds/resource_cache.rb +55 -0
- data/lib/async/grpc/xds/resources.rb +270 -0
- data/lib/async/grpc/xds/server.rb +34 -0
- data/lib/async/grpc/xds/service.rb +117 -0
- data/lib/async/grpc/xds/version.rb +12 -0
- data/lib/async/grpc/xds.rb +42 -0
- data/lib/envoy/annotations/deprecation_pb.rb +19 -0
- data/lib/envoy/config/cluster/v3/circuit_breaker_pb.rb +31 -0
- data/lib/envoy/config/cluster/v3/cluster_pb.rb +80 -0
- data/lib/envoy/config/cluster/v3/filter_pb.rb +28 -0
- data/lib/envoy/config/cluster/v3/outlier_detection_pb.rb +29 -0
- data/lib/envoy/config/core/v3/address_pb.rb +38 -0
- data/lib/envoy/config/core/v3/backoff_pb.rb +27 -0
- data/lib/envoy/config/core/v3/base_pb.rb +68 -0
- data/lib/envoy/config/core/v3/cel_pb.rb +24 -0
- data/lib/envoy/config/core/v3/config_source_pb.rb +42 -0
- data/lib/envoy/config/core/v3/event_service_config_pb.rb +27 -0
- data/lib/envoy/config/core/v3/extension_pb.rb +26 -0
- data/lib/envoy/config/core/v3/grpc_method_list_pb.rb +27 -0
- data/lib/envoy/config/core/v3/grpc_service_pb.rb +45 -0
- data/lib/envoy/config/core/v3/health_check_pb.rb +47 -0
- data/lib/envoy/config/core/v3/http_service_pb.rb +27 -0
- data/lib/envoy/config/core/v3/http_uri_pb.rb +27 -0
- data/lib/envoy/config/core/v3/protocol_pb.rb +51 -0
- data/lib/envoy/config/core/v3/proxy_protocol_pb.rb +31 -0
- data/lib/envoy/config/core/v3/resolver_pb.rb +27 -0
- data/lib/envoy/config/core/v3/socket_cmsg_headers_pb.rb +25 -0
- data/lib/envoy/config/core/v3/socket_option_pb.rb +31 -0
- data/lib/envoy/config/core/v3/substitution_format_string_pb.rb +30 -0
- data/lib/envoy/config/core/v3/udp_socket_config_pb.rb +26 -0
- data/lib/envoy/config/endpoint/v3/endpoint_components_pb.rb +40 -0
- data/lib/envoy/config/endpoint/v3/endpoint_pb.rb +32 -0
- data/lib/envoy/config/endpoint/v3/load_report_pb.rb +36 -0
- data/lib/envoy/service/discovery/v3/ads_pb.rb +26 -0
- data/lib/envoy/service/discovery/v3/aggregated_discovery_service.rb +64 -0
- data/lib/envoy/service/discovery/v3/discovery_pb.rb +42 -0
- data/lib/envoy/type/matcher/v3/address_pb.rb +25 -0
- data/lib/envoy/type/matcher/v3/filter_state_pb.rb +27 -0
- data/lib/envoy/type/matcher/v3/http_inputs_pb.rb +29 -0
- data/lib/envoy/type/matcher/v3/metadata_pb.rb +28 -0
- data/lib/envoy/type/matcher/v3/node_pb.rb +27 -0
- data/lib/envoy/type/matcher/v3/number_pb.rb +27 -0
- data/lib/envoy/type/matcher/v3/path_pb.rb +27 -0
- data/lib/envoy/type/matcher/v3/regex_pb.rb +30 -0
- data/lib/envoy/type/matcher/v3/status_code_input_pb.rb +25 -0
- data/lib/envoy/type/matcher/v3/string_pb.rb +29 -0
- data/lib/envoy/type/matcher/v3/struct_pb.rb +28 -0
- data/lib/envoy/type/matcher/v3/value_pb.rb +31 -0
- data/lib/envoy/type/metadata/v3/metadata_pb.rb +32 -0
- data/lib/envoy/type/v3/hash_policy_pb.rb +26 -0
- data/lib/envoy/type/v3/http_pb.rb +22 -0
- data/lib/envoy/type/v3/http_status_pb.rb +25 -0
- data/lib/envoy/type/v3/percent_pb.rb +26 -0
- data/lib/envoy/type/v3/range_pb.rb +25 -0
- data/lib/envoy/type/v3/ratelimit_strategy_pb.rb +28 -0
- data/lib/envoy/type/v3/ratelimit_unit_pb.rb +22 -0
- data/lib/envoy/type/v3/semantic_version_pb.rb +23 -0
- data/lib/envoy/type/v3/token_bucket_pb.rb +26 -0
- data/lib/envoy.rb +83 -0
- data/lib/google/protobuf/any_pb.rb +18 -0
- data/lib/google/protobuf/duration_pb.rb +18 -0
- data/lib/google/protobuf/empty_pb.rb +18 -0
- data/lib/google/protobuf/struct_pb.rb +21 -0
- data/lib/google/protobuf/timestamp_pb.rb +18 -0
- data/lib/google/protobuf/wrappers_pb.rb +26 -0
- data/lib/google/rpc/status_pb.rb +20 -0
- data/lib/udpa/annotations/migrate_pb.rb +22 -0
- data/lib/udpa/annotations/security_pb.rb +23 -0
- data/lib/udpa/annotations/sensitive_pb.rb +19 -0
- data/lib/udpa/annotations/status_pb.rb +21 -0
- data/lib/udpa/annotations/versioning_pb.rb +20 -0
- data/lib/validate/validate_pb.rb +43 -0
- data/lib/xds/annotations/v3/status_pb.rb +26 -0
- data/lib/xds/core/v3/authority_pb.rb +23 -0
- data/lib/xds/core/v3/cidr_pb.rb +24 -0
- data/lib/xds/core/v3/collection_entry_pb.rb +26 -0
- data/lib/xds/core/v3/context_params_pb.rb +22 -0
- data/lib/xds/core/v3/extension_pb.rb +23 -0
- data/lib/xds/core/v3/resource_locator_pb.rb +26 -0
- data/lib/xds/core/v3/resource_name_pb.rb +24 -0
- data/lib/xds/core/v3/resource_pb.rb +24 -0
- data/lib/xds/type/matcher/v3/domain_pb.rb +27 -0
- data/lib/xds/type/matcher/v3/http_inputs_pb.rb +22 -0
- data/lib/xds/type/matcher/v3/ip_pb.rb +28 -0
- data/lib/xds/type/matcher/v3/matcher_pb.rb +34 -0
- data/lib/xds/type/matcher/v3/range_pb.rb +31 -0
- data/lib/xds/type/matcher/v3/regex_pb.rb +25 -0
- data/lib/xds/type/matcher/v3/string_pb.rb +27 -0
- data/license.md +21 -0
- data/plan.md +156 -0
- data/proto/envoy/annotations/deprecation.proto +34 -0
- data/proto/envoy/annotations/resource.proto +19 -0
- data/proto/envoy/config/README.md +3 -0
- data/proto/envoy/config/cluster/v3/BUILD +18 -0
- data/proto/envoy/config/cluster/v3/circuit_breaker.proto +121 -0
- data/proto/envoy/config/cluster/v3/cluster.proto +1407 -0
- data/proto/envoy/config/cluster/v3/filter.proto +40 -0
- data/proto/envoy/config/cluster/v3/outlier_detection.proto +180 -0
- data/proto/envoy/config/core/v3/BUILD +16 -0
- data/proto/envoy/config/core/v3/address.proto +214 -0
- data/proto/envoy/config/core/v3/backoff.proto +37 -0
- data/proto/envoy/config/core/v3/base.proto +662 -0
- data/proto/envoy/config/core/v3/cel.proto +63 -0
- data/proto/envoy/config/core/v3/config_source.proto +283 -0
- data/proto/envoy/config/core/v3/event_service_config.proto +29 -0
- data/proto/envoy/config/core/v3/extension.proto +32 -0
- data/proto/envoy/config/core/v3/grpc_method_list.proto +33 -0
- data/proto/envoy/config/core/v3/grpc_service.proto +355 -0
- data/proto/envoy/config/core/v3/health_check.proto +443 -0
- data/proto/envoy/config/core/v3/http_service.proto +35 -0
- data/proto/envoy/config/core/v3/http_uri.proto +58 -0
- data/proto/envoy/config/core/v3/protocol.proto +807 -0
- data/proto/envoy/config/core/v3/proxy_protocol.proto +114 -0
- data/proto/envoy/config/core/v3/resolver.proto +36 -0
- data/proto/envoy/config/core/v3/socket_cmsg_headers.proto +28 -0
- data/proto/envoy/config/core/v3/socket_option.proto +108 -0
- data/proto/envoy/config/core/v3/substitution_format_string.proto +136 -0
- data/proto/envoy/config/core/v3/udp_socket_config.proto +32 -0
- data/proto/envoy/config/endpoint/v3/BUILD +16 -0
- data/proto/envoy/config/endpoint/v3/endpoint.proto +137 -0
- data/proto/envoy/config/endpoint/v3/endpoint_components.proto +229 -0
- data/proto/envoy/config/endpoint/v3/load_report.proto +220 -0
- data/proto/envoy/config/listener/v3/BUILD +18 -0
- data/proto/envoy/config/listener/v3/api_listener.proto +34 -0
- data/proto/envoy/config/listener/v3/listener.proto +455 -0
- data/proto/envoy/config/listener/v3/listener_components.proto +353 -0
- data/proto/envoy/config/listener/v3/quic_config.proto +108 -0
- data/proto/envoy/config/listener/v3/udp_listener_config.proto +52 -0
- data/proto/envoy/config/route/v3/BUILD +19 -0
- data/proto/envoy/config/route/v3/route.proto +172 -0
- data/proto/envoy/config/route/v3/route_components.proto +2918 -0
- data/proto/envoy/config/route/v3/scoped_route.proto +133 -0
- data/proto/envoy/extensions/transport_sockets/tls/v3/BUILD +14 -0
- data/proto/envoy/extensions/transport_sockets/tls/v3/cert.proto +12 -0
- data/proto/envoy/extensions/transport_sockets/tls/v3/common.proto +597 -0
- data/proto/envoy/extensions/transport_sockets/tls/v3/secret.proto +61 -0
- data/proto/envoy/extensions/transport_sockets/tls/v3/tls.proto +366 -0
- data/proto/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.proto +67 -0
- data/proto/envoy/service/README.md +3 -0
- data/proto/envoy/service/discovery/v3/BUILD +13 -0
- data/proto/envoy/service/discovery/v3/ads.proto +44 -0
- data/proto/envoy/service/discovery/v3/discovery.proto +443 -0
- data/proto/envoy/type/BUILD +9 -0
- data/proto/envoy/type/hash_policy.proto +28 -0
- data/proto/envoy/type/http.proto +24 -0
- data/proto/envoy/type/http_status.proto +140 -0
- data/proto/envoy/type/matcher/v3/address.proto +22 -0
- data/proto/envoy/type/matcher/v3/filter_state.proto +33 -0
- data/proto/envoy/type/matcher/v3/http_inputs.proto +71 -0
- data/proto/envoy/type/matcher/v3/metadata.proto +110 -0
- data/proto/envoy/type/matcher/v3/node.proto +29 -0
- data/proto/envoy/type/matcher/v3/number.proto +33 -0
- data/proto/envoy/type/matcher/v3/path.proto +31 -0
- data/proto/envoy/type/matcher/v3/regex.proto +97 -0
- data/proto/envoy/type/matcher/v3/status_code_input.proto +23 -0
- data/proto/envoy/type/matcher/v3/string.proto +94 -0
- data/proto/envoy/type/matcher/v3/struct.proto +91 -0
- data/proto/envoy/type/matcher/v3/value.proto +80 -0
- data/proto/envoy/type/metadata/v3/metadata.proto +117 -0
- data/proto/envoy/type/percent.proto +52 -0
- data/proto/envoy/type/range.proto +43 -0
- data/proto/envoy/type/semantic_version.proto +24 -0
- data/proto/envoy/type/token_bucket.proto +36 -0
- data/proto/envoy/type/v3/BUILD +12 -0
- data/proto/envoy/type/v3/hash_policy.proto +43 -0
- data/proto/envoy/type/v3/http.proto +24 -0
- data/proto/envoy/type/v3/http_status.proto +199 -0
- data/proto/envoy/type/v3/percent.proto +57 -0
- data/proto/envoy/type/v3/range.proto +50 -0
- data/proto/envoy/type/v3/ratelimit_strategy.proto +79 -0
- data/proto/envoy/type/v3/ratelimit_unit.proto +37 -0
- data/proto/envoy/type/v3/semantic_version.proto +27 -0
- data/proto/envoy/type/v3/token_bucket.proto +39 -0
- data/proto/google/protobuf/any.proto +162 -0
- data/proto/google/protobuf/duration.proto +115 -0
- data/proto/google/protobuf/empty.proto +51 -0
- data/proto/google/protobuf/struct.proto +95 -0
- data/proto/google/protobuf/timestamp.proto +145 -0
- data/proto/google/protobuf/wrappers.proto +157 -0
- data/proto/google/rpc/status.proto +47 -0
- data/proto/readme.md +70 -0
- data/proto/udpa/annotations/migrate.proto +49 -0
- data/proto/udpa/annotations/security.proto +31 -0
- data/proto/udpa/annotations/sensitive.proto +14 -0
- data/proto/udpa/annotations/status.proto +34 -0
- data/proto/udpa/annotations/versioning.proto +17 -0
- data/proto/validate/validate.proto +862 -0
- data/proto/xds/annotations/v3/migrate.proto +46 -0
- data/proto/xds/annotations/v3/security.proto +30 -0
- data/proto/xds/annotations/v3/sensitive.proto +16 -0
- data/proto/xds/annotations/v3/status.proto +59 -0
- data/proto/xds/annotations/v3/versioning.proto +20 -0
- data/proto/xds/core/v3/authority.proto +22 -0
- data/proto/xds/core/v3/cidr.proto +25 -0
- data/proto/xds/core/v3/collection_entry.proto +55 -0
- data/proto/xds/core/v3/context_params.proto +23 -0
- data/proto/xds/core/v3/extension.proto +26 -0
- data/proto/xds/core/v3/resource.proto +29 -0
- data/proto/xds/core/v3/resource_locator.proto +118 -0
- data/proto/xds/core/v3/resource_name.proto +42 -0
- data/proto/xds/type/matcher/v3/cel.proto +37 -0
- data/proto/xds/type/matcher/v3/domain.proto +46 -0
- data/proto/xds/type/matcher/v3/http_inputs.proto +23 -0
- data/proto/xds/type/matcher/v3/ip.proto +53 -0
- data/proto/xds/type/matcher/v3/matcher.proto +144 -0
- data/proto/xds/type/matcher/v3/range.proto +69 -0
- data/proto/xds/type/matcher/v3/regex.proto +46 -0
- data/proto/xds/type/matcher/v3/string.proto +71 -0
- data/proto/xds/type/v3/cel.proto +77 -0
- data/proto/xds/type/v3/range.proto +40 -0
- data/proto/xds/type/v3/typed_struct.proto +44 -0
- data/readme.md +37 -0
- data/releases.md +5 -0
- data/xds/Dockerfile.backend +24 -0
- data/xds/Dockerfile.control-plane +22 -0
- data/xds/backend_server.rb +68 -0
- data/xds/docker-compose.yaml +89 -0
- data/xds/go.mod +22 -0
- data/xds/go.sum +82 -0
- data/xds/readme.md +122 -0
- data/xds/test/async/grpc/xds/client.rb +294 -0
- data/xds/test/async/grpc/xds/control_plane.rb +94 -0
- data/xds/test_server.go +355 -0
- data/xds/update_protos.sh +123 -0
- data.tar.gz.sig +0 -0
- metadata +386 -0
- metadata.gz.sig +2 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "async"
|
|
7
|
+
require "async/queue"
|
|
8
|
+
require "async/grpc/service"
|
|
9
|
+
require "protocol/grpc/error"
|
|
10
|
+
require "protocol/grpc/status"
|
|
11
|
+
require "set"
|
|
12
|
+
|
|
13
|
+
require "envoy/service/discovery/v3/aggregated_discovery_service"
|
|
14
|
+
|
|
15
|
+
require_relative "control_plane"
|
|
16
|
+
|
|
17
|
+
module Async
|
|
18
|
+
module GRPC
|
|
19
|
+
module XDS
|
|
20
|
+
# Serves Envoy Aggregated Discovery Service requests from a {ControlPlane}.
|
|
21
|
+
class Service < Async::GRPC::Service
|
|
22
|
+
SERVICE_NAME = "envoy.service.discovery.v3.AggregatedDiscoveryService"
|
|
23
|
+
|
|
24
|
+
def initialize(control_plane)
|
|
25
|
+
super(Envoy::Service::Discovery::V3::AggregatedDiscoveryService, SERVICE_NAME)
|
|
26
|
+
@control_plane = control_plane
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def stream_aggregated_resources(input, output, call)
|
|
30
|
+
stream = Stream.new(@control_plane, output)
|
|
31
|
+
@control_plane.register_stream(stream)
|
|
32
|
+
|
|
33
|
+
reader = Async do
|
|
34
|
+
input.each do |request|
|
|
35
|
+
stream.request(request)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
writer = Async do
|
|
40
|
+
stream.run
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
reader.wait
|
|
44
|
+
ensure
|
|
45
|
+
stream&.close
|
|
46
|
+
reader&.stop
|
|
47
|
+
writer&.stop
|
|
48
|
+
@control_plane.remove_stream(stream) if stream
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def delta_aggregated_resources(input, output, call)
|
|
52
|
+
raise Protocol::GRPC::Error.new(
|
|
53
|
+
Protocol::GRPC::Status::UNIMPLEMENTED,
|
|
54
|
+
"Delta xDS is not implemented."
|
|
55
|
+
)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Represents one ADS stream and its subscribed resources.
|
|
59
|
+
class Stream
|
|
60
|
+
def initialize(control_plane, output)
|
|
61
|
+
@control_plane = control_plane
|
|
62
|
+
@output = output
|
|
63
|
+
@subscriptions = Hash.new{|hash, type_url| hash[type_url] = Set.new}
|
|
64
|
+
@versions = {}
|
|
65
|
+
@queue = Async::Queue.new
|
|
66
|
+
@closed = false
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def request(request)
|
|
70
|
+
return if request.type_url.nil? || request.type_url.empty?
|
|
71
|
+
|
|
72
|
+
if request.error_detail
|
|
73
|
+
Console.warn(self, "Received xDS NACK.", type_url: request.type_url, error_detail: request.error_detail)
|
|
74
|
+
return
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
if request.resource_names.any?
|
|
78
|
+
@subscriptions[request.type_url].merge(request.resource_names)
|
|
79
|
+
else
|
|
80
|
+
@subscriptions[request.type_url]
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
@queue << request.type_url
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def changed(type_url)
|
|
87
|
+
@queue << type_url unless @closed
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def run
|
|
91
|
+
until @closed
|
|
92
|
+
type_url = @queue.dequeue
|
|
93
|
+
flush(type_url)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def flush(type_url)
|
|
98
|
+
names = @subscriptions[type_url]
|
|
99
|
+
return unless names
|
|
100
|
+
|
|
101
|
+
version = @control_plane.version(type_url)
|
|
102
|
+
return if @versions[type_url] == version
|
|
103
|
+
|
|
104
|
+
response = @control_plane.response(type_url, names)
|
|
105
|
+
@output.write(response)
|
|
106
|
+
@versions[type_url] = version
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def close
|
|
110
|
+
@closed = true
|
|
111
|
+
@queue.close
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
# Load order matters - Context must be loaded before Client
|
|
7
|
+
require_relative "xds/version"
|
|
8
|
+
require_relative "xds/resource_cache"
|
|
9
|
+
require_relative "xds/resources"
|
|
10
|
+
require_relative "xds/ads_stream"
|
|
11
|
+
require_relative "xds/discovery_client"
|
|
12
|
+
require_relative "xds/health_checker"
|
|
13
|
+
require_relative "xds/load_balancer"
|
|
14
|
+
require_relative "xds/context"
|
|
15
|
+
require_relative "xds/client"
|
|
16
|
+
require_relative "xds/resource_builder"
|
|
17
|
+
require_relative "xds/control_plane"
|
|
18
|
+
require_relative "xds/service"
|
|
19
|
+
require_relative "xds/server"
|
|
20
|
+
|
|
21
|
+
module Async
|
|
22
|
+
module GRPC
|
|
23
|
+
# xDS (Discovery Service) support for dynamic service discovery and configuration
|
|
24
|
+
#
|
|
25
|
+
# Provides dynamic service discovery and load balancing for gRPC clients
|
|
26
|
+
# using the xDS (Discovery Service) protocol.
|
|
27
|
+
#
|
|
28
|
+
# @example Basic usage
|
|
29
|
+
# require "async/grpc/xds"
|
|
30
|
+
#
|
|
31
|
+
# bootstrap = {
|
|
32
|
+
# xds_servers: [{server_uri: "xds-control-plane:18000"}],
|
|
33
|
+
# node: {id: "client-1", cluster: "test"}
|
|
34
|
+
# }
|
|
35
|
+
#
|
|
36
|
+
# xds_client = Async::GRPC::XDS::Client.new("myservice", bootstrap: bootstrap)
|
|
37
|
+
# stub = xds_client.stub(MyServiceInterface, "myservice")
|
|
38
|
+
# response = stub.say_hello(request)
|
|
39
|
+
module XDS
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "google/protobuf/descriptor_pb"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
descriptor_data = "\n#envoy/annotations/deprecation.proto\x12\x11\x65nvoy.annotations\x1a google/protobuf/descriptor.proto:?\n\x15\x64isallowed_by_default\x12\x1d.google.protobuf.FieldOptions\x18\xe7\xad\xaeZ \x01(\x08:E\n\x1b\x64\x65precated_at_minor_version\x12\x1d.google.protobuf.FieldOptions\x18\xf2\xe8\x80K \x01(\t:H\n\x1a\x64isallowed_by_default_enum\x12!.google.protobuf.EnumValueOptions\x18\xf5\xce\xb6! \x01(\x08:N\n deprecated_at_minor_version_enum\x12!.google.protobuf.EnumValueOptions\x18\xc1\xbe\xb3V \x01(\tB:Z8github.com/envoyproxy/go-control-plane/envoy/annotationsb\x06proto3"
|
|
12
|
+
|
|
13
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
14
|
+
pool.add_serialized_file(descriptor_data)
|
|
15
|
+
|
|
16
|
+
module Envoy
|
|
17
|
+
module Annotations
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "envoy/config/core/v3/base_pb"
|
|
9
|
+
require "envoy/type/v3/percent_pb"
|
|
10
|
+
require "google/protobuf/wrappers_pb"
|
|
11
|
+
require "udpa/annotations/status_pb"
|
|
12
|
+
require "udpa/annotations/versioning_pb"
|
|
13
|
+
require "validate/validate_pb"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
descriptor_data = "\n-envoy/config/cluster/v3/circuit_breaker.proto\x12\x17\x65nvoy.config.cluster.v3\x1a\x1f\x65nvoy/config/core/v3/base.proto\x1a\x1b\x65nvoy/type/v3/percent.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\xaa\x07\n\x0f\x43ircuitBreakers\x12G\n\nthresholds\x18\x01 \x03(\x0b\x32\x33.envoy.config.cluster.v3.CircuitBreakers.Thresholds\x12P\n\x13per_host_thresholds\x18\x02 \x03(\x0b\x32\x33.envoy.config.cluster.v3.CircuitBreakers.Thresholds\x1a\xce\x05\n\nThresholds\x12\x41\n\x08priority\x18\x01 \x01(\x0e\x32%.envoy.config.core.v3.RoutingPriorityB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\x35\n\x0fmax_connections\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12:\n\x14max_pending_requests\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x32\n\x0cmax_requests\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x31\n\x0bmax_retries\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12U\n\x0cretry_budget\x18\x08 \x01(\x0b\x32?.envoy.config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget\x12\x17\n\x0ftrack_remaining\x18\x06 \x01(\x08\x12:\n\x14max_connection_pools\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x1a\xbe\x01\n\x0bRetryBudget\x12.\n\x0e\x62udget_percent\x18\x01 \x01(\x0b\x32\x16.envoy.type.v3.Percent\x12;\n\x15min_retry_concurrency\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:B\x9a\xc5\x88\x1e=\n;envoy.api.v2.cluster.CircuitBreakers.Thresholds.RetryBudget:6\x9a\xc5\x88\x1e\x31\n/envoy.api.v2.cluster.CircuitBreakers.Thresholds:+\x9a\xc5\x88\x1e&\n$envoy.api.v2.cluster.CircuitBreakersB\x90\x01\n%io.envoyproxy.envoy.config.cluster.v3B\x13\x43ircuitBreakerProtoP\x01ZHgithub.com/envoyproxy/go-control-plane/envoy/config/cluster/v3;clusterv3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3"
|
|
17
|
+
|
|
18
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
19
|
+
pool.add_serialized_file(descriptor_data)
|
|
20
|
+
|
|
21
|
+
module Envoy
|
|
22
|
+
module Config
|
|
23
|
+
module Cluster
|
|
24
|
+
module V3
|
|
25
|
+
CircuitBreakers = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.CircuitBreakers").msgclass
|
|
26
|
+
CircuitBreakers::Thresholds = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.CircuitBreakers.Thresholds").msgclass
|
|
27
|
+
CircuitBreakers::Thresholds::RetryBudget = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget").msgclass
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "envoy/config/cluster/v3/circuit_breaker_pb"
|
|
9
|
+
require "envoy/config/cluster/v3/filter_pb"
|
|
10
|
+
require "envoy/config/cluster/v3/outlier_detection_pb"
|
|
11
|
+
require "envoy/config/core/v3/address_pb"
|
|
12
|
+
require "envoy/config/core/v3/base_pb"
|
|
13
|
+
require "envoy/config/core/v3/config_source_pb"
|
|
14
|
+
require "envoy/config/core/v3/extension_pb"
|
|
15
|
+
require "envoy/config/core/v3/health_check_pb"
|
|
16
|
+
require "envoy/config/core/v3/protocol_pb"
|
|
17
|
+
require "envoy/config/core/v3/resolver_pb"
|
|
18
|
+
require "envoy/config/endpoint/v3/endpoint_pb"
|
|
19
|
+
require "envoy/type/metadata/v3/metadata_pb"
|
|
20
|
+
require "envoy/type/v3/percent_pb"
|
|
21
|
+
require "google/protobuf/any_pb"
|
|
22
|
+
require "google/protobuf/duration_pb"
|
|
23
|
+
require "google/protobuf/struct_pb"
|
|
24
|
+
require "google/protobuf/wrappers_pb"
|
|
25
|
+
require "xds/core/v3/collection_entry_pb"
|
|
26
|
+
require "xds/type/matcher/v3/matcher_pb"
|
|
27
|
+
require "envoy/annotations/deprecation_pb"
|
|
28
|
+
require "udpa/annotations/migrate_pb"
|
|
29
|
+
require "udpa/annotations/security_pb"
|
|
30
|
+
require "udpa/annotations/status_pb"
|
|
31
|
+
require "udpa/annotations/versioning_pb"
|
|
32
|
+
require "validate/validate_pb"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
descriptor_data = "\n%envoy/config/cluster/v3/cluster.proto\x12\x17\x65nvoy.config.cluster.v3\x1a-envoy/config/cluster/v3/circuit_breaker.proto\x1a$envoy/config/cluster/v3/filter.proto\x1a/envoy/config/cluster/v3/outlier_detection.proto\x1a\"envoy/config/core/v3/address.proto\x1a\x1f\x65nvoy/config/core/v3/base.proto\x1a(envoy/config/core/v3/config_source.proto\x1a$envoy/config/core/v3/extension.proto\x1a\'envoy/config/core/v3/health_check.proto\x1a#envoy/config/core/v3/protocol.proto\x1a#envoy/config/core/v3/resolver.proto\x1a\'envoy/config/endpoint/v3/endpoint.proto\x1a%envoy/type/metadata/v3/metadata.proto\x1a\x1b\x65nvoy/type/v3/percent.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\"xds/core/v3/collection_entry.proto\x1a!xds/type/matcher/v3/matcher.proto\x1a#envoy/annotations/deprecation.proto\x1a\x1eudpa/annotations/migrate.proto\x1a\x1fudpa/annotations/security.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"B\n\x11\x43lusterCollection\x12-\n\x07\x65ntries\x18\x01 \x01(\x0b\x32\x1c.xds.core.v3.CollectionEntry\"\x87\x46\n\x07\x43luster\x12W\n\x18transport_socket_matches\x18+ \x03(\x0b\x32\x35.envoy.config.cluster.v3.Cluster.TransportSocketMatch\x12>\n\x18transport_socket_matcher\x18; \x01(\x0b\x32\x1c.xds.type.matcher.v3.Matcher\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x31\n\ralt_stat_name\x18\x1c \x01(\tB\x1a\xf2\x98\xfe\x8f\x05\x14\n\x12observability_name\x12H\n\x04type\x18\x02 \x01(\x0e\x32..envoy.config.cluster.v3.Cluster.DiscoveryTypeB\x08\xfa\x42\x05\x82\x01\x02\x10\x01H\x00\x12J\n\x0c\x63luster_type\x18& \x01(\x0b\x32\x32.envoy.config.cluster.v3.Cluster.CustomClusterTypeH\x00\x12M\n\x12\x65\x64s_cluster_config\x18\x03 \x01(\x0b\x32\x31.envoy.config.cluster.v3.Cluster.EdsClusterConfig\x12<\n\x0f\x63onnect_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xfa\x42\x05\xaa\x01\x02*\x00\x12P\n!per_connection_buffer_limit_bytes\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\x8a\x93\xb7*\x02\x10\x01\x12\x46\n\tlb_policy\x18\x06 \x01(\x0e\x32).envoy.config.cluster.v3.Cluster.LbPolicyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12H\n\x0fload_assignment\x18! \x01(\x0b\x32/.envoy.config.endpoint.v3.ClusterLoadAssignment\x12\x38\n\rhealth_checks\x18\x08 \x03(\x0b\x32!.envoy.config.core.v3.HealthCheck\x12N\n\x1bmax_requests_per_connection\x18\t \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12\x42\n\x10\x63ircuit_breakers\x18\n \x01(\x0b\x32(.envoy.config.cluster.v3.CircuitBreakers\x12\x66\n\x1eupstream_http_protocol_options\x18. \x01(\x0b\x32\x31.envoy.config.core.v3.UpstreamHttpProtocolOptionsB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12\\\n\x1c\x63ommon_http_protocol_options\x18\x1d \x01(\x0b\x32).envoy.config.core.v3.HttpProtocolOptionsB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12V\n\x15http_protocol_options\x18\r \x01(\x0b\x32*.envoy.config.core.v3.Http1ProtocolOptionsB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12^\n\x16http2_protocol_options\x18\x0e \x01(\x0b\x32*.envoy.config.core.v3.Http2ProtocolOptionsB\x12\x18\x01\x8a\x93\xb7*\x02\x10\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12m\n typed_extension_protocol_options\x18$ \x03(\x0b\x32\x43.envoy.config.cluster.v3.Cluster.TypedExtensionProtocolOptionsEntry\x12L\n\x10\x64ns_refresh_rate\x18\x10 \x01(\x0b\x32\x19.google.protobuf.DurationB\x17\x18\x01\xfa\x42\t\xaa\x01\x06*\x04\x10\xc0\x84=\x92\xc7\x86\xd8\x04\x03\x33.0\x12\x42\n\ndns_jitter\x18: \x01(\x0b\x32\x19.google.protobuf.DurationB\x13\x18\x01\xfa\x42\x05\xaa\x01\x02\x32\x00\x92\xc7\x86\xd8\x04\x03\x33.0\x12[\n\x18\x64ns_failure_refresh_rate\x18, \x01(\x0b\x32,.envoy.config.cluster.v3.Cluster.RefreshRateB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12$\n\x0frespect_dns_ttl\x18\' \x01(\x08\x42\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12U\n\x11\x64ns_lookup_family\x18\x11 \x01(\x0e\x32\x30.envoy.config.cluster.v3.Cluster.DnsLookupFamilyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\x41\n\rdns_resolvers\x18\x12 \x03(\x0b\x32\x1d.envoy.config.core.v3.AddressB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12,\n\x17use_tcp_for_dns_lookups\x18- \x01(\x08\x42\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12U\n\x15\x64ns_resolution_config\x18\x35 \x01(\x0b\x32).envoy.config.core.v3.DnsResolutionConfigB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12M\n\x19typed_dns_resolver_config\x18\x37 \x01(\x0b\x32*.envoy.config.core.v3.TypedExtensionConfig\x12\x39\n\x15wait_for_warm_on_init\x18\x36 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x44\n\x11outlier_detection\x18\x13 \x01(\x0b\x32).envoy.config.cluster.v3.OutlierDetection\x12=\n\x10\x63leanup_interval\x18\x14 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xfa\x42\x05\xaa\x01\x02*\x00\x12>\n\x14upstream_bind_config\x18\x15 \x01(\x0b\x32 .envoy.config.core.v3.BindConfig\x12I\n\x10lb_subset_config\x18\x16 \x01(\x0b\x32/.envoy.config.cluster.v3.Cluster.LbSubsetConfig\x12P\n\x13ring_hash_lb_config\x18\x17 \x01(\x0b\x32\x31.envoy.config.cluster.v3.Cluster.RingHashLbConfigH\x01\x12K\n\x10maglev_lb_config\x18\x34 \x01(\x0b\x32/.envoy.config.cluster.v3.Cluster.MaglevLbConfigH\x01\x12V\n\x16original_dst_lb_config\x18\" \x01(\x0b\x32\x34.envoy.config.cluster.v3.Cluster.OriginalDstLbConfigH\x01\x12X\n\x17least_request_lb_config\x18% \x01(\x0b\x32\x35.envoy.config.cluster.v3.Cluster.LeastRequestLbConfigH\x01\x12T\n\x15round_robin_lb_config\x18\x38 \x01(\x0b\x32\x33.envoy.config.cluster.v3.Cluster.RoundRobinLbConfigH\x01\x12I\n\x10\x63ommon_lb_config\x18\x1b \x01(\x0b\x32/.envoy.config.cluster.v3.Cluster.CommonLbConfig\x12?\n\x10transport_socket\x18\x18 \x01(\x0b\x32%.envoy.config.core.v3.TransportSocket\x12\x30\n\x08metadata\x18\x19 \x01(\x0b\x32\x1e.envoy.config.core.v3.Metadata\x12\x62\n\x12protocol_selection\x18\x1a \x01(\x0e\x32\x39.envoy.config.cluster.v3.Cluster.ClusterProtocolSelectionB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12W\n\x1bupstream_connection_options\x18\x1e \x01(\x0b\x32\x32.envoy.config.cluster.v3.UpstreamConnectionOptions\x12\x30\n(close_connections_on_host_health_failure\x18\x1f \x01(\x08\x12%\n\x1dignore_health_on_host_removal\x18 \x01(\x08\x12\x30\n\x07\x66ilters\x18( \x03(\x0b\x32\x1f.envoy.config.cluster.v3.Filter\x12K\n\x15load_balancing_policy\x18) \x01(\x0b\x32,.envoy.config.cluster.v3.LoadBalancingPolicy\x12\x36\n\nlrs_server\x18* \x01(\x0b\x32\".envoy.config.core.v3.ConfigSource\x12#\n\x1blrs_report_endpoint_metrics\x18\x39 \x03(\t\x12*\n\x15track_timeout_budgets\x18/ \x01(\x08\x42\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12\x43\n\x0fupstream_config\x18\x30 \x01(\x0b\x32*.envoy.config.core.v3.TypedExtensionConfig\x12G\n\x13track_cluster_stats\x18\x31 \x01(\x0b\x32*.envoy.config.cluster.v3.TrackClusterStats\x12L\n\x11preconnect_policy\x18\x32 \x01(\x0b\x32\x31.envoy.config.cluster.v3.Cluster.PreconnectPolicy\x12\x31\n)connection_pool_per_downstream_connection\x18\x33 \x01(\x08\x1a\xc8\x01\n\x14TransportSocketMatch\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12&\n\x05match\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12?\n\x10transport_socket\x18\x03 \x01(\x0b\x32%.envoy.config.core.v3.TransportSocket:0\x9a\xc5\x88\x1e+\n)envoy.api.v2.Cluster.TransportSocketMatch\x1a\x85\x01\n\x11\x43ustomClusterType\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12*\n\x0ctyped_config\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:-\x9a\xc5\x88\x1e(\n&envoy.api.v2.Cluster.CustomClusterType\x1a\x8e\x01\n\x10\x45\x64sClusterConfig\x12\x36\n\neds_config\x18\x01 \x01(\x0b\x32\".envoy.config.core.v3.ConfigSource\x12\x14\n\x0cservice_name\x18\x02 \x01(\t:,\x9a\xc5\x88\x1e\'\n%envoy.api.v2.Cluster.EdsClusterConfig\x1a\xd9\x08\n\x0eLbSubsetConfig\x12i\n\x0f\x66\x61llback_policy\x18\x01 \x01(\x0e\x32\x46.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12/\n\x0e\x64\x65\x66\x61ult_subset\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12Z\n\x10subset_selectors\x18\x03 \x03(\x0b\x32@.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector\x12\x1d\n\x15locality_weight_aware\x18\x04 \x01(\x08\x12\x1d\n\x15scale_locality_weight\x18\x05 \x01(\x08\x12\x16\n\x0epanic_mode_any\x18\x06 \x01(\x08\x12\x13\n\x0blist_as_any\x18\x07 \x01(\x08\x12z\n\x18metadata_fallback_policy\x18\x08 \x01(\x0e\x32N.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x1a\x9b\x03\n\x10LbSubsetSelector\x12\x0c\n\x04keys\x18\x01 \x03(\t\x12\x1e\n\x16single_host_per_subset\x18\x04 \x01(\x08\x12\x82\x01\n\x0f\x66\x61llback_policy\x18\x02 \x01(\x0e\x32_.envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\x1c\n\x14\x66\x61llback_keys_subset\x18\x03 \x03(\t\"y\n\x1eLbSubsetSelectorFallbackPolicy\x12\x0f\n\x0bNOT_DEFINED\x10\x00\x12\x0f\n\x0bNO_FALLBACK\x10\x01\x12\x10\n\x0c\x41NY_ENDPOINT\x10\x02\x12\x12\n\x0e\x44\x45\x46\x41ULT_SUBSET\x10\x03\x12\x0f\n\x0bKEYS_SUBSET\x10\x04:;\x9a\xc5\x88\x1e\x36\n4envoy.api.v2.Cluster.LbSubsetConfig.LbSubsetSelector\"O\n\x16LbSubsetFallbackPolicy\x12\x0f\n\x0bNO_FALLBACK\x10\x00\x12\x10\n\x0c\x41NY_ENDPOINT\x10\x01\x12\x12\n\x0e\x44\x45\x46\x41ULT_SUBSET\x10\x02\"M\n\x1eLbSubsetMetadataFallbackPolicy\x12\x18\n\x14METADATA_NO_FALLBACK\x10\x00\x12\x11\n\rFALLBACK_LIST\x10\x01:*\x9a\xc5\x88\x1e%\n#envoy.api.v2.Cluster.LbSubsetConfig\x1a\xb4\x01\n\x0fSlowStartConfig\x12\x34\n\x11slow_start_window\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\naggression\x18\x02 \x01(\x0b\x32#.envoy.config.core.v3.RuntimeDouble\x12\x32\n\x12min_weight_percent\x18\x03 \x01(\x0b\x32\x16.envoy.type.v3.Percent\x1a\x61\n\x12RoundRobinLbConfig\x12K\n\x11slow_start_config\x18\x01 \x01(\x0b\x32\x30.envoy.config.cluster.v3.Cluster.SlowStartConfig\x1a\x94\x02\n\x14LeastRequestLbConfig\x12;\n\x0c\x63hoice_count\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02(\x02\x12@\n\x13\x61\x63tive_request_bias\x18\x02 \x01(\x0b\x32#.envoy.config.core.v3.RuntimeDouble\x12K\n\x11slow_start_config\x18\x03 \x01(\x0b\x32\x30.envoy.config.cluster.v3.Cluster.SlowStartConfig:0\x9a\xc5\x88\x1e+\n)envoy.api.v2.Cluster.LeastRequestLbConfig\x1a\xe1\x02\n\x10RingHashLbConfig\x12\x43\n\x11minimum_ring_size\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueB\n\xfa\x42\x07\x32\x05\x18\x80\x80\x80\x04\x12_\n\rhash_function\x18\x03 \x01(\x0e\x32>.envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunctionB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\x43\n\x11maximum_ring_size\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueB\n\xfa\x42\x07\x32\x05\x18\x80\x80\x80\x04\".\n\x0cHashFunction\x12\x0b\n\x07XX_HASH\x10\x00\x12\x11\n\rMURMUR_HASH_2\x10\x01:,\x9a\xc5\x88\x1e\'\n%envoy.api.v2.Cluster.RingHashLbConfigJ\x04\x08\x02\x10\x03\x1aN\n\x0eMaglevLbConfig\x12<\n\ntable_size\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueB\n\xfa\x42\x07\x32\x05\x18\xcb\x96\xb1\x02\x1a\xfd\x01\n\x13OriginalDstLbConfig\x12\x17\n\x0fuse_http_header\x18\x01 \x01(\x08\x12\x18\n\x10http_header_name\x18\x02 \x01(\t\x12G\n\x16upstream_port_override\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\t\xfa\x42\x06*\x04\x18\xff\xff\x03\x12\x39\n\x0cmetadata_key\x18\x04 \x01(\x0b\x32#.envoy.type.metadata.v3.MetadataKey:/\x9a\xc5\x88\x1e*\n(envoy.api.v2.Cluster.OriginalDstLbConfig\x1a\xb2\t\n\x0e\x43ommonLbConfig\x12\x37\n\x17healthy_panic_threshold\x18\x01 \x01(\x0b\x32\x16.envoy.type.v3.Percent\x12\x61\n\x14zone_aware_lb_config\x18\x02 \x01(\x0b\x32\x41.envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfigH\x00\x12o\n\x1blocality_weighted_lb_config\x18\x03 \x01(\x0b\x32H.envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfigH\x00\x12\x36\n\x13update_merge_window\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\'\n\x1fignore_new_hosts_until_first_hc\x18\x05 \x01(\x08\x12,\n$close_connections_on_host_set_change\x18\x06 \x01(\x08\x12o\n\x1c\x63onsistent_hashing_lb_config\x18\x07 \x01(\x0b\x32I.envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig\x12\x43\n\x14override_host_status\x18\x08 \x01(\x0b\x32%.envoy.config.core.v3.HealthStatusSet\x1a\xd9\x01\n\x11ZoneAwareLbConfig\x12/\n\x0frouting_enabled\x18\x01 \x01(\x0b\x32\x16.envoy.type.v3.Percent\x12\x36\n\x10min_cluster_size\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x1d\n\x15\x66\x61il_traffic_on_panic\x18\x03 \x01(\x08:<\x9a\xc5\x88\x1e\x37\n5envoy.api.v2.Cluster.CommonLbConfig.ZoneAwareLbConfig\x1a_\n\x18LocalityWeightedLbConfig:C\x9a\xc5\x88\x1e>\n<envoy.api.v2.Cluster.CommonLbConfig.LocalityWeightedLbConfig\x1a\xc7\x01\n\x19\x43onsistentHashingLbConfig\x12 \n\x18use_hostname_for_hashing\x18\x01 \x01(\x08\x12\x42\n\x13hash_balance_factor\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02(d:D\x9a\xc5\x88\x1e?\n=envoy.api.v2.Cluster.CommonLbConfig.ConsistentHashingLbConfig:*\x9a\xc5\x88\x1e%\n#envoy.api.v2.Cluster.CommonLbConfigB\x1b\n\x19locality_config_specifier\x1a\xb7\x01\n\x0bRefreshRate\x12@\n\rbase_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0e\xfa\x42\x0b\xaa\x01\x08\x08\x01*\x04\x10\xc0\x84=\x12=\n\x0cmax_interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\xfa\x42\t\xaa\x01\x06*\x04\x10\xc0\x84=:\'\x9a\xc5\x88\x1e\"\n envoy.api.v2.Cluster.RefreshRate\x1a\xcc\x01\n\x10PreconnectPolicy\x12\\\n\x1dper_upstream_preconnect_ratio\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValueB\x17\xfa\x42\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00\x08@)\x00\x00\x00\x00\x00\x00\xf0?\x12Z\n\x1bpredictive_preconnect_ratio\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValueB\x17\xfa\x42\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00\x08@)\x00\x00\x00\x00\x00\x00\xf0?\x1aZ\n\"TypedExtensionProtocolOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01\"W\n\rDiscoveryType\x12\n\n\x06STATIC\x10\x00\x12\x0e\n\nSTRICT_DNS\x10\x01\x12\x0f\n\x0bLOGICAL_DNS\x10\x02\x12\x07\n\x03\x45\x44S\x10\x03\x12\x10\n\x0cORIGINAL_DST\x10\x04\"\xa4\x01\n\x08LbPolicy\x12\x0f\n\x0bROUND_ROBIN\x10\x00\x12\x11\n\rLEAST_REQUEST\x10\x01\x12\r\n\tRING_HASH\x10\x02\x12\n\n\x06RANDOM\x10\x03\x12\n\n\x06MAGLEV\x10\x05\x12\x14\n\x10\x43LUSTER_PROVIDED\x10\x06\x12 \n\x1cLOAD_BALANCING_POLICY_CONFIG\x10\x07\"\x04\x08\x04\x10\x04*\x0fORIGINAL_DST_LB\"P\n\x0f\x44nsLookupFamily\x12\x08\n\x04\x41UTO\x10\x00\x12\x0b\n\x07V4_ONLY\x10\x01\x12\x0b\n\x07V6_ONLY\x10\x02\x12\x10\n\x0cV4_PREFERRED\x10\x03\x12\x07\n\x03\x41LL\x10\x04\"T\n\x18\x43lusterProtocolSelection\x12\x1b\n\x17USE_CONFIGURED_PROTOCOL\x10\x00\x12\x1b\n\x17USE_DOWNSTREAM_PROTOCOL\x10\x01:\x1b\x9a\xc5\x88\x1e\x16\n\x14\x65nvoy.api.v2.ClusterB\x18\n\x16\x63luster_discovery_typeB\x0b\n\tlb_configJ\x04\x08\x0c\x10\rJ\x04\x08\x0f\x10\x10J\x04\x08\x07\x10\x08J\x04\x08\x0b\x10\x0cJ\x04\x08#\x10$R\x05hostsR\x0btls_contextR\x1a\x65xtension_protocol_options\"\xba\x02\n\x13LoadBalancingPolicy\x12\x45\n\x08policies\x18\x01 \x03(\x0b\x32\x33.envoy.config.cluster.v3.LoadBalancingPolicy.Policy\x1a\xb2\x01\n\x06Policy\x12J\n\x16typed_extension_config\x18\x04 \x01(\x0b\x32*.envoy.config.core.v3.TypedExtensionConfig:.\x9a\xc5\x88\x1e)\n\'envoy.api.v2.LoadBalancingPolicy.PolicyJ\x04\x08\x02\x10\x03J\x04\x08\x01\x10\x02J\x04\x08\x03\x10\x04R\x06\x63onfigR\x04nameR\x0ctyped_config:\'\x9a\xc5\x88\x1e\"\n envoy.api.v2.LoadBalancingPolicy\"\xb7\x04\n\x19UpstreamConnectionOptions\x12\x39\n\rtcp_keepalive\x18\x01 \x01(\x0b\x32\".envoy.config.core.v3.TcpKeepalive\x12\x38\n0set_local_interface_name_on_upstream_connections\x18\x02 \x01(\x08\x12\x65\n\x15happy_eyeballs_config\x18\x03 \x01(\x0b\x32\x46.envoy.config.cluster.v3.UpstreamConnectionOptions.HappyEyeballsConfig\x1a\xd4\x01\n\x13HappyEyeballsConfig\x12r\n\x1c\x66irst_address_family_version\x18\x01 \x01(\x0e\x32L.envoy.config.cluster.v3.UpstreamConnectionOptions.FirstAddressFamilyVersion\x12I\n\x1a\x66irst_address_family_count\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02(\x01\"8\n\x19\x46irstAddressFamilyVersion\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x06\n\x02V4\x10\x01\x12\x06\n\x02V6\x10\x02:-\x9a\xc5\x88\x1e(\n&envoy.api.v2.UpstreamConnectionOptions\"h\n\x11TrackClusterStats\x12\x17\n\x0ftimeout_budgets\x18\x01 \x01(\x08\x12\x1e\n\x16request_response_sizes\x18\x02 \x01(\x08\x12\x1a\n\x12per_endpoint_stats\x18\x03 \x01(\x08\x42\x89\x01\n%io.envoyproxy.envoy.config.cluster.v3B\x0c\x43lusterProtoP\x01ZHgithub.com/envoyproxy/go-control-plane/envoy/config/cluster/v3;clusterv3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3"
|
|
36
|
+
|
|
37
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
38
|
+
pool.add_serialized_file(descriptor_data)
|
|
39
|
+
|
|
40
|
+
module Envoy
|
|
41
|
+
module Config
|
|
42
|
+
module Cluster
|
|
43
|
+
module V3
|
|
44
|
+
ClusterCollection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.ClusterCollection").msgclass
|
|
45
|
+
Cluster = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster").msgclass
|
|
46
|
+
Cluster::TransportSocketMatch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.TransportSocketMatch").msgclass
|
|
47
|
+
Cluster::CustomClusterType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.CustomClusterType").msgclass
|
|
48
|
+
Cluster::EdsClusterConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.EdsClusterConfig").msgclass
|
|
49
|
+
Cluster::LbSubsetConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.LbSubsetConfig").msgclass
|
|
50
|
+
Cluster::LbSubsetConfig::LbSubsetSelector = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector").msgclass
|
|
51
|
+
Cluster::LbSubsetConfig::LbSubsetSelector::LbSubsetSelectorFallbackPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy").enummodule
|
|
52
|
+
Cluster::LbSubsetConfig::LbSubsetFallbackPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy").enummodule
|
|
53
|
+
Cluster::LbSubsetConfig::LbSubsetMetadataFallbackPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy").enummodule
|
|
54
|
+
Cluster::SlowStartConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.SlowStartConfig").msgclass
|
|
55
|
+
Cluster::RoundRobinLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.RoundRobinLbConfig").msgclass
|
|
56
|
+
Cluster::LeastRequestLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.LeastRequestLbConfig").msgclass
|
|
57
|
+
Cluster::RingHashLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.RingHashLbConfig").msgclass
|
|
58
|
+
Cluster::RingHashLbConfig::HashFunction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.RingHashLbConfig.HashFunction").enummodule
|
|
59
|
+
Cluster::MaglevLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.MaglevLbConfig").msgclass
|
|
60
|
+
Cluster::OriginalDstLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.OriginalDstLbConfig").msgclass
|
|
61
|
+
Cluster::CommonLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.CommonLbConfig").msgclass
|
|
62
|
+
Cluster::CommonLbConfig::ZoneAwareLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig").msgclass
|
|
63
|
+
Cluster::CommonLbConfig::LocalityWeightedLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig").msgclass
|
|
64
|
+
Cluster::CommonLbConfig::ConsistentHashingLbConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig").msgclass
|
|
65
|
+
Cluster::RefreshRate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.RefreshRate").msgclass
|
|
66
|
+
Cluster::PreconnectPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.PreconnectPolicy").msgclass
|
|
67
|
+
Cluster::DiscoveryType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.DiscoveryType").enummodule
|
|
68
|
+
Cluster::LbPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.LbPolicy").enummodule
|
|
69
|
+
Cluster::DnsLookupFamily = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.DnsLookupFamily").enummodule
|
|
70
|
+
Cluster::ClusterProtocolSelection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Cluster.ClusterProtocolSelection").enummodule
|
|
71
|
+
LoadBalancingPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.LoadBalancingPolicy").msgclass
|
|
72
|
+
LoadBalancingPolicy::Policy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.LoadBalancingPolicy.Policy").msgclass
|
|
73
|
+
UpstreamConnectionOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.UpstreamConnectionOptions").msgclass
|
|
74
|
+
UpstreamConnectionOptions::HappyEyeballsConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.UpstreamConnectionOptions.HappyEyeballsConfig").msgclass
|
|
75
|
+
UpstreamConnectionOptions::FirstAddressFamilyVersion = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.UpstreamConnectionOptions.FirstAddressFamilyVersion").enummodule
|
|
76
|
+
TrackClusterStats = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.TrackClusterStats").msgclass
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "envoy/config/core/v3/config_source_pb"
|
|
9
|
+
require "google/protobuf/any_pb"
|
|
10
|
+
require "udpa/annotations/status_pb"
|
|
11
|
+
require "udpa/annotations/versioning_pb"
|
|
12
|
+
require "validate/validate_pb"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
descriptor_data = "\n$envoy/config/cluster/v3/filter.proto\x12\x17\x65nvoy.config.cluster.v3\x1a(envoy/config/core/v3/config_source.proto\x1a\x19google/protobuf/any.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\xb6\x01\n\x06\x46ilter\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12*\n\x0ctyped_config\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x45\n\x10\x63onfig_discovery\x18\x03 \x01(\x0b\x32+.envoy.config.core.v3.ExtensionConfigSource:\"\x9a\xc5\x88\x1e\x1d\n\x1b\x65nvoy.api.v2.cluster.FilterB\x88\x01\n%io.envoyproxy.envoy.config.cluster.v3B\x0b\x46ilterProtoP\x01ZHgithub.com/envoyproxy/go-control-plane/envoy/config/cluster/v3;clusterv3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3"
|
|
16
|
+
|
|
17
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
18
|
+
pool.add_serialized_file(descriptor_data)
|
|
19
|
+
|
|
20
|
+
module Envoy
|
|
21
|
+
module Config
|
|
22
|
+
module Cluster
|
|
23
|
+
module V3
|
|
24
|
+
Filter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.Filter").msgclass
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "envoy/config/core/v3/extension_pb"
|
|
9
|
+
require "google/protobuf/duration_pb"
|
|
10
|
+
require "google/protobuf/wrappers_pb"
|
|
11
|
+
require "udpa/annotations/status_pb"
|
|
12
|
+
require "udpa/annotations/versioning_pb"
|
|
13
|
+
require "validate/validate_pb"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
descriptor_data = "\n/envoy/config/cluster/v3/outlier_detection.proto\x12\x17\x65nvoy.config.cluster.v3\x1a$envoy/config/core/v3/extension.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\x93\x0e\n\x10OutlierDetection\x12\x35\n\x0f\x63onsecutive_5xx\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x35\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xfa\x42\x05\xaa\x01\x02*\x00\x12?\n\x12\x62\x61se_ejection_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xfa\x42\x05\xaa\x01\x02*\x00\x12\x43\n\x14max_ejection_percent\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12H\n\x19\x65nforcing_consecutive_5xx\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12\x45\n\x16\x65nforcing_success_rate\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12@\n\x1asuccess_rate_minimum_hosts\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x41\n\x1bsuccess_rate_request_volume\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12?\n\x19success_rate_stdev_factor\x18\t \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x41\n\x1b\x63onsecutive_gateway_failure\x18\n \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12T\n%enforcing_consecutive_gateway_failure\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12*\n\"split_external_local_origin_errors\x18\x0c \x01(\x08\x12\x46\n consecutive_local_origin_failure\x18\r \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12Y\n*enforcing_consecutive_local_origin_failure\x18\x0e \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12R\n#enforcing_local_origin_success_rate\x18\x0f \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12K\n\x1c\x66\x61ilure_percentage_threshold\x18\x10 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12K\n\x1c\x65nforcing_failure_percentage\x18\x11 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12X\n)enforcing_failure_percentage_local_origin\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x07\xfa\x42\x04*\x02\x18\x64\x12\x46\n failure_percentage_minimum_hosts\x18\x13 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12G\n!failure_percentage_request_volume\x18\x14 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12>\n\x11max_ejection_time\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xfa\x42\x05\xaa\x01\x02*\x00\x12;\n\x18max_ejection_time_jitter\x18\x16 \x01(\x0b\x32\x19.google.protobuf.Duration\x12O\n+successful_active_health_check_uneject_host\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x08monitors\x18\x18 \x03(\x0b\x32*.envoy.config.core.v3.TypedExtensionConfig\x12\x39\n\x15\x61lways_eject_one_host\x18\x19 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:,\x9a\xc5\x88\x1e\'\n%envoy.api.v2.cluster.OutlierDetectionB\x92\x01\n%io.envoyproxy.envoy.config.cluster.v3B\x15OutlierDetectionProtoP\x01ZHgithub.com/envoyproxy/go-control-plane/envoy/config/cluster/v3;clusterv3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3"
|
|
17
|
+
|
|
18
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
19
|
+
pool.add_serialized_file(descriptor_data)
|
|
20
|
+
|
|
21
|
+
module Envoy
|
|
22
|
+
module Config
|
|
23
|
+
module Cluster
|
|
24
|
+
module V3
|
|
25
|
+
OutlierDetection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.cluster.v3.OutlierDetection").msgclass
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "envoy/config/core/v3/extension_pb"
|
|
9
|
+
require "envoy/config/core/v3/socket_option_pb"
|
|
10
|
+
require "google/protobuf/wrappers_pb"
|
|
11
|
+
require "envoy/annotations/deprecation_pb"
|
|
12
|
+
require "udpa/annotations/status_pb"
|
|
13
|
+
require "udpa/annotations/versioning_pb"
|
|
14
|
+
require "validate/validate_pb"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
descriptor_data = "\n\"envoy/config/core/v3/address.proto\x12\x14\x65nvoy.config.core.v3\x1a$envoy/config/core/v3/extension.proto\x1a(envoy/config/core/v3/socket_option.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a#envoy/annotations/deprecation.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"T\n\x04Pipe\x12\x15\n\x04path\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x16\n\x04mode\x18\x02 \x01(\rB\x08\xfa\x42\x05*\x03\x18\xff\x03:\x1d\x9a\xc5\x88\x1e\x18\n\x16\x65nvoy.api.v2.core.Pipe\"j\n\x14\x45nvoyInternalAddress\x12\x1e\n\x14server_listener_name\x18\x01 \x01(\tH\x00\x12\x13\n\x0b\x65ndpoint_id\x18\x02 \x01(\tB\x1d\n\x16\x61\x64\x64ress_name_specifier\x12\x03\xf8\x42\x01\"\xd7\x02\n\rSocketAddress\x12H\n\x08protocol\x18\x01 \x01(\x0e\x32,.envoy.config.core.v3.SocketAddress.ProtocolB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x1f\n\nport_value\x18\x03 \x01(\rB\t\xfa\x42\x06*\x04\x18\xff\xff\x03H\x00\x12\x14\n\nnamed_port\x18\x04 \x01(\tH\x00\x12\x15\n\rresolver_name\x18\x05 \x01(\t\x12\x13\n\x0bipv4_compat\x18\x06 \x01(\x08\x12\"\n\x1anetwork_namespace_filepath\x18\x07 \x01(\t\"\x1c\n\x08Protocol\x12\x07\n\x03TCP\x10\x00\x12\x07\n\x03UDP\x10\x01:&\x9a\xc5\x88\x1e!\n\x1f\x65nvoy.api.v2.core.SocketAddressB\x15\n\x0eport_specifier\x12\x03\xf8\x42\x01\"\xdd\x01\n\x0cTcpKeepalive\x12\x36\n\x10keepalive_probes\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x34\n\x0ekeepalive_time\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x38\n\x12keepalive_interval\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value:%\x9a\xc5\x88\x1e \n\x1e\x65nvoy.api.v2.core.TcpKeepalive\"\x99\x01\n\x12\x45xtraSourceAddress\x12>\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32#.envoy.config.core.v3.SocketAddressB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x43\n\x0esocket_options\x18\x02 \x01(\x0b\x32+.envoy.config.core.v3.SocketOptionsOverride\"\xc5\x03\n\nBindConfig\x12;\n\x0esource_address\x18\x01 \x01(\x0b\x32#.envoy.config.core.v3.SocketAddress\x12,\n\x08\x66reebind\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12:\n\x0esocket_options\x18\x03 \x03(\x0b\x32\".envoy.config.core.v3.SocketOption\x12H\n\x16\x65xtra_source_addresses\x18\x05 \x03(\x0b\x32(.envoy.config.core.v3.ExtraSourceAddress\x12U\n\x1b\x61\x64\x64itional_source_addresses\x18\x04 \x03(\x0b\x32#.envoy.config.core.v3.SocketAddressB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12J\n\x16local_address_selector\x18\x06 \x01(\x0b\x32*.envoy.config.core.v3.TypedExtensionConfig:#\x9a\xc5\x88\x1e\x1e\n\x1c\x65nvoy.api.v2.core.BindConfig\"\xf4\x01\n\x07\x41\x64\x64ress\x12=\n\x0esocket_address\x18\x01 \x01(\x0b\x32#.envoy.config.core.v3.SocketAddressH\x00\x12*\n\x04pipe\x18\x02 \x01(\x0b\x32\x1a.envoy.config.core.v3.PipeH\x00\x12L\n\x16\x65nvoy_internal_address\x18\x03 \x01(\x0b\x32*.envoy.config.core.v3.EnvoyInternalAddressH\x00: \x9a\xc5\x88\x1e\x1b\n\x19\x65nvoy.api.v2.core.AddressB\x0e\n\x07\x61\x64\x64ress\x12\x03\xf8\x42\x01\"\x8c\x01\n\tCidrRange\x12\x1f\n\x0e\x61\x64\x64ress_prefix\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12:\n\nprefix_len\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x08\xfa\x42\x05*\x03\x18\x80\x01:\"\x9a\xc5\x88\x1e\x1d\n\x1b\x65nvoy.api.v2.core.CidrRangeB\x80\x01\n\"io.envoyproxy.envoy.config.core.v3B\x0c\x41\x64\x64ressProtoP\x01ZBgithub.com/envoyproxy/go-control-plane/envoy/config/core/v3;corev3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3"
|
|
18
|
+
|
|
19
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
20
|
+
pool.add_serialized_file(descriptor_data)
|
|
21
|
+
|
|
22
|
+
module Envoy
|
|
23
|
+
module Config
|
|
24
|
+
module Core
|
|
25
|
+
module V3
|
|
26
|
+
Pipe = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.Pipe").msgclass
|
|
27
|
+
EnvoyInternalAddress = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.EnvoyInternalAddress").msgclass
|
|
28
|
+
SocketAddress = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.SocketAddress").msgclass
|
|
29
|
+
SocketAddress::Protocol = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.SocketAddress.Protocol").enummodule
|
|
30
|
+
TcpKeepalive = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.TcpKeepalive").msgclass
|
|
31
|
+
ExtraSourceAddress = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.ExtraSourceAddress").msgclass
|
|
32
|
+
BindConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.BindConfig").msgclass
|
|
33
|
+
Address = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.Address").msgclass
|
|
34
|
+
CidrRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.CidrRange").msgclass
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "google/protobuf/duration_pb"
|
|
9
|
+
require "udpa/annotations/status_pb"
|
|
10
|
+
require "udpa/annotations/versioning_pb"
|
|
11
|
+
require "validate/validate_pb"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
descriptor_data = "\n\"envoy/config/core/v3/backoff.proto\x12\x14\x65nvoy.config.core.v3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\xb8\x01\n\x0f\x42\x61\x63koffStrategy\x12@\n\rbase_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0e\xfa\x42\x0b\xaa\x01\x08\x08\x01\x32\x04\x10\xc0\x84=\x12\x39\n\x0cmax_interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xfa\x42\x05\xaa\x01\x02*\x00:(\x9a\xc5\x88\x1e#\n!envoy.api.v2.core.BackoffStrategyB\x80\x01\n\"io.envoyproxy.envoy.config.core.v3B\x0c\x42\x61\x63koffProtoP\x01ZBgithub.com/envoyproxy/go-control-plane/envoy/config/core/v3;corev3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3"
|
|
15
|
+
|
|
16
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
17
|
+
pool.add_serialized_file(descriptor_data)
|
|
18
|
+
|
|
19
|
+
module Envoy
|
|
20
|
+
module Config
|
|
21
|
+
module Core
|
|
22
|
+
module V3
|
|
23
|
+
BackoffStrategy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.BackoffStrategy").msgclass
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "envoy/config/core/v3/address_pb"
|
|
9
|
+
require "envoy/config/core/v3/backoff_pb"
|
|
10
|
+
require "envoy/config/core/v3/http_uri_pb"
|
|
11
|
+
require "envoy/type/v3/percent_pb"
|
|
12
|
+
require "envoy/type/v3/semantic_version_pb"
|
|
13
|
+
require "google/protobuf/any_pb"
|
|
14
|
+
require "google/protobuf/struct_pb"
|
|
15
|
+
require "google/protobuf/wrappers_pb"
|
|
16
|
+
require "xds/core/v3/context_params_pb"
|
|
17
|
+
require "envoy/annotations/deprecation_pb"
|
|
18
|
+
require "udpa/annotations/migrate_pb"
|
|
19
|
+
require "udpa/annotations/status_pb"
|
|
20
|
+
require "udpa/annotations/versioning_pb"
|
|
21
|
+
require "validate/validate_pb"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
descriptor_data = "\n\x1f\x65nvoy/config/core/v3/base.proto\x12\x14\x65nvoy.config.core.v3\x1a\"envoy/config/core/v3/address.proto\x1a\"envoy/config/core/v3/backoff.proto\x1a#envoy/config/core/v3/http_uri.proto\x1a\x1b\x65nvoy/type/v3/percent.proto\x1a$envoy/type/v3/semantic_version.proto\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a xds/core/v3/context_params.proto\x1a#envoy/annotations/deprecation.proto\x1a\x1eudpa/annotations/migrate.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"]\n\x08Locality\x12\x0e\n\x06region\x18\x01 \x01(\t\x12\x0c\n\x04zone\x18\x02 \x01(\t\x12\x10\n\x08sub_zone\x18\x03 \x01(\t:!\x9a\xc5\x88\x1e\x1c\n\x1a\x65nvoy.api.v2.core.Locality\"\x91\x01\n\x0c\x42uildVersion\x12/\n\x07version\x18\x01 \x01(\x0b\x32\x1e.envoy.type.v3.SemanticVersion\x12)\n\x08metadata\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:%\x9a\xc5\x88\x1e \n\x1e\x65nvoy.api.v2.core.BuildVersion\"\xcf\x01\n\tExtension\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x02 \x01(\t\x12$\n\x0ftype_descriptor\x18\x03 \x01(\tB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12\x33\n\x07version\x18\x04 \x01(\x0b\x32\".envoy.config.core.v3.BuildVersion\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x11\n\ttype_urls\x18\x06 \x03(\t:\"\x9a\xc5\x88\x1e\x1d\n\x1b\x65nvoy.api.v2.core.Extension\"\x8a\x05\n\x04Node\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x63luster\x18\x02 \x01(\t\x12)\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12M\n\x12\x64ynamic_parameters\x18\x0c \x03(\x0b\x32\x31.envoy.config.core.v3.Node.DynamicParametersEntry\x12\x30\n\x08locality\x18\x04 \x01(\x0b\x32\x1e.envoy.config.core.v3.Locality\x12\x17\n\x0fuser_agent_name\x18\x06 \x01(\t\x12\x1c\n\x12user_agent_version\x18\x07 \x01(\tH\x00\x12\x46\n\x18user_agent_build_version\x18\x08 \x01(\x0b\x32\".envoy.config.core.v3.BuildVersionH\x00\x12\x33\n\nextensions\x18\t \x03(\x0b\x32\x1f.envoy.config.core.v3.Extension\x12\x17\n\x0f\x63lient_features\x18\n \x03(\t\x12G\n\x13listening_addresses\x18\x0b \x03(\x0b\x32\x1d.envoy.config.core.v3.AddressB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x1aT\n\x16\x44ynamicParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.xds.core.v3.ContextParams:\x02\x38\x01:\x1d\x9a\xc5\x88\x1e\x18\n\x16\x65nvoy.api.v2.core.NodeB\x19\n\x17user_agent_version_typeJ\x04\x08\x05\x10\x06R\rbuild_version\"\x90\x03\n\x08Metadata\x12Y\n\x0f\x66ilter_metadata\x18\x01 \x03(\x0b\x32\x32.envoy.config.core.v3.Metadata.FilterMetadataEntryB\x0c\xfa\x42\t\x9a\x01\x06\"\x04r\x02\x10\x01\x12\x64\n\x15typed_filter_metadata\x18\x02 \x03(\x0b\x32\x37.envoy.config.core.v3.Metadata.TypedFilterMetadataEntryB\x0c\xfa\x42\t\x9a\x01\x06\"\x04r\x02\x10\x01\x1aN\n\x13\x46ilterMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\x1aP\n\x18TypedFilterMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any:\x02\x38\x01:!\x9a\xc5\x88\x1e\x1c\n\x1a\x65nvoy.api.v2.core.Metadata\"c\n\rRuntimeUInt32\x12\x15\n\rdefault_value\x18\x02 \x01(\r\x12\x13\n\x0bruntime_key\x18\x03 \x01(\t:&\x9a\xc5\x88\x1e!\n\x1f\x65nvoy.api.v2.core.RuntimeUInt32\"T\n\x0eRuntimePercent\x12-\n\rdefault_value\x18\x01 \x01(\x0b\x32\x16.envoy.type.v3.Percent\x12\x13\n\x0bruntime_key\x18\x02 \x01(\t\"c\n\rRuntimeDouble\x12\x15\n\rdefault_value\x18\x01 \x01(\x01\x12\x13\n\x0bruntime_key\x18\x02 \x01(\t:&\x9a\xc5\x88\x1e!\n\x1f\x65nvoy.api.v2.core.RuntimeDouble\"\x93\x01\n\x12RuntimeFeatureFlag\x12;\n\rdefault_value\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x13\n\x0bruntime_key\x18\x02 \x01(\t:+\x9a\xc5\x88\x1e&\n$envoy.api.v2.core.RuntimeFeatureFlag\"K\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\tB\x16\x18\x01\xfa\x42\x08r\x06\x10\x01(\x80\x80\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12\x1a\n\x05value\x18\x02 \x01(\x0c\x42\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\"O\n\x0cKeyValuePair\x12\x18\n\x03key\x18\x01 \x01(\tB\x0b\xfa\x42\x08r\x06\x10\x01(\x80\x80\x01\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\"\xde\x02\n\x0eKeyValueAppend\x12\x32\n\x06record\x18\x03 \x01(\x0b\x32\".envoy.config.core.v3.KeyValuePair\x12\x42\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1e.envoy.config.core.v3.KeyValueB\x13\x18\x01\xfa\x42\x05\x8a\x01\x02\x08\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12S\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\x39.envoy.config.core.v3.KeyValueAppend.KeyValueAppendActionB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\"\x7f\n\x14KeyValueAppendAction\x12\x1b\n\x17\x41PPEND_IF_EXISTS_OR_ADD\x10\x00\x12\x11\n\rADD_IF_ABSENT\x10\x01\x12\x1e\n\x1aOVERWRITE_IF_EXISTS_OR_ADD\x10\x02\x12\x17\n\x13OVERWRITE_IF_EXISTS\x10\x03\"c\n\x10KeyValueMutation\x12\x34\n\x06\x61ppend\x18\x01 \x01(\x0b\x32$.envoy.config.core.v3.KeyValueAppend\x12\x19\n\x06remove\x18\x02 \x01(\tB\t\xfa\x42\x06r\x04(\x80\x80\x01\"5\n\x0eQueryParameter\x12\x14\n\x03key\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\r\n\x05value\x18\x02 \x01(\t\"\xb7\x01\n\x0bHeaderValue\x12\x1e\n\x03key\x18\x01 \x01(\tB\x11\xfa\x42\x0er\x0c\x10\x01(\x80\x80\x01\xc0\x01\x01\xc8\x01\x00\x12\x30\n\x05value\x18\x02 \x01(\tB!\xfa\x42\x0cr\n(\x80\x80\x01\xc0\x01\x02\xc8\x01\x00\xf2\x98\xfe\x8f\x05\x0c\x12\nvalue_type\x12\x30\n\traw_value\x18\x03 \x01(\x0c\x42\x1d\xfa\x42\x08z\x06\x10\x00\x18\x80\x80\x01\xf2\x98\xfe\x8f\x05\x0c\x12\nvalue_type:$\x9a\xc5\x88\x1e\x1f\n\x1d\x65nvoy.api.v2.core.HeaderValue\"\xab\x03\n\x11HeaderValueOption\x12;\n\x06header\x18\x01 \x01(\x0b\x32!.envoy.config.core.v3.HeaderValueB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x37\n\x06\x61ppend\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x0b\x18\x01\x92\xc7\x86\xd8\x04\x03\x33.0\x12[\n\rappend_action\x18\x03 \x01(\x0e\x32:.envoy.config.core.v3.HeaderValueOption.HeaderAppendActionB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\x18\n\x10keep_empty_value\x18\x04 \x01(\x08\"}\n\x12HeaderAppendAction\x12\x1b\n\x17\x41PPEND_IF_EXISTS_OR_ADD\x10\x00\x12\x11\n\rADD_IF_ABSENT\x10\x01\x12\x1e\n\x1aOVERWRITE_IF_EXISTS_OR_ADD\x10\x02\x12\x17\n\x13OVERWRITE_IF_EXISTS\x10\x03:*\x9a\xc5\x88\x1e%\n#envoy.api.v2.core.HeaderValueOption\"c\n\tHeaderMap\x12\x32\n\x07headers\x18\x01 \x03(\x0b\x32!.envoy.config.core.v3.HeaderValue:\"\x9a\xc5\x88\x1e\x1d\n\x1b\x65nvoy.api.v2.core.HeaderMap\")\n\x10WatchedDirectory\x12\x15\n\x04path\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\"\xfd\x01\n\nDataSource\x12\x1b\n\x08\x66ilename\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x16\n\x0cinline_bytes\x18\x02 \x01(\x0cH\x00\x12\x17\n\rinline_string\x18\x03 \x01(\tH\x00\x12\'\n\x14\x65nvironment_variable\x18\x04 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x41\n\x11watched_directory\x18\x05 \x01(\x0b\x32&.envoy.config.core.v3.WatchedDirectory:#\x9a\xc5\x88\x1e\x1e\n\x1c\x65nvoy.api.v2.core.DataSourceB\x10\n\tspecifier\x12\x03\xf8\x42\x01\"\xe3\x04\n\x0bRetryPolicy\x12=\n\x0eretry_back_off\x18\x01 \x01(\x0b\x32%.envoy.config.core.v3.BackoffStrategy\x12\x46\n\x0bnum_retries\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueB\x13\xf2\x98\xfe\x8f\x05\r\n\x0bmax_retries\x12\x10\n\x08retry_on\x18\x03 \x01(\t\x12G\n\x0eretry_priority\x18\x04 \x01(\x0b\x32/.envoy.config.core.v3.RetryPolicy.RetryPriority\x12R\n\x14retry_host_predicate\x18\x05 \x03(\x0b\x32\x34.envoy.config.core.v3.RetryPolicy.RetryHostPredicate\x12)\n!host_selection_retry_max_attempts\x18\x06 \x01(\x03\x1a\x63\n\rRetryPriority\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12,\n\x0ctyped_config\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\r\n\x0b\x63onfig_type\x1ah\n\x12RetryHostPredicate\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12,\n\x0ctyped_config\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\r\n\x0b\x63onfig_type:$\x9a\xc5\x88\x1e\x1f\n\x1d\x65nvoy.api.v2.core.RetryPolicy\"\xca\x01\n\x10RemoteDataSource\x12\x39\n\x08http_uri\x18\x01 \x01(\x0b\x32\x1d.envoy.config.core.v3.HttpUriB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x17\n\x06sha256\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x37\n\x0cretry_policy\x18\x03 \x01(\x0b\x32!.envoy.config.core.v3.RetryPolicy:)\x9a\xc5\x88\x1e$\n\"envoy.api.v2.core.RemoteDataSource\"\xba\x01\n\x0f\x41syncDataSource\x12\x31\n\x05local\x18\x01 \x01(\x0b\x32 .envoy.config.core.v3.DataSourceH\x00\x12\x38\n\x06remote\x18\x02 \x01(\x0b\x32&.envoy.config.core.v3.RemoteDataSourceH\x00:(\x9a\xc5\x88\x1e#\n!envoy.api.v2.core.AsyncDataSourceB\x10\n\tspecifier\x12\x03\xf8\x42\x01\"\x9d\x01\n\x0fTransportSocket\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12,\n\x0ctyped_config\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00:(\x9a\xc5\x88\x1e#\n!envoy.api.v2.core.TransportSocketB\r\n\x0b\x63onfig_typeJ\x04\x08\x02\x10\x03R\x06\x63onfig\"\xa5\x01\n\x18RuntimeFractionalPercent\x12\x41\n\rdefault_value\x18\x01 \x01(\x0b\x32 .envoy.type.v3.FractionalPercentB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x13\n\x0bruntime_key\x18\x02 \x01(\t:1\x9a\xc5\x88\x1e,\n*envoy.api.v2.core.RuntimeFractionalPercent\"I\n\x0c\x43ontrolPlane\x12\x12\n\nidentifier\x18\x01 \x01(\t:%\x9a\xc5\x88\x1e \n\x1e\x65nvoy.api.v2.core.ControlPlane*(\n\x0fRoutingPriority\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x08\n\x04HIGH\x10\x01*\x89\x01\n\rRequestMethod\x12\x16\n\x12METHOD_UNSPECIFIED\x10\x00\x12\x07\n\x03GET\x10\x01\x12\x08\n\x04HEAD\x10\x02\x12\x08\n\x04POST\x10\x03\x12\x07\n\x03PUT\x10\x04\x12\n\n\x06\x44\x45LETE\x10\x05\x12\x0b\n\x07\x43ONNECT\x10\x06\x12\x0b\n\x07OPTIONS\x10\x07\x12\t\n\x05TRACE\x10\x08\x12\t\n\x05PATCH\x10\t*>\n\x10TrafficDirection\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07INBOUND\x10\x01\x12\x0c\n\x08OUTBOUND\x10\x02\x42}\n\"io.envoyproxy.envoy.config.core.v3B\tBaseProtoP\x01ZBgithub.com/envoyproxy/go-control-plane/envoy/config/core/v3;corev3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3"
|
|
25
|
+
|
|
26
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
27
|
+
pool.add_serialized_file(descriptor_data)
|
|
28
|
+
|
|
29
|
+
module Envoy
|
|
30
|
+
module Config
|
|
31
|
+
module Core
|
|
32
|
+
module V3
|
|
33
|
+
Locality = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.Locality").msgclass
|
|
34
|
+
BuildVersion = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.BuildVersion").msgclass
|
|
35
|
+
Extension = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.Extension").msgclass
|
|
36
|
+
Node = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.Node").msgclass
|
|
37
|
+
Metadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.Metadata").msgclass
|
|
38
|
+
RuntimeUInt32 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RuntimeUInt32").msgclass
|
|
39
|
+
RuntimePercent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RuntimePercent").msgclass
|
|
40
|
+
RuntimeDouble = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RuntimeDouble").msgclass
|
|
41
|
+
RuntimeFeatureFlag = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RuntimeFeatureFlag").msgclass
|
|
42
|
+
KeyValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.KeyValue").msgclass
|
|
43
|
+
KeyValuePair = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.KeyValuePair").msgclass
|
|
44
|
+
KeyValueAppend = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.KeyValueAppend").msgclass
|
|
45
|
+
KeyValueAppend::KeyValueAppendAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.KeyValueAppend.KeyValueAppendAction").enummodule
|
|
46
|
+
KeyValueMutation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.KeyValueMutation").msgclass
|
|
47
|
+
QueryParameter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.QueryParameter").msgclass
|
|
48
|
+
HeaderValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.HeaderValue").msgclass
|
|
49
|
+
HeaderValueOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.HeaderValueOption").msgclass
|
|
50
|
+
HeaderValueOption::HeaderAppendAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.HeaderValueOption.HeaderAppendAction").enummodule
|
|
51
|
+
HeaderMap = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.HeaderMap").msgclass
|
|
52
|
+
WatchedDirectory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.WatchedDirectory").msgclass
|
|
53
|
+
DataSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.DataSource").msgclass
|
|
54
|
+
RetryPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RetryPolicy").msgclass
|
|
55
|
+
RetryPolicy::RetryPriority = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RetryPolicy.RetryPriority").msgclass
|
|
56
|
+
RetryPolicy::RetryHostPredicate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RetryPolicy.RetryHostPredicate").msgclass
|
|
57
|
+
RemoteDataSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RemoteDataSource").msgclass
|
|
58
|
+
AsyncDataSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.AsyncDataSource").msgclass
|
|
59
|
+
TransportSocket = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.TransportSocket").msgclass
|
|
60
|
+
RuntimeFractionalPercent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RuntimeFractionalPercent").msgclass
|
|
61
|
+
ControlPlane = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.ControlPlane").msgclass
|
|
62
|
+
RoutingPriority = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RoutingPriority").enummodule
|
|
63
|
+
RequestMethod = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.RequestMethod").enummodule
|
|
64
|
+
TrafficDirection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.TrafficDirection").enummodule
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Released under the MIT License.
|
|
4
|
+
# Copyright, 2026, by Samuel Williams.
|
|
5
|
+
|
|
6
|
+
require "google/protobuf"
|
|
7
|
+
|
|
8
|
+
require "udpa/annotations/status_pb"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
descriptor_data = "\n\x1e\x65nvoy/config/core/v3/cel.proto\x12\x14\x65nvoy.config.core.v3\x1a\x1dudpa/annotations/status.proto\"v\n\x13\x43\x65lExpressionConfig\x12 \n\x18\x65nable_string_conversion\x18\x01 \x01(\x08\x12\x1c\n\x14\x65nable_string_concat\x18\x02 \x01(\x08\x12\x1f\n\x17\x65nable_string_functions\x18\x03 \x01(\x08\x42|\n\"io.envoyproxy.envoy.config.core.v3B\x08\x43\x65lProtoP\x01ZBgithub.com/envoyproxy/go-control-plane/envoy/config/core/v3;corev3\xba\x80\xc8\xd1\x06\x02\x10\x02\x62\x06proto3"
|
|
12
|
+
|
|
13
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
14
|
+
pool.add_serialized_file(descriptor_data)
|
|
15
|
+
|
|
16
|
+
module Envoy
|
|
17
|
+
module Config
|
|
18
|
+
module Core
|
|
19
|
+
module V3
|
|
20
|
+
CelExpressionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("envoy.config.core.v3.CelExpressionConfig").msgclass
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|