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,46 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.annotations.v3;
|
|
4
|
+
|
|
5
|
+
import "google/protobuf/descriptor.proto";
|
|
6
|
+
|
|
7
|
+
option go_package = "github.com/cncf/xds/go/xds/annotations/v3";
|
|
8
|
+
|
|
9
|
+
// Magic number in this file derived from top 28bit of SHA256 digest of
|
|
10
|
+
// "xds.annotation.v3.migrate".
|
|
11
|
+
extend google.protobuf.MessageOptions {
|
|
12
|
+
MigrateAnnotation message_migrate = 112948430;
|
|
13
|
+
}
|
|
14
|
+
extend google.protobuf.FieldOptions {
|
|
15
|
+
FieldMigrateAnnotation field_migrate = 112948430;
|
|
16
|
+
}
|
|
17
|
+
extend google.protobuf.EnumOptions {
|
|
18
|
+
MigrateAnnotation enum_migrate = 112948430;
|
|
19
|
+
}
|
|
20
|
+
extend google.protobuf.EnumValueOptions {
|
|
21
|
+
MigrateAnnotation enum_value_migrate = 112948430;
|
|
22
|
+
}
|
|
23
|
+
extend google.protobuf.FileOptions {
|
|
24
|
+
FileMigrateAnnotation file_migrate = 112948430;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
message MigrateAnnotation {
|
|
28
|
+
// Rename the message/enum/enum value in next version.
|
|
29
|
+
string rename = 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
message FieldMigrateAnnotation {
|
|
33
|
+
// Rename the field in next version.
|
|
34
|
+
string rename = 1;
|
|
35
|
+
|
|
36
|
+
// Add the field to a named oneof in next version. If this already exists, the
|
|
37
|
+
// field will join its siblings under the oneof, otherwise a new oneof will be
|
|
38
|
+
// created with the given name.
|
|
39
|
+
string oneof_promotion = 2;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
message FileMigrateAnnotation {
|
|
43
|
+
// Move all types in the file to another package, this implies changing proto
|
|
44
|
+
// file path.
|
|
45
|
+
string move_to_package = 2;
|
|
46
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.annotations.v3;
|
|
4
|
+
|
|
5
|
+
import "xds/annotations/v3/status.proto";
|
|
6
|
+
|
|
7
|
+
import "google/protobuf/descriptor.proto";
|
|
8
|
+
|
|
9
|
+
option go_package = "github.com/cncf/xds/go/xds/annotations/v3";
|
|
10
|
+
|
|
11
|
+
// All annotations in this file are experimental and subject to change. Their
|
|
12
|
+
// only consumer today is the Envoy APIs and SecuritAnnotationValidator protoc
|
|
13
|
+
// plugin in this repository.
|
|
14
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
15
|
+
|
|
16
|
+
extend google.protobuf.FieldOptions {
|
|
17
|
+
// Magic number is the 28 most significant bits in the sha256sum of
|
|
18
|
+
// "xds.annotations.v3.security".
|
|
19
|
+
FieldSecurityAnnotation security = 99044135;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// These annotations indicate metadata for the purpose of understanding the
|
|
23
|
+
// security significance of fields.
|
|
24
|
+
message FieldSecurityAnnotation {
|
|
25
|
+
// Field should be set in the presence of untrusted downstreams.
|
|
26
|
+
bool configure_for_untrusted_downstream = 1;
|
|
27
|
+
|
|
28
|
+
// Field should be set in the presence of untrusted upstreams.
|
|
29
|
+
bool configure_for_untrusted_upstream = 2;
|
|
30
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.annotations.v3;
|
|
4
|
+
|
|
5
|
+
import "google/protobuf/descriptor.proto";
|
|
6
|
+
|
|
7
|
+
option go_package = "github.com/cncf/xds/go/xds/annotations/v3";
|
|
8
|
+
|
|
9
|
+
extend google.protobuf.FieldOptions {
|
|
10
|
+
// Magic number is the 28 most significant bits in the sha256sum of "xds.annotations.v3.sensitive".
|
|
11
|
+
// When set to true, `sensitive` indicates that this field contains sensitive data, such as
|
|
12
|
+
// personally identifiable information, passwords, or private keys, and should be redacted for
|
|
13
|
+
// display by tools aware of this annotation. Note that that this has no effect on standard
|
|
14
|
+
// Protobuf functions such as `TextFormat::PrintToString`.
|
|
15
|
+
bool sensitive = 61008053;
|
|
16
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.annotations.v3;
|
|
4
|
+
|
|
5
|
+
import "google/protobuf/descriptor.proto";
|
|
6
|
+
|
|
7
|
+
option go_package = "github.com/cncf/xds/go/xds/annotations/v3";
|
|
8
|
+
|
|
9
|
+
// Magic number in this file derived from top 28bit of SHA256 digest of
|
|
10
|
+
// "xds.annotations.v3.status".
|
|
11
|
+
extend google.protobuf.FileOptions {
|
|
12
|
+
FileStatusAnnotation file_status = 226829418;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
extend google.protobuf.MessageOptions {
|
|
16
|
+
MessageStatusAnnotation message_status = 226829418;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
extend google.protobuf.FieldOptions {
|
|
20
|
+
FieldStatusAnnotation field_status = 226829418;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
message FileStatusAnnotation {
|
|
24
|
+
// The entity is work-in-progress and subject to breaking changes.
|
|
25
|
+
bool work_in_progress = 1;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
message MessageStatusAnnotation {
|
|
29
|
+
// The entity is work-in-progress and subject to breaking changes.
|
|
30
|
+
bool work_in_progress = 1;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
message FieldStatusAnnotation {
|
|
34
|
+
// The entity is work-in-progress and subject to breaking changes.
|
|
35
|
+
bool work_in_progress = 1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
enum PackageVersionStatus {
|
|
39
|
+
// Unknown package version status.
|
|
40
|
+
UNKNOWN = 0;
|
|
41
|
+
|
|
42
|
+
// This version of the package is frozen.
|
|
43
|
+
FROZEN = 1;
|
|
44
|
+
|
|
45
|
+
// This version of the package is the active development version.
|
|
46
|
+
ACTIVE = 2;
|
|
47
|
+
|
|
48
|
+
// This version of the package is the candidate for the next major version. It
|
|
49
|
+
// is typically machine generated from the active development version.
|
|
50
|
+
NEXT_MAJOR_VERSION_CANDIDATE = 3;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
message StatusAnnotation {
|
|
54
|
+
// The entity is work-in-progress and subject to breaking changes.
|
|
55
|
+
bool work_in_progress = 1;
|
|
56
|
+
|
|
57
|
+
// The entity belongs to a package with the given version status.
|
|
58
|
+
PackageVersionStatus package_version_status = 2;
|
|
59
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.annotations.v3;
|
|
4
|
+
|
|
5
|
+
import "google/protobuf/descriptor.proto";
|
|
6
|
+
|
|
7
|
+
option go_package = "github.com/cncf/xds/go/xds/annotations/v3";
|
|
8
|
+
|
|
9
|
+
extend google.protobuf.MessageOptions {
|
|
10
|
+
// Magic number is the 28 most significant bits in the sha256sum of
|
|
11
|
+
// "xds.annotations.v3.versioning".
|
|
12
|
+
VersioningAnnotation versioning = 92389011;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
message VersioningAnnotation {
|
|
16
|
+
// Track the previous message type. E.g. this message might be
|
|
17
|
+
// xds.foo.v3alpha.Foo and it was previously xds.bar.v2.Bar. This
|
|
18
|
+
// information is consumed by UDPA via proto descriptors.
|
|
19
|
+
string previous_message_type = 1;
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.core.v3;
|
|
4
|
+
|
|
5
|
+
import "xds/annotations/v3/status.proto";
|
|
6
|
+
|
|
7
|
+
import "validate/validate.proto";
|
|
8
|
+
|
|
9
|
+
option java_outer_classname = "AuthorityProto";
|
|
10
|
+
option java_multiple_files = true;
|
|
11
|
+
option java_package = "com.github.xds.core.v3";
|
|
12
|
+
option go_package = "github.com/cncf/xds/go/xds/core/v3";
|
|
13
|
+
|
|
14
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
15
|
+
|
|
16
|
+
// xDS authority information.
|
|
17
|
+
message Authority {
|
|
18
|
+
string name = 1 [(validate.rules).string = {min_len: 1}];
|
|
19
|
+
|
|
20
|
+
// .. space reserved for additional authority addressing information, e.g. for
|
|
21
|
+
// resource signing, items such as CA trust chain, cert pinning may be added.
|
|
22
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.core.v3;
|
|
4
|
+
|
|
5
|
+
import "xds/annotations/v3/status.proto";
|
|
6
|
+
import "google/protobuf/wrappers.proto";
|
|
7
|
+
|
|
8
|
+
import "validate/validate.proto";
|
|
9
|
+
|
|
10
|
+
option java_outer_classname = "CidrRangeProto";
|
|
11
|
+
option java_multiple_files = true;
|
|
12
|
+
option java_package = "com.github.xds.core.v3";
|
|
13
|
+
option go_package = "github.com/cncf/xds/go/xds/core/v3";
|
|
14
|
+
|
|
15
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
16
|
+
|
|
17
|
+
// CidrRange specifies an IP Address and a prefix length to construct
|
|
18
|
+
// the subnet mask for a `CIDR <https://tools.ietf.org/html/rfc4632>`_ range.
|
|
19
|
+
message CidrRange {
|
|
20
|
+
// IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
|
|
21
|
+
string address_prefix = 1 [(validate.rules).string = {min_len: 1}];
|
|
22
|
+
|
|
23
|
+
// Length of prefix, e.g. 0, 32. Defaults to 0 when unset.
|
|
24
|
+
google.protobuf.UInt32Value prefix_len = 2 [(validate.rules).uint32 = {lte: 128}];
|
|
25
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.core.v3;
|
|
4
|
+
|
|
5
|
+
import "google/protobuf/any.proto";
|
|
6
|
+
|
|
7
|
+
import "xds/annotations/v3/status.proto";
|
|
8
|
+
import "xds/core/v3/resource_locator.proto";
|
|
9
|
+
|
|
10
|
+
import "validate/validate.proto";
|
|
11
|
+
|
|
12
|
+
option java_outer_classname = "CollectionEntryProto";
|
|
13
|
+
option java_multiple_files = true;
|
|
14
|
+
option java_package = "com.github.xds.core.v3";
|
|
15
|
+
option go_package = "github.com/cncf/xds/go/xds/core/v3";
|
|
16
|
+
|
|
17
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
18
|
+
|
|
19
|
+
// xDS collection resource wrapper. This encapsulates a xDS resource when
|
|
20
|
+
// appearing inside a list collection resource. List collection resources are
|
|
21
|
+
// regular Resource messages of type:
|
|
22
|
+
//
|
|
23
|
+
// .. code-block:: proto
|
|
24
|
+
//
|
|
25
|
+
// message <T>Collection {
|
|
26
|
+
// repeated CollectionEntry resources = 1;
|
|
27
|
+
// }
|
|
28
|
+
//
|
|
29
|
+
message CollectionEntry {
|
|
30
|
+
// Inlined resource entry.
|
|
31
|
+
message InlineEntry {
|
|
32
|
+
// Optional name to describe the inlined resource. Resource names must match
|
|
33
|
+
// ``[a-zA-Z0-9_-\./]+`` (TODO(htuch): turn this into a PGV constraint once
|
|
34
|
+
// finalized, probably should be a RFC3986 pchar). This name allows
|
|
35
|
+
// reference via the #entry directive in ResourceLocator.
|
|
36
|
+
string name = 1 [(validate.rules).string.pattern = "^[0-9a-zA-Z_\\-\\.~:]+$"];
|
|
37
|
+
|
|
38
|
+
// The resource's logical version. It is illegal to have the same named xDS
|
|
39
|
+
// resource name at a given version with different resource payloads.
|
|
40
|
+
string version = 2;
|
|
41
|
+
|
|
42
|
+
// The resource payload, including type URL.
|
|
43
|
+
google.protobuf.Any resource = 3;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
oneof resource_specifier {
|
|
47
|
+
option (validate.required) = true;
|
|
48
|
+
|
|
49
|
+
// A resource locator describing how the member resource is to be located.
|
|
50
|
+
ResourceLocator locator = 1;
|
|
51
|
+
|
|
52
|
+
// The resource is inlined in the list collection.
|
|
53
|
+
InlineEntry inline_entry = 2;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.core.v3;
|
|
4
|
+
|
|
5
|
+
import "xds/annotations/v3/status.proto";
|
|
6
|
+
|
|
7
|
+
option java_outer_classname = "ContextParamsProto";
|
|
8
|
+
option java_multiple_files = true;
|
|
9
|
+
option java_package = "com.github.xds.core.v3";
|
|
10
|
+
option go_package = "github.com/cncf/xds/go/xds/core/v3";
|
|
11
|
+
|
|
12
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
13
|
+
|
|
14
|
+
// Additional parameters that can be used to select resource variants. These include any
|
|
15
|
+
// global context parameters, per-resource type client feature capabilities and per-resource
|
|
16
|
+
// type functional attributes. All per-resource type attributes will be `xds.resource.`
|
|
17
|
+
// prefixed and some of these are documented below:
|
|
18
|
+
//
|
|
19
|
+
// `xds.resource.listening_address`: The value is "IP:port" (e.g. "10.1.1.3:8080") which is
|
|
20
|
+
// the listening address of a Listener. Used in a Listener resource query.
|
|
21
|
+
message ContextParams {
|
|
22
|
+
map<string, string> params = 1;
|
|
23
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.core.v3;
|
|
4
|
+
|
|
5
|
+
option java_outer_classname = "ExtensionProto";
|
|
6
|
+
option java_multiple_files = true;
|
|
7
|
+
option java_package = "com.github.xds.core.v3";
|
|
8
|
+
option go_package = "github.com/cncf/xds/go/xds/core/v3";
|
|
9
|
+
|
|
10
|
+
import "validate/validate.proto";
|
|
11
|
+
import "google/protobuf/any.proto";
|
|
12
|
+
|
|
13
|
+
// Message type for extension configuration.
|
|
14
|
+
message TypedExtensionConfig {
|
|
15
|
+
// The name of an extension. This is not used to select the extension, instead
|
|
16
|
+
// it serves the role of an opaque identifier.
|
|
17
|
+
string name = 1 [(validate.rules).string = {min_len: 1}];
|
|
18
|
+
|
|
19
|
+
// The typed config for the extension. The type URL will be used to identify
|
|
20
|
+
// the extension. In the case that the type URL is *xds.type.v3.TypedStruct*
|
|
21
|
+
// (or, for historical reasons, *udpa.type.v1.TypedStruct*), the inner type
|
|
22
|
+
// URL of *TypedStruct* will be utilized. See the
|
|
23
|
+
// :ref:`extension configuration overview
|
|
24
|
+
// <config_overview_extension_configuration>` for further details.
|
|
25
|
+
google.protobuf.Any typed_config = 2 [(validate.rules).any = {required: true}];
|
|
26
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.core.v3;
|
|
4
|
+
|
|
5
|
+
import "google/protobuf/any.proto";
|
|
6
|
+
|
|
7
|
+
import "xds/annotations/v3/status.proto";
|
|
8
|
+
import "xds/core/v3/resource_name.proto";
|
|
9
|
+
|
|
10
|
+
option java_outer_classname = "ResourceProto";
|
|
11
|
+
option java_multiple_files = true;
|
|
12
|
+
option java_package = "com.github.xds.core.v3";
|
|
13
|
+
option go_package = "github.com/cncf/xds/go/xds/core/v3";
|
|
14
|
+
|
|
15
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
16
|
+
|
|
17
|
+
// xDS resource wrapper. This encapsulates a xDS resource when appearing in an
|
|
18
|
+
// xDS transport discovery response or when accessed as a filesystem object.
|
|
19
|
+
message Resource {
|
|
20
|
+
// Resource name. This may be omitted for filesystem resources.
|
|
21
|
+
ResourceName name = 1;
|
|
22
|
+
|
|
23
|
+
// The resource's logical version. It is illegal to have the same named xDS
|
|
24
|
+
// resource name at a given version with different resource payloads.
|
|
25
|
+
string version = 2;
|
|
26
|
+
|
|
27
|
+
// The resource payload, including type URL.
|
|
28
|
+
google.protobuf.Any resource = 3;
|
|
29
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.core.v3;
|
|
4
|
+
|
|
5
|
+
import "xds/annotations/v3/status.proto";
|
|
6
|
+
import "xds/core/v3/context_params.proto";
|
|
7
|
+
|
|
8
|
+
import "validate/validate.proto";
|
|
9
|
+
|
|
10
|
+
option java_outer_classname = "ResourceLocatorProto";
|
|
11
|
+
option java_multiple_files = true;
|
|
12
|
+
option java_package = "com.github.xds.core.v3";
|
|
13
|
+
option go_package = "github.com/cncf/xds/go/xds/core/v3";
|
|
14
|
+
|
|
15
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
16
|
+
|
|
17
|
+
// xDS resource locators identify a xDS resource name and instruct the
|
|
18
|
+
// data-plane load balancer on how the resource may be located.
|
|
19
|
+
//
|
|
20
|
+
// Resource locators have a canonical xdstp:// URI representation:
|
|
21
|
+
//
|
|
22
|
+
// xdstp://{authority}/{type_url}/{id}?{context_params}{#directive,*}
|
|
23
|
+
//
|
|
24
|
+
// where context_params take the form of URI query parameters.
|
|
25
|
+
//
|
|
26
|
+
// Resource locators have a similar canonical http:// URI representation:
|
|
27
|
+
//
|
|
28
|
+
// http://{authority}/{type_url}/{id}?{context_params}{#directive,*}
|
|
29
|
+
//
|
|
30
|
+
// Resource locators also have a simplified file:// URI representation:
|
|
31
|
+
//
|
|
32
|
+
// file:///{id}{#directive,*}
|
|
33
|
+
//
|
|
34
|
+
message ResourceLocator {
|
|
35
|
+
enum Scheme {
|
|
36
|
+
XDSTP = 0;
|
|
37
|
+
HTTP = 1;
|
|
38
|
+
FILE = 2;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// URI scheme.
|
|
42
|
+
Scheme scheme = 1 [(validate.rules).enum = {defined_only: true}];
|
|
43
|
+
|
|
44
|
+
// Opaque identifier for the resource. Any '/' will not be escaped during URI
|
|
45
|
+
// encoding and will form part of the URI path. This may end
|
|
46
|
+
// with ‘*’ for glob collection references.
|
|
47
|
+
string id = 2;
|
|
48
|
+
|
|
49
|
+
// Logical authority for resource (not necessarily transport network address).
|
|
50
|
+
// Authorities are opaque in the xDS API, data-plane load balancers will map
|
|
51
|
+
// them to concrete network transports such as an xDS management server, e.g.
|
|
52
|
+
// via envoy.config.core.v3.ConfigSource.
|
|
53
|
+
string authority = 3;
|
|
54
|
+
|
|
55
|
+
// Fully qualified resource type (as in type URL without types.googleapis.com/
|
|
56
|
+
// prefix).
|
|
57
|
+
string resource_type = 4 [(validate.rules).string = {min_len: 1}];
|
|
58
|
+
|
|
59
|
+
oneof context_param_specifier {
|
|
60
|
+
// Additional parameters that can be used to select resource variants.
|
|
61
|
+
// Matches must be exact, i.e. all context parameters must match exactly and
|
|
62
|
+
// there must be no additional context parameters set on the matched
|
|
63
|
+
// resource.
|
|
64
|
+
ContextParams exact_context = 5;
|
|
65
|
+
|
|
66
|
+
// .. space reserved for future potential matchers, e.g. CEL expressions.
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Directives provide information to data-plane load balancers on how xDS
|
|
70
|
+
// resource names are to be interpreted and potentially further resolved. For
|
|
71
|
+
// example, they may provide alternative resource locators for when primary
|
|
72
|
+
// resolution fails. Directives are not part of resource names and do not
|
|
73
|
+
// appear in a xDS transport discovery request.
|
|
74
|
+
//
|
|
75
|
+
// When encoding to URIs, directives take the form:
|
|
76
|
+
//
|
|
77
|
+
// <directive name>=<string representation of directive value>
|
|
78
|
+
//
|
|
79
|
+
// For example, we can have alt=xdstp://foo/bar or entry=some%20thing. Each
|
|
80
|
+
// directive value type may have its own string encoding, in the case of
|
|
81
|
+
// ResourceLocator there is a recursive URI encoding.
|
|
82
|
+
//
|
|
83
|
+
// Percent encoding applies to the URI encoding of the directive value.
|
|
84
|
+
// Multiple directives are comma-separated, so the reserved characters that
|
|
85
|
+
// require percent encoding in a directive value are [',', '#', '[', ']',
|
|
86
|
+
// '%']. These are the RFC3986 fragment reserved characters with the addition
|
|
87
|
+
// of the xDS scheme specific ','. See
|
|
88
|
+
// https://tools.ietf.org/html/rfc3986#page-49 for further details on URI ABNF
|
|
89
|
+
// and reserved characters.
|
|
90
|
+
message Directive {
|
|
91
|
+
oneof directive {
|
|
92
|
+
option (validate.required) = true;
|
|
93
|
+
|
|
94
|
+
// An alternative resource locator for fallback if the resource is
|
|
95
|
+
// unavailable. For example, take the resource locator:
|
|
96
|
+
//
|
|
97
|
+
// xdstp://foo/some-type/some-route-table#alt=xdstp://bar/some-type/another-route-table
|
|
98
|
+
//
|
|
99
|
+
// If the data-plane load balancer is unable to reach `foo` to fetch the
|
|
100
|
+
// resource, it will fallback to `bar`. Alternative resources do not need
|
|
101
|
+
// to have equivalent content, but they should be functional substitutes.
|
|
102
|
+
ResourceLocator alt = 1;
|
|
103
|
+
|
|
104
|
+
// List collections support inlining of resources via the entry field in
|
|
105
|
+
// Resource. These inlined Resource objects may have an optional name
|
|
106
|
+
// field specified. When specified, the entry directive allows
|
|
107
|
+
// ResourceLocator to directly reference these inlined resources, e.g.
|
|
108
|
+
// xdstp://.../foo#entry=bar.
|
|
109
|
+
string entry = 2 [(validate.rules).string = {min_len: 1, pattern: "^[0-9a-zA-Z_\\-\\./~:]+$"}];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// A list of directives that appear in the xDS resource locator #fragment.
|
|
114
|
+
//
|
|
115
|
+
// When encoding to URI form, directives are percent encoded with comma
|
|
116
|
+
// separation.
|
|
117
|
+
repeated Directive directives = 6;
|
|
118
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.core.v3;
|
|
4
|
+
|
|
5
|
+
import "xds/annotations/v3/status.proto";
|
|
6
|
+
import "xds/core/v3/context_params.proto";
|
|
7
|
+
|
|
8
|
+
import "validate/validate.proto";
|
|
9
|
+
|
|
10
|
+
option java_outer_classname = "ResourceNameProto";
|
|
11
|
+
option java_multiple_files = true;
|
|
12
|
+
option java_package = "com.github.xds.core.v3";
|
|
13
|
+
option go_package = "github.com/cncf/xds/go/xds/core/v3";
|
|
14
|
+
|
|
15
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
16
|
+
|
|
17
|
+
// xDS resource name. This has a canonical xdstp:// URI representation:
|
|
18
|
+
//
|
|
19
|
+
// xdstp://{authority}/{type_url}/{id}?{context_params}
|
|
20
|
+
//
|
|
21
|
+
// where context_params take the form of URI query parameters.
|
|
22
|
+
//
|
|
23
|
+
// A xDS resource name fully identifies a network resource for transport
|
|
24
|
+
// purposes. xDS resource names in this form appear only in discovery
|
|
25
|
+
// request/response messages used with the xDS transport.
|
|
26
|
+
message ResourceName {
|
|
27
|
+
// Opaque identifier for the resource. Any '/' will not be escaped during URI
|
|
28
|
+
// encoding and will form part of the URI path.
|
|
29
|
+
string id = 1;
|
|
30
|
+
|
|
31
|
+
// Logical authority for resource (not necessarily transport network address).
|
|
32
|
+
// Authorities are opaque in the xDS API, data-plane load balancers will map
|
|
33
|
+
// them to concrete network transports such as an xDS management server.
|
|
34
|
+
string authority = 2;
|
|
35
|
+
|
|
36
|
+
// Fully qualified resource type (as in type URL without types.googleapis.com/
|
|
37
|
+
// prefix).
|
|
38
|
+
string resource_type = 3 [(validate.rules).string = {min_len: 1}];
|
|
39
|
+
|
|
40
|
+
// Additional parameters that can be used to select resource variants.
|
|
41
|
+
ContextParams context = 4;
|
|
42
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.type.matcher.v3;
|
|
4
|
+
|
|
5
|
+
import "xds/type/v3/cel.proto";
|
|
6
|
+
import "validate/validate.proto";
|
|
7
|
+
|
|
8
|
+
option java_package = "com.github.xds.type.matcher.v3";
|
|
9
|
+
option java_outer_classname = "CelProto";
|
|
10
|
+
option java_multiple_files = true;
|
|
11
|
+
option go_package = "github.com/cncf/xds/go/xds/type/matcher/v3";
|
|
12
|
+
|
|
13
|
+
// [#protodoc-title: Common Expression Language (CEL) matchers]
|
|
14
|
+
|
|
15
|
+
// Performs a match by evaluating a `Common Expression Language
|
|
16
|
+
// <https://github.com/google/cel-spec>`_ (CEL) expression against the standardized set of
|
|
17
|
+
// :ref:`HTTP attributes <arch_overview_attributes>` specified via ``HttpAttributesCelMatchInput``.
|
|
18
|
+
//
|
|
19
|
+
// .. attention::
|
|
20
|
+
//
|
|
21
|
+
// The match is ``true``, iff the result of the evaluation is a bool AND true.
|
|
22
|
+
// In all other cases, the match is ``false``, including but not limited to: non-bool types,
|
|
23
|
+
// ``false``, ``null``, ``int(1)``, etc.
|
|
24
|
+
// In case CEL expression raises an error, the result of the evaluation is interpreted "no match".
|
|
25
|
+
//
|
|
26
|
+
// Refer to :ref:`Unified Matcher API <envoy_v3_api_msg_.xds.type.matcher.v3.Matcher>` documentation
|
|
27
|
+
// for usage details.
|
|
28
|
+
//
|
|
29
|
+
// [#comment: envoy.matching.matchers.cel_matcher]
|
|
30
|
+
message CelMatcher {
|
|
31
|
+
// Either parsed or checked representation of the CEL program.
|
|
32
|
+
type.v3.CelExpression expr_match = 1 [(validate.rules).message = {required: true}];
|
|
33
|
+
|
|
34
|
+
// Free-form description of the CEL AST, e.g. the original expression text, to be
|
|
35
|
+
// used for debugging assistance.
|
|
36
|
+
string description = 2;
|
|
37
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.type.matcher.v3;
|
|
4
|
+
|
|
5
|
+
import "xds/annotations/v3/status.proto";
|
|
6
|
+
import "xds/type/matcher/v3/matcher.proto";
|
|
7
|
+
|
|
8
|
+
import "validate/validate.proto";
|
|
9
|
+
|
|
10
|
+
option java_package = "com.github.xds.type.matcher.v3";
|
|
11
|
+
option java_outer_classname = "ServerNameMatcherProto";
|
|
12
|
+
option java_multiple_files = true;
|
|
13
|
+
option go_package = "github.com/cncf/xds/go/xds/type/matcher/v3";
|
|
14
|
+
|
|
15
|
+
option (xds.annotations.v3.file_status).work_in_progress = true;
|
|
16
|
+
|
|
17
|
+
// [#protodoc-title: Server name matcher]
|
|
18
|
+
|
|
19
|
+
// Matches a fully qualified server name against a set of domain
|
|
20
|
+
// names with optional wildcards.
|
|
21
|
+
message ServerNameMatcher {
|
|
22
|
+
// Specifies a set of exact and wildcard domains and a match action. The
|
|
23
|
+
// wildcard symbol ``*`` must appear at most once as the left-most part of
|
|
24
|
+
// the domain on a dot border. The wildcard matches one or more non-empty
|
|
25
|
+
// domain parts.
|
|
26
|
+
message DomainMatcher {
|
|
27
|
+
// A non-empty set of domain names with optional wildcards, e.g.
|
|
28
|
+
// ``www.example.com``, ``*.com``, or ``*``.
|
|
29
|
+
repeated string domains = 1 [ (validate.rules).repeated = {min_items : 1} ];
|
|
30
|
+
|
|
31
|
+
// Match action to apply when the server name matches any of the domain
|
|
32
|
+
// names in the matcher.
|
|
33
|
+
Matcher.OnMatch on_match = 2;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Match a server name by multiple domain matchers. Each domain, exact or
|
|
37
|
+
// wildcard, must appear at most once across all the domain matchers.
|
|
38
|
+
//
|
|
39
|
+
// The server name will be matched against all wildcard domains starting from
|
|
40
|
+
// the longest suffix, i.e. ``www.example.com`` input will be first matched
|
|
41
|
+
// against ``www.example.com``, then ``*.example.com``, then ``*.com``, then
|
|
42
|
+
// ``*``, until the associated matcher action accepts the input. Note that
|
|
43
|
+
// wildcards must be on a dot border, and values like ``*w.example.com`` are
|
|
44
|
+
// invalid.
|
|
45
|
+
repeated DomainMatcher domain_matchers = 1;
|
|
46
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package xds.type.matcher.v3;
|
|
4
|
+
|
|
5
|
+
option java_package = "com.github.xds.type.matcher.v3";
|
|
6
|
+
option java_outer_classname = "HttpInputsProto";
|
|
7
|
+
option java_multiple_files = true;
|
|
8
|
+
option go_package = "github.com/cncf/xds/go/xds/type/matcher/v3";
|
|
9
|
+
|
|
10
|
+
// [#protodoc-title: Common HTTP Inputs]
|
|
11
|
+
|
|
12
|
+
// Specifies that matching should be performed on the set of :ref:`HTTP attributes
|
|
13
|
+
// <arch_overview_attributes>`.
|
|
14
|
+
//
|
|
15
|
+
// The attributes will be exposed via `Common Expression Language
|
|
16
|
+
// <https://github.com/google/cel-spec>`_ runtime to associated CEL matcher.
|
|
17
|
+
//
|
|
18
|
+
// Refer to :ref:`Unified Matcher API <envoy_v3_api_msg_.xds.type.matcher.v3.Matcher>` documentation
|
|
19
|
+
// for usage details.
|
|
20
|
+
//
|
|
21
|
+
// [#comment: envoy.matching.inputs.cel_data_input]
|
|
22
|
+
message HttpAttributesCelMatchInput {
|
|
23
|
+
}
|