├── .bazelrc ├── .bazelversion ├── .gitattributes ├── .gitignore ├── BUILD ├── DEVELOPER.md ├── LICENSE ├── MODULE.bazel ├── README.md ├── WORKSPACE ├── WORKSPACE.bzlmod ├── bazel ├── BUILD ├── api_build_system.bzl ├── dependency_imports.bzl ├── envoy_http_archive.bzl ├── external_proto_deps.bzl ├── repositories.bzl └── repository_locations.bzl ├── ci ├── azure-pipelines.yml └── check.sh ├── go ├── BUILD ├── go.mod ├── go.sum ├── udpa │ ├── annotations │ │ ├── migrate.pb.go │ │ ├── migrate.pb.validate.go │ │ ├── security.pb.go │ │ ├── security.pb.validate.go │ │ ├── sensitive.pb.go │ │ ├── sensitive.pb.validate.go │ │ ├── status.pb.go │ │ ├── status.pb.validate.go │ │ ├── versioning.pb.go │ │ └── versioning.pb.validate.go │ ├── data │ │ └── orca │ │ │ └── v1 │ │ │ ├── orca_load_report.pb.go │ │ │ └── orca_load_report.pb.validate.go │ ├── service │ │ └── orca │ │ │ └── v1 │ │ │ ├── orca.pb.go │ │ │ ├── orca.pb.validate.go │ │ │ └── orca_grpc.pb.go │ └── type │ │ └── v1 │ │ ├── typed_struct.pb.go │ │ └── typed_struct.pb.validate.go └── xds │ ├── annotations │ └── v3 │ │ ├── migrate.pb.go │ │ ├── migrate.pb.validate.go │ │ ├── security.pb.go │ │ ├── security.pb.validate.go │ │ ├── sensitive.pb.go │ │ ├── sensitive.pb.validate.go │ │ ├── status.pb.go │ │ ├── status.pb.validate.go │ │ ├── versioning.pb.go │ │ └── versioning.pb.validate.go │ ├── core │ └── v3 │ │ ├── authority.pb.go │ │ ├── authority.pb.validate.go │ │ ├── cidr.pb.go │ │ ├── cidr.pb.validate.go │ │ ├── collection_entry.pb.go │ │ ├── collection_entry.pb.validate.go │ │ ├── context_params.pb.go │ │ ├── context_params.pb.validate.go │ │ ├── extension.pb.go │ │ ├── extension.pb.validate.go │ │ ├── resource.pb.go │ │ ├── resource.pb.validate.go │ │ ├── resource_locator.pb.go │ │ ├── resource_locator.pb.validate.go │ │ ├── resource_name.pb.go │ │ └── resource_name.pb.validate.go │ ├── data │ └── orca │ │ └── v3 │ │ ├── orca_load_report.pb.go │ │ └── orca_load_report.pb.validate.go │ ├── service │ └── orca │ │ └── v3 │ │ ├── orca.pb.go │ │ ├── orca.pb.validate.go │ │ └── orca_grpc.pb.go │ └── type │ ├── matcher │ └── v3 │ │ ├── cel.pb.go │ │ ├── cel.pb.validate.go │ │ ├── domain.pb.go │ │ ├── domain.pb.validate.go │ │ ├── http_inputs.pb.go │ │ ├── http_inputs.pb.validate.go │ │ ├── ip.pb.go │ │ ├── ip.pb.validate.go │ │ ├── matcher.pb.go │ │ ├── matcher.pb.validate.go │ │ ├── range.pb.go │ │ ├── range.pb.validate.go │ │ ├── regex.pb.go │ │ ├── regex.pb.validate.go │ │ ├── string.pb.go │ │ └── string.pb.validate.go │ └── v3 │ ├── cel.pb.go │ ├── cel.pb.validate.go │ ├── range.pb.go │ ├── range.pb.validate.go │ ├── typed_struct.pb.go │ └── typed_struct.pb.validate.go ├── proposals ├── README.md ├── TP1-xds-transport-next.md ├── TP2-dynamically-generated-cacheable-xds-resources.md ├── TP3-xds-error-propagation.md └── XRFC-TEMPLATE.md ├── python ├── __init__.py ├── dist │ ├── xds-0.1.0-py3-none-any.whl │ └── xds-0.1.0.tar.gz ├── pyproject.toml ├── udpa │ ├── __init__.py │ ├── annotations │ │ ├── __init__.py │ │ ├── migrate_pb2.py │ │ ├── security_pb2.py │ │ ├── sensitive_pb2.py │ │ ├── status_pb2.py │ │ └── versioning_pb2.py │ ├── data │ │ ├── __init__.py │ │ └── orca │ │ │ ├── __init__.py │ │ │ └── v1 │ │ │ ├── __init__.py │ │ │ └── orca_load_report_pb2.py │ ├── service │ │ ├── __init__.py │ │ └── orca │ │ │ ├── __init__.py │ │ │ └── v1 │ │ │ ├── __init__.py │ │ │ └── orca_pb2.py │ └── type │ │ ├── __init__.py │ │ └── v1 │ │ ├── __init__.py │ │ └── typed_struct_pb2.py ├── validate │ └── validate_pb2.py └── xds │ ├── __init__.py │ ├── annotations │ ├── __init__.py │ └── v3 │ │ ├── __init__.py │ │ ├── migrate_pb2.py │ │ ├── security_pb2.py │ │ ├── sensitive_pb2.py │ │ ├── status_pb2.py │ │ └── versioning_pb2.py │ ├── core │ ├── __init__.py │ └── v3 │ │ ├── __init__.py │ │ ├── authority_pb2.py │ │ ├── cidr_pb2.py │ │ ├── collection_entry_pb2.py │ │ ├── context_params_pb2.py │ │ ├── extension_pb2.py │ │ ├── resource_locator_pb2.py │ │ ├── resource_name_pb2.py │ │ └── resource_pb2.py │ ├── data │ ├── __init__.py │ └── orca │ │ ├── __init__.py │ │ └── v3 │ │ ├── __init__.py │ │ └── orca_load_report_pb2.py │ ├── service │ ├── __init__.py │ └── orca │ │ ├── __init__.py │ │ └── v3 │ │ ├── __init__.py │ │ └── orca_pb2.py │ └── type │ ├── __init__.py │ ├── matcher │ ├── __init__.py │ └── v3 │ │ ├── __init__.py │ │ ├── cel_pb2.py │ │ ├── domain_pb2.py │ │ ├── http_inputs_pb2.py │ │ ├── ip_pb2.py │ │ ├── matcher_pb2.py │ │ ├── range_pb2.py │ │ ├── regex_pb2.py │ │ └── string_pb2.py │ └── v3 │ ├── __init__.py │ ├── cel_pb2.py │ ├── range_pb2.py │ └── typed_struct_pb2.py ├── repokitteh.star ├── test └── build │ ├── BUILD │ ├── build_test.cc │ └── go_build_test.go ├── tools ├── generate_lang_files_from_protos.py └── language_config.py ├── udpa ├── README.md ├── annotations │ ├── BUILD │ ├── migrate.proto │ ├── security.proto │ ├── sensitive.proto │ ├── status.proto │ └── versioning.proto ├── data │ └── orca │ │ └── v1 │ │ ├── BUILD │ │ └── orca_load_report.proto ├── service │ └── orca │ │ └── v1 │ │ ├── BUILD │ │ └── orca.proto └── type │ └── v1 │ ├── BUILD │ └── typed_struct.proto └── xds ├── annotations └── v3 │ ├── BUILD │ ├── migrate.proto │ ├── security.proto │ ├── sensitive.proto │ ├── status.proto │ └── versioning.proto ├── core └── v3 │ ├── BUILD │ ├── authority.proto │ ├── cidr.proto │ ├── collection_entry.proto │ ├── context_params.proto │ ├── extension.proto │ ├── resource.proto │ ├── resource_locator.proto │ └── resource_name.proto ├── data └── orca │ └── v3 │ ├── BUILD │ └── orca_load_report.proto ├── service └── orca │ └── v3 │ ├── BUILD │ └── orca.proto └── type ├── matcher └── v3 │ ├── BUILD │ ├── cel.proto │ ├── domain.proto │ ├── http_inputs.proto │ ├── ip.proto │ ├── matcher.proto │ ├── range.proto │ ├── regex.proto │ └── string.proto └── v3 ├── BUILD ├── cel.proto ├── range.proto └── typed_struct.proto /.bazelrc: -------------------------------------------------------------------------------- 1 | build:ci --announce_rc 2 | -------------------------------------------------------------------------------- /.bazelversion: -------------------------------------------------------------------------------- 1 | 7.1.1 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pb.go linguist-generated=true 2 | *.pb.go -diff -merge 3 | *.pb.validate.go linguist-generated=true 4 | *.pb.validate.go -diff -merge 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bazel-* 2 | MODULE.bazel.lock 3 | __pycache__/ -------------------------------------------------------------------------------- /BUILD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/BUILD -------------------------------------------------------------------------------- /DEVELOPER.md: -------------------------------------------------------------------------------- 1 | # Developer documentation 2 | 3 | ## Synchronize generated files 4 | 5 | Run the following command to update the generated files and commit them with your change: 6 | 7 | ```sh 8 | bazel build //... 9 | tools/generate_go_protobuf.py 10 | ``` 11 | -------------------------------------------------------------------------------- /MODULE.bazel: -------------------------------------------------------------------------------- 1 | module( 2 | name = "xds", 3 | version = "0.0.0", 4 | ) 5 | 6 | bazel_dep(name = "bazel_skylib", version = "1.5.0") 7 | bazel_dep(name = "cel-spec", version = "0.15.0", repo_name = "dev_cel") 8 | bazel_dep(name = "gazelle", version = "0.36.0", repo_name = "bazel_gazelle") 9 | bazel_dep(name = "googleapis", version = "0.0.0-20240326-1c8d509c5", repo_name = "com_google_googleapis") 10 | bazel_dep(name = "grpc", version = "1.56.3.bcr.1", repo_name = "com_github_grpc_grpc") 11 | bazel_dep(name = "protobuf", version = "29.1", repo_name = "com_google_protobuf") 12 | bazel_dep(name = "protoc-gen-validate", version = "1.0.4", repo_name = "com_envoyproxy_protoc_gen_validate") 13 | bazel_dep(name = "re2", version = "2024-05-01", repo_name = "com_googlesource_code_re2") 14 | bazel_dep(name = "rules_go", version = "0.46.0", repo_name = "io_bazel_rules_go") 15 | bazel_dep(name = "rules_proto", version = "6.0.0") 16 | 17 | switched_rules = use_extension("@com_google_googleapis//:extensions.bzl", "switched_rules") 18 | switched_rules.use_languages( 19 | cc = True, 20 | go = True, 21 | grpc = True, 22 | python = True, 23 | ) 24 | 25 | go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk") 26 | go_sdk.download(version = "1.20.2") 27 | 28 | go_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps") 29 | go_deps.from_file(go_mod = "//go:go.mod") 30 | use_repo( 31 | go_deps, 32 | "org_golang_google_genproto_googleapis_api", 33 | "org_golang_google_grpc", 34 | "org_golang_google_protobuf", 35 | ) 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # xDS API Working Group (xDS-WG) 2 | 3 | # Goal 4 | 5 | The objective of the xDS API Working Group (xDS-WG) is to bring together parties 6 | across the industry interested in a common control and configuration API for 7 | data plane proxies and load balancers, based on the xDS APIs. 8 | 9 | # Vision 10 | 11 | The xDS vision is one of a universal data plane API, articulated at 12 | [https://blog.envoyproxy.io/the-universal-data-plane-api-d15cec7a](https://blog.envoyproxy.io/the-universal-data-plane-api-d15cec7a). 13 | xDS aims to provide a set of APIs that provide the de facto standard for L4/L7 14 | data plane configuration, similar to the role played by OpenFlow at L2/L3/L4 in 15 | SDN. 16 | 17 | The [existing Envoy xDS 18 | APIs](https://github.com/envoyproxy/envoy/tree/main/api) constitute the basis 19 | for this vision and will incrementally evolve towards supporting a goal of 20 | client neutrality. We will evolve the xDS APIs to support additional clients, 21 | for example data plane proxies beyond Envoy, proxyless service mesh libraries, 22 | hardware load balancers, mobile clients and beyond. We will strive to be vendor 23 | and implementation agnostic to the degree possible while not regressing on 24 | support for data plane components that have committed to xDS in production 25 | (Envoy & gRPC to date). 26 | 27 | The xDS APIs have two delineated aspects, a transport protocol and data model, 28 | The xDS transport protocol provides a low latency versioned streaming gRPC 29 | delivery of xDS resources. The data model covers common data plane concerns such 30 | as service discovery, load balancing assignments, routing discovery, listener 31 | configuration, secret discovery, load reporting, health check delegation, etc. 32 | 33 | # Repository structure 34 | 35 | The xDS APIs are split between this repository and 36 | https://github.com/envoyproxy/envoy/tree/main/api. Our long-term goal is to 37 | move the entire API to this repository, this will be done opportunistically over 38 | time as we generalize parts of the API to be less client-specific. 39 | 40 | # Mailing list and meetings 41 | 42 | We have an open mailing list [xds-wg@lists.cncf.io](https://lists.cncf.io/g/xds-wg/) for communication and announcements. We also meet 43 | on an ad hoc basis via Zoom. 44 | 45 | To monitor activity, you can either subscribe to a GitHub watch on this repository or join the [@cncf/xds-wg](https://github.com/orgs/cncf/teams/xds-wg) team for 46 | tagging on key PRs and RFCs. 47 | -------------------------------------------------------------------------------- /WORKSPACE: -------------------------------------------------------------------------------- 1 | workspace(name = "com_github_cncf_xds") 2 | 3 | load("//bazel:repositories.bzl", "udpa_api_dependencies") 4 | 5 | udpa_api_dependencies() 6 | 7 | load("//bazel:dependency_imports.bzl", "udpa_dependency_imports") 8 | 9 | udpa_dependency_imports() 10 | -------------------------------------------------------------------------------- /WORKSPACE.bzlmod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/WORKSPACE.bzlmod -------------------------------------------------------------------------------- /bazel/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) # Apache 2 2 | -------------------------------------------------------------------------------- /bazel/envoy_http_archive.bzl: -------------------------------------------------------------------------------- 1 | load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 2 | 3 | def xds_http_archive(name, locations, **kwargs): 4 | # `existing_rule_keys` contains the names of repositories that have already 5 | # been defined in the Bazel workspace. By skipping repos with existing keys, 6 | # users can override dependency versions by using standard Bazel repository 7 | # rules in their WORKSPACE files. 8 | existing_rule_keys = native.existing_rules().keys() 9 | if name in existing_rule_keys: 10 | # This repository has already been defined, probably because the user 11 | # wants to override the version. Do nothing. 12 | return 13 | 14 | loc_key = kwargs.pop("repository_key", name) 15 | location = locations[loc_key] 16 | 17 | # HTTP tarball at a given URL. Add a BUILD file if requested. 18 | http_archive( 19 | name = name, 20 | urls = location["urls"], 21 | sha256 = location["sha256"], 22 | strip_prefix = location.get("strip_prefix", ""), 23 | **kwargs 24 | ) 25 | 26 | # Old name for backward compatibility. 27 | # TODO(roth): Remove once all callers are changed to use the new name. 28 | def udpa_http_archive(name, locations, **kwargs): 29 | xds_http_archive(name, locations, **kwargs) 30 | -------------------------------------------------------------------------------- /bazel/external_proto_deps.bzl: -------------------------------------------------------------------------------- 1 | # Any external dependency imported in the xds/ .protos requires entries in 2 | # the maps below, to allow the Bazel proto and language specific bindings to be 3 | # inferred from the import directives. 4 | # 5 | # This file needs to be interpreted as both Python 3 and Starlark, so only the 6 | # common subset of Python should be used. 7 | 8 | # This maps from .proto import directive path to the Bazel dependency path for 9 | # external dependencies. Since BUILD files are generated, this is the canonical 10 | # place to define this mapping. 11 | EXTERNAL_PROTO_IMPORT_BAZEL_DEP_MAP = { 12 | "google/api/expr/v1alpha1/checked.proto": "@com_google_googleapis//google/api/expr/v1alpha1:checked_proto", 13 | "google/api/expr/v1alpha1/syntax.proto": "@com_google_googleapis//google/api/expr/v1alpha1:syntax_proto", 14 | } 15 | 16 | # This maps from the Bazel proto_library target to the Go language binding target for external dependencies. 17 | EXTERNAL_PROTO_GO_BAZEL_DEP_MAP = { 18 | # Note @com_google_googleapis are point to @go_googleapis. 19 | # This is done to address //test/build:go_build_test build error: 20 | # 21 | # link: package conflict error: 22 | # google.golang.org/genproto/googleapis/api/annotations: multiple copies of package passed to linker: 23 | # 24 | # @go_googleapis//google/api:annotations_go_proto 25 | # @com_google_googleapis//google/api:annotations_go_proto 26 | # 27 | # TODO(https://github.com/bazelbuild/rules_go/issues/1986): update to 28 | # @com_google_googleapis when the bug is resolved. Also see the note to 29 | # go_googleapis in https://github.com/bazelbuild/rules_go/blob/master/go/dependencies.rst#overriding-dependencies 30 | "@com_google_googleapis//google/api/expr/v1alpha1:checked_proto": "@org_golang_google_genproto_googleapis_api//expr/v1alpha1", 31 | "@com_google_googleapis//google/api/expr/v1alpha1:syntax_proto": "@org_golang_google_genproto_googleapis_api//expr/v1alpha1", 32 | "@dev_cel//proto/cel/expr:checked_proto": "@dev_cel//proto/cel/expr:checked_go_proto", 33 | "@dev_cel//proto/cel/expr:syntax_proto": "@dev_cel//proto/cel/expr:syntax_go_proto", 34 | } 35 | 36 | # This maps from the Bazel proto_library target to the C++ language binding target for external dependencies. 37 | EXTERNAL_PROTO_CC_BAZEL_DEP_MAP = { 38 | "@com_google_googleapis//google/api/expr/v1alpha1:checked_proto": "@com_google_googleapis//google/api/expr/v1alpha1:checked_cc_proto", 39 | "@com_google_googleapis//google/api/expr/v1alpha1:syntax_proto": "@com_google_googleapis//google/api/expr/v1alpha1:syntax_cc_proto", 40 | "@dev_cel//proto/cel/expr:checked_proto": "@dev_cel//proto/cel/expr:checked_cc_proto", 41 | "@dev_cel//proto/cel/expr:syntax_proto": "@dev_cel//proto/cel/expr:syntax_cc_proto", 42 | } 43 | -------------------------------------------------------------------------------- /bazel/repositories.bzl: -------------------------------------------------------------------------------- 1 | load(":envoy_http_archive.bzl", "xds_http_archive") 2 | load(":repository_locations.bzl", "REPOSITORY_LOCATIONS") 3 | 4 | def xds_api_dependencies(): 5 | xds_http_archive( 6 | "bazel_gazelle", 7 | locations = REPOSITORY_LOCATIONS, 8 | ) 9 | xds_http_archive( 10 | "com_envoyproxy_protoc_gen_validate", 11 | locations = REPOSITORY_LOCATIONS, 12 | ) 13 | xds_http_archive( 14 | name = "com_github_grpc_grpc", 15 | locations = REPOSITORY_LOCATIONS, 16 | ) 17 | xds_http_archive( 18 | name = "com_google_googleapis", 19 | locations = REPOSITORY_LOCATIONS, 20 | ) 21 | xds_http_archive( 22 | "com_google_protobuf", 23 | locations = REPOSITORY_LOCATIONS, 24 | ) 25 | xds_http_archive( 26 | name = "dev_cel", 27 | locations = REPOSITORY_LOCATIONS, 28 | ) 29 | xds_http_archive( 30 | "io_bazel_rules_go", 31 | locations = REPOSITORY_LOCATIONS, 32 | ) 33 | xds_http_archive( 34 | "rules_proto", 35 | locations = REPOSITORY_LOCATIONS, 36 | ) 37 | 38 | # Old name for backward compatibility. 39 | # TODO(roth): Remove once all callers are updated to use the new name. 40 | def udpa_api_dependencies(): 41 | xds_api_dependencies() 42 | -------------------------------------------------------------------------------- /bazel/repository_locations.bzl: -------------------------------------------------------------------------------- 1 | REPOSITORY_LOCATIONS = dict( 2 | bazel_gazelle = dict( 3 | sha256 = "b7387f72efb59f876e4daae42f1d3912d0d45563eac7cb23d1de0b094ab588cf", 4 | urls = [ 5 | "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.34.0/bazel-gazelle-v0.34.0.tar.gz", 6 | "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.34.0/bazel-gazelle-v0.34.0.tar.gz", 7 | ], 8 | ), 9 | bazel_skylib = dict( 10 | sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c", 11 | urls = ["https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz"], 12 | ), 13 | com_envoyproxy_protoc_gen_validate = dict( 14 | sha256 = "92e29c2150675ce954c965bcaa559ca944704b75711533cfe03ce541dcf5a1dd", 15 | strip_prefix = "protoc-gen-validate-1.0.4", 16 | urls = ["https://github.com/envoyproxy/protoc-gen-validate/archive/refs/tags/v1.0.4.tar.gz"], 17 | ), 18 | com_github_grpc_grpc = dict( 19 | sha256 = "916f88a34f06b56432611aaa8c55befee96d0a7b7d7457733b9deeacbc016f99", 20 | strip_prefix = "grpc-1.59.1", 21 | urls = ["https://github.com/grpc/grpc/archive/refs/tags/v1.59.1.tar.gz"], 22 | ), 23 | com_google_googleapis = dict( 24 | # TODO(dio): Consider writing a Starlark macro for importing Google API proto. 25 | sha256 = "9d1a930e767c93c825398b8f8692eca3fe353b9aaadedfbcf1fca2282c85df88", 26 | strip_prefix = "googleapis-64926d52febbf298cb82a8f472ade4a3969ba922", 27 | urls = [ 28 | "https://github.com/googleapis/googleapis/archive/64926d52febbf298cb82a8f472ade4a3969ba922.zip", 29 | ], 30 | ), 31 | com_google_protobuf = dict( 32 | sha256 = "8242327e5df8c80ba49e4165250b8f79a76bd11765facefaaecfca7747dc8da2", 33 | strip_prefix = "protobuf-3.21.5", 34 | urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.5.zip"], 35 | ), 36 | dev_cel = dict( 37 | sha256 = "3ee09eb69dbe77722e9dee23dc48dc2cd9f765869fcf5ffb1226587c81791a0b", 38 | strip_prefix = "cel-spec-0.15.0", 39 | urls = ["https://github.com/google/cel-spec/archive/refs/tags/v0.15.0.tar.gz"], 40 | ), 41 | io_bazel_rules_go = dict( 42 | sha256 = "80a98277ad1311dacd837f9b16db62887702e9f1d1c4c9f796d0121a46c8e184", 43 | urls = [ 44 | "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.46.0/rules_go-v0.46.0.zip", 45 | "https://github.com/bazelbuild/rules_go/releases/download/v0.46.0/rules_go-v0.46.0.zip", 46 | ], 47 | ), 48 | rules_proto = dict( 49 | sha256 = "80d3a4ec17354cccc898bfe32118edd934f851b03029d63ef3fc7c8663a7415c", 50 | strip_prefix = "rules_proto-5.3.0-21.5", 51 | urls = ["https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.5.tar.gz"], 52 | ), 53 | ) 54 | -------------------------------------------------------------------------------- /ci/azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | trigger: 2 | branches: 3 | include: 4 | - 'main' 5 | tags: 6 | include: 7 | - 'v*' 8 | 9 | jobs: 10 | - job: CI 11 | pool: 12 | vmImage: 'ubuntu-latest' 13 | container: envoyproxy/envoy-build-ubuntu@sha256:b4fe088084579339ae8f7a44af899bbebd86a290af56e5ab7cc85ca99a09499c 14 | steps: 15 | - task: CacheBeta@1 16 | inputs: 17 | key: './WORKSPACE | ./.bazel* | **/*.bzl' 18 | path: $(Agent.TempDirectory)/tmp 19 | 20 | - bash: ci/check.sh 21 | env: 22 | TEST_TMPDIR: $(Agent.TempDirectory)/tmp 23 | 24 | - bash: tools/generate_lang_files_from_protos.py && test -z "$(git status --porcelain)" 25 | env: 26 | TEST_TMPDIR: $(Agent.TempDirectory)/tmp 27 | 28 | - job: go_build 29 | pool: 30 | vmImage: 'ubuntu-latest' 31 | steps: 32 | - task: GoTool@0 33 | displayName: "Install Go" 34 | inputs: 35 | version: '1.20.2' 36 | 37 | - task: Go@0 38 | displayName: "go mod download" 39 | inputs: 40 | command: 'custom' 41 | customCommand: 'mod' 42 | arguments: 'download' 43 | workingDirectory: 'go/' 44 | 45 | - task: Go@0 46 | displayName: "go mod verify" 47 | inputs: 48 | command: 'custom' 49 | customCommand: 'mod' 50 | arguments: 'verify' 51 | workingDirectory: 'go/' 52 | 53 | - task: Go@0 54 | displayName: "go build ./..." 55 | inputs: 56 | command: 'build' 57 | arguments: '-v ./...' 58 | workingDirectory: 'go/' 59 | -------------------------------------------------------------------------------- /ci/check.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | bazel test --config=ci //... 6 | 7 | rm -rf go/xds go/udpa 8 | 9 | tools/generate_lang_files_from_protos.py 10 | 11 | git add go/xds go/udpa 12 | 13 | echo "If this check fails, apply following diff:" 14 | git diff HEAD 15 | git diff HEAD --quiet 16 | -------------------------------------------------------------------------------- /go/BUILD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/go/BUILD -------------------------------------------------------------------------------- /go/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/cncf/xds/go 2 | 3 | go 1.19 4 | 5 | require ( 6 | cel.dev/expr v0.15.0 7 | github.com/envoyproxy/protoc-gen-validate v1.0.4 8 | google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d 9 | google.golang.org/grpc v1.59.0 10 | google.golang.org/protobuf v1.33.0 11 | ) 12 | 13 | require ( 14 | github.com/golang/protobuf v1.5.3 // indirect 15 | golang.org/x/net v0.20.0 // indirect 16 | golang.org/x/sys v0.16.0 // indirect 17 | golang.org/x/text v0.14.0 // indirect 18 | google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect 19 | ) 20 | -------------------------------------------------------------------------------- /go/go.sum: -------------------------------------------------------------------------------- 1 | cel.dev/expr v0.15.0 h1:O1jzfJCQBfL5BFoYktaxwIhuttaQPsVWerH9/EEKx0w= 2 | cel.dev/expr v0.15.0/go.mod h1:TRSuuV7DlVCE/uwv5QbAiW/v8l5O8C4eEPHeu7gf7Sg= 3 | github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= 4 | github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= 5 | github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 6 | github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= 7 | github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 8 | github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 9 | github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= 10 | golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= 11 | golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= 12 | golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= 13 | golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 14 | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= 15 | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 16 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 17 | google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= 18 | google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= 19 | google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= 20 | google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= 21 | google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= 22 | google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= 23 | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= 24 | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 25 | google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= 26 | google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= 27 | -------------------------------------------------------------------------------- /go/udpa/annotations/sensitive.pb.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-go. DO NOT EDIT. 2 | // versions: 3 | // protoc-gen-go v1.33.0 4 | // protoc v5.29.1 5 | // source: udpa/annotations/sensitive.proto 6 | 7 | package annotations 8 | 9 | import ( 10 | protoreflect "google.golang.org/protobuf/reflect/protoreflect" 11 | protoimpl "google.golang.org/protobuf/runtime/protoimpl" 12 | descriptorpb "google.golang.org/protobuf/types/descriptorpb" 13 | reflect "reflect" 14 | ) 15 | 16 | const ( 17 | // Verify that this generated code is sufficiently up-to-date. 18 | _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 19 | // Verify that runtime/protoimpl is sufficiently up-to-date. 20 | _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 21 | ) 22 | 23 | var file_udpa_annotations_sensitive_proto_extTypes = []protoimpl.ExtensionInfo{ 24 | { 25 | ExtendedType: (*descriptorpb.FieldOptions)(nil), 26 | ExtensionType: (*bool)(nil), 27 | Field: 76569463, 28 | Name: "udpa.annotations.sensitive", 29 | Tag: "varint,76569463,opt,name=sensitive", 30 | Filename: "udpa/annotations/sensitive.proto", 31 | }, 32 | } 33 | 34 | // Extension fields to descriptorpb.FieldOptions. 35 | var ( 36 | // optional bool sensitive = 76569463; 37 | E_Sensitive = &file_udpa_annotations_sensitive_proto_extTypes[0] 38 | ) 39 | 40 | var File_udpa_annotations_sensitive_proto protoreflect.FileDescriptor 41 | 42 | var file_udpa_annotations_sensitive_proto_rawDesc = []byte{ 43 | 0x0a, 0x20, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 44 | 0x6e, 0x73, 0x2f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x70, 0x72, 0x6f, 45 | 0x74, 0x6f, 0x12, 0x10, 0x75, 0x64, 0x70, 0x61, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 46 | 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 47 | 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 48 | 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x3e, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 49 | 0x69, 0x76, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 50 | 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 51 | 0x6e, 0x73, 0x18, 0xf7, 0xb6, 0xc1, 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x65, 0x6e, 52 | 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 53 | 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e, 0x63, 0x66, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x67, 0x6f, 54 | 0x2f, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 55 | 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 56 | } 57 | 58 | var file_udpa_annotations_sensitive_proto_goTypes = []interface{}{ 59 | (*descriptorpb.FieldOptions)(nil), // 0: google.protobuf.FieldOptions 60 | } 61 | var file_udpa_annotations_sensitive_proto_depIdxs = []int32{ 62 | 0, // 0: udpa.annotations.sensitive:extendee -> google.protobuf.FieldOptions 63 | 1, // [1:1] is the sub-list for method output_type 64 | 1, // [1:1] is the sub-list for method input_type 65 | 1, // [1:1] is the sub-list for extension type_name 66 | 0, // [0:1] is the sub-list for extension extendee 67 | 0, // [0:0] is the sub-list for field type_name 68 | } 69 | 70 | func init() { file_udpa_annotations_sensitive_proto_init() } 71 | func file_udpa_annotations_sensitive_proto_init() { 72 | if File_udpa_annotations_sensitive_proto != nil { 73 | return 74 | } 75 | type x struct{} 76 | out := protoimpl.TypeBuilder{ 77 | File: protoimpl.DescBuilder{ 78 | GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 79 | RawDescriptor: file_udpa_annotations_sensitive_proto_rawDesc, 80 | NumEnums: 0, 81 | NumMessages: 0, 82 | NumExtensions: 1, 83 | NumServices: 0, 84 | }, 85 | GoTypes: file_udpa_annotations_sensitive_proto_goTypes, 86 | DependencyIndexes: file_udpa_annotations_sensitive_proto_depIdxs, 87 | ExtensionInfos: file_udpa_annotations_sensitive_proto_extTypes, 88 | }.Build() 89 | File_udpa_annotations_sensitive_proto = out.File 90 | file_udpa_annotations_sensitive_proto_rawDesc = nil 91 | file_udpa_annotations_sensitive_proto_goTypes = nil 92 | file_udpa_annotations_sensitive_proto_depIdxs = nil 93 | } 94 | -------------------------------------------------------------------------------- /go/udpa/annotations/sensitive.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: udpa/annotations/sensitive.proto 3 | 4 | package annotations 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | -------------------------------------------------------------------------------- /go/udpa/annotations/status.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: udpa/annotations/status.proto 3 | 4 | package annotations 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | 38 | // Validate checks the field values on StatusAnnotation with the rules defined 39 | // in the proto definition for this message. If any rules are violated, the 40 | // first error encountered is returned, or nil if there are no violations. 41 | func (m *StatusAnnotation) Validate() error { 42 | return m.validate(false) 43 | } 44 | 45 | // ValidateAll checks the field values on StatusAnnotation with the rules 46 | // defined in the proto definition for this message. If any rules are 47 | // violated, the result is a list of violation errors wrapped in 48 | // StatusAnnotationMultiError, or nil if none found. 49 | func (m *StatusAnnotation) ValidateAll() error { 50 | return m.validate(true) 51 | } 52 | 53 | func (m *StatusAnnotation) validate(all bool) error { 54 | if m == nil { 55 | return nil 56 | } 57 | 58 | var errors []error 59 | 60 | // no validation rules for WorkInProgress 61 | 62 | // no validation rules for PackageVersionStatus 63 | 64 | if len(errors) > 0 { 65 | return StatusAnnotationMultiError(errors) 66 | } 67 | 68 | return nil 69 | } 70 | 71 | // StatusAnnotationMultiError is an error wrapping multiple validation errors 72 | // returned by StatusAnnotation.ValidateAll() if the designated constraints 73 | // aren't met. 74 | type StatusAnnotationMultiError []error 75 | 76 | // Error returns a concatenation of all the error messages it wraps. 77 | func (m StatusAnnotationMultiError) Error() string { 78 | var msgs []string 79 | for _, err := range m { 80 | msgs = append(msgs, err.Error()) 81 | } 82 | return strings.Join(msgs, "; ") 83 | } 84 | 85 | // AllErrors returns a list of validation violation errors. 86 | func (m StatusAnnotationMultiError) AllErrors() []error { return m } 87 | 88 | // StatusAnnotationValidationError is the validation error returned by 89 | // StatusAnnotation.Validate if the designated constraints aren't met. 90 | type StatusAnnotationValidationError struct { 91 | field string 92 | reason string 93 | cause error 94 | key bool 95 | } 96 | 97 | // Field function returns field value. 98 | func (e StatusAnnotationValidationError) Field() string { return e.field } 99 | 100 | // Reason function returns reason value. 101 | func (e StatusAnnotationValidationError) Reason() string { return e.reason } 102 | 103 | // Cause function returns cause value. 104 | func (e StatusAnnotationValidationError) Cause() error { return e.cause } 105 | 106 | // Key function returns key value. 107 | func (e StatusAnnotationValidationError) Key() bool { return e.key } 108 | 109 | // ErrorName returns error name. 110 | func (e StatusAnnotationValidationError) ErrorName() string { return "StatusAnnotationValidationError" } 111 | 112 | // Error satisfies the builtin error interface 113 | func (e StatusAnnotationValidationError) Error() string { 114 | cause := "" 115 | if e.cause != nil { 116 | cause = fmt.Sprintf(" | caused by: %v", e.cause) 117 | } 118 | 119 | key := "" 120 | if e.key { 121 | key = "key for " 122 | } 123 | 124 | return fmt.Sprintf( 125 | "invalid %sStatusAnnotation.%s: %s%s", 126 | key, 127 | e.field, 128 | e.reason, 129 | cause) 130 | } 131 | 132 | var _ error = StatusAnnotationValidationError{} 133 | 134 | var _ interface { 135 | Field() string 136 | Reason() string 137 | Key() bool 138 | Cause() error 139 | ErrorName() string 140 | } = StatusAnnotationValidationError{} 141 | -------------------------------------------------------------------------------- /go/udpa/annotations/versioning.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: udpa/annotations/versioning.proto 3 | 4 | package annotations 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | 38 | // Validate checks the field values on VersioningAnnotation with the rules 39 | // defined in the proto definition for this message. If any rules are 40 | // violated, the first error encountered is returned, or nil if there are no violations. 41 | func (m *VersioningAnnotation) Validate() error { 42 | return m.validate(false) 43 | } 44 | 45 | // ValidateAll checks the field values on VersioningAnnotation with the rules 46 | // defined in the proto definition for this message. If any rules are 47 | // violated, the result is a list of violation errors wrapped in 48 | // VersioningAnnotationMultiError, or nil if none found. 49 | func (m *VersioningAnnotation) ValidateAll() error { 50 | return m.validate(true) 51 | } 52 | 53 | func (m *VersioningAnnotation) validate(all bool) error { 54 | if m == nil { 55 | return nil 56 | } 57 | 58 | var errors []error 59 | 60 | // no validation rules for PreviousMessageType 61 | 62 | if len(errors) > 0 { 63 | return VersioningAnnotationMultiError(errors) 64 | } 65 | 66 | return nil 67 | } 68 | 69 | // VersioningAnnotationMultiError is an error wrapping multiple validation 70 | // errors returned by VersioningAnnotation.ValidateAll() if the designated 71 | // constraints aren't met. 72 | type VersioningAnnotationMultiError []error 73 | 74 | // Error returns a concatenation of all the error messages it wraps. 75 | func (m VersioningAnnotationMultiError) Error() string { 76 | var msgs []string 77 | for _, err := range m { 78 | msgs = append(msgs, err.Error()) 79 | } 80 | return strings.Join(msgs, "; ") 81 | } 82 | 83 | // AllErrors returns a list of validation violation errors. 84 | func (m VersioningAnnotationMultiError) AllErrors() []error { return m } 85 | 86 | // VersioningAnnotationValidationError is the validation error returned by 87 | // VersioningAnnotation.Validate if the designated constraints aren't met. 88 | type VersioningAnnotationValidationError struct { 89 | field string 90 | reason string 91 | cause error 92 | key bool 93 | } 94 | 95 | // Field function returns field value. 96 | func (e VersioningAnnotationValidationError) Field() string { return e.field } 97 | 98 | // Reason function returns reason value. 99 | func (e VersioningAnnotationValidationError) Reason() string { return e.reason } 100 | 101 | // Cause function returns cause value. 102 | func (e VersioningAnnotationValidationError) Cause() error { return e.cause } 103 | 104 | // Key function returns key value. 105 | func (e VersioningAnnotationValidationError) Key() bool { return e.key } 106 | 107 | // ErrorName returns error name. 108 | func (e VersioningAnnotationValidationError) ErrorName() string { 109 | return "VersioningAnnotationValidationError" 110 | } 111 | 112 | // Error satisfies the builtin error interface 113 | func (e VersioningAnnotationValidationError) Error() string { 114 | cause := "" 115 | if e.cause != nil { 116 | cause = fmt.Sprintf(" | caused by: %v", e.cause) 117 | } 118 | 119 | key := "" 120 | if e.key { 121 | key = "key for " 122 | } 123 | 124 | return fmt.Sprintf( 125 | "invalid %sVersioningAnnotation.%s: %s%s", 126 | key, 127 | e.field, 128 | e.reason, 129 | cause) 130 | } 131 | 132 | var _ error = VersioningAnnotationValidationError{} 133 | 134 | var _ interface { 135 | Field() string 136 | Reason() string 137 | Key() bool 138 | Cause() error 139 | ErrorName() string 140 | } = VersioningAnnotationValidationError{} 141 | -------------------------------------------------------------------------------- /go/xds/annotations/v3/security.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: xds/annotations/v3/security.proto 3 | 4 | package v3 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | 38 | // Validate checks the field values on FieldSecurityAnnotation with the rules 39 | // defined in the proto definition for this message. If any rules are 40 | // violated, the first error encountered is returned, or nil if there are no violations. 41 | func (m *FieldSecurityAnnotation) Validate() error { 42 | return m.validate(false) 43 | } 44 | 45 | // ValidateAll checks the field values on FieldSecurityAnnotation with the 46 | // rules defined in the proto definition for this message. If any rules are 47 | // violated, the result is a list of violation errors wrapped in 48 | // FieldSecurityAnnotationMultiError, or nil if none found. 49 | func (m *FieldSecurityAnnotation) ValidateAll() error { 50 | return m.validate(true) 51 | } 52 | 53 | func (m *FieldSecurityAnnotation) validate(all bool) error { 54 | if m == nil { 55 | return nil 56 | } 57 | 58 | var errors []error 59 | 60 | // no validation rules for ConfigureForUntrustedDownstream 61 | 62 | // no validation rules for ConfigureForUntrustedUpstream 63 | 64 | if len(errors) > 0 { 65 | return FieldSecurityAnnotationMultiError(errors) 66 | } 67 | 68 | return nil 69 | } 70 | 71 | // FieldSecurityAnnotationMultiError is an error wrapping multiple validation 72 | // errors returned by FieldSecurityAnnotation.ValidateAll() if the designated 73 | // constraints aren't met. 74 | type FieldSecurityAnnotationMultiError []error 75 | 76 | // Error returns a concatenation of all the error messages it wraps. 77 | func (m FieldSecurityAnnotationMultiError) Error() string { 78 | var msgs []string 79 | for _, err := range m { 80 | msgs = append(msgs, err.Error()) 81 | } 82 | return strings.Join(msgs, "; ") 83 | } 84 | 85 | // AllErrors returns a list of validation violation errors. 86 | func (m FieldSecurityAnnotationMultiError) AllErrors() []error { return m } 87 | 88 | // FieldSecurityAnnotationValidationError is the validation error returned by 89 | // FieldSecurityAnnotation.Validate if the designated constraints aren't met. 90 | type FieldSecurityAnnotationValidationError struct { 91 | field string 92 | reason string 93 | cause error 94 | key bool 95 | } 96 | 97 | // Field function returns field value. 98 | func (e FieldSecurityAnnotationValidationError) Field() string { return e.field } 99 | 100 | // Reason function returns reason value. 101 | func (e FieldSecurityAnnotationValidationError) Reason() string { return e.reason } 102 | 103 | // Cause function returns cause value. 104 | func (e FieldSecurityAnnotationValidationError) Cause() error { return e.cause } 105 | 106 | // Key function returns key value. 107 | func (e FieldSecurityAnnotationValidationError) Key() bool { return e.key } 108 | 109 | // ErrorName returns error name. 110 | func (e FieldSecurityAnnotationValidationError) ErrorName() string { 111 | return "FieldSecurityAnnotationValidationError" 112 | } 113 | 114 | // Error satisfies the builtin error interface 115 | func (e FieldSecurityAnnotationValidationError) Error() string { 116 | cause := "" 117 | if e.cause != nil { 118 | cause = fmt.Sprintf(" | caused by: %v", e.cause) 119 | } 120 | 121 | key := "" 122 | if e.key { 123 | key = "key for " 124 | } 125 | 126 | return fmt.Sprintf( 127 | "invalid %sFieldSecurityAnnotation.%s: %s%s", 128 | key, 129 | e.field, 130 | e.reason, 131 | cause) 132 | } 133 | 134 | var _ error = FieldSecurityAnnotationValidationError{} 135 | 136 | var _ interface { 137 | Field() string 138 | Reason() string 139 | Key() bool 140 | Cause() error 141 | ErrorName() string 142 | } = FieldSecurityAnnotationValidationError{} 143 | -------------------------------------------------------------------------------- /go/xds/annotations/v3/sensitive.pb.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-go. DO NOT EDIT. 2 | // versions: 3 | // protoc-gen-go v1.33.0 4 | // protoc v5.29.1 5 | // source: xds/annotations/v3/sensitive.proto 6 | 7 | package v3 8 | 9 | import ( 10 | protoreflect "google.golang.org/protobuf/reflect/protoreflect" 11 | protoimpl "google.golang.org/protobuf/runtime/protoimpl" 12 | descriptorpb "google.golang.org/protobuf/types/descriptorpb" 13 | reflect "reflect" 14 | ) 15 | 16 | const ( 17 | // Verify that this generated code is sufficiently up-to-date. 18 | _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 19 | // Verify that runtime/protoimpl is sufficiently up-to-date. 20 | _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 21 | ) 22 | 23 | var file_xds_annotations_v3_sensitive_proto_extTypes = []protoimpl.ExtensionInfo{ 24 | { 25 | ExtendedType: (*descriptorpb.FieldOptions)(nil), 26 | ExtensionType: (*bool)(nil), 27 | Field: 61008053, 28 | Name: "xds.annotations.v3.sensitive", 29 | Tag: "varint,61008053,opt,name=sensitive", 30 | Filename: "xds/annotations/v3/sensitive.proto", 31 | }, 32 | } 33 | 34 | // Extension fields to descriptorpb.FieldOptions. 35 | var ( 36 | // optional bool sensitive = 61008053; 37 | E_Sensitive = &file_xds_annotations_v3_sensitive_proto_extTypes[0] 38 | ) 39 | 40 | var File_xds_annotations_v3_sensitive_proto protoreflect.FileDescriptor 41 | 42 | var file_xds_annotations_v3_sensitive_proto_rawDesc = []byte{ 43 | 0x0a, 0x22, 0x78, 0x64, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 44 | 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x70, 45 | 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x78, 0x64, 0x73, 0x2e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 46 | 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 47 | 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 48 | 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x3e, 0x0a, 0x09, 0x73, 0x65, 49 | 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 50 | 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 51 | 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0xd1, 0x8b, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 52 | 0x09, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x42, 0x2b, 0x5a, 0x29, 0x67, 0x69, 53 | 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e, 0x63, 0x66, 0x2f, 0x78, 0x64, 54 | 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x78, 0x64, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 55 | 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 56 | } 57 | 58 | var file_xds_annotations_v3_sensitive_proto_goTypes = []interface{}{ 59 | (*descriptorpb.FieldOptions)(nil), // 0: google.protobuf.FieldOptions 60 | } 61 | var file_xds_annotations_v3_sensitive_proto_depIdxs = []int32{ 62 | 0, // 0: xds.annotations.v3.sensitive:extendee -> google.protobuf.FieldOptions 63 | 1, // [1:1] is the sub-list for method output_type 64 | 1, // [1:1] is the sub-list for method input_type 65 | 1, // [1:1] is the sub-list for extension type_name 66 | 0, // [0:1] is the sub-list for extension extendee 67 | 0, // [0:0] is the sub-list for field type_name 68 | } 69 | 70 | func init() { file_xds_annotations_v3_sensitive_proto_init() } 71 | func file_xds_annotations_v3_sensitive_proto_init() { 72 | if File_xds_annotations_v3_sensitive_proto != nil { 73 | return 74 | } 75 | type x struct{} 76 | out := protoimpl.TypeBuilder{ 77 | File: protoimpl.DescBuilder{ 78 | GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 79 | RawDescriptor: file_xds_annotations_v3_sensitive_proto_rawDesc, 80 | NumEnums: 0, 81 | NumMessages: 0, 82 | NumExtensions: 1, 83 | NumServices: 0, 84 | }, 85 | GoTypes: file_xds_annotations_v3_sensitive_proto_goTypes, 86 | DependencyIndexes: file_xds_annotations_v3_sensitive_proto_depIdxs, 87 | ExtensionInfos: file_xds_annotations_v3_sensitive_proto_extTypes, 88 | }.Build() 89 | File_xds_annotations_v3_sensitive_proto = out.File 90 | file_xds_annotations_v3_sensitive_proto_rawDesc = nil 91 | file_xds_annotations_v3_sensitive_proto_goTypes = nil 92 | file_xds_annotations_v3_sensitive_proto_depIdxs = nil 93 | } 94 | -------------------------------------------------------------------------------- /go/xds/annotations/v3/sensitive.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: xds/annotations/v3/sensitive.proto 3 | 4 | package v3 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | -------------------------------------------------------------------------------- /go/xds/annotations/v3/versioning.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: xds/annotations/v3/versioning.proto 3 | 4 | package v3 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | 38 | // Validate checks the field values on VersioningAnnotation with the rules 39 | // defined in the proto definition for this message. If any rules are 40 | // violated, the first error encountered is returned, or nil if there are no violations. 41 | func (m *VersioningAnnotation) Validate() error { 42 | return m.validate(false) 43 | } 44 | 45 | // ValidateAll checks the field values on VersioningAnnotation with the rules 46 | // defined in the proto definition for this message. If any rules are 47 | // violated, the result is a list of violation errors wrapped in 48 | // VersioningAnnotationMultiError, or nil if none found. 49 | func (m *VersioningAnnotation) ValidateAll() error { 50 | return m.validate(true) 51 | } 52 | 53 | func (m *VersioningAnnotation) validate(all bool) error { 54 | if m == nil { 55 | return nil 56 | } 57 | 58 | var errors []error 59 | 60 | // no validation rules for PreviousMessageType 61 | 62 | if len(errors) > 0 { 63 | return VersioningAnnotationMultiError(errors) 64 | } 65 | 66 | return nil 67 | } 68 | 69 | // VersioningAnnotationMultiError is an error wrapping multiple validation 70 | // errors returned by VersioningAnnotation.ValidateAll() if the designated 71 | // constraints aren't met. 72 | type VersioningAnnotationMultiError []error 73 | 74 | // Error returns a concatenation of all the error messages it wraps. 75 | func (m VersioningAnnotationMultiError) Error() string { 76 | var msgs []string 77 | for _, err := range m { 78 | msgs = append(msgs, err.Error()) 79 | } 80 | return strings.Join(msgs, "; ") 81 | } 82 | 83 | // AllErrors returns a list of validation violation errors. 84 | func (m VersioningAnnotationMultiError) AllErrors() []error { return m } 85 | 86 | // VersioningAnnotationValidationError is the validation error returned by 87 | // VersioningAnnotation.Validate if the designated constraints aren't met. 88 | type VersioningAnnotationValidationError struct { 89 | field string 90 | reason string 91 | cause error 92 | key bool 93 | } 94 | 95 | // Field function returns field value. 96 | func (e VersioningAnnotationValidationError) Field() string { return e.field } 97 | 98 | // Reason function returns reason value. 99 | func (e VersioningAnnotationValidationError) Reason() string { return e.reason } 100 | 101 | // Cause function returns cause value. 102 | func (e VersioningAnnotationValidationError) Cause() error { return e.cause } 103 | 104 | // Key function returns key value. 105 | func (e VersioningAnnotationValidationError) Key() bool { return e.key } 106 | 107 | // ErrorName returns error name. 108 | func (e VersioningAnnotationValidationError) ErrorName() string { 109 | return "VersioningAnnotationValidationError" 110 | } 111 | 112 | // Error satisfies the builtin error interface 113 | func (e VersioningAnnotationValidationError) Error() string { 114 | cause := "" 115 | if e.cause != nil { 116 | cause = fmt.Sprintf(" | caused by: %v", e.cause) 117 | } 118 | 119 | key := "" 120 | if e.key { 121 | key = "key for " 122 | } 123 | 124 | return fmt.Sprintf( 125 | "invalid %sVersioningAnnotation.%s: %s%s", 126 | key, 127 | e.field, 128 | e.reason, 129 | cause) 130 | } 131 | 132 | var _ error = VersioningAnnotationValidationError{} 133 | 134 | var _ interface { 135 | Field() string 136 | Reason() string 137 | Key() bool 138 | Cause() error 139 | ErrorName() string 140 | } = VersioningAnnotationValidationError{} 141 | -------------------------------------------------------------------------------- /go/xds/core/v3/authority.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: xds/core/v3/authority.proto 3 | 4 | package v3 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | 38 | // Validate checks the field values on Authority with the rules defined in the 39 | // proto definition for this message. If any rules are violated, the first 40 | // error encountered is returned, or nil if there are no violations. 41 | func (m *Authority) Validate() error { 42 | return m.validate(false) 43 | } 44 | 45 | // ValidateAll checks the field values on Authority with the rules defined in 46 | // the proto definition for this message. If any rules are violated, the 47 | // result is a list of violation errors wrapped in AuthorityMultiError, or nil 48 | // if none found. 49 | func (m *Authority) ValidateAll() error { 50 | return m.validate(true) 51 | } 52 | 53 | func (m *Authority) validate(all bool) error { 54 | if m == nil { 55 | return nil 56 | } 57 | 58 | var errors []error 59 | 60 | if utf8.RuneCountInString(m.GetName()) < 1 { 61 | err := AuthorityValidationError{ 62 | field: "Name", 63 | reason: "value length must be at least 1 runes", 64 | } 65 | if !all { 66 | return err 67 | } 68 | errors = append(errors, err) 69 | } 70 | 71 | if len(errors) > 0 { 72 | return AuthorityMultiError(errors) 73 | } 74 | 75 | return nil 76 | } 77 | 78 | // AuthorityMultiError is an error wrapping multiple validation errors returned 79 | // by Authority.ValidateAll() if the designated constraints aren't met. 80 | type AuthorityMultiError []error 81 | 82 | // Error returns a concatenation of all the error messages it wraps. 83 | func (m AuthorityMultiError) Error() string { 84 | var msgs []string 85 | for _, err := range m { 86 | msgs = append(msgs, err.Error()) 87 | } 88 | return strings.Join(msgs, "; ") 89 | } 90 | 91 | // AllErrors returns a list of validation violation errors. 92 | func (m AuthorityMultiError) AllErrors() []error { return m } 93 | 94 | // AuthorityValidationError is the validation error returned by 95 | // Authority.Validate if the designated constraints aren't met. 96 | type AuthorityValidationError struct { 97 | field string 98 | reason string 99 | cause error 100 | key bool 101 | } 102 | 103 | // Field function returns field value. 104 | func (e AuthorityValidationError) Field() string { return e.field } 105 | 106 | // Reason function returns reason value. 107 | func (e AuthorityValidationError) Reason() string { return e.reason } 108 | 109 | // Cause function returns cause value. 110 | func (e AuthorityValidationError) Cause() error { return e.cause } 111 | 112 | // Key function returns key value. 113 | func (e AuthorityValidationError) Key() bool { return e.key } 114 | 115 | // ErrorName returns error name. 116 | func (e AuthorityValidationError) ErrorName() string { return "AuthorityValidationError" } 117 | 118 | // Error satisfies the builtin error interface 119 | func (e AuthorityValidationError) Error() string { 120 | cause := "" 121 | if e.cause != nil { 122 | cause = fmt.Sprintf(" | caused by: %v", e.cause) 123 | } 124 | 125 | key := "" 126 | if e.key { 127 | key = "key for " 128 | } 129 | 130 | return fmt.Sprintf( 131 | "invalid %sAuthority.%s: %s%s", 132 | key, 133 | e.field, 134 | e.reason, 135 | cause) 136 | } 137 | 138 | var _ error = AuthorityValidationError{} 139 | 140 | var _ interface { 141 | Field() string 142 | Reason() string 143 | Key() bool 144 | Cause() error 145 | ErrorName() string 146 | } = AuthorityValidationError{} 147 | -------------------------------------------------------------------------------- /go/xds/core/v3/context_params.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: xds/core/v3/context_params.proto 3 | 4 | package v3 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | 38 | // Validate checks the field values on ContextParams with the rules defined in 39 | // the proto definition for this message. If any rules are violated, the first 40 | // error encountered is returned, or nil if there are no violations. 41 | func (m *ContextParams) Validate() error { 42 | return m.validate(false) 43 | } 44 | 45 | // ValidateAll checks the field values on ContextParams with the rules defined 46 | // in the proto definition for this message. If any rules are violated, the 47 | // result is a list of violation errors wrapped in ContextParamsMultiError, or 48 | // nil if none found. 49 | func (m *ContextParams) ValidateAll() error { 50 | return m.validate(true) 51 | } 52 | 53 | func (m *ContextParams) validate(all bool) error { 54 | if m == nil { 55 | return nil 56 | } 57 | 58 | var errors []error 59 | 60 | // no validation rules for Params 61 | 62 | if len(errors) > 0 { 63 | return ContextParamsMultiError(errors) 64 | } 65 | 66 | return nil 67 | } 68 | 69 | // ContextParamsMultiError is an error wrapping multiple validation errors 70 | // returned by ContextParams.ValidateAll() if the designated constraints 71 | // aren't met. 72 | type ContextParamsMultiError []error 73 | 74 | // Error returns a concatenation of all the error messages it wraps. 75 | func (m ContextParamsMultiError) Error() string { 76 | var msgs []string 77 | for _, err := range m { 78 | msgs = append(msgs, err.Error()) 79 | } 80 | return strings.Join(msgs, "; ") 81 | } 82 | 83 | // AllErrors returns a list of validation violation errors. 84 | func (m ContextParamsMultiError) AllErrors() []error { return m } 85 | 86 | // ContextParamsValidationError is the validation error returned by 87 | // ContextParams.Validate if the designated constraints aren't met. 88 | type ContextParamsValidationError struct { 89 | field string 90 | reason string 91 | cause error 92 | key bool 93 | } 94 | 95 | // Field function returns field value. 96 | func (e ContextParamsValidationError) Field() string { return e.field } 97 | 98 | // Reason function returns reason value. 99 | func (e ContextParamsValidationError) Reason() string { return e.reason } 100 | 101 | // Cause function returns cause value. 102 | func (e ContextParamsValidationError) Cause() error { return e.cause } 103 | 104 | // Key function returns key value. 105 | func (e ContextParamsValidationError) Key() bool { return e.key } 106 | 107 | // ErrorName returns error name. 108 | func (e ContextParamsValidationError) ErrorName() string { return "ContextParamsValidationError" } 109 | 110 | // Error satisfies the builtin error interface 111 | func (e ContextParamsValidationError) Error() string { 112 | cause := "" 113 | if e.cause != nil { 114 | cause = fmt.Sprintf(" | caused by: %v", e.cause) 115 | } 116 | 117 | key := "" 118 | if e.key { 119 | key = "key for " 120 | } 121 | 122 | return fmt.Sprintf( 123 | "invalid %sContextParams.%s: %s%s", 124 | key, 125 | e.field, 126 | e.reason, 127 | cause) 128 | } 129 | 130 | var _ error = ContextParamsValidationError{} 131 | 132 | var _ interface { 133 | Field() string 134 | Reason() string 135 | Key() bool 136 | Cause() error 137 | ErrorName() string 138 | } = ContextParamsValidationError{} 139 | -------------------------------------------------------------------------------- /go/xds/type/matcher/v3/http_inputs.pb.validate.go: -------------------------------------------------------------------------------- 1 | // Code generated by protoc-gen-validate. DO NOT EDIT. 2 | // source: xds/type/matcher/v3/http_inputs.proto 3 | 4 | package v3 5 | 6 | import ( 7 | "bytes" 8 | "errors" 9 | "fmt" 10 | "net" 11 | "net/mail" 12 | "net/url" 13 | "regexp" 14 | "sort" 15 | "strings" 16 | "time" 17 | "unicode/utf8" 18 | 19 | "google.golang.org/protobuf/types/known/anypb" 20 | ) 21 | 22 | // ensure the imports are used 23 | var ( 24 | _ = bytes.MinRead 25 | _ = errors.New("") 26 | _ = fmt.Print 27 | _ = utf8.UTFMax 28 | _ = (*regexp.Regexp)(nil) 29 | _ = (*strings.Reader)(nil) 30 | _ = net.IPv4len 31 | _ = time.Duration(0) 32 | _ = (*url.URL)(nil) 33 | _ = (*mail.Address)(nil) 34 | _ = anypb.Any{} 35 | _ = sort.Sort 36 | ) 37 | 38 | // Validate checks the field values on HttpAttributesCelMatchInput with the 39 | // rules defined in the proto definition for this message. If any rules are 40 | // violated, the first error encountered is returned, or nil if there are no violations. 41 | func (m *HttpAttributesCelMatchInput) Validate() error { 42 | return m.validate(false) 43 | } 44 | 45 | // ValidateAll checks the field values on HttpAttributesCelMatchInput with the 46 | // rules defined in the proto definition for this message. If any rules are 47 | // violated, the result is a list of violation errors wrapped in 48 | // HttpAttributesCelMatchInputMultiError, or nil if none found. 49 | func (m *HttpAttributesCelMatchInput) ValidateAll() error { 50 | return m.validate(true) 51 | } 52 | 53 | func (m *HttpAttributesCelMatchInput) validate(all bool) error { 54 | if m == nil { 55 | return nil 56 | } 57 | 58 | var errors []error 59 | 60 | if len(errors) > 0 { 61 | return HttpAttributesCelMatchInputMultiError(errors) 62 | } 63 | 64 | return nil 65 | } 66 | 67 | // HttpAttributesCelMatchInputMultiError is an error wrapping multiple 68 | // validation errors returned by HttpAttributesCelMatchInput.ValidateAll() if 69 | // the designated constraints aren't met. 70 | type HttpAttributesCelMatchInputMultiError []error 71 | 72 | // Error returns a concatenation of all the error messages it wraps. 73 | func (m HttpAttributesCelMatchInputMultiError) Error() string { 74 | var msgs []string 75 | for _, err := range m { 76 | msgs = append(msgs, err.Error()) 77 | } 78 | return strings.Join(msgs, "; ") 79 | } 80 | 81 | // AllErrors returns a list of validation violation errors. 82 | func (m HttpAttributesCelMatchInputMultiError) AllErrors() []error { return m } 83 | 84 | // HttpAttributesCelMatchInputValidationError is the validation error returned 85 | // by HttpAttributesCelMatchInput.Validate if the designated constraints 86 | // aren't met. 87 | type HttpAttributesCelMatchInputValidationError struct { 88 | field string 89 | reason string 90 | cause error 91 | key bool 92 | } 93 | 94 | // Field function returns field value. 95 | func (e HttpAttributesCelMatchInputValidationError) Field() string { return e.field } 96 | 97 | // Reason function returns reason value. 98 | func (e HttpAttributesCelMatchInputValidationError) Reason() string { return e.reason } 99 | 100 | // Cause function returns cause value. 101 | func (e HttpAttributesCelMatchInputValidationError) Cause() error { return e.cause } 102 | 103 | // Key function returns key value. 104 | func (e HttpAttributesCelMatchInputValidationError) Key() bool { return e.key } 105 | 106 | // ErrorName returns error name. 107 | func (e HttpAttributesCelMatchInputValidationError) ErrorName() string { 108 | return "HttpAttributesCelMatchInputValidationError" 109 | } 110 | 111 | // Error satisfies the builtin error interface 112 | func (e HttpAttributesCelMatchInputValidationError) Error() string { 113 | cause := "" 114 | if e.cause != nil { 115 | cause = fmt.Sprintf(" | caused by: %v", e.cause) 116 | } 117 | 118 | key := "" 119 | if e.key { 120 | key = "key for " 121 | } 122 | 123 | return fmt.Sprintf( 124 | "invalid %sHttpAttributesCelMatchInput.%s: %s%s", 125 | key, 126 | e.field, 127 | e.reason, 128 | cause) 129 | } 130 | 131 | var _ error = HttpAttributesCelMatchInputValidationError{} 132 | 133 | var _ interface { 134 | Field() string 135 | Reason() string 136 | Key() bool 137 | Cause() error 138 | ErrorName() string 139 | } = HttpAttributesCelMatchInputValidationError{} 140 | -------------------------------------------------------------------------------- /proposals/README.md: -------------------------------------------------------------------------------- 1 | # xDS RFCs (xRFCs) 2 | 3 | ## Introduction 4 | 5 | This directory contains the design proposals for substantial feature changes for 6 | xDS. The goal of this process is to: 7 | - Provide a reference for the xDS transport protocol and data model standards. 8 | - Capture design history and tradeoffs as the xDS APIs evolve. 9 | - Provide increased visibility to the community on upcoming changes and the 10 | design considerations around them. 11 | - Provide ability to reason about larger “sets” of changes that are too big to 12 | be covered either in an Issue or in a PR. 13 | - Establish a consistent process for structured participation by the community 14 | on significant changes, especially those that impact multiple clients and servers. 15 | 16 | We have modeled the xRFC process on [gRPC 17 | RFCs](https://github.com/grpc/proposal). 18 | 19 | ## Process 20 | 21 | 1. Copy the template [XRFC-TEMPLATE.md](XRFC-TEMPLATE.md). 22 | 1. Rename it to `$CategoryName$xRfcId-$Summary.md`, e.g. `TP1-xds-transport-next.md` 23 | (see category definitions below). The `$xRfcId` should be strictly higher 24 | than any existing or under-review xRFC in `$CategoryName`. 25 | 1. Write up the RFC. 26 | 1. Submit a Pull Request. The CNCF xDS working group should be tagged with 27 | `@cncf/xds-wg` and an e-mail sent to `xds-wg@lists.cncf.io` linking to the 28 | PR. All discussion is expected to take place within the PR. 29 | 1. An APPROVER will be assigned by one of this repository's maintainers. 30 | 1. For at least a period of 10 business days (the minimum comment period), 31 | it is expected that the OWNER will respond to the comments and make updates 32 | to the RFC as new commits to the PR. Through the process, the discussion 33 | should take place within the PR to avoid splintering conversations. The OWNER is 34 | encouraged to solicit as much feedback on the proposal as possible during this 35 | period. 36 | 1. If there is consensus as deemed by the APPROVER during the comment period, 37 | the APPROVER will merge the proposal pull request. 38 | 39 | ## Proposal Categories 40 | 41 | The proposals shall be numbered in increasing order. 42 | 43 | - ``#TPn`` - Transport protocol. 44 | - ``#DMn`` - Data model. 45 | - ``#Pnn`` - Affects processes, such as the proposal process itself. 46 | 47 | ## Proposal Status 48 | 1. Every uncommitted proposal is effectively in draft status. 49 | 1. Once committed, a proposal is in finalized status. 50 | 1. If issues are discovered during implementation, revisions may be made by 51 | following the review process. 52 | 1. Once implemented by an xDS client, this should be reflected in the 53 | `Implemented in:` header field of the proposal. Listing versions is not 54 | required. 55 | -------------------------------------------------------------------------------- /proposals/XRFC-TEMPLATE.md: -------------------------------------------------------------------------------- 1 | : Title 2 | ---- 3 | * Author(s): [Author Name, Co-Author Name ...] 4 | * Approver: 5 | * Implemented in: 6 | * Last updated: [YYYY-MM-DD] 7 | 8 | ## Abstract 9 | 10 | [A short summary of the proposal.] 11 | 12 | ## Background 13 | 14 | [An introduction of the necessary background and the problem being solved by the proposed change.] 15 | 16 | 17 | ### Related Proposals: 18 | * A list of proposals this proposal builds on or supersedes. 19 | 20 | ## Proposal 21 | 22 | [A precise statement of the proposed change.] 23 | 24 | ## Rationale 25 | 26 | [A discussion of alternate approaches and the trade offs, advantages, and disadvantages of the specified approach.] 27 | 28 | 29 | ## Implementation 30 | 31 | [A description of the steps in the implementation, who will do them, and when. If a particular client is going to get the implementation first, this section should list the proposed order.] 32 | 33 | ## Open issues (if applicable) 34 | 35 | [A discussion of issues relating to this proposal for which the author does not know the solution. This section may be omitted if there are none.] 36 | -------------------------------------------------------------------------------- /python/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/__init__.py -------------------------------------------------------------------------------- /python/dist/xds-0.1.0-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/dist/xds-0.1.0-py3-none-any.whl -------------------------------------------------------------------------------- /python/dist/xds-0.1.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/dist/xds-0.1.0.tar.gz -------------------------------------------------------------------------------- /python/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = [ 3 | "setuptools>=42", 4 | "wheel" 5 | ] 6 | build-backend = "setuptools.build_meta" 7 | 8 | [project] 9 | name = "xds" 10 | version = "0.1.0" 11 | description = "xds Protocol Buffer Messages" 12 | requires-python = ">=3.7" # Or the appropriate minimum Python version 13 | dependencies = [ 14 | "protobuf==5.29.1" 15 | ] 16 | 17 | [project.optional-dependencies] 18 | 19 | [tool.setuptools.packages.find] 20 | where = ["."] -------------------------------------------------------------------------------- /python/udpa/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/__init__.py -------------------------------------------------------------------------------- /python/udpa/annotations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/annotations/__init__.py -------------------------------------------------------------------------------- /python/udpa/annotations/migrate_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: udpa/annotations/migrate.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'udpa/annotations/migrate.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eudpa/annotations/migrate.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"#\n\x11MigrateAnnotation\x12\x0e\n\x06rename\x18\x01 \x01(\t\"A\n\x16\x46ieldMigrateAnnotation\x12\x0e\n\x06rename\x18\x01 \x01(\t\x12\x17\n\x0foneof_promotion\x18\x02 \x01(\t\"0\n\x15\x46ileMigrateAnnotation\x12\x17\n\x0fmove_to_package\x18\x02 \x01(\t:`\n\x0fmessage_migrate\x12\x1f.google.protobuf.MessageOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:a\n\rfield_migrate\x12\x1d.google.protobuf.FieldOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32(.udpa.annotations.FieldMigrateAnnotation:Z\n\x0c\x65num_migrate\x12\x1c.google.protobuf.EnumOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:e\n\x12\x65num_value_migrate\x12!.google.protobuf.EnumValueOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32#.udpa.annotations.MigrateAnnotation:^\n\x0c\x66ile_migrate\x12\x1c.google.protobuf.FileOptions\x18\x8e\xe3\xffQ \x01(\x0b\x32\'.udpa.annotations.FileMigrateAnnotationB)Z\'github.com/cncf/xds/go/udpa/annotationsb\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.migrate_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations' 36 | _globals['_MIGRATEANNOTATION']._serialized_start=86 37 | _globals['_MIGRATEANNOTATION']._serialized_end=121 38 | _globals['_FIELDMIGRATEANNOTATION']._serialized_start=123 39 | _globals['_FIELDMIGRATEANNOTATION']._serialized_end=188 40 | _globals['_FILEMIGRATEANNOTATION']._serialized_start=190 41 | _globals['_FILEMIGRATEANNOTATION']._serialized_end=238 42 | # @@protoc_insertion_point(module_scope) 43 | -------------------------------------------------------------------------------- /python/udpa/annotations/security_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: udpa/annotations/security.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'udpa/annotations/security.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from udpa.annotations import status_pb2 as udpa_dot_annotations_dot_status__pb2 26 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 27 | 28 | 29 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fudpa/annotations/security.proto\x12\x10udpa.annotations\x1a\x1dudpa/annotations/status.proto\x1a google/protobuf/descriptor.proto\"o\n\x17\x46ieldSecurityAnnotation\x12*\n\"configure_for_untrusted_downstream\x18\x01 \x01(\x08\x12(\n configure_for_untrusted_upstream\x18\x02 \x01(\x08:]\n\x08security\x12\x1d.google.protobuf.FieldOptions\x18\xb1\xf2\xa6\x05 \x01(\x0b\x32).udpa.annotations.FieldSecurityAnnotationB1Z\'github.com/cncf/xds/go/udpa/annotations\xba\x80\xc8\xd1\x06\x02\x08\x01\x62\x06proto3') 30 | 31 | _globals = globals() 32 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 33 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.security_pb2', _globals) 34 | if not _descriptor._USE_C_DESCRIPTORS: 35 | _globals['DESCRIPTOR']._loaded_options = None 36 | _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations\272\200\310\321\006\002\010\001' 37 | _globals['_FIELDSECURITYANNOTATION']._serialized_start=118 38 | _globals['_FIELDSECURITYANNOTATION']._serialized_end=229 39 | # @@protoc_insertion_point(module_scope) 40 | -------------------------------------------------------------------------------- /python/udpa/annotations/sensitive_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: udpa/annotations/sensitive.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'udpa/annotations/sensitive.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n udpa/annotations/sensitive.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto:3\n\tsensitive\x12\x1d.google.protobuf.FieldOptions\x18\xf7\xb6\xc1$ \x01(\x08\x42)Z\'github.com/cncf/xds/go/udpa/annotationsb\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.sensitive_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations' 36 | # @@protoc_insertion_point(module_scope) 37 | -------------------------------------------------------------------------------- /python/udpa/annotations/status_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: udpa/annotations/status.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'udpa/annotations/status.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dudpa/annotations/status.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"t\n\x10StatusAnnotation\x12\x18\n\x10work_in_progress\x18\x01 \x01(\x08\x12\x46\n\x16package_version_status\x18\x02 \x01(\x0e\x32&.udpa.annotations.PackageVersionStatus*]\n\x14PackageVersionStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x46ROZEN\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12 \n\x1cNEXT_MAJOR_VERSION_CANDIDATE\x10\x03:X\n\x0b\x66ile_status\x12\x1c.google.protobuf.FileOptions\x18\x87\x80\x99j \x01(\x0b\x32\".udpa.annotations.StatusAnnotationB)Z\'github.com/cncf/xds/go/udpa/annotationsb\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.status_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations' 36 | _globals['_PACKAGEVERSIONSTATUS']._serialized_start=203 37 | _globals['_PACKAGEVERSIONSTATUS']._serialized_end=296 38 | _globals['_STATUSANNOTATION']._serialized_start=85 39 | _globals['_STATUSANNOTATION']._serialized_end=201 40 | # @@protoc_insertion_point(module_scope) 41 | -------------------------------------------------------------------------------- /python/udpa/annotations/versioning_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: udpa/annotations/versioning.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'udpa/annotations/versioning.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!udpa/annotations/versioning.proto\x12\x10udpa.annotations\x1a google/protobuf/descriptor.proto\"5\n\x14VersioningAnnotation\x12\x1d\n\x15previous_message_type\x18\x01 \x01(\t:^\n\nversioning\x12\x1f.google.protobuf.MessageOptions\x18\xd3\x88\xe1\x03 \x01(\x0b\x32&.udpa.annotations.VersioningAnnotationB)Z\'github.com/cncf/xds/go/udpa/annotationsb\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.annotations.versioning_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'Z\'github.com/cncf/xds/go/udpa/annotations' 36 | _globals['_VERSIONINGANNOTATION']._serialized_start=89 37 | _globals['_VERSIONINGANNOTATION']._serialized_end=142 38 | # @@protoc_insertion_point(module_scope) 39 | -------------------------------------------------------------------------------- /python/udpa/data/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/data/__init__.py -------------------------------------------------------------------------------- /python/udpa/data/orca/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/data/orca/__init__.py -------------------------------------------------------------------------------- /python/udpa/data/orca/v1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/data/orca/v1/__init__.py -------------------------------------------------------------------------------- /python/udpa/data/orca/v1/orca_load_report_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: udpa/data/orca/v1/orca_load_report.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'udpa/data/orca/v1/orca_load_report.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from validate import validate_pb2 as validate_dot_validate__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(udpa/data/orca/v1/orca_load_report.proto\x12\x11udpa.data.orca.v1\x1a\x17validate/validate.proto\"\x9a\x03\n\x0eOrcaLoadReport\x12\x30\n\x0f\x63pu_utilization\x18\x01 \x01(\x01\x42\x17\xfa\x42\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00\xf0?)\x00\x00\x00\x00\x00\x00\x00\x00\x12\x30\n\x0fmem_utilization\x18\x02 \x01(\x01\x42\x17\xfa\x42\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00\xf0?)\x00\x00\x00\x00\x00\x00\x00\x00\x12\x0b\n\x03rps\x18\x03 \x01(\x04\x12H\n\x0crequest_cost\x18\x04 \x03(\x0b\x32\x32.udpa.data.orca.v1.OrcaLoadReport.RequestCostEntry\x12\x65\n\x0butilization\x18\x05 \x03(\x0b\x32\x32.udpa.data.orca.v1.OrcaLoadReport.UtilizationEntryB\x1c\xfa\x42\x19\x9a\x01\x16*\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00\xf0?)\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x32\n\x10RequestCostEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1a\x32\n\x10UtilizationEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x42\x64\n!com.github.udpa.udpa.data.orca.v1B\x13OrcaLoadReportProtoP\x01Z(github.com/cncf/xds/go/udpa/data/orca/v1b\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.data.orca.v1.orca_load_report_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'\n!com.github.udpa.udpa.data.orca.v1B\023OrcaLoadReportProtoP\001Z(github.com/cncf/xds/go/udpa/data/orca/v1' 36 | _globals['_ORCALOADREPORT_REQUESTCOSTENTRY']._loaded_options = None 37 | _globals['_ORCALOADREPORT_REQUESTCOSTENTRY']._serialized_options = b'8\001' 38 | _globals['_ORCALOADREPORT_UTILIZATIONENTRY']._loaded_options = None 39 | _globals['_ORCALOADREPORT_UTILIZATIONENTRY']._serialized_options = b'8\001' 40 | _globals['_ORCALOADREPORT'].fields_by_name['cpu_utilization']._loaded_options = None 41 | _globals['_ORCALOADREPORT'].fields_by_name['cpu_utilization']._serialized_options = b'\372B\024\022\022\031\000\000\000\000\000\000\360?)\000\000\000\000\000\000\000\000' 42 | _globals['_ORCALOADREPORT'].fields_by_name['mem_utilization']._loaded_options = None 43 | _globals['_ORCALOADREPORT'].fields_by_name['mem_utilization']._serialized_options = b'\372B\024\022\022\031\000\000\000\000\000\000\360?)\000\000\000\000\000\000\000\000' 44 | _globals['_ORCALOADREPORT'].fields_by_name['utilization']._loaded_options = None 45 | _globals['_ORCALOADREPORT'].fields_by_name['utilization']._serialized_options = b'\372B\031\232\001\026*\024\022\022\031\000\000\000\000\000\000\360?)\000\000\000\000\000\000\000\000' 46 | _globals['_ORCALOADREPORT']._serialized_start=89 47 | _globals['_ORCALOADREPORT']._serialized_end=499 48 | _globals['_ORCALOADREPORT_REQUESTCOSTENTRY']._serialized_start=397 49 | _globals['_ORCALOADREPORT_REQUESTCOSTENTRY']._serialized_end=447 50 | _globals['_ORCALOADREPORT_UTILIZATIONENTRY']._serialized_start=449 51 | _globals['_ORCALOADREPORT_UTILIZATIONENTRY']._serialized_end=499 52 | # @@protoc_insertion_point(module_scope) 53 | -------------------------------------------------------------------------------- /python/udpa/service/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/service/__init__.py -------------------------------------------------------------------------------- /python/udpa/service/orca/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/service/orca/__init__.py -------------------------------------------------------------------------------- /python/udpa/service/orca/v1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/service/orca/v1/__init__.py -------------------------------------------------------------------------------- /python/udpa/service/orca/v1/orca_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: udpa/service/orca/v1/orca.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'udpa/service/orca/v1/orca.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from udpa.data.orca.v1 import orca_load_report_pb2 as udpa_dot_data_dot_orca_dot_v1_dot_orca__load__report__pb2 26 | from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 27 | 28 | 29 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fudpa/service/orca/v1/orca.proto\x12\x14udpa.service.orca.v1\x1a(udpa/data/orca/v1/orca_load_report.proto\x1a\x1egoogle/protobuf/duration.proto\"g\n\x15OrcaLoadReportRequest\x12\x32\n\x0freport_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1a\n\x12request_cost_names\x18\x02 \x03(\t2w\n\x0eOpenRcaService\x12\x65\n\x11StreamCoreMetrics\x12+.udpa.service.orca.v1.OrcaLoadReportRequest\x1a!.udpa.data.orca.v1.OrcaLoadReport0\x01\x42`\n$com.github.udpa.udpa.service.orca.v1B\tOrcaProtoP\x01Z+github.com/cncf/xds/go/udpa/service/orca/v1b\x06proto3') 30 | 31 | _globals = globals() 32 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 33 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.service.orca.v1.orca_pb2', _globals) 34 | if not _descriptor._USE_C_DESCRIPTORS: 35 | _globals['DESCRIPTOR']._loaded_options = None 36 | _globals['DESCRIPTOR']._serialized_options = b'\n$com.github.udpa.udpa.service.orca.v1B\tOrcaProtoP\001Z+github.com/cncf/xds/go/udpa/service/orca/v1' 37 | _globals['_ORCALOADREPORTREQUEST']._serialized_start=131 38 | _globals['_ORCALOADREPORTREQUEST']._serialized_end=234 39 | _globals['_OPENRCASERVICE']._serialized_start=236 40 | _globals['_OPENRCASERVICE']._serialized_end=355 41 | # @@protoc_insertion_point(module_scope) 42 | -------------------------------------------------------------------------------- /python/udpa/type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/type/__init__.py -------------------------------------------------------------------------------- /python/udpa/type/v1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/udpa/type/v1/__init__.py -------------------------------------------------------------------------------- /python/udpa/type/v1/typed_struct_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: udpa/type/v1/typed_struct.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'udpa/type/v1/typed_struct.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fudpa/type/v1/typed_struct.proto\x12\x0cudpa.type.v1\x1a\x1cgoogle/protobuf/struct.proto\"G\n\x0bTypedStruct\x12\x10\n\x08type_url\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructBW\n\x1c\x63om.github.udpa.udpa.type.v1B\x10TypedStructProtoP\x01Z#github.com/cncf/xds/go/udpa/type/v1b\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'udpa.type.v1.typed_struct_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'\n\034com.github.udpa.udpa.type.v1B\020TypedStructProtoP\001Z#github.com/cncf/xds/go/udpa/type/v1' 36 | _globals['_TYPEDSTRUCT']._serialized_start=79 37 | _globals['_TYPEDSTRUCT']._serialized_end=150 38 | # @@protoc_insertion_point(module_scope) 39 | -------------------------------------------------------------------------------- /python/xds/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/__init__.py -------------------------------------------------------------------------------- /python/xds/annotations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/annotations/__init__.py -------------------------------------------------------------------------------- /python/xds/annotations/v3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/annotations/v3/__init__.py -------------------------------------------------------------------------------- /python/xds/annotations/v3/migrate_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/annotations/v3/migrate.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/annotations/v3/migrate.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n xds/annotations/v3/migrate.proto\x12\x12xds.annotations.v3\x1a google/protobuf/descriptor.proto\"#\n\x11MigrateAnnotation\x12\x0e\n\x06rename\x18\x01 \x01(\t\"A\n\x16\x46ieldMigrateAnnotation\x12\x0e\n\x06rename\x18\x01 \x01(\t\x12\x17\n\x0foneof_promotion\x18\x02 \x01(\t\"0\n\x15\x46ileMigrateAnnotation\x12\x17\n\x0fmove_to_package\x18\x02 \x01(\t:b\n\x0fmessage_migrate\x12\x1f.google.protobuf.MessageOptions\x18\xce\xe9\xed\x35 \x01(\x0b\x32%.xds.annotations.v3.MigrateAnnotation:c\n\rfield_migrate\x12\x1d.google.protobuf.FieldOptions\x18\xce\xe9\xed\x35 \x01(\x0b\x32*.xds.annotations.v3.FieldMigrateAnnotation:\\\n\x0c\x65num_migrate\x12\x1c.google.protobuf.EnumOptions\x18\xce\xe9\xed\x35 \x01(\x0b\x32%.xds.annotations.v3.MigrateAnnotation:g\n\x12\x65num_value_migrate\x12!.google.protobuf.EnumValueOptions\x18\xce\xe9\xed\x35 \x01(\x0b\x32%.xds.annotations.v3.MigrateAnnotation:`\n\x0c\x66ile_migrate\x12\x1c.google.protobuf.FileOptions\x18\xce\xe9\xed\x35 \x01(\x0b\x32).xds.annotations.v3.FileMigrateAnnotationB+Z)github.com/cncf/xds/go/xds/annotations/v3b\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.annotations.v3.migrate_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'Z)github.com/cncf/xds/go/xds/annotations/v3' 36 | _globals['_MIGRATEANNOTATION']._serialized_start=90 37 | _globals['_MIGRATEANNOTATION']._serialized_end=125 38 | _globals['_FIELDMIGRATEANNOTATION']._serialized_start=127 39 | _globals['_FIELDMIGRATEANNOTATION']._serialized_end=192 40 | _globals['_FILEMIGRATEANNOTATION']._serialized_start=194 41 | _globals['_FILEMIGRATEANNOTATION']._serialized_end=242 42 | # @@protoc_insertion_point(module_scope) 43 | -------------------------------------------------------------------------------- /python/xds/annotations/v3/security_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/annotations/v3/security.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/annotations/v3/security.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 26 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 27 | 28 | 29 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!xds/annotations/v3/security.proto\x12\x12xds.annotations.v3\x1a\x1fxds/annotations/v3/status.proto\x1a google/protobuf/descriptor.proto\"o\n\x17\x46ieldSecurityAnnotation\x12*\n\"configure_for_untrusted_downstream\x18\x01 \x01(\x08\x12(\n configure_for_untrusted_upstream\x18\x02 \x01(\x08:_\n\x08security\x12\x1d.google.protobuf.FieldOptions\x18\xa7\x96\x9d/ \x01(\x0b\x32+.xds.annotations.v3.FieldSecurityAnnotationB3Z)github.com/cncf/xds/go/xds/annotations/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 30 | 31 | _globals = globals() 32 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 33 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.annotations.v3.security_pb2', _globals) 34 | if not _descriptor._USE_C_DESCRIPTORS: 35 | _globals['DESCRIPTOR']._loaded_options = None 36 | _globals['DESCRIPTOR']._serialized_options = b'Z)github.com/cncf/xds/go/xds/annotations/v3\322\306\244\341\006\002\010\001' 37 | _globals['_FIELDSECURITYANNOTATION']._serialized_start=124 38 | _globals['_FIELDSECURITYANNOTATION']._serialized_end=235 39 | # @@protoc_insertion_point(module_scope) 40 | -------------------------------------------------------------------------------- /python/xds/annotations/v3/sensitive_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/annotations/v3/sensitive.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/annotations/v3/sensitive.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"xds/annotations/v3/sensitive.proto\x12\x12xds.annotations.v3\x1a google/protobuf/descriptor.proto:3\n\tsensitive\x12\x1d.google.protobuf.FieldOptions\x18\xb5\xd1\x8b\x1d \x01(\x08\x42+Z)github.com/cncf/xds/go/xds/annotations/v3b\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.annotations.v3.sensitive_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'Z)github.com/cncf/xds/go/xds/annotations/v3' 36 | # @@protoc_insertion_point(module_scope) 37 | -------------------------------------------------------------------------------- /python/xds/annotations/v3/status_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/annotations/v3/status.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/annotations/v3/status.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fxds/annotations/v3/status.proto\x12\x12xds.annotations.v3\x1a google/protobuf/descriptor.proto\"0\n\x14\x46ileStatusAnnotation\x12\x18\n\x10work_in_progress\x18\x01 \x01(\x08\"3\n\x17MessageStatusAnnotation\x12\x18\n\x10work_in_progress\x18\x01 \x01(\x08\"1\n\x15\x46ieldStatusAnnotation\x12\x18\n\x10work_in_progress\x18\x01 \x01(\x08\"v\n\x10StatusAnnotation\x12\x18\n\x10work_in_progress\x18\x01 \x01(\x08\x12H\n\x16package_version_status\x18\x02 \x01(\x0e\x32(.xds.annotations.v3.PackageVersionStatus*]\n\x14PackageVersionStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x46ROZEN\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12 \n\x1cNEXT_MAJOR_VERSION_CANDIDATE\x10\x03:^\n\x0b\x66ile_status\x12\x1c.google.protobuf.FileOptions\x18\xea\xc8\x94l \x01(\x0b\x32(.xds.annotations.v3.FileStatusAnnotation:g\n\x0emessage_status\x12\x1f.google.protobuf.MessageOptions\x18\xea\xc8\x94l \x01(\x0b\x32+.xds.annotations.v3.MessageStatusAnnotation:a\n\x0c\x66ield_status\x12\x1d.google.protobuf.FieldOptions\x18\xea\xc8\x94l \x01(\x0b\x32).xds.annotations.v3.FieldStatusAnnotationB+Z)github.com/cncf/xds/go/xds/annotations/v3b\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.annotations.v3.status_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'Z)github.com/cncf/xds/go/xds/annotations/v3' 36 | _globals['_PACKAGEVERSIONSTATUS']._serialized_start=363 37 | _globals['_PACKAGEVERSIONSTATUS']._serialized_end=456 38 | _globals['_FILESTATUSANNOTATION']._serialized_start=89 39 | _globals['_FILESTATUSANNOTATION']._serialized_end=137 40 | _globals['_MESSAGESTATUSANNOTATION']._serialized_start=139 41 | _globals['_MESSAGESTATUSANNOTATION']._serialized_end=190 42 | _globals['_FIELDSTATUSANNOTATION']._serialized_start=192 43 | _globals['_FIELDSTATUSANNOTATION']._serialized_end=241 44 | _globals['_STATUSANNOTATION']._serialized_start=243 45 | _globals['_STATUSANNOTATION']._serialized_end=361 46 | # @@protoc_insertion_point(module_scope) 47 | -------------------------------------------------------------------------------- /python/xds/annotations/v3/versioning_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/annotations/v3/versioning.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/annotations/v3/versioning.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#xds/annotations/v3/versioning.proto\x12\x12xds.annotations.v3\x1a google/protobuf/descriptor.proto\"5\n\x14VersioningAnnotation\x12\x1d\n\x15previous_message_type\x18\x01 \x01(\t:`\n\nversioning\x12\x1f.google.protobuf.MessageOptions\x18\x93\xfd\x86, \x01(\x0b\x32(.xds.annotations.v3.VersioningAnnotationB+Z)github.com/cncf/xds/go/xds/annotations/v3b\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.annotations.v3.versioning_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'Z)github.com/cncf/xds/go/xds/annotations/v3' 36 | _globals['_VERSIONINGANNOTATION']._serialized_start=93 37 | _globals['_VERSIONINGANNOTATION']._serialized_end=146 38 | # @@protoc_insertion_point(module_scope) 39 | -------------------------------------------------------------------------------- /python/xds/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/core/__init__.py -------------------------------------------------------------------------------- /python/xds/core/v3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/core/v3/__init__.py -------------------------------------------------------------------------------- /python/xds/core/v3/authority_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/core/v3/authority.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/core/v3/authority.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 26 | from validate import validate_pb2 as validate_dot_validate__pb2 27 | 28 | 29 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bxds/core/v3/authority.proto\x12\x0bxds.core.v3\x1a\x1fxds/annotations/v3/status.proto\x1a\x17validate/validate.proto\"\"\n\tAuthority\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x42V\n\x16\x63om.github.xds.core.v3B\x0e\x41uthorityProtoP\x01Z\"github.com/cncf/xds/go/xds/core/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 30 | 31 | _globals = globals() 32 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 33 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.core.v3.authority_pb2', _globals) 34 | if not _descriptor._USE_C_DESCRIPTORS: 35 | _globals['DESCRIPTOR']._loaded_options = None 36 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.core.v3B\016AuthorityProtoP\001Z\"github.com/cncf/xds/go/xds/core/v3\322\306\244\341\006\002\010\001' 37 | _globals['_AUTHORITY'].fields_by_name['name']._loaded_options = None 38 | _globals['_AUTHORITY'].fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001' 39 | _globals['_AUTHORITY']._serialized_start=102 40 | _globals['_AUTHORITY']._serialized_end=136 41 | # @@protoc_insertion_point(module_scope) 42 | -------------------------------------------------------------------------------- /python/xds/core/v3/cidr_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/core/v3/cidr.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/core/v3/cidr.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 26 | from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 27 | from validate import validate_pb2 as validate_dot_validate__pb2 28 | 29 | 30 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16xds/core/v3/cidr.proto\x12\x0bxds.core.v3\x1a\x1fxds/annotations/v3/status.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17validate/validate.proto\"h\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\x42V\n\x16\x63om.github.xds.core.v3B\x0e\x43idrRangeProtoP\x01Z\"github.com/cncf/xds/go/xds/core/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 31 | 32 | _globals = globals() 33 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 34 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.core.v3.cidr_pb2', _globals) 35 | if not _descriptor._USE_C_DESCRIPTORS: 36 | _globals['DESCRIPTOR']._loaded_options = None 37 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.core.v3B\016CidrRangeProtoP\001Z\"github.com/cncf/xds/go/xds/core/v3\322\306\244\341\006\002\010\001' 38 | _globals['_CIDRRANGE'].fields_by_name['address_prefix']._loaded_options = None 39 | _globals['_CIDRRANGE'].fields_by_name['address_prefix']._serialized_options = b'\372B\004r\002\020\001' 40 | _globals['_CIDRRANGE'].fields_by_name['prefix_len']._loaded_options = None 41 | _globals['_CIDRRANGE'].fields_by_name['prefix_len']._serialized_options = b'\372B\005*\003\030\200\001' 42 | _globals['_CIDRRANGE']._serialized_start=129 43 | _globals['_CIDRRANGE']._serialized_end=233 44 | # @@protoc_insertion_point(module_scope) 45 | -------------------------------------------------------------------------------- /python/xds/core/v3/collection_entry_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/core/v3/collection_entry.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/core/v3/collection_entry.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 26 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 27 | from xds.core.v3 import resource_locator_pb2 as xds_dot_core_dot_v3_dot_resource__locator__pb2 28 | from validate import validate_pb2 as validate_dot_validate__pb2 29 | 30 | 31 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"xds/core/v3/collection_entry.proto\x12\x0bxds.core.v3\x1a\x19google/protobuf/any.proto\x1a\x1fxds/annotations/v3/status.proto\x1a\"xds/core/v3/resource_locator.proto\x1a\x17validate/validate.proto\"\x93\x02\n\x0f\x43ollectionEntry\x12/\n\x07locator\x18\x01 \x01(\x0b\x32\x1c.xds.core.v3.ResourceLocatorH\x00\x12@\n\x0cinline_entry\x18\x02 \x01(\x0b\x32(.xds.core.v3.CollectionEntry.InlineEntryH\x00\x1ar\n\x0bInlineEntry\x12*\n\x04name\x18\x01 \x01(\tB\x1c\xfa\x42\x19r\x17\x32\x15^[0-9a-zA-Z_\\-\\.~:]+$\x12\x0f\n\x07version\x18\x02 \x01(\t\x12&\n\x08resource\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyB\x19\n\x12resource_specifier\x12\x03\xf8\x42\x01\x42\\\n\x16\x63om.github.xds.core.v3B\x14\x43ollectionEntryProtoP\x01Z\"github.com/cncf/xds/go/xds/core/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 32 | 33 | _globals = globals() 34 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 35 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.core.v3.collection_entry_pb2', _globals) 36 | if not _descriptor._USE_C_DESCRIPTORS: 37 | _globals['DESCRIPTOR']._loaded_options = None 38 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.core.v3B\024CollectionEntryProtoP\001Z\"github.com/cncf/xds/go/xds/core/v3\322\306\244\341\006\002\010\001' 39 | _globals['_COLLECTIONENTRY_INLINEENTRY'].fields_by_name['name']._loaded_options = None 40 | _globals['_COLLECTIONENTRY_INLINEENTRY'].fields_by_name['name']._serialized_options = b'\372B\031r\0272\025^[0-9a-zA-Z_\\-\\.~:]+$' 41 | _globals['_COLLECTIONENTRY'].oneofs_by_name['resource_specifier']._loaded_options = None 42 | _globals['_COLLECTIONENTRY'].oneofs_by_name['resource_specifier']._serialized_options = b'\370B\001' 43 | _globals['_COLLECTIONENTRY']._serialized_start=173 44 | _globals['_COLLECTIONENTRY']._serialized_end=448 45 | _globals['_COLLECTIONENTRY_INLINEENTRY']._serialized_start=307 46 | _globals['_COLLECTIONENTRY_INLINEENTRY']._serialized_end=421 47 | # @@protoc_insertion_point(module_scope) 48 | -------------------------------------------------------------------------------- /python/xds/core/v3/context_params_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/core/v3/context_params.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/core/v3/context_params.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n xds/core/v3/context_params.proto\x12\x0bxds.core.v3\x1a\x1fxds/annotations/v3/status.proto\"v\n\rContextParams\x12\x36\n\x06params\x18\x01 \x03(\x0b\x32&.xds.core.v3.ContextParams.ParamsEntry\x1a-\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42Z\n\x16\x63om.github.xds.core.v3B\x12\x43ontextParamsProtoP\x01Z\"github.com/cncf/xds/go/xds/core/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.core.v3.context_params_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.core.v3B\022ContextParamsProtoP\001Z\"github.com/cncf/xds/go/xds/core/v3\322\306\244\341\006\002\010\001' 36 | _globals['_CONTEXTPARAMS_PARAMSENTRY']._loaded_options = None 37 | _globals['_CONTEXTPARAMS_PARAMSENTRY']._serialized_options = b'8\001' 38 | _globals['_CONTEXTPARAMS']._serialized_start=82 39 | _globals['_CONTEXTPARAMS']._serialized_end=200 40 | _globals['_CONTEXTPARAMS_PARAMSENTRY']._serialized_start=155 41 | _globals['_CONTEXTPARAMS_PARAMSENTRY']._serialized_end=200 42 | # @@protoc_insertion_point(module_scope) 43 | -------------------------------------------------------------------------------- /python/xds/core/v3/extension_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/core/v3/extension.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/core/v3/extension.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from validate import validate_pb2 as validate_dot_validate__pb2 26 | from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 27 | 28 | 29 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bxds/core/v3/extension.proto\x12\x0bxds.core.v3\x1a\x17validate/validate.proto\x1a\x19google/protobuf/any.proto\"c\n\x14TypedExtensionConfig\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x34\n\x0ctyped_config\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyB\x08\xfa\x42\x05\xa2\x01\x02\x08\x01\x42N\n\x16\x63om.github.xds.core.v3B\x0e\x45xtensionProtoP\x01Z\"github.com/cncf/xds/go/xds/core/v3b\x06proto3') 30 | 31 | _globals = globals() 32 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 33 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.core.v3.extension_pb2', _globals) 34 | if not _descriptor._USE_C_DESCRIPTORS: 35 | _globals['DESCRIPTOR']._loaded_options = None 36 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.core.v3B\016ExtensionProtoP\001Z\"github.com/cncf/xds/go/xds/core/v3' 37 | _globals['_TYPEDEXTENSIONCONFIG'].fields_by_name['name']._loaded_options = None 38 | _globals['_TYPEDEXTENSIONCONFIG'].fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001' 39 | _globals['_TYPEDEXTENSIONCONFIG'].fields_by_name['typed_config']._loaded_options = None 40 | _globals['_TYPEDEXTENSIONCONFIG'].fields_by_name['typed_config']._serialized_options = b'\372B\005\242\001\002\010\001' 41 | _globals['_TYPEDEXTENSIONCONFIG']._serialized_start=96 42 | _globals['_TYPEDEXTENSIONCONFIG']._serialized_end=195 43 | # @@protoc_insertion_point(module_scope) 44 | -------------------------------------------------------------------------------- /python/xds/core/v3/resource_locator_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/core/v3/resource_locator.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/core/v3/resource_locator.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 26 | from xds.core.v3 import context_params_pb2 as xds_dot_core_dot_v3_dot_context__params__pb2 27 | from validate import validate_pb2 as validate_dot_validate__pb2 28 | 29 | 30 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"xds/core/v3/resource_locator.proto\x12\x0bxds.core.v3\x1a\x1fxds/annotations/v3/status.proto\x1a xds/core/v3/context_params.proto\x1a\x17validate/validate.proto\"\xc2\x03\n\x0fResourceLocator\x12=\n\x06scheme\x18\x01 \x01(\x0e\x32#.xds.core.v3.ResourceLocator.SchemeB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\n\n\x02id\x18\x02 \x01(\t\x12\x11\n\tauthority\x18\x03 \x01(\t\x12\x1e\n\rresource_type\x18\x04 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x33\n\rexact_context\x18\x05 \x01(\x0b\x32\x1a.xds.core.v3.ContextParamsH\x00\x12:\n\ndirectives\x18\x06 \x03(\x0b\x32&.xds.core.v3.ResourceLocator.Directive\x1a|\n\tDirective\x12+\n\x03\x61lt\x18\x01 \x01(\x0b\x32\x1c.xds.core.v3.ResourceLocatorH\x00\x12\x30\n\x05\x65ntry\x18\x02 \x01(\tB\x1f\xfa\x42\x1cr\x1a\x10\x01\x32\x16^[0-9a-zA-Z_\\-\\./~:]+$H\x00\x42\x10\n\tdirective\x12\x03\xf8\x42\x01\"\'\n\x06Scheme\x12\t\n\x05XDSTP\x10\x00\x12\x08\n\x04HTTP\x10\x01\x12\x08\n\x04\x46ILE\x10\x02\x42\x19\n\x17\x63ontext_param_specifierB\\\n\x16\x63om.github.xds.core.v3B\x14ResourceLocatorProtoP\x01Z\"github.com/cncf/xds/go/xds/core/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 31 | 32 | _globals = globals() 33 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 34 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.core.v3.resource_locator_pb2', _globals) 35 | if not _descriptor._USE_C_DESCRIPTORS: 36 | _globals['DESCRIPTOR']._loaded_options = None 37 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.core.v3B\024ResourceLocatorProtoP\001Z\"github.com/cncf/xds/go/xds/core/v3\322\306\244\341\006\002\010\001' 38 | _globals['_RESOURCELOCATOR_DIRECTIVE'].oneofs_by_name['directive']._loaded_options = None 39 | _globals['_RESOURCELOCATOR_DIRECTIVE'].oneofs_by_name['directive']._serialized_options = b'\370B\001' 40 | _globals['_RESOURCELOCATOR_DIRECTIVE'].fields_by_name['entry']._loaded_options = None 41 | _globals['_RESOURCELOCATOR_DIRECTIVE'].fields_by_name['entry']._serialized_options = b'\372B\034r\032\020\0012\026^[0-9a-zA-Z_\\-\\./~:]+$' 42 | _globals['_RESOURCELOCATOR'].fields_by_name['scheme']._loaded_options = None 43 | _globals['_RESOURCELOCATOR'].fields_by_name['scheme']._serialized_options = b'\372B\005\202\001\002\020\001' 44 | _globals['_RESOURCELOCATOR'].fields_by_name['resource_type']._loaded_options = None 45 | _globals['_RESOURCELOCATOR'].fields_by_name['resource_type']._serialized_options = b'\372B\004r\002\020\001' 46 | _globals['_RESOURCELOCATOR']._serialized_start=144 47 | _globals['_RESOURCELOCATOR']._serialized_end=594 48 | _globals['_RESOURCELOCATOR_DIRECTIVE']._serialized_start=402 49 | _globals['_RESOURCELOCATOR_DIRECTIVE']._serialized_end=526 50 | _globals['_RESOURCELOCATOR_SCHEME']._serialized_start=528 51 | _globals['_RESOURCELOCATOR_SCHEME']._serialized_end=567 52 | # @@protoc_insertion_point(module_scope) 53 | -------------------------------------------------------------------------------- /python/xds/core/v3/resource_name_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/core/v3/resource_name.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/core/v3/resource_name.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 26 | from xds.core.v3 import context_params_pb2 as xds_dot_core_dot_v3_dot_context__params__pb2 27 | from validate import validate_pb2 as validate_dot_validate__pb2 28 | 29 | 30 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fxds/core/v3/resource_name.proto\x12\x0bxds.core.v3\x1a\x1fxds/annotations/v3/status.proto\x1a xds/core/v3/context_params.proto\x1a\x17validate/validate.proto\"z\n\x0cResourceName\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tauthority\x18\x02 \x01(\t\x12\x1e\n\rresource_type\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12+\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x1a.xds.core.v3.ContextParamsBY\n\x16\x63om.github.xds.core.v3B\x11ResourceNameProtoP\x01Z\"github.com/cncf/xds/go/xds/core/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 31 | 32 | _globals = globals() 33 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 34 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.core.v3.resource_name_pb2', _globals) 35 | if not _descriptor._USE_C_DESCRIPTORS: 36 | _globals['DESCRIPTOR']._loaded_options = None 37 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.core.v3B\021ResourceNameProtoP\001Z\"github.com/cncf/xds/go/xds/core/v3\322\306\244\341\006\002\010\001' 38 | _globals['_RESOURCENAME'].fields_by_name['resource_type']._loaded_options = None 39 | _globals['_RESOURCENAME'].fields_by_name['resource_type']._serialized_options = b'\372B\004r\002\020\001' 40 | _globals['_RESOURCENAME']._serialized_start=140 41 | _globals['_RESOURCENAME']._serialized_end=262 42 | # @@protoc_insertion_point(module_scope) 43 | -------------------------------------------------------------------------------- /python/xds/core/v3/resource_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/core/v3/resource.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/core/v3/resource.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 26 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 27 | from xds.core.v3 import resource_name_pb2 as xds_dot_core_dot_v3_dot_resource__name__pb2 28 | 29 | 30 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1axds/core/v3/resource.proto\x12\x0bxds.core.v3\x1a\x19google/protobuf/any.proto\x1a\x1fxds/annotations/v3/status.proto\x1a\x1fxds/core/v3/resource_name.proto\"l\n\x08Resource\x12\'\n\x04name\x18\x01 \x01(\x0b\x32\x19.xds.core.v3.ResourceName\x12\x0f\n\x07version\x18\x02 \x01(\t\x12&\n\x08resource\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyBU\n\x16\x63om.github.xds.core.v3B\rResourceProtoP\x01Z\"github.com/cncf/xds/go/xds/core/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 31 | 32 | _globals = globals() 33 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 34 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.core.v3.resource_pb2', _globals) 35 | if not _descriptor._USE_C_DESCRIPTORS: 36 | _globals['DESCRIPTOR']._loaded_options = None 37 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.core.v3B\rResourceProtoP\001Z\"github.com/cncf/xds/go/xds/core/v3\322\306\244\341\006\002\010\001' 38 | _globals['_RESOURCE']._serialized_start=136 39 | _globals['_RESOURCE']._serialized_end=244 40 | # @@protoc_insertion_point(module_scope) 41 | -------------------------------------------------------------------------------- /python/xds/data/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/data/__init__.py -------------------------------------------------------------------------------- /python/xds/data/orca/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/data/orca/__init__.py -------------------------------------------------------------------------------- /python/xds/data/orca/v3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/data/orca/v3/__init__.py -------------------------------------------------------------------------------- /python/xds/service/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/service/__init__.py -------------------------------------------------------------------------------- /python/xds/service/orca/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/service/orca/__init__.py -------------------------------------------------------------------------------- /python/xds/service/orca/v3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/service/orca/v3/__init__.py -------------------------------------------------------------------------------- /python/xds/service/orca/v3/orca_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/service/orca/v3/orca.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/service/orca/v3/orca.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.data.orca.v3 import orca_load_report_pb2 as xds_dot_data_dot_orca_dot_v3_dot_orca__load__report__pb2 26 | from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 27 | 28 | 29 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1exds/service/orca/v3/orca.proto\x12\x13xds.service.orca.v3\x1a\'xds/data/orca/v3/orca_load_report.proto\x1a\x1egoogle/protobuf/duration.proto\"g\n\x15OrcaLoadReportRequest\x12\x32\n\x0freport_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1a\n\x12request_cost_names\x18\x02 \x03(\t2u\n\x0eOpenRcaService\x12\x63\n\x11StreamCoreMetrics\x12*.xds.service.orca.v3.OrcaLoadReportRequest\x1a .xds.data.orca.v3.OrcaLoadReport0\x01\x42Y\n\x1e\x63om.github.xds.service.orca.v3B\tOrcaProtoP\x01Z*github.com/cncf/xds/go/xds/service/orca/v3b\x06proto3') 30 | 31 | _globals = globals() 32 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 33 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.service.orca.v3.orca_pb2', _globals) 34 | if not _descriptor._USE_C_DESCRIPTORS: 35 | _globals['DESCRIPTOR']._loaded_options = None 36 | _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.service.orca.v3B\tOrcaProtoP\001Z*github.com/cncf/xds/go/xds/service/orca/v3' 37 | _globals['_ORCALOADREPORTREQUEST']._serialized_start=128 38 | _globals['_ORCALOADREPORTREQUEST']._serialized_end=231 39 | _globals['_OPENRCASERVICE']._serialized_start=233 40 | _globals['_OPENRCASERVICE']._serialized_end=350 41 | # @@protoc_insertion_point(module_scope) 42 | -------------------------------------------------------------------------------- /python/xds/type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/type/__init__.py -------------------------------------------------------------------------------- /python/xds/type/matcher/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/type/matcher/__init__.py -------------------------------------------------------------------------------- /python/xds/type/matcher/v3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/type/matcher/v3/__init__.py -------------------------------------------------------------------------------- /python/xds/type/matcher/v3/cel_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/matcher/v3/cel.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/matcher/v3/cel.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.type.v3 import cel_pb2 as xds_dot_type_dot_v3_dot_cel__pb2 26 | from validate import validate_pb2 as validate_dot_validate__pb2 27 | 28 | 29 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dxds/type/matcher/v3/cel.proto\x12\x13xds.type.matcher.v3\x1a\x15xds/type/v3/cel.proto\x1a\x17validate/validate.proto\"[\n\nCelMatcher\x12\x38\n\nexpr_match\x18\x01 \x01(\x0b\x32\x1a.xds.type.v3.CelExpressionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\tBX\n\x1e\x63om.github.xds.type.matcher.v3B\x08\x43\x65lProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') 30 | 31 | _globals = globals() 32 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 33 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.cel_pb2', _globals) 34 | if not _descriptor._USE_C_DESCRIPTORS: 35 | _globals['DESCRIPTOR']._loaded_options = None 36 | _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\010CelProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3' 37 | _globals['_CELMATCHER'].fields_by_name['expr_match']._loaded_options = None 38 | _globals['_CELMATCHER'].fields_by_name['expr_match']._serialized_options = b'\372B\005\212\001\002\020\001' 39 | _globals['_CELMATCHER']._serialized_start=102 40 | _globals['_CELMATCHER']._serialized_end=193 41 | # @@protoc_insertion_point(module_scope) 42 | -------------------------------------------------------------------------------- /python/xds/type/matcher/v3/domain_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/matcher/v3/domain.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/matcher/v3/domain.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 26 | from xds.type.matcher.v3 import matcher_pb2 as xds_dot_type_dot_matcher_dot_v3_dot_matcher__pb2 27 | from validate import validate_pb2 as validate_dot_validate__pb2 28 | 29 | 30 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n xds/type/matcher/v3/domain.proto\x12\x13xds.type.matcher.v3\x1a\x1fxds/annotations/v3/status.proto\x1a!xds/type/matcher/v3/matcher.proto\x1a\x17validate/validate.proto\"\xc6\x01\n\x11ServerNameMatcher\x12M\n\x0f\x64omain_matchers\x18\x01 \x03(\x0b\x32\x34.xds.type.matcher.v3.ServerNameMatcher.DomainMatcher\x1a\x62\n\rDomainMatcher\x12\x19\n\x07\x64omains\x18\x01 \x03(\tB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x12\x36\n\x08on_match\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatchBn\n\x1e\x63om.github.xds.type.matcher.v3B\x16ServerNameMatcherProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 31 | 32 | _globals = globals() 33 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 34 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.domain_pb2', _globals) 35 | if not _descriptor._USE_C_DESCRIPTORS: 36 | _globals['DESCRIPTOR']._loaded_options = None 37 | _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\026ServerNameMatcherProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3\322\306\244\341\006\002\010\001' 38 | _globals['_SERVERNAMEMATCHER_DOMAINMATCHER'].fields_by_name['domains']._loaded_options = None 39 | _globals['_SERVERNAMEMATCHER_DOMAINMATCHER'].fields_by_name['domains']._serialized_options = b'\372B\005\222\001\002\010\001' 40 | _globals['_SERVERNAMEMATCHER']._serialized_start=151 41 | _globals['_SERVERNAMEMATCHER']._serialized_end=349 42 | _globals['_SERVERNAMEMATCHER_DOMAINMATCHER']._serialized_start=251 43 | _globals['_SERVERNAMEMATCHER_DOMAINMATCHER']._serialized_end=349 44 | # @@protoc_insertion_point(module_scope) 45 | -------------------------------------------------------------------------------- /python/xds/type/matcher/v3/http_inputs_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/matcher/v3/http_inputs.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/matcher/v3/http_inputs.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | 26 | 27 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%xds/type/matcher/v3/http_inputs.proto\x12\x13xds.type.matcher.v3\"\x1d\n\x1bHttpAttributesCelMatchInputB_\n\x1e\x63om.github.xds.type.matcher.v3B\x0fHttpInputsProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') 28 | 29 | _globals = globals() 30 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 31 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.http_inputs_pb2', _globals) 32 | if not _descriptor._USE_C_DESCRIPTORS: 33 | _globals['DESCRIPTOR']._loaded_options = None 34 | _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\017HttpInputsProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3' 35 | _globals['_HTTPATTRIBUTESCELMATCHINPUT']._serialized_start=62 36 | _globals['_HTTPATTRIBUTESCELMATCHINPUT']._serialized_end=91 37 | # @@protoc_insertion_point(module_scope) 38 | -------------------------------------------------------------------------------- /python/xds/type/matcher/v3/ip_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/matcher/v3/ip.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/matcher/v3/ip.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 26 | from xds.core.v3 import cidr_pb2 as xds_dot_core_dot_v3_dot_cidr__pb2 27 | from xds.type.matcher.v3 import matcher_pb2 as xds_dot_type_dot_matcher_dot_v3_dot_matcher__pb2 28 | from validate import validate_pb2 as validate_dot_validate__pb2 29 | 30 | 31 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cxds/type/matcher/v3/ip.proto\x12\x13xds.type.matcher.v3\x1a\x1fxds/annotations/v3/status.proto\x1a\x16xds/core/v3/cidr.proto\x1a!xds/type/matcher/v3/matcher.proto\x1a\x17validate/validate.proto\"\xe2\x01\n\tIPMatcher\x12\x45\n\x0erange_matchers\x18\x01 \x03(\x0b\x32-.xds.type.matcher.v3.IPMatcher.IPRangeMatcher\x1a\x8d\x01\n\x0eIPRangeMatcher\x12\x30\n\x06ranges\x18\x01 \x03(\x0b\x32\x16.xds.core.v3.CidrRangeB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x12\x36\n\x08on_match\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatch\x12\x11\n\texclusive\x18\x03 \x01(\x08\x42\x66\n\x1e\x63om.github.xds.type.matcher.v3B\x0eIPMatcherProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 32 | 33 | _globals = globals() 34 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 35 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.ip_pb2', _globals) 36 | if not _descriptor._USE_C_DESCRIPTORS: 37 | _globals['DESCRIPTOR']._loaded_options = None 38 | _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\016IPMatcherProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3\322\306\244\341\006\002\010\001' 39 | _globals['_IPMATCHER_IPRANGEMATCHER'].fields_by_name['ranges']._loaded_options = None 40 | _globals['_IPMATCHER_IPRANGEMATCHER'].fields_by_name['ranges']._serialized_options = b'\372B\005\222\001\002\010\001' 41 | _globals['_IPMATCHER']._serialized_start=171 42 | _globals['_IPMATCHER']._serialized_end=397 43 | _globals['_IPMATCHER_IPRANGEMATCHER']._serialized_start=256 44 | _globals['_IPMATCHER_IPRANGEMATCHER']._serialized_end=397 45 | # @@protoc_insertion_point(module_scope) 46 | -------------------------------------------------------------------------------- /python/xds/type/matcher/v3/range_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/matcher/v3/range.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/matcher/v3/range.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.type.v3 import range_pb2 as xds_dot_type_dot_v3_dot_range__pb2 26 | from xds.type.matcher.v3 import matcher_pb2 as xds_dot_type_dot_matcher_dot_v3_dot_matcher__pb2 27 | from validate import validate_pb2 as validate_dot_validate__pb2 28 | 29 | 30 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fxds/type/matcher/v3/range.proto\x12\x13xds.type.matcher.v3\x1a\x17xds/type/v3/range.proto\x1a!xds/type/matcher/v3/matcher.proto\x1a\x17validate/validate.proto\"\xdb\x01\n\x11Int64RangeMatcher\x12K\n\x0erange_matchers\x18\x01 \x03(\x0b\x32\x33.xds.type.matcher.v3.Int64RangeMatcher.RangeMatcher\x1ay\n\x0cRangeMatcher\x12\x31\n\x06ranges\x18\x01 \x03(\x0b\x32\x17.xds.type.v3.Int64RangeB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x12\x36\n\x08on_match\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatch\"\xdb\x01\n\x11Int32RangeMatcher\x12K\n\x0erange_matchers\x18\x01 \x03(\x0b\x32\x33.xds.type.matcher.v3.Int32RangeMatcher.RangeMatcher\x1ay\n\x0cRangeMatcher\x12\x31\n\x06ranges\x18\x01 \x03(\x0b\x32\x17.xds.type.v3.Int32RangeB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x12\x36\n\x08on_match\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatch\"\xde\x01\n\x12\x44oubleRangeMatcher\x12L\n\x0erange_matchers\x18\x01 \x03(\x0b\x32\x34.xds.type.matcher.v3.DoubleRangeMatcher.RangeMatcher\x1az\n\x0cRangeMatcher\x12\x32\n\x06ranges\x18\x01 \x03(\x0b\x32\x18.xds.type.v3.DoubleRangeB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x12\x36\n\x08on_match\x18\x02 \x01(\x0b\x32$.xds.type.matcher.v3.Matcher.OnMatchBZ\n\x1e\x63om.github.xds.type.matcher.v3B\nRangeProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') 31 | 32 | _globals = globals() 33 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 34 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.range_pb2', _globals) 35 | if not _descriptor._USE_C_DESCRIPTORS: 36 | _globals['DESCRIPTOR']._loaded_options = None 37 | _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\nRangeProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3' 38 | _globals['_INT64RANGEMATCHER_RANGEMATCHER'].fields_by_name['ranges']._loaded_options = None 39 | _globals['_INT64RANGEMATCHER_RANGEMATCHER'].fields_by_name['ranges']._serialized_options = b'\372B\005\222\001\002\010\001' 40 | _globals['_INT32RANGEMATCHER_RANGEMATCHER'].fields_by_name['ranges']._loaded_options = None 41 | _globals['_INT32RANGEMATCHER_RANGEMATCHER'].fields_by_name['ranges']._serialized_options = b'\372B\005\222\001\002\010\001' 42 | _globals['_DOUBLERANGEMATCHER_RANGEMATCHER'].fields_by_name['ranges']._loaded_options = None 43 | _globals['_DOUBLERANGEMATCHER_RANGEMATCHER'].fields_by_name['ranges']._serialized_options = b'\372B\005\222\001\002\010\001' 44 | _globals['_INT64RANGEMATCHER']._serialized_start=142 45 | _globals['_INT64RANGEMATCHER']._serialized_end=361 46 | _globals['_INT64RANGEMATCHER_RANGEMATCHER']._serialized_start=240 47 | _globals['_INT64RANGEMATCHER_RANGEMATCHER']._serialized_end=361 48 | _globals['_INT32RANGEMATCHER']._serialized_start=364 49 | _globals['_INT32RANGEMATCHER']._serialized_end=583 50 | _globals['_INT32RANGEMATCHER_RANGEMATCHER']._serialized_start=462 51 | _globals['_INT32RANGEMATCHER_RANGEMATCHER']._serialized_end=583 52 | _globals['_DOUBLERANGEMATCHER']._serialized_start=586 53 | _globals['_DOUBLERANGEMATCHER']._serialized_end=808 54 | _globals['_DOUBLERANGEMATCHER_RANGEMATCHER']._serialized_start=686 55 | _globals['_DOUBLERANGEMATCHER_RANGEMATCHER']._serialized_end=808 56 | # @@protoc_insertion_point(module_scope) 57 | -------------------------------------------------------------------------------- /python/xds/type/matcher/v3/regex_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/matcher/v3/regex.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/matcher/v3/regex.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from validate import validate_pb2 as validate_dot_validate__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fxds/type/matcher/v3/regex.proto\x12\x13xds.type.matcher.v3\x1a\x17validate/validate.proto\"\x94\x01\n\x0cRegexMatcher\x12K\n\ngoogle_re2\x18\x01 \x01(\x0b\x32+.xds.type.matcher.v3.RegexMatcher.GoogleRE2B\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00\x12\x16\n\x05regex\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x1a\x0b\n\tGoogleRE2B\x12\n\x0b\x65ngine_type\x12\x03\xf8\x42\x01\x42Z\n\x1e\x63om.github.xds.type.matcher.v3B\nRegexProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.regex_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\nRegexProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3' 36 | _globals['_REGEXMATCHER'].oneofs_by_name['engine_type']._loaded_options = None 37 | _globals['_REGEXMATCHER'].oneofs_by_name['engine_type']._serialized_options = b'\370B\001' 38 | _globals['_REGEXMATCHER'].fields_by_name['google_re2']._loaded_options = None 39 | _globals['_REGEXMATCHER'].fields_by_name['google_re2']._serialized_options = b'\372B\005\212\001\002\020\001' 40 | _globals['_REGEXMATCHER'].fields_by_name['regex']._loaded_options = None 41 | _globals['_REGEXMATCHER'].fields_by_name['regex']._serialized_options = b'\372B\004r\002\020\001' 42 | _globals['_REGEXMATCHER']._serialized_start=82 43 | _globals['_REGEXMATCHER']._serialized_end=230 44 | _globals['_REGEXMATCHER_GOOGLERE2']._serialized_start=199 45 | _globals['_REGEXMATCHER_GOOGLERE2']._serialized_end=210 46 | # @@protoc_insertion_point(module_scope) 47 | -------------------------------------------------------------------------------- /python/xds/type/matcher/v3/string_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/matcher/v3/string.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/matcher/v3/string.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from xds.core.v3 import extension_pb2 as xds_dot_core_dot_v3_dot_extension__pb2 26 | from xds.type.matcher.v3 import regex_pb2 as xds_dot_type_dot_matcher_dot_v3_dot_regex__pb2 27 | from validate import validate_pb2 as validate_dot_validate__pb2 28 | 29 | 30 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n xds/type/matcher/v3/string.proto\x12\x13xds.type.matcher.v3\x1a\x1bxds/core/v3/extension.proto\x1a\x1fxds/type/matcher/v3/regex.proto\x1a\x17validate/validate.proto\"\x96\x02\n\rStringMatcher\x12\x0f\n\x05\x65xact\x18\x01 \x01(\tH\x00\x12\x19\n\x06prefix\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x19\n\x06suffix\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x41\n\nsafe_regex\x18\x05 \x01(\x0b\x32!.xds.type.matcher.v3.RegexMatcherB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00\x12\x1b\n\x08\x63ontains\x18\x07 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00\x12\x33\n\x06\x63ustom\x18\x08 \x01(\x0b\x32!.xds.core.v3.TypedExtensionConfigH\x00\x12\x13\n\x0bignore_case\x18\x06 \x01(\x08\x42\x14\n\rmatch_pattern\x12\x03\xf8\x42\x01\"S\n\x11ListStringMatcher\x12>\n\x08patterns\x18\x01 \x03(\x0b\x32\".xds.type.matcher.v3.StringMatcherB\x08\xfa\x42\x05\x92\x01\x02\x08\x01\x42[\n\x1e\x63om.github.xds.type.matcher.v3B\x0bStringProtoP\x01Z*github.com/cncf/xds/go/xds/type/matcher/v3b\x06proto3') 31 | 32 | _globals = globals() 33 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 34 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.matcher.v3.string_pb2', _globals) 35 | if not _descriptor._USE_C_DESCRIPTORS: 36 | _globals['DESCRIPTOR']._loaded_options = None 37 | _globals['DESCRIPTOR']._serialized_options = b'\n\036com.github.xds.type.matcher.v3B\013StringProtoP\001Z*github.com/cncf/xds/go/xds/type/matcher/v3' 38 | _globals['_STRINGMATCHER'].oneofs_by_name['match_pattern']._loaded_options = None 39 | _globals['_STRINGMATCHER'].oneofs_by_name['match_pattern']._serialized_options = b'\370B\001' 40 | _globals['_STRINGMATCHER'].fields_by_name['prefix']._loaded_options = None 41 | _globals['_STRINGMATCHER'].fields_by_name['prefix']._serialized_options = b'\372B\004r\002\020\001' 42 | _globals['_STRINGMATCHER'].fields_by_name['suffix']._loaded_options = None 43 | _globals['_STRINGMATCHER'].fields_by_name['suffix']._serialized_options = b'\372B\004r\002\020\001' 44 | _globals['_STRINGMATCHER'].fields_by_name['safe_regex']._loaded_options = None 45 | _globals['_STRINGMATCHER'].fields_by_name['safe_regex']._serialized_options = b'\372B\005\212\001\002\020\001' 46 | _globals['_STRINGMATCHER'].fields_by_name['contains']._loaded_options = None 47 | _globals['_STRINGMATCHER'].fields_by_name['contains']._serialized_options = b'\372B\004r\002\020\001' 48 | _globals['_LISTSTRINGMATCHER'].fields_by_name['patterns']._loaded_options = None 49 | _globals['_LISTSTRINGMATCHER'].fields_by_name['patterns']._serialized_options = b'\372B\005\222\001\002\010\001' 50 | _globals['_STRINGMATCHER']._serialized_start=145 51 | _globals['_STRINGMATCHER']._serialized_end=423 52 | _globals['_LISTSTRINGMATCHER']._serialized_start=425 53 | _globals['_LISTSTRINGMATCHER']._serialized_end=508 54 | # @@protoc_insertion_point(module_scope) 55 | -------------------------------------------------------------------------------- /python/xds/type/v3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cncf/xds/2ac532fd44436293585084f8d94c6bdb17835af0/python/xds/type/v3/__init__.py -------------------------------------------------------------------------------- /python/xds/type/v3/cel_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/v3/cel.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/v3/cel.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.api.expr.v1alpha1 import checked_pb2 as google_dot_api_dot_expr_dot_v1alpha1_dot_checked__pb2 26 | from google.api.expr.v1alpha1 import syntax_pb2 as google_dot_api_dot_expr_dot_v1alpha1_dot_syntax__pb2 27 | from cel.expr import checked_pb2 as cel_dot_expr_dot_checked__pb2 28 | from cel.expr import syntax_pb2 as cel_dot_expr_dot_syntax__pb2 29 | from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 30 | from xds.annotations.v3 import status_pb2 as xds_dot_annotations_dot_v3_dot_status__pb2 31 | from validate import validate_pb2 as validate_dot_validate__pb2 32 | 33 | 34 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15xds/type/v3/cel.proto\x12\x0bxds.type.v3\x1a&google/api/expr/v1alpha1/checked.proto\x1a%google/api/expr/v1alpha1/syntax.proto\x1a\x16\x63\x65l/expr/checked.proto\x1a\x15\x63\x65l/expr/syntax.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fxds/annotations/v3/status.proto\x1a\x17validate/validate.proto\"\x9e\x02\n\rCelExpression\x12?\n\x0bparsed_expr\x18\x01 \x01(\x0b\x32$.google.api.expr.v1alpha1.ParsedExprB\x02\x18\x01H\x00\x12\x41\n\x0c\x63hecked_expr\x18\x02 \x01(\x0b\x32%.google.api.expr.v1alpha1.CheckedExprB\x02\x18\x01H\x00\x12-\n\x0f\x63\x65l_expr_parsed\x18\x03 \x01(\x0b\x32\x14.cel.expr.ParsedExpr\x12/\n\x10\x63\x65l_expr_checked\x18\x04 \x01(\x0b\x32\x15.cel.expr.CheckedExpr\x12\x17\n\x0f\x63\x65l_expr_string\x18\x05 \x01(\tB\x10\n\x0e\x65xpr_specifier\"\x83\x01\n\x10\x43\x65lExtractString\x12:\n\x0c\x65xpr_extract\x18\x01 \x01(\x0b\x32\x1a.xds.type.v3.CelExpressionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x33\n\rdefault_value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueBP\n\x16\x63om.github.xds.type.v3B\x08\x43\x65lProtoP\x01Z\"github.com/cncf/xds/go/xds/type/v3\xd2\xc6\xa4\xe1\x06\x02\x08\x01\x62\x06proto3') 35 | 36 | _globals = globals() 37 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 38 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.v3.cel_pb2', _globals) 39 | if not _descriptor._USE_C_DESCRIPTORS: 40 | _globals['DESCRIPTOR']._loaded_options = None 41 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.type.v3B\010CelProtoP\001Z\"github.com/cncf/xds/go/xds/type/v3\322\306\244\341\006\002\010\001' 42 | _globals['_CELEXPRESSION'].fields_by_name['parsed_expr']._loaded_options = None 43 | _globals['_CELEXPRESSION'].fields_by_name['parsed_expr']._serialized_options = b'\030\001' 44 | _globals['_CELEXPRESSION'].fields_by_name['checked_expr']._loaded_options = None 45 | _globals['_CELEXPRESSION'].fields_by_name['checked_expr']._serialized_options = b'\030\001' 46 | _globals['_CELEXTRACTSTRING'].fields_by_name['expr_extract']._loaded_options = None 47 | _globals['_CELEXTRACTSTRING'].fields_by_name['expr_extract']._serialized_options = b'\372B\005\212\001\002\020\001' 48 | _globals['_CELEXPRESSION']._serialized_start=255 49 | _globals['_CELEXPRESSION']._serialized_end=541 50 | _globals['_CELEXTRACTSTRING']._serialized_start=544 51 | _globals['_CELEXTRACTSTRING']._serialized_end=675 52 | # @@protoc_insertion_point(module_scope) 53 | -------------------------------------------------------------------------------- /python/xds/type/v3/range_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/v3/range.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/v3/range.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | 26 | 27 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17xds/type/v3/range.proto\x12\x0bxds.type.v3\"(\n\nInt64Range\x12\r\n\x05start\x18\x01 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03\"(\n\nInt32Range\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\")\n\x0b\x44oubleRange\x12\r\n\x05start\x18\x01 \x01(\x01\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x01\x42J\n\x16\x63om.github.xds.type.v3B\nRangeProtoP\x01Z\"github.com/cncf/xds/go/xds/type/v3b\x06proto3') 28 | 29 | _globals = globals() 30 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 31 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.v3.range_pb2', _globals) 32 | if not _descriptor._USE_C_DESCRIPTORS: 33 | _globals['DESCRIPTOR']._loaded_options = None 34 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.type.v3B\nRangeProtoP\001Z\"github.com/cncf/xds/go/xds/type/v3' 35 | _globals['_INT64RANGE']._serialized_start=40 36 | _globals['_INT64RANGE']._serialized_end=80 37 | _globals['_INT32RANGE']._serialized_start=82 38 | _globals['_INT32RANGE']._serialized_end=122 39 | _globals['_DOUBLERANGE']._serialized_start=124 40 | _globals['_DOUBLERANGE']._serialized_end=165 41 | # @@protoc_insertion_point(module_scope) 42 | -------------------------------------------------------------------------------- /python/xds/type/v3/typed_struct_pb2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | # NO CHECKED-IN PROTOBUF GENCODE 4 | # source: xds/type/v3/typed_struct.proto 5 | # Protobuf Python Version: 5.29.1 6 | """Generated protocol buffer code.""" 7 | from google.protobuf import descriptor as _descriptor 8 | from google.protobuf import descriptor_pool as _descriptor_pool 9 | from google.protobuf import runtime_version as _runtime_version 10 | from google.protobuf import symbol_database as _symbol_database 11 | from google.protobuf.internal import builder as _builder 12 | _runtime_version.ValidateProtobufRuntimeVersion( 13 | _runtime_version.Domain.PUBLIC, 14 | 5, 15 | 29, 16 | 1, 17 | '', 18 | 'xds/type/v3/typed_struct.proto' 19 | ) 20 | # @@protoc_insertion_point(imports) 21 | 22 | _sym_db = _symbol_database.Default() 23 | 24 | 25 | from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 26 | 27 | 28 | DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1exds/type/v3/typed_struct.proto\x12\x0bxds.type.v3\x1a\x1cgoogle/protobuf/struct.proto\"G\n\x0bTypedStruct\x12\x10\n\x08type_url\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructBP\n\x16\x63om.github.xds.type.v3B\x10TypedStructProtoP\x01Z\"github.com/cncf/xds/go/xds/type/v3b\x06proto3') 29 | 30 | _globals = globals() 31 | _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) 32 | _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xds.type.v3.typed_struct_pb2', _globals) 33 | if not _descriptor._USE_C_DESCRIPTORS: 34 | _globals['DESCRIPTOR']._loaded_options = None 35 | _globals['DESCRIPTOR']._serialized_options = b'\n\026com.github.xds.type.v3B\020TypedStructProtoP\001Z\"github.com/cncf/xds/go/xds/type/v3' 36 | _globals['_TYPEDSTRUCT']._serialized_start=77 37 | _globals['_TYPEDSTRUCT']._serialized_end=148 38 | # @@protoc_insertion_point(module_scope) 39 | -------------------------------------------------------------------------------- /repokitteh.star: -------------------------------------------------------------------------------- 1 | use("github.com/repokitteh/modules/wait.star") 2 | -------------------------------------------------------------------------------- /test/build/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_cc_test", "xds_go_test") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_cc_test( 6 | name = "build_test", 7 | srcs = ["build_test.cc"], 8 | deps = [ 9 | "//xds/service/orca/v3:pkg_cc_proto", 10 | # Old names for backward compatibility. 11 | # TODO(roth): Remove once all callers are updated to use the new names. 12 | "//udpa/service/orca/v1:pkg_cc_proto", 13 | ], 14 | ) 15 | 16 | xds_go_test( 17 | name = "go_build_test", 18 | srcs = ["go_build_test.go"], 19 | importpath = "go_build_test", 20 | deps = [ 21 | "//xds/data/orca/v3:pkg_go_proto", 22 | "//xds/service/orca/v3:pkg_go_proto", 23 | "//xds/type/v3:pkg_go_proto", 24 | # Old names for backward compatibility. 25 | # TODO(roth): Remove once all callers are updated to use the new names. 26 | "//udpa/data/orca/v1:pkg_go_proto", 27 | "//udpa/service/orca/v1:pkg_go_proto", 28 | "//udpa/type/v1:pkg_go_proto", 29 | ], 30 | ) 31 | -------------------------------------------------------------------------------- /test/build/build_test.cc: -------------------------------------------------------------------------------- 1 | // NOLINT(namespace-envoy) 2 | #include 3 | #include 4 | 5 | #include "google/protobuf/descriptor.h" 6 | 7 | // Basic C++ build/link validation for the v2 xDS APIs. 8 | int main(int argc, char* argv[]) { 9 | const char* methods[] = { 10 | "xds.service.orca.v3.OpenRcaService.StreamCoreMetrics", 11 | // Old name for backward compatibility. 12 | // TODO(roth): Remove once all callers are updated to use the new name. 13 | "udpa.service.orca.v1.OpenRcaService.StreamCoreMetrics", 14 | }; 15 | 16 | for (const char* method : methods) { 17 | if (google::protobuf::DescriptorPool::generated_pool()->FindMethodByName(method) == nullptr) { 18 | std::cout << "Unable to find method descriptor for " << method << std::endl; 19 | exit(EXIT_FAILURE); 20 | } 21 | } 22 | 23 | exit(EXIT_SUCCESS); 24 | } 25 | -------------------------------------------------------------------------------- /test/build/go_build_test.go: -------------------------------------------------------------------------------- 1 | package go_build_test 2 | 3 | import ( 4 | "testing" 5 | 6 | _ "github.com/cncf/xds/go/xds/data/orca/v3" 7 | _ "github.com/cncf/xds/go/xds/service/orca/v3" 8 | _ "github.com/cncf/xds/go/xds/type/v3" 9 | 10 | // Old names for backward compatibility. 11 | // TODO(roth): Remove these once no one is using them anymore. 12 | _ "github.com/cncf/xds/go/udpa/data/orca/v1" 13 | _ "github.com/cncf/xds/go/udpa/service/orca/v1" 14 | _ "github.com/cncf/xds/go/udpa/type/v1" 15 | ) 16 | 17 | func TestNoop(t *testing.T) { 18 | // Noop test that verifies the successful importation of xDS protos 19 | } 20 | -------------------------------------------------------------------------------- /tools/generate_lang_files_from_protos.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from subprocess import check_output 4 | import glob 5 | import os 6 | import shutil 7 | from language_config import GoConfig, PythonConfig, LanguageConfig 8 | 9 | workspace = check_output(["bazel", "info", "workspace"]).decode().strip() 10 | LANG_CONFIGS = {config.language: config for config in [GoConfig(), PythonConfig()]} 11 | 12 | def generate_lang_files_from_protos(language_config: LanguageConfig): 13 | language = language_config.language 14 | print(f"Generating proto code in language {language}") 15 | output = os.path.join(workspace, language) 16 | bazel_bin = check_output(["bazel", "info", "bazel-bin"]).decode().strip() 17 | 18 | protos = check_output( 19 | [ 20 | "bazel", 21 | "query", 22 | language_config.bazel_query_kind, 23 | ] 24 | ).split() 25 | output_dir = f"github.com/cncf/xds/{language}" 26 | check_output(["bazel", "build", "-c", "fastbuild"] + protos) 27 | print(f"Found {len(protos)} bazel rules to generate code") 28 | for rule in protos: 29 | rule_dir = rule.decode()[2:].rsplit(":")[0] 30 | input_dir = language_config.get_input_dir(bazel_bin, rule_dir) 31 | input_files = glob.glob(os.path.join(input_dir, language_config.generated_file_pattern)) 32 | output_dir = os.path.join(output, rule_dir) 33 | print(f"Moving {len(input_files)} generated files from {input_dir} to output_dir {output_dir}") 34 | # Ensure the output directory exists 35 | os.makedirs(output_dir, 0o755, exist_ok=True) 36 | for generated_file in input_files: 37 | output_file = shutil.copy(generated_file, output_dir) 38 | os.chmod(output_file, 0o644) 39 | 40 | 41 | if __name__ == "__main__": 42 | for config in LANG_CONFIGS.values(): 43 | generate_lang_files_from_protos(language_config=config) -------------------------------------------------------------------------------- /tools/language_config.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from subprocess import check_output 4 | 5 | import os 6 | 7 | from abc import ABC, abstractmethod 8 | 9 | workspace = check_output(["bazel", "info", "workspace"]).decode().strip() 10 | 11 | 12 | class LanguageConfig(ABC): 13 | """Abstract base class for language-specific configurations.""" 14 | 15 | @property 16 | @abstractmethod 17 | def language(self) -> str: 18 | """Returns the language name.""" 19 | pass 20 | 21 | @property 22 | @abstractmethod 23 | def bazel_query_kind(self) -> str: 24 | """Returns the Bazel query kind for this language.""" 25 | pass 26 | 27 | @property 28 | @abstractmethod 29 | def generated_file_pattern(self) -> str: 30 | """Returns the file pattern for generated files.""" 31 | pass 32 | 33 | @abstractmethod 34 | def get_input_dir(self, bazel_bin: str, rule_dir: str) -> str: 35 | """Constructs the input directory path for generated files.""" 36 | pass 37 | 38 | 39 | class GoConfig(LanguageConfig): 40 | """Configuration for Go.""" 41 | 42 | @property 43 | def language(self) -> str: 44 | return "go" 45 | 46 | @property 47 | def bazel_query_kind(self) -> str: 48 | return 'kind("go_proto_library", ...)' 49 | 50 | @property 51 | def generated_file_pattern(self) -> str: 52 | return "*.go" 53 | 54 | def get_input_dir(self, bazel_bin: str, rule_dir: str) -> str: 55 | return os.path.join( 56 | bazel_bin, rule_dir, "pkg_go_proto_", "github.com/cncf/xds/go", rule_dir 57 | ) 58 | 59 | 60 | class PythonConfig(LanguageConfig): 61 | """Configuration for Python.""" 62 | 63 | @property 64 | def language(self) -> str: 65 | return "python" 66 | 67 | @property 68 | def bazel_query_kind(self) -> str: 69 | return 'kind("py_proto_library", ...)' 70 | 71 | @property 72 | def generated_file_pattern(self) -> str: 73 | return "*_pb2.py" 74 | 75 | def get_input_dir(self, bazel_bin: str, rule_dir: str) -> str: 76 | return os.path.join(bazel_bin, rule_dir) 77 | 78 | 79 | -------------------------------------------------------------------------------- /udpa/README.md: -------------------------------------------------------------------------------- 1 | # THESE PROTOS ARE DEPRECATED 2 | 3 | We are no longer using the "UDPA" name, and we are moving away from the 4 | protos in this tree. Users should prefer the corresponding protos in 5 | the xds tree instead. 6 | 7 | No new changes will be accepted for protos in this tree. If you want to 8 | change something, make the change to the corresponding proto in the xds 9 | tree instead, and then change your protos to use the xds proto instead 10 | of the udpa proto. 11 | -------------------------------------------------------------------------------- /udpa/annotations/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package() 6 | -------------------------------------------------------------------------------- /udpa/annotations/migrate.proto: -------------------------------------------------------------------------------- 1 | // THIS FILE IS DEPRECATED 2 | // Users should instead use the corresponding proto in the xds tree. 3 | // No new changes will be accepted here. 4 | 5 | syntax = "proto3"; 6 | 7 | package udpa.annotations; 8 | 9 | import "google/protobuf/descriptor.proto"; 10 | 11 | option go_package = "github.com/cncf/xds/go/udpa/annotations"; 12 | 13 | // Magic number in this file derived from top 28bit of SHA256 digest of 14 | // "udpa.annotation.migrate". 15 | 16 | extend google.protobuf.MessageOptions { 17 | MigrateAnnotation message_migrate = 171962766; 18 | } 19 | 20 | extend google.protobuf.FieldOptions { 21 | FieldMigrateAnnotation field_migrate = 171962766; 22 | } 23 | 24 | extend google.protobuf.EnumOptions { 25 | MigrateAnnotation enum_migrate = 171962766; 26 | } 27 | 28 | extend google.protobuf.EnumValueOptions { 29 | MigrateAnnotation enum_value_migrate = 171962766; 30 | } 31 | 32 | extend google.protobuf.FileOptions { 33 | FileMigrateAnnotation file_migrate = 171962766; 34 | } 35 | 36 | message MigrateAnnotation { 37 | // Rename the message/enum/enum value in next version. 38 | string rename = 1; 39 | } 40 | 41 | message FieldMigrateAnnotation { 42 | // Rename the field in next version. 43 | string rename = 1; 44 | 45 | // Add the field to a named oneof in next version. If this already exists, the 46 | // field will join its siblings under the oneof, otherwise a new oneof will be 47 | // created with the given name. 48 | string oneof_promotion = 2; 49 | } 50 | 51 | message FileMigrateAnnotation { 52 | // Move all types in the file to another package, this implies changing proto 53 | // file path. 54 | string move_to_package = 2; 55 | } 56 | -------------------------------------------------------------------------------- /udpa/annotations/security.proto: -------------------------------------------------------------------------------- 1 | // THIS FILE IS DEPRECATED 2 | // Users should instead use the corresponding proto in the xds tree. 3 | // No new changes will be accepted here. 4 | 5 | syntax = "proto3"; 6 | 7 | package udpa.annotations; 8 | 9 | import "udpa/annotations/status.proto"; 10 | 11 | import "google/protobuf/descriptor.proto"; 12 | 13 | option go_package = "github.com/cncf/xds/go/udpa/annotations"; 14 | 15 | // All annotations in this file are experimental and subject to change. Their 16 | // only consumer today is the Envoy APIs and SecuritAnnotationValidator protoc 17 | // plugin in this repository. 18 | option (udpa.annotations.file_status).work_in_progress = true; 19 | 20 | extend google.protobuf.FieldOptions { 21 | // Magic number is the 28 most significant bits in the sha256sum of 22 | // "udpa.annotations.security". 23 | FieldSecurityAnnotation security = 11122993; 24 | } 25 | 26 | // These annotations indicate metadata for the purpose of understanding the 27 | // security significance of fields. 28 | message FieldSecurityAnnotation { 29 | // Field should be set in the presence of untrusted downstreams. 30 | bool configure_for_untrusted_downstream = 1; 31 | 32 | // Field should be set in the presence of untrusted upstreams. 33 | bool configure_for_untrusted_upstream = 2; 34 | } 35 | -------------------------------------------------------------------------------- /udpa/annotations/sensitive.proto: -------------------------------------------------------------------------------- 1 | // THIS FILE IS DEPRECATED 2 | // Users should instead use the corresponding proto in the xds tree. 3 | // No new changes will be accepted here. 4 | 5 | syntax = "proto3"; 6 | 7 | package udpa.annotations; 8 | 9 | import "google/protobuf/descriptor.proto"; 10 | 11 | option go_package = "github.com/cncf/xds/go/udpa/annotations"; 12 | 13 | extend google.protobuf.FieldOptions { 14 | // Magic number is the 28 most significant bits in the sha256sum of "udpa.annotations.sensitive". 15 | // When set to true, `sensitive` indicates that this field contains sensitive data, such as 16 | // personally identifiable information, passwords, or private keys, and should be redacted for 17 | // display by tools aware of this annotation. Note that that this has no effect on standard 18 | // Protobuf functions such as `TextFormat::PrintToString`. 19 | bool sensitive = 76569463; 20 | } 21 | -------------------------------------------------------------------------------- /udpa/annotations/status.proto: -------------------------------------------------------------------------------- 1 | // THIS FILE IS DEPRECATED 2 | // Users should instead use the corresponding proto in the xds tree. 3 | // No new changes will be accepted here. 4 | 5 | syntax = "proto3"; 6 | 7 | package udpa.annotations; 8 | 9 | import "google/protobuf/descriptor.proto"; 10 | 11 | option go_package = "github.com/cncf/xds/go/udpa/annotations"; 12 | 13 | // Magic number in this file derived from top 28bit of SHA256 digest of 14 | // "udpa.annotation.status". 15 | extend google.protobuf.FileOptions { 16 | StatusAnnotation file_status = 222707719; 17 | } 18 | 19 | enum PackageVersionStatus { 20 | // Unknown package version status. 21 | UNKNOWN = 0; 22 | 23 | // This version of the package is frozen. 24 | FROZEN = 1; 25 | 26 | // This version of the package is the active development version. 27 | ACTIVE = 2; 28 | 29 | // This version of the package is the candidate for the next major version. It 30 | // is typically machine generated from the active development version. 31 | NEXT_MAJOR_VERSION_CANDIDATE = 3; 32 | } 33 | 34 | message StatusAnnotation { 35 | // The entity is work-in-progress and subject to breaking changes. 36 | bool work_in_progress = 1; 37 | 38 | // The entity belongs to a package with the given version status. 39 | PackageVersionStatus package_version_status = 2; 40 | } 41 | -------------------------------------------------------------------------------- /udpa/annotations/versioning.proto: -------------------------------------------------------------------------------- 1 | // THIS FILE IS DEPRECATED 2 | // Users should instead use the corresponding proto in the xds tree. 3 | // No new changes will be accepted here. 4 | 5 | syntax = "proto3"; 6 | 7 | package udpa.annotations; 8 | 9 | import "google/protobuf/descriptor.proto"; 10 | 11 | option go_package = "github.com/cncf/xds/go/udpa/annotations"; 12 | 13 | extend google.protobuf.MessageOptions { 14 | // Magic number derived from 0x78 ('x') 0x44 ('D') 0x53 ('S') 15 | VersioningAnnotation versioning = 7881811; 16 | } 17 | 18 | message VersioningAnnotation { 19 | // Track the previous message type. E.g. this message might be 20 | // udpa.foo.v3alpha.Foo and it was previously udpa.bar.v2.Bar. This 21 | // information is consumed by UDPA via proto descriptors. 22 | string previous_message_type = 1; 23 | } 24 | -------------------------------------------------------------------------------- /udpa/data/orca/v1/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package() 6 | -------------------------------------------------------------------------------- /udpa/data/orca/v1/orca_load_report.proto: -------------------------------------------------------------------------------- 1 | // THIS FILE IS DEPRECATED 2 | // Users should instead use the corresponding proto in the xds tree. 3 | // No new changes will be accepted here. 4 | 5 | syntax = "proto3"; 6 | 7 | package udpa.data.orca.v1; 8 | 9 | option java_outer_classname = "OrcaLoadReportProto"; 10 | option java_multiple_files = true; 11 | option java_package = "com.github.udpa.udpa.data.orca.v1"; 12 | option go_package = "github.com/cncf/xds/go/udpa/data/orca/v1"; 13 | 14 | import "validate/validate.proto"; 15 | 16 | // See section `ORCA load report format` of the design document in 17 | // :ref:`https://github.com/envoyproxy/envoy/issues/6614`. 18 | 19 | message OrcaLoadReport { 20 | // CPU utilization expressed as a fraction of available CPU resources. This 21 | // should be derived from the latest sample or measurement. 22 | double cpu_utilization = 1 [(validate.rules).double.gte = 0, (validate.rules).double.lte = 1]; 23 | 24 | // Memory utilization expressed as a fraction of available memory 25 | // resources. This should be derived from the latest sample or measurement. 26 | double mem_utilization = 2 [(validate.rules).double.gte = 0, (validate.rules).double.lte = 1]; 27 | 28 | // Total RPS being served by an endpoint. This should cover all services that an endpoint is 29 | // responsible for. 30 | uint64 rps = 3; 31 | 32 | // Application specific requests costs. Each value is an absolute cost (e.g. 3487 bytes of 33 | // storage) associated with the request. 34 | map request_cost = 4; 35 | 36 | // Resource utilization values. Each value is expressed as a fraction of total resources 37 | // available, derived from the latest sample or measurement. 38 | map utilization = 5 39 | [(validate.rules).map.values.double.gte = 0, (validate.rules).map.values.double.lte = 1]; 40 | } 41 | -------------------------------------------------------------------------------- /udpa/service/orca/v1/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package( 6 | has_services = True, 7 | deps = [ 8 | "//udpa/data/orca/v1:pkg", 9 | ], 10 | ) 11 | -------------------------------------------------------------------------------- /udpa/service/orca/v1/orca.proto: -------------------------------------------------------------------------------- 1 | // THIS FILE IS DEPRECATED 2 | // Users should instead use the corresponding proto in the xds tree. 3 | // No new changes will be accepted here. 4 | 5 | syntax = "proto3"; 6 | 7 | package udpa.service.orca.v1; 8 | 9 | option java_outer_classname = "OrcaProto"; 10 | option java_multiple_files = true; 11 | option java_package = "com.github.udpa.udpa.service.orca.v1"; 12 | option go_package = "github.com/cncf/xds/go/udpa/service/orca/v1"; 13 | 14 | import "udpa/data/orca/v1/orca_load_report.proto"; 15 | 16 | import "google/protobuf/duration.proto"; 17 | 18 | // See section `Out-of-band (OOB) reporting` of the design document in 19 | // :ref:`https://github.com/envoyproxy/envoy/issues/6614`. 20 | 21 | // Out-of-band (OOB) load reporting service for the additional load reporting 22 | // agent that does not sit in the request path. Reports are periodically sampled 23 | // with sufficient frequency to provide temporal association with requests. 24 | // OOB reporting compensates the limitation of in-band reporting in revealing 25 | // costs for backends that do not provide a steady stream of telemetry such as 26 | // long running stream operations and zero QPS services. This is a server 27 | // streaming service, client needs to terminate current RPC and initiate 28 | // a new call to change backend reporting frequency. 29 | service OpenRcaService { 30 | rpc StreamCoreMetrics(OrcaLoadReportRequest) returns (stream udpa.data.orca.v1.OrcaLoadReport); 31 | } 32 | 33 | message OrcaLoadReportRequest { 34 | // Interval for generating Open RCA core metric responses. 35 | google.protobuf.Duration report_interval = 1; 36 | // Request costs to collect. If this is empty, all known requests costs tracked by 37 | // the load reporting agent will be returned. This provides an opportunity for 38 | // the client to selectively obtain a subset of tracked costs. 39 | repeated string request_cost_names = 2; 40 | } 41 | -------------------------------------------------------------------------------- /udpa/type/v1/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package() 6 | -------------------------------------------------------------------------------- /udpa/type/v1/typed_struct.proto: -------------------------------------------------------------------------------- 1 | // THIS FILE IS DEPRECATED 2 | // Users should instead use the corresponding proto in the xds tree. 3 | // No new changes will be accepted here. 4 | 5 | syntax = "proto3"; 6 | 7 | package udpa.type.v1; 8 | 9 | option java_outer_classname = "TypedStructProto"; 10 | option java_multiple_files = true; 11 | option java_package = "com.github.udpa.udpa.type.v1"; 12 | option go_package = "github.com/cncf/xds/go/udpa/type/v1"; 13 | 14 | import "google/protobuf/struct.proto"; 15 | 16 | // A TypedStruct contains an arbitrary JSON serialized protocol buffer message with a URL that 17 | // describes the type of the serialized message. This is very similar to google.protobuf.Any, 18 | // instead of having protocol buffer binary, this employs google.protobuf.Struct as value. 19 | // 20 | // This message is intended to be embedded inside Any, so it shouldn't be directly referred 21 | // from other UDPA messages. 22 | // 23 | // When packing an opaque extension config, packing the expected type into Any is preferred 24 | // wherever possible for its efficiency. TypedStruct should be used only if a proto descriptor 25 | // is not available, for example if: 26 | // - A control plane sends opaque message that is originally from external source in human readable 27 | // format such as JSON or YAML. 28 | // - The control plane doesn't have the knowledge of the protocol buffer schema hence it cannot 29 | // serialize the message in protocol buffer binary format. 30 | // - The DPLB doesn't have have the knowledge of the protocol buffer schema its plugin or extension 31 | // uses. This has to be indicated in the DPLB capability negotiation. 32 | // 33 | // When a DPLB receives a TypedStruct in Any, it should: 34 | // - Check if the type_url of the TypedStruct matches the type the extension expects. 35 | // - Convert value to the type described in type_url and perform validation. 36 | // TODO(lizan): Figure out how TypeStruct should be used with DPLB extensions that doesn't link 37 | // protobuf descriptor with DPLB itself, (e.g. gRPC LB Plugin, Envoy WASM extensions). 38 | message TypedStruct { 39 | // A URL that uniquely identifies the type of the serialize protocol buffer message. 40 | // This has same semantics and format described in google.protobuf.Any: 41 | // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto 42 | string type_url = 1; 43 | 44 | // A JSON representation of the above specified type. 45 | google.protobuf.Struct value = 2; 46 | } 47 | -------------------------------------------------------------------------------- /xds/annotations/v3/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package() 6 | -------------------------------------------------------------------------------- /xds/annotations/v3/migrate.proto: -------------------------------------------------------------------------------- 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 | } 47 | -------------------------------------------------------------------------------- /xds/annotations/v3/security.proto: -------------------------------------------------------------------------------- 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 | } 31 | -------------------------------------------------------------------------------- /xds/annotations/v3/sensitive.proto: -------------------------------------------------------------------------------- 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 | } 17 | -------------------------------------------------------------------------------- /xds/annotations/v3/status.proto: -------------------------------------------------------------------------------- 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 | } 60 | -------------------------------------------------------------------------------- /xds/annotations/v3/versioning.proto: -------------------------------------------------------------------------------- 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 | } 21 | -------------------------------------------------------------------------------- /xds/core/v3/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package(deps = ["//xds/annotations/v3:pkg"]) 6 | -------------------------------------------------------------------------------- /xds/core/v3/authority.proto: -------------------------------------------------------------------------------- 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 | } 23 | -------------------------------------------------------------------------------- /xds/core/v3/cidr.proto: -------------------------------------------------------------------------------- 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 `_ 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 | } 26 | -------------------------------------------------------------------------------- /xds/core/v3/collection_entry.proto: -------------------------------------------------------------------------------- 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 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 | } 56 | -------------------------------------------------------------------------------- /xds/core/v3/context_params.proto: -------------------------------------------------------------------------------- 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 params = 1; 23 | } 24 | -------------------------------------------------------------------------------- /xds/core/v3/extension.proto: -------------------------------------------------------------------------------- 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 | // ` for further details. 25 | google.protobuf.Any typed_config = 2 [(validate.rules).any = {required: true}]; 26 | } 27 | -------------------------------------------------------------------------------- /xds/core/v3/resource.proto: -------------------------------------------------------------------------------- 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 | } 30 | -------------------------------------------------------------------------------- /xds/core/v3/resource_name.proto: -------------------------------------------------------------------------------- 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 | } 43 | -------------------------------------------------------------------------------- /xds/data/orca/v3/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package() 6 | -------------------------------------------------------------------------------- /xds/data/orca/v3/orca_load_report.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.data.orca.v3; 4 | 5 | option java_outer_classname = "OrcaLoadReportProto"; 6 | option java_multiple_files = true; 7 | option java_package = "com.github.xds.data.orca.v3"; 8 | option go_package = "github.com/cncf/xds/go/xds/data/orca/v3"; 9 | 10 | import "validate/validate.proto"; 11 | 12 | // See section `ORCA load report format` of the design document in 13 | // https://github.com/envoyproxy/envoy/issues/6614. 14 | 15 | message OrcaLoadReport { 16 | // CPU utilization expressed as a fraction of available CPU resources. This 17 | // should be derived from the latest sample or measurement. The value may be 18 | // larger than 1.0 when the usage exceeds the reporter dependent notion of 19 | // soft limits. 20 | double cpu_utilization = 1 [(validate.rules).double.gte = 0]; 21 | 22 | // Memory utilization expressed as a fraction of available memory 23 | // resources. This should be derived from the latest sample or measurement. 24 | double mem_utilization = 2 [(validate.rules).double.gte = 0, (validate.rules).double.lte = 1]; 25 | 26 | // Total RPS being served by an endpoint. This should cover all services that an endpoint is 27 | // responsible for. 28 | // Deprecated -- use ``rps_fractional`` field instead. 29 | uint64 rps = 3 [deprecated = true]; 30 | 31 | // Application specific requests costs. Each value is an absolute cost (e.g. 3487 bytes of 32 | // storage) associated with the request. 33 | map request_cost = 4; 34 | 35 | // Resource utilization values. Each value is expressed as a fraction of total resources 36 | // available, derived from the latest sample or measurement. 37 | map utilization = 5 38 | [(validate.rules).map.values.double.gte = 0, (validate.rules).map.values.double.lte = 1]; 39 | 40 | // Total RPS being served by an endpoint. This should cover all services that an endpoint is 41 | // responsible for. 42 | double rps_fractional = 6 [(validate.rules).double.gte = 0]; 43 | 44 | // Total EPS (errors/second) being served by an endpoint. This should cover 45 | // all services that an endpoint is responsible for. 46 | double eps = 7 [(validate.rules).double.gte = 0]; 47 | 48 | // Application specific opaque metrics. 49 | map named_metrics = 8; 50 | 51 | // Application specific utilization expressed as a fraction of available 52 | // resources. For example, an application may report the max of CPU and memory 53 | // utilization for better load balancing if it is both CPU and memory bound. 54 | // This should be derived from the latest sample or measurement. 55 | // The value may be larger than 1.0 when the usage exceeds the reporter 56 | // dependent notion of soft limits. 57 | double application_utilization = 9 [(validate.rules).double.gte = 0]; 58 | } 59 | -------------------------------------------------------------------------------- /xds/service/orca/v3/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package( 6 | has_services = True, 7 | deps = [ 8 | "//xds/data/orca/v3:pkg", 9 | ], 10 | ) 11 | -------------------------------------------------------------------------------- /xds/service/orca/v3/orca.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.service.orca.v3; 4 | 5 | option java_outer_classname = "OrcaProto"; 6 | option java_multiple_files = true; 7 | option java_package = "com.github.xds.service.orca.v3"; 8 | option go_package = "github.com/cncf/xds/go/xds/service/orca/v3"; 9 | 10 | import "xds/data/orca/v3/orca_load_report.proto"; 11 | 12 | import "google/protobuf/duration.proto"; 13 | 14 | // See section `Out-of-band (OOB) reporting` of the design document in 15 | // :ref:`https://github.com/envoyproxy/envoy/issues/6614`. 16 | 17 | // Out-of-band (OOB) load reporting service for the additional load reporting 18 | // agent that does not sit in the request path. Reports are periodically sampled 19 | // with sufficient frequency to provide temporal association with requests. 20 | // OOB reporting compensates the limitation of in-band reporting in revealing 21 | // costs for backends that do not provide a steady stream of telemetry such as 22 | // long running stream operations and zero QPS services. This is a server 23 | // streaming service, client needs to terminate current RPC and initiate 24 | // a new call to change backend reporting frequency. 25 | service OpenRcaService { 26 | rpc StreamCoreMetrics(OrcaLoadReportRequest) returns (stream xds.data.orca.v3.OrcaLoadReport); 27 | } 28 | 29 | message OrcaLoadReportRequest { 30 | // Interval for generating Open RCA core metric responses. 31 | google.protobuf.Duration report_interval = 1; 32 | // Request costs to collect. If this is empty, all known requests costs tracked by 33 | // the load reporting agent will be returned. This provides an opportunity for 34 | // the client to selectively obtain a subset of tracked costs. 35 | repeated string request_cost_names = 2; 36 | } 37 | -------------------------------------------------------------------------------- /xds/type/matcher/v3/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package( 6 | deps = [ 7 | "//xds/annotations/v3:pkg", 8 | "//xds/core/v3:pkg", 9 | "//xds/type/v3:pkg", 10 | ], 11 | ) 12 | -------------------------------------------------------------------------------- /xds/type/matcher/v3/cel.proto: -------------------------------------------------------------------------------- 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 | // `_ (CEL) expression against the standardized set of 17 | // :ref:`HTTP 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 ` 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 | } 38 | -------------------------------------------------------------------------------- /xds/type/matcher/v3/domain.proto: -------------------------------------------------------------------------------- 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 | } 47 | -------------------------------------------------------------------------------- /xds/type/matcher/v3/http_inputs.proto: -------------------------------------------------------------------------------- 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 | // `. 14 | // 15 | // The attributes will be exposed via `Common Expression Language 16 | // `_ runtime to associated CEL matcher. 17 | // 18 | // Refer to :ref:`Unified Matcher API ` documentation 19 | // for usage details. 20 | // 21 | // [#comment: envoy.matching.inputs.cel_data_input] 22 | message HttpAttributesCelMatchInput { 23 | } 24 | -------------------------------------------------------------------------------- /xds/type/matcher/v3/ip.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.type.matcher.v3; 4 | 5 | import "xds/annotations/v3/status.proto"; 6 | import "xds/core/v3/cidr.proto"; 7 | import "xds/type/matcher/v3/matcher.proto"; 8 | 9 | import "validate/validate.proto"; 10 | 11 | option java_package = "com.github.xds.type.matcher.v3"; 12 | option java_outer_classname = "IPMatcherProto"; 13 | option java_multiple_files = true; 14 | option go_package = "github.com/cncf/xds/go/xds/type/matcher/v3"; 15 | 16 | option (xds.annotations.v3.file_status).work_in_progress = true; 17 | 18 | // [#protodoc-title: IP matcher] 19 | 20 | // Matches a specific IP address against a set of possibly overlapping subnets using a trie. 21 | message IPMatcher { 22 | // Specifies a list of IP address ranges and a match action. 23 | message IPRangeMatcher { 24 | // A non-empty set of CIDR ranges. 25 | repeated core.v3.CidrRange ranges = 1 [(validate.rules).repeated = {min_items: 1}]; 26 | 27 | // Match action to apply when the IP address is within one of the CIDR ranges. 28 | Matcher.OnMatch on_match = 2; 29 | 30 | // Indicates whether this match option should be considered if there is a 31 | // more specific matcher. Exclusive matchers are not selected whenever a 32 | // more specific matcher exists (e.g. matcher with a longer prefix) even 33 | // when the more specific matcher fails its nested match condition. 34 | // Non-exclusive matchers are considered if the more specific matcher 35 | // exists but its nested match condition does not entirely match. 36 | // Non-exclusive matchers are selected in the order of their specificity 37 | // first (longest prefix first), then the order of declaration next. 38 | // 39 | // For example, consider two range matchers: an exclusive matcher *X* on 40 | // ``0.0.0.0/0`` and a matcher *Y* on ``192.0.0.0/2`` with a nested match 41 | // condition *Z*. For the input IP ``192.168.0.1`` matcher *Y* is the most 42 | // specific. If its nested match condition *Z* does not accept the input, 43 | // then the less specific matcher *X* does not apply either despite the 44 | // input being within the range, because matcher *X* is exclusive. 45 | // 46 | // The opposite is true if matcher *X* is not marked as exclusive. In that 47 | // case matcher *X* always matches whenever matcher "*Y* rejects the input. 48 | bool exclusive = 3; 49 | } 50 | 51 | // Match IP address by CIDR ranges. 52 | repeated IPRangeMatcher range_matchers = 1; 53 | } 54 | -------------------------------------------------------------------------------- /xds/type/matcher/v3/range.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.type.matcher.v3; 4 | 5 | import "xds/type/v3/range.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 = "RangeProto"; 12 | option java_multiple_files = true; 13 | option go_package = "github.com/cncf/xds/go/xds/type/matcher/v3"; 14 | 15 | // [#protodoc-title: Range matcher] 16 | 17 | // Specifies a set of ranges for matching an int64 number and the associated 18 | // match actions. 19 | message Int64RangeMatcher { 20 | // Specifies a list of number ranges and a match action. 21 | message RangeMatcher { 22 | // A non-empty set of int64 ranges. 23 | repeated xds.type.v3.Int64Range ranges = 1 24 | [(validate.rules).repeated = { min_items: 1 }]; 25 | 26 | // Match action to apply when the input number is within one of the ranges. 27 | Matcher.OnMatch on_match = 2; 28 | } 29 | 30 | // Match a number by a list of number ranges. If multiple ranges contain the 31 | // input number, then the first action in this list is taken. 32 | repeated RangeMatcher range_matchers = 1; 33 | } 34 | 35 | // Specifies a set of ranges for matching an int32 number and the associated 36 | // match actions. 37 | message Int32RangeMatcher { 38 | // Specifies a list of number ranges and a match action. 39 | message RangeMatcher { 40 | // A non-empty set of int32 ranges. 41 | repeated xds.type.v3.Int32Range ranges = 1 42 | [(validate.rules).repeated = { min_items: 1 }]; 43 | 44 | // Match action to apply when the input number is within one of the ranges. 45 | Matcher.OnMatch on_match = 2; 46 | } 47 | 48 | // Match a number by a list of number ranges. If multiple ranges contain the 49 | // input number, then the first action in this list is taken. 50 | repeated RangeMatcher range_matchers = 1; 51 | } 52 | 53 | // Specifies a set of ranges for matching a double number and the associated 54 | // match actions. 55 | message DoubleRangeMatcher { 56 | // Specifies a list of number ranges and a match action. 57 | message RangeMatcher { 58 | // A non-empty set of double ranges. 59 | repeated xds.type.v3.DoubleRange ranges = 1 60 | [(validate.rules).repeated = { min_items: 1 }]; 61 | 62 | // Match action to apply when the input number is within one of the ranges. 63 | Matcher.OnMatch on_match = 2; 64 | } 65 | 66 | // Match a number by a list of number ranges. If multiple ranges contain the 67 | // input number, then the first action in this list is taken. 68 | repeated RangeMatcher range_matchers = 1; 69 | } 70 | -------------------------------------------------------------------------------- /xds/type/matcher/v3/regex.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.type.matcher.v3; 4 | 5 | import "validate/validate.proto"; 6 | 7 | option java_package = "com.github.xds.type.matcher.v3"; 8 | option java_outer_classname = "RegexProto"; 9 | option java_multiple_files = true; 10 | option go_package = "github.com/cncf/xds/go/xds/type/matcher/v3"; 11 | 12 | // [#protodoc-title: Regex matcher] 13 | 14 | // A regex matcher designed for safety when used with untrusted input. 15 | message RegexMatcher { 16 | // Google's `RE2 `_ regex engine. The regex 17 | // string must adhere to the documented `syntax 18 | // `_. The engine is designed to 19 | // complete execution in linear time as well as limit the amount of memory 20 | // used. 21 | // 22 | // Envoy supports program size checking via runtime. The runtime keys 23 | // `re2.max_program_size.error_level` and `re2.max_program_size.warn_level` 24 | // can be set to integers as the maximum program size or complexity that a 25 | // compiled regex can have before an exception is thrown or a warning is 26 | // logged, respectively. `re2.max_program_size.error_level` defaults to 100, 27 | // and `re2.max_program_size.warn_level` has no default if unset (will not 28 | // check/log a warning). 29 | // 30 | // Envoy emits two stats for tracking the program size of regexes: the 31 | // histogram `re2.program_size`, which records the program size, and the 32 | // counter `re2.exceeded_warn_level`, which is incremented each time the 33 | // program size exceeds the warn level threshold. 34 | message GoogleRE2 {} 35 | 36 | oneof engine_type { 37 | option (validate.required) = true; 38 | 39 | // Google's RE2 regex engine. 40 | GoogleRE2 google_re2 = 1 [ (validate.rules).message = {required : true} ]; 41 | } 42 | 43 | // The regex match string. The string must be supported by the configured 44 | // engine. 45 | string regex = 2 [ (validate.rules).string = {min_len : 1} ]; 46 | } 47 | -------------------------------------------------------------------------------- /xds/type/matcher/v3/string.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.type.matcher.v3; 4 | 5 | import "xds/core/v3/extension.proto"; 6 | import "xds/type/matcher/v3/regex.proto"; 7 | 8 | import "validate/validate.proto"; 9 | 10 | option java_package = "com.github.xds.type.matcher.v3"; 11 | option java_outer_classname = "StringProto"; 12 | option java_multiple_files = true; 13 | option go_package = "github.com/cncf/xds/go/xds/type/matcher/v3"; 14 | 15 | // [#protodoc-title: String matcher] 16 | 17 | // Specifies the way to match a string. 18 | // [#next-free-field: 9] 19 | message StringMatcher { 20 | oneof match_pattern { 21 | option (validate.required) = true; 22 | 23 | // The input string must match exactly the string specified here. 24 | // 25 | // Examples: 26 | // 27 | // * *abc* only matches the value *abc*. 28 | string exact = 1; 29 | 30 | // The input string must have the prefix specified here. 31 | // Note: empty prefix is not allowed, please use regex instead. 32 | // 33 | // Examples: 34 | // 35 | // * *abc* matches the value *abc.xyz* 36 | string prefix = 2 [(validate.rules).string = {min_len: 1}]; 37 | 38 | // The input string must have the suffix specified here. 39 | // Note: empty prefix is not allowed, please use regex instead. 40 | // 41 | // Examples: 42 | // 43 | // * *abc* matches the value *xyz.abc* 44 | string suffix = 3 [(validate.rules).string = {min_len: 1}]; 45 | 46 | // The input string must match the regular expression specified here. 47 | RegexMatcher safe_regex = 5 [(validate.rules).message = {required: true}]; 48 | 49 | // The input string must have the substring specified here. 50 | // Note: empty contains match is not allowed, please use regex instead. 51 | // 52 | // Examples: 53 | // 54 | // * *abc* matches the value *xyz.abc.def* 55 | string contains = 7 [(validate.rules).string = {min_len: 1}]; 56 | 57 | // Use an extension as the matcher type. 58 | // [#extension-category: envoy.string_matcher] 59 | xds.core.v3.TypedExtensionConfig custom = 8; 60 | } 61 | 62 | // If true, indicates the exact/prefix/suffix matching should be case insensitive. This has no 63 | // effect for the safe_regex match. 64 | // For example, the matcher *data* will match both input string *Data* and *data* if set to true. 65 | bool ignore_case = 6; 66 | } 67 | 68 | // Specifies a list of ways to match a string. 69 | message ListStringMatcher { 70 | repeated StringMatcher patterns = 1 [(validate.rules).repeated = {min_items: 1}]; 71 | } 72 | -------------------------------------------------------------------------------- /xds/type/v3/BUILD: -------------------------------------------------------------------------------- 1 | load("//bazel:api_build_system.bzl", "xds_proto_package") 2 | 3 | licenses(["notice"]) # Apache 2 4 | 5 | xds_proto_package( 6 | deps = [ 7 | "//xds/annotations/v3:pkg", 8 | "@com_google_googleapis//google/api/expr/v1alpha1:checked_proto", 9 | "@com_google_googleapis//google/api/expr/v1alpha1:syntax_proto", 10 | "@dev_cel//proto/cel/expr:checked_proto", 11 | "@dev_cel//proto/cel/expr:syntax_proto", 12 | ], 13 | ) 14 | -------------------------------------------------------------------------------- /xds/type/v3/cel.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.type.v3; 4 | 5 | import "google/api/expr/v1alpha1/checked.proto"; 6 | import "google/api/expr/v1alpha1/syntax.proto"; 7 | import "cel/expr/checked.proto"; 8 | import "cel/expr/syntax.proto"; 9 | import "google/protobuf/wrappers.proto"; 10 | 11 | import "xds/annotations/v3/status.proto"; 12 | 13 | import "validate/validate.proto"; 14 | 15 | option java_package = "com.github.xds.type.v3"; 16 | option java_outer_classname = "CelProto"; 17 | option java_multiple_files = true; 18 | option go_package = "github.com/cncf/xds/go/xds/type/v3"; 19 | 20 | option (xds.annotations.v3.file_status).work_in_progress = true; 21 | 22 | // [#protodoc-title: Common Expression Language (CEL)] 23 | 24 | // Either parsed or checked representation of the `Common Expression Language 25 | // `_ (CEL) program. 26 | message CelExpression { 27 | oneof expr_specifier { 28 | // Parsed expression in abstract syntax tree (AST) form. 29 | // 30 | // Deprecated -- use ``cel_expr_parsed`` field instead. 31 | // If ``cel_expr_parsed`` or ``cel_expr_checked`` is set, this field is not used. 32 | google.api.expr.v1alpha1.ParsedExpr parsed_expr = 1 [deprecated = true]; 33 | 34 | // Parsed expression in abstract syntax tree (AST) form that has been successfully type checked. 35 | // 36 | // Deprecated -- use ``cel_expr_checked`` field instead. 37 | // If ``cel_expr_parsed`` or ``cel_expr_checked`` is set, this field is not used. 38 | google.api.expr.v1alpha1.CheckedExpr checked_expr = 2 [deprecated = true]; 39 | } 40 | 41 | // Parsed expression in abstract syntax tree (AST) form. 42 | // 43 | // If ``cel_expr_checked`` is set, this field is not used. 44 | cel.expr.ParsedExpr cel_expr_parsed = 3; 45 | 46 | // Parsed expression in abstract syntax tree (AST) form that has been successfully type checked. 47 | // 48 | // If set, takes precedence over ``cel_expr_parsed``. 49 | cel.expr.CheckedExpr cel_expr_checked = 4; 50 | 51 | // Unparsed expression in string form. For example, ``request.headers['x-env'] == 'prod'`` will 52 | // get ``x-env`` header value and compare it with ``prod``. 53 | // Check the `Common Expression Language `_ for more details. 54 | // 55 | // If set, takes precedence over ``cel_expr_parsed`` and ``cel_expr_checked``. 56 | string cel_expr_string = 5; 57 | } 58 | 59 | // Extracts a string by evaluating a `Common Expression Language 60 | // `_ (CEL) expression against the standardized set of 61 | // :ref:`HTTP attributes `. 62 | // 63 | // .. attention:: 64 | // 65 | // Besides CEL evaluation raising an error explicitly, CEL program returning a type other than 66 | // the ``string``, or not returning anything, are considered an error as well. 67 | // 68 | // [#comment:TODO(sergiitk): When implemented, add the extension tag.] 69 | message CelExtractString { 70 | // The CEL expression used to extract a string from the CEL environment. 71 | // the "subject string") that should be replaced. 72 | CelExpression expr_extract = 1 [(validate.rules).message = {required: true}]; 73 | 74 | // If CEL expression evaluates to an error, this value is be returned to the caller. 75 | // If not set, the error is propagated to the caller. 76 | google.protobuf.StringValue default_value = 2; 77 | } 78 | -------------------------------------------------------------------------------- /xds/type/v3/range.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.type.v3; 4 | 5 | option java_package = "com.github.xds.type.v3"; 6 | option java_outer_classname = "RangeProto"; 7 | option java_multiple_files = true; 8 | option go_package = "github.com/cncf/xds/go/xds/type/v3"; 9 | 10 | // [#protodoc-title: Number range] 11 | 12 | // Specifies the int64 start and end of the range using half-open interval 13 | // semantics [start, end). 14 | message Int64Range { 15 | // start of the range (inclusive) 16 | int64 start = 1; 17 | 18 | // end of the range (exclusive) 19 | int64 end = 2; 20 | } 21 | 22 | // Specifies the int32 start and end of the range using half-open interval 23 | // semantics [start, end). 24 | message Int32Range { 25 | // start of the range (inclusive) 26 | int32 start = 1; 27 | 28 | // end of the range (exclusive) 29 | int32 end = 2; 30 | } 31 | 32 | // Specifies the double start and end of the range using half-open interval 33 | // semantics [start, end). 34 | message DoubleRange { 35 | // start of the range (inclusive) 36 | double start = 1; 37 | 38 | // end of the range (exclusive) 39 | double end = 2; 40 | } 41 | -------------------------------------------------------------------------------- /xds/type/v3/typed_struct.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package xds.type.v3; 4 | 5 | option java_outer_classname = "TypedStructProto"; 6 | option java_multiple_files = true; 7 | option java_package = "com.github.xds.type.v3"; 8 | option go_package = "github.com/cncf/xds/go/xds/type/v3"; 9 | 10 | import "google/protobuf/struct.proto"; 11 | 12 | // A TypedStruct contains an arbitrary JSON serialized protocol buffer message with a URL that 13 | // describes the type of the serialized message. This is very similar to google.protobuf.Any, 14 | // instead of having protocol buffer binary, this employs google.protobuf.Struct as value. 15 | // 16 | // This message is intended to be embedded inside Any, so it shouldn't be directly referred 17 | // from other UDPA messages. 18 | // 19 | // When packing an opaque extension config, packing the expected type into Any is preferred 20 | // wherever possible for its efficiency. TypedStruct should be used only if a proto descriptor 21 | // is not available, for example if: 22 | // 23 | // - A control plane sends opaque message that is originally from external source in human readable 24 | // format such as JSON or YAML. 25 | // - The control plane doesn't have the knowledge of the protocol buffer schema hence it cannot 26 | // serialize the message in protocol buffer binary format. 27 | // - The DPLB doesn't have have the knowledge of the protocol buffer schema its plugin or extension 28 | // uses. This has to be indicated in the DPLB capability negotiation. 29 | // 30 | // When a DPLB receives a TypedStruct in Any, it should: 31 | // - Check if the type_url of the TypedStruct matches the type the extension expects. 32 | // - Convert value to the type described in type_url and perform validation. 33 | // 34 | // TODO(lizan): Figure out how TypeStruct should be used with DPLB extensions that doesn't link 35 | // protobuf descriptor with DPLB itself, (e.g. gRPC LB Plugin, Envoy WASM extensions). 36 | message TypedStruct { 37 | // A URL that uniquely identifies the type of the serialize protocol buffer message. 38 | // This has same semantics and format described in google.protobuf.Any: 39 | // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto 40 | string type_url = 1; 41 | 42 | // A JSON representation of the above specified type. 43 | google.protobuf.Struct value = 2; 44 | } 45 | --------------------------------------------------------------------------------