From 327ef3ebb8c8e3595839c3f764c39a7d60412ba1 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:11:17 -0600 Subject: [PATCH 01/22] wip --- .github/dependabot.yaml | 8 ++++++ .github/workflows/update.yaml | 26 +++++++++++++++++++ .gitignore | 2 -- .gitmodules | 12 +++++++++ .../census-instrumentation/opencensus-proto | 1 + .../github.com/envoyproxy/protoc-gen-validate | 1 + .../open-telemetry/opentelemetry-proto | 1 + deps/github.com/pomerium/enterprise-client | 1 + 8 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/update.yaml create mode 100644 .gitmodules create mode 160000 deps/github.com/census-instrumentation/opencensus-proto create mode 160000 deps/github.com/envoyproxy/protoc-gen-validate create mode 160000 deps/github.com/open-telemetry/opentelemetry-proto create mode 160000 deps/github.com/pomerium/enterprise-client diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 758deee..01dddd4 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -1,5 +1,13 @@ version: 2 updates: + - package-ecosystem: "gitsubmodule" + directory: "/" + schedule: + interval: "monthly" + groups: + gitsubmodule: + patterns: + - "*" - package-ecosystem: "github-actions" directory: "/" schedule: diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml new file mode 100644 index 0000000..9e80ef2 --- /dev/null +++ b/.github/workflows/update.yaml @@ -0,0 +1,26 @@ +name: Update + +on: + pull_request: + +jobs: + update: + runs-on: ubuntu-latest + if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'pomerium/enterprise-client' + steps: + - name: Checkout + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + with: + ref: ${{ github.head_ref }} + submodules: "true" + token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} + + - name: Update + run: | + ./scripts/update + + - name: Commit + uses: devops-infra/action-commit-push@e6a24fad602d1f92e46432c89a7e0c7fdd45d62d + with: + github_token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} + commit_message: "ci: update" diff --git a/.gitignore b/.gitignore index 652725f..8321e3f 100644 --- a/.gitignore +++ b/.gitignore @@ -146,5 +146,3 @@ cython_debug/ # End of https://www.toptal.com/developers/gitignore/api/python # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) - -deps/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e93d210 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,12 @@ +[submodule "deps/github.com/pomerium/enterprise-client"] + path = deps/github.com/pomerium/enterprise-client + url = git@github.com:pomerium/enterprise-client +[submodule "deps/github.com/envoyproxy/protoc-gen-validate"] + path = deps/github.com/envoyproxy/protoc-gen-validate + url = git@github.com:envoyproxy/protoc-gen-validate +[submodule "deps/github.com/census-instrumentation/opencensus-proto"] + path = deps/github.com/census-instrumentation/opencensus-proto + url = git@github.com:census-instrumentation/opencensus-proto +[submodule "deps/github.com/open-telemetry/opentelemetry-proto"] + path = deps/github.com/open-telemetry/opentelemetry-proto + url = git@github.com:open-telemetry/opentelemetry-proto diff --git a/deps/github.com/census-instrumentation/opencensus-proto b/deps/github.com/census-instrumentation/opencensus-proto new file mode 160000 index 0000000..e53624a --- /dev/null +++ b/deps/github.com/census-instrumentation/opencensus-proto @@ -0,0 +1 @@ +Subproject commit e53624a87b9b9b919147a9b4626c669a869ebb34 diff --git a/deps/github.com/envoyproxy/protoc-gen-validate b/deps/github.com/envoyproxy/protoc-gen-validate new file mode 160000 index 0000000..7b06248 --- /dev/null +++ b/deps/github.com/envoyproxy/protoc-gen-validate @@ -0,0 +1 @@ +Subproject commit 7b06248484ceeaa947e93ca2747eccf336a88ecc diff --git a/deps/github.com/open-telemetry/opentelemetry-proto b/deps/github.com/open-telemetry/opentelemetry-proto new file mode 160000 index 0000000..c0a98a1 --- /dev/null +++ b/deps/github.com/open-telemetry/opentelemetry-proto @@ -0,0 +1 @@ +Subproject commit c0a98a1847d3124ac5f9ecd02d0e2d2732bbb590 diff --git a/deps/github.com/pomerium/enterprise-client b/deps/github.com/pomerium/enterprise-client new file mode 160000 index 0000000..82b4168 --- /dev/null +++ b/deps/github.com/pomerium/enterprise-client @@ -0,0 +1 @@ +Subproject commit 82b4168693e371f30407fe0bf989c1f30d0e01cb From 00498eaf0f8e5bd0cc9159f62196a2a66a169ca2 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:13:06 -0600 Subject: [PATCH 02/22] wip --- .github/workflows/test.yaml | 1 + .github/workflows/update.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 9c830d1..997fccc 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -7,6 +7,7 @@ on: - main jobs: tests: + needs: [update] strategy: matrix: python-version: ["3.9", "3.10", "3.11", "3.12"] diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 9e80ef2..84939a0 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -6,7 +6,7 @@ on: jobs: update: runs-on: ubuntu-latest - if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'pomerium/enterprise-client' + # if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'pomerium/enterprise-client' steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 From bbaf3879e63612e3e8782e3b134f03c5f8f2d4f4 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:16:05 -0600 Subject: [PATCH 03/22] remove clone --- scripts/update | 179 ++++++++++++++++++++----------------------------- 1 file changed, 72 insertions(+), 107 deletions(-) diff --git a/scripts/update b/scripts/update index 4f2716e..bc0d0a5 100755 --- a/scripts/update +++ b/scripts/update @@ -5,127 +5,92 @@ _scripts_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" _root_dir="$(dirname "$_scripts_dir")" _deps_dir="$_root_dir/deps" -readonly _git_deps=( - "pomerium/enterprise-client|22820c7f3f9e54628cca3b7306b26fc32dc8016d" - 'envoyproxy/protoc-gen-validate|v1.0.2' - 'census-instrumentation/opencensus-proto|v0.4.1' - 'open-telemetry/opentelemetry-proto|v1.0.0' -) - function replace-in-file() { - if [ "$(uname)" = 'Darwin' ]; then - # for MacOS - sed -i '' -E "$1" "$2" - else - # for Linux and Windows - sed -i'' -E "$1" "$2" - fi -} - -function clone() { - local _name="$1" - local _tag="$2" - local _dst="$3" - - echo "cloning $_name:$_tag to $_dst" - if [ ! -d "$_dst" ]; then - mkdir -p "$_dst" - git clone "git@github.com:$_name" "$_dst" - fi - ( - cd "$_dst" - git fetch - git checkout "$_tag" - ) -} - -function clone_all() { - local _name _tag _dst - for _dep in "${_git_deps[@]}"; do - IFS=$'|' read -r _name _tag <<<"$_dep" - _dst="$_deps_dir/github.com/$_name" - clone "$_name" "$_tag" "$_dst" - done + if [ "$(uname)" = 'Darwin' ]; then + # for MacOS + sed -i '' -E "$1" "$2" + else + # for Linux and Windows + sed -i'' -E "$1" "$2" + fi } function download() { - local _url="$1" - local _dst="$2" - - echo "downloading $_url to $_dst" - curl \ - --silent \ - --compressed \ - --fail \ - --location \ - --time-cond "$_dst" \ - --output "$_dst" \ - "$_url" + local _url="$1" + local _dst="$2" + + echo "downloading $_url to $_dst" + curl \ + --silent \ + --compressed \ + --fail \ + --location \ + --time-cond "$_dst" \ + --output "$_dst" \ + "$_url" } function join_by() { - local IFS="$1" - shift - echo "$*" + local IFS="$1" + shift + echo "$*" } -clone_all - _proto_files=( - activity_log.proto - clusters.proto - devices.proto - external_data_sources.proto - key_chain.proto - namespaces.proto - policy.proto - report.proto - route_health_check.proto - route_redirect_action.proto - routes.proto - settings.proto - types.proto - users.proto + activity_log.proto + clusters.proto + devices.proto + external_data_sources.proto + key_chain.proto + namespaces.proto + policy.proto + report.proto + route_health_check.proto + route_redirect_action.proto + routes.proto + settings.proto + types.proto + users.proto ) echo "installing python dependencies" pip install \ - 'wheel==0.45.1' \ - 'protobuf==5.29.4' \ - 'grpcio==1.71.0' \ - 'grpcio-tools==1.71.0' \ - 'mypy-protobuf==3.6.0' + 'wheel==0.45.1' \ + 'protobuf==5.29.4' \ + 'grpcio==1.71.0' \ + 'grpcio-tools==1.71.0' \ + 'mypy-protobuf==3.6.0' ( - cd "$_root_dir" - - echo "generating dependency protobuf code" - python -m grpc_tools.protoc \ - -I "$_deps_dir/github.com/envoyproxy/protoc-gen-validate" \ - -I "$_deps_dir/github.com/census-instrumentation/opencensus-proto/src" \ - -I "$_deps_dir/github.com/open-telemetry/opentelemetry-proto" \ - -I "$_deps_dir/github.com/prometheus/client_model" \ - --python_out="src" \ - $(cd deps/github.com/envoyproxy/protoc-gen-validate && find . -regex '.*\.proto' | sed 's|^./||') - - echo "generating enterprise-client protobuf code" - mkdir -p src/pomerium/pb - python -m grpc_tools.protoc \ - -I "$_deps_dir" \ - -I "$_deps_dir/github.com/envoyproxy/protoc-gen-validate" \ - -I "$_deps_dir/github.com/pomerium/enterprise-client/protos/pomerium-console" \ - --mypy_out="src/pomerium/pb" \ - --mypy_grpc_out="src/pomerium/pb" \ - --python_out="src/pomerium/pb" \ - --grpc_python_out="src/pomerium/pb" \ - "${_proto_files[@]}" - - # fix package names for grpc - for _file in src/pomerium/pb/*.py; do - replace-in-file 's/^import ([a-z_]+)_pb2/import pomerium.pb.\1_pb2/' "$_file" - done - - # add __init__ files - find src -type d -exec touch __init__.py \; - rm __init__.py + cd "$_root_dir" + + echo "generating dependency protobuf code" + python -m grpc_tools.protoc \ + -I "$_deps_dir/github.com/envoyproxy/protoc-gen-validate" \ + -I "$_deps_dir/github.com/census-instrumentation/opencensus-proto/src" \ + -I "$_deps_dir/github.com/open-telemetry/opentelemetry-proto" \ + -I "$_deps_dir/github.com/prometheus/client_model" \ + --python_out="src" \ + $(cd deps/github.com/envoyproxy/protoc-gen-validate && find . -regex '.*\.proto' | sed 's|^./||') + + echo "generating enterprise-client protobuf code" + mkdir -p src/pomerium/pb + python -m grpc_tools.protoc \ + -I "$_deps_dir" \ + -I "$_deps_dir/github.com/envoyproxy/protoc-gen-validate" \ + -I "$_deps_dir/github.com/pomerium/enterprise-client/protos/pomerium-console" \ + --mypy_out="src/pomerium/pb" \ + --mypy_grpc_out="src/pomerium/pb" \ + --python_out="src/pomerium/pb" \ + --grpc_python_out="src/pomerium/pb" \ + "${_proto_files[@]}" + + # fix package names for grpc + for _file in src/pomerium/pb/*.py; do + replace-in-file 's/^import ([a-z_]+)_pb2/import pomerium.pb.\1_pb2/' "$_file" + done + + # add __init__ files + find src -type d -exec touch __init__.py \; + rm __init__.py ) From a831a0a7bc44921e2266f654ca5553d56694cbbb Mon Sep 17 00:00:00 2001 From: calebdoxsey Date: Fri, 10 Oct 2025 20:16:34 +0000 Subject: [PATCH 04/22] ci: update Files changed: M src/pomerium/pb/routes_pb2.py M src/pomerium/pb/routes_pb2.pyi M src/pomerium/pb/settings_pb2.py M src/pomerium/pb/settings_pb2.pyi --- src/pomerium/pb/routes_pb2.py | 106 ++++++++++++++++--------------- src/pomerium/pb/routes_pb2.pyi | 22 ++++++- src/pomerium/pb/settings_pb2.py | 56 ++++++++-------- src/pomerium/pb/settings_pb2.pyi | 31 ++++++--- 4 files changed, 123 insertions(+), 92 deletions(-) diff --git a/src/pomerium/pb/routes_pb2.py b/src/pomerium/pb/routes_pb2.py index 3e8371f..1744a59 100644 --- a/src/pomerium/pb/routes_pb2.py +++ b/src/pomerium/pb/routes_pb2.py @@ -30,7 +30,7 @@ from validate import validate_pb2 as validate_dot_validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0croutes.proto\x12\x12pomerium.dashboard\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0cpolicy.proto\x1a\x18route_health_check.proto\x1a\x1broute_redirect_action.proto\x1a\x17validate/validate.proto\"P\n\x12RouteRewriteHeader\x12\x0e\n\x06header\x18\x01 \x01(\t\x12\x10\n\x06prefix\x18\x03 \x01(\tH\x00\x12\r\n\x05value\x18\x02 \x01(\tB\t\n\x07matcher\"3\n\x13RouteDirectResponse\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\"Q\n\x0fJwtGroupsFilter\x12\x0e\n\x06groups\x18\x01 \x03(\t\x12\x1b\n\x0einfer_from_ppl\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_infer_from_ppl\"\x9a\x02\n\x18\x43ircuitBreakerThresholds\x12\x1c\n\x0fmax_connections\x18\x01 \x01(\rH\x00\x88\x01\x01\x12!\n\x14max_pending_requests\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_requests\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bmax_retries\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14max_connection_pools\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x12\n\x10_max_connectionsB\x17\n\x15_max_pending_requestsB\x0f\n\r_max_requestsB\x0e\n\x0c_max_retriesB\x17\n\x15_max_connection_pools\"o\n\x03MCP\x12/\n\x06server\x18\x01 \x01(\x0b\x32\x1d.pomerium.dashboard.MCPServerH\x00\x12/\n\x06\x63lient\x18\x02 \x01(\x0b\x32\x1d.pomerium.dashboard.MCPClientH\x00\x42\x06\n\x04mode\"\xb3\x01\n\tMCPServer\x12@\n\x0fupstream_oauth2\x18\x01 \x01(\x0b\x32\".pomerium.dashboard.UpstreamOAuth2H\x00\x88\x01\x01\x12\x1e\n\x11max_request_bytes\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04path\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x12\n\x10_upstream_oauth2B\x14\n\x12_max_request_bytesB\x07\n\x05_path\"\x0b\n\tMCPClient\"\x87\x01\n\x0eUpstreamOAuth2\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x15\n\rclient_secret\x18\x02 \x01(\t\x12;\n\x0foauth2_endpoint\x18\x03 \x01(\x0b\x32\".pomerium.dashboard.OAuth2Endpoint\x12\x0e\n\x06scopes\x18\x04 \x03(\t\"\x82\x01\n\x0eOAuth2Endpoint\x12\x10\n\x08\x61uth_url\x18\x01 \x01(\t\x12\x11\n\ttoken_url\x18\x02 \x01(\t\x12<\n\nauth_style\x18\x03 \x01(\x0e\x32#.pomerium.dashboard.OAuth2AuthStyleH\x00\x88\x01\x01\x42\r\n\x0b_auth_style\"\xae\x1c\n\x05Route\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x1d \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bmodified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x41 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08logo_url\x18\x42 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tstat_name\x18/ \x01(\t\x12\x0c\n\x04\x66rom\x18\x06 \x01(\t\x12\n\n\x02to\x18\x07 \x03(\t\x12\x34\n\x08redirect\x18\x43 \x01(\x0b\x32\".pomerium.dashboard.RedirectAction\x12\x39\n\x08response\x18; \x01(\x0b\x32\'.pomerium.dashboard.RouteDirectResponse\x12\x13\n\x06prefix\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04path\x18\t \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05regex\x18\n \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0eprefix_rewrite\x18$ \x01(\tH\x05\x88\x01\x01\x12\"\n\x15regex_rewrite_pattern\x18% \x01(\tH\x06\x88\x01\x01\x12\'\n\x1aregex_rewrite_substitution\x18& \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0chost_rewrite\x18\x1e \x01(\tH\x08\x88\x01\x01\x12 \n\x13host_rewrite_header\x18\x1f \x01(\tH\t\x88\x01\x01\x12,\n\x1fhost_path_regex_rewrite_pattern\x18 \x01(\tH\n\x88\x01\x01\x12\x31\n$host_path_regex_rewrite_substitution\x18! \x01(\tH\x0b\x88\x01\x01\x12!\n\x14regex_priority_order\x18- \x01(\x03H\x0c\x88\x01\x01\x12/\n\x07timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\r\x88\x01\x01\x12\x34\n\x0cidle_timeout\x18\x30 \x01(\x0b\x32\x19.google.protobuf.DurationH\x0e\x88\x01\x01\x12\x1d\n\x10\x61llow_websockets\x18\x0e \x01(\x08H\x0f\x88\x01\x01\x12\x17\n\nallow_spdy\x18\x31 \x01(\x08H\x10\x88\x01\x01\x12\x1c\n\x0ftls_skip_verify\x18\x0f \x01(\x08H\x11\x88\x01\x01\x12%\n\x18tls_upstream_server_name\x18\x33 \x01(\tH\x12\x88\x01\x01\x12\'\n\x1atls_downstream_server_name\x18\x34 \x01(\tH\x13\x88\x01\x01\x12&\n\x19tls_custom_ca_key_pair_id\x18) \x01(\tH\x14\x88\x01\x01\x12#\n\x16tls_client_key_pair_id\x18* \x01(\tH\x15\x88\x01\x01\x12\x31\n$tls_downstream_client_ca_key_pair_id\x18+ \x01(\tH\x16\x88\x01\x01\x12-\n tls_upstream_allow_renegotiation\x18\x37 \x01(\x08H\x17\x88\x01\x01\x12M\n\x13set_request_headers\x18\x17 \x03(\x0b\x32\x30.pomerium.dashboard.Route.SetRequestHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x18 \x03(\t\x12O\n\x14set_response_headers\x18\x38 \x03(\x0b\x32\x31.pomerium.dashboard.Route.SetResponseHeadersEntry\x12H\n\x18rewrite_response_headers\x18, \x03(\x0b\x32&.pomerium.dashboard.RouteRewriteHeader\x12!\n\x14preserve_host_header\x18\x19 \x01(\x08H\x18\x88\x01\x01\x12\"\n\x15pass_identity_headers\x18\x1a \x01(\x08H\x19\x88\x01\x01\x12-\n kubernetes_service_account_token\x18\x1b \x01(\tH\x1a\x88\x01\x01\x12\x32\n%kubernetes_service_account_token_file\x18< \x01(\tH\x1b\x88\x01\x01\x12\x35\n-enable_google_cloud_serverless_authentication\x18. \x01(\x08\x12@\n\x11jwt_issuer_format\x18= \x01(\x0e\x32 .pomerium.dashboard.IssuerFormatH\x1c\x88\x01\x01\x12G\n\x13\x62\x65\x61rer_token_format\x18\x44 \x01(\x0e\x32%.pomerium.dashboard.BearerTokenFormatH\x1d\x88\x01\x01\x12>\n\x11jwt_groups_filter\x18> \x01(\x0b\x32#.pomerium.dashboard.JwtGroupsFilter\x12\x1a\n\ridp_client_id\x18\x39 \x01(\tH\x1e\x88\x01\x01\x12\x1e\n\x11idp_client_secret\x18: \x01(\tH\x1f\x88\x01\x01\x12\x1a\n\x12show_error_details\x18\x35 \x01(\x08\x12\x15\n\roriginator_id\x18\x36 \x01(\t\x12\x12\n\npolicy_ids\x18\x1c \x03(\t\x12\x12\n\ndepends_on\x18H \x03(\t\x12\x14\n\x0cpolicy_names\x18\" \x03(\t\x12\x16\n\x0enamespace_name\x18# \x01(\t\x12\x1b\n\x13\x65nforced_policy_ids\x18? \x03(\t\x12\x1d\n\x15\x65nforced_policy_names\x18@ \x03(\t\x12U\n\"idp_access_token_allowed_audiences\x18\x45 \x01(\x0b\x32$.pomerium.dashboard.Route.StringListH \x88\x01\x01\x12U\n\x15load_balancing_policy\x18\x46 \x01(\x0e\x32\'.pomerium.dashboard.LoadBalancingPolicyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01H!\x88\x01\x01\x12\x36\n\rhealth_checks\x18G \x03(\x0b\x32\x1f.pomerium.dashboard.HealthCheck\x12U\n\x1a\x63ircuit_breaker_thresholds\x18I \x01(\x0b\x32,.pomerium.dashboard.CircuitBreakerThresholdsH\"\x88\x01\x01\x12)\n\x03mcp\x18J \x01(\x0b\x32\x17.pomerium.dashboard.MCPH#\x88\x01\x01\x12$\n\x17healthy_panic_threshold\x18K \x01(\x05H$\x88\x01\x01\x1a\x1c\n\nStringList\x12\x0e\n\x06values\x18\x01 \x03(\t\x1a\x38\n\x16SetRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x39\n\x17SetResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_logo_urlB\t\n\x07_prefixB\x07\n\x05_pathB\x08\n\x06_regexB\x11\n\x0f_prefix_rewriteB\x18\n\x16_regex_rewrite_patternB\x1d\n\x1b_regex_rewrite_substitutionB\x0f\n\r_host_rewriteB\x16\n\x14_host_rewrite_headerB\"\n _host_path_regex_rewrite_patternB\'\n%_host_path_regex_rewrite_substitutionB\x17\n\x15_regex_priority_orderB\n\n\x08_timeoutB\x0f\n\r_idle_timeoutB\x13\n\x11_allow_websocketsB\r\n\x0b_allow_spdyB\x12\n\x10_tls_skip_verifyB\x1b\n\x19_tls_upstream_server_nameB\x1d\n\x1b_tls_downstream_server_nameB\x1c\n\x1a_tls_custom_ca_key_pair_idB\x19\n\x17_tls_client_key_pair_idB\'\n%_tls_downstream_client_ca_key_pair_idB#\n!_tls_upstream_allow_renegotiationB\x17\n\x15_preserve_host_headerB\x18\n\x16_pass_identity_headersB#\n!_kubernetes_service_account_tokenB(\n&_kubernetes_service_account_token_fileB\x14\n\x12_jwt_issuer_formatB\x16\n\x14_bearer_token_formatB\x10\n\x0e_idp_client_idB\x14\n\x12_idp_client_secretB%\n#_idp_access_token_allowed_audiencesB\x18\n\x16_load_balancing_policyB\x1d\n\x1b_circuit_breaker_thresholdsB\x06\n\x04_mcpB\x1a\n\x18_healthy_panic_thresholdJ\x04\x08(\x10)J\x04\x08\x32\x10\x33J\x04\x08\'\x10(\"k\n\x11RouteWithPolicies\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\x12,\n\x08policies\x18\x02 \x03(\x0b\x32\x1a.pomerium.dashboard.Policy\" \n\x12\x44\x65leteRouteRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65leteRouteResponse\"\"\n\x13\x44\x65leteRoutesRequest\x12\x0b\n\x03ids\x18\x01 \x03(\t\"\x16\n\x14\x44\x65leteRoutesResponse\"\x1d\n\x0fGetRouteRequest\x12\n\n\x02id\x18\x01 \x01(\t\"<\n\x10GetRouteResponse\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"\xce\x01\n\x11ListRoutesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x17\n\ncluster_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\x08\n\x06_queryB\t\n\x07_offsetB\x08\n\x06_limitB\x0b\n\t_order_byB\r\n\x0b_cluster_id\"T\n\x12ListRoutesResponse\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\x12\x13\n\x0btotal_count\x18\x02 \x01(\x03\"3\n\x11LoadRoutesRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x63ontents\x18\x02 \x01(\x0c\"K\n\x12LoadRoutesResponse\x12\x35\n\x06routes\x18\x01 \x03(\x0b\x32%.pomerium.dashboard.RouteWithPolicies\";\n\x0fSetRouteRequest\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"<\n\x10SetRouteResponse\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"=\n\x10SetRoutesRequest\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\">\n\x11SetRoutesResponse\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\"@\n\x11MoveRoutesRequest\x12\x11\n\troute_ids\x18\x01 \x03(\t\x12\x18\n\x10new_namespace_id\x18\x02 \x01(\t\"\x14\n\x12MoveRoutesResponse*1\n\x0cIssuerFormat\x12\x12\n\x0eIssuerHostOnly\x10\x00\x12\r\n\tIssuerURI\x10\x01*\xab\x01\n\x11\x42\x65\x61rerTokenFormat\x12\x1f\n\x1b\x42\x45\x41RER_TOKEN_FORMAT_UNKNOWN\x10\x00\x12\x1f\n\x1b\x42\x45\x41RER_TOKEN_FORMAT_DEFAULT\x10\x01\x12(\n$BEARER_TOKEN_FORMAT_IDP_ACCESS_TOKEN\x10\x02\x12*\n&BEARER_TOKEN_FORMAT_IDP_IDENTITY_TOKEN\x10\x03*\xf5\x01\n\x13LoadBalancingPolicy\x12%\n!LOAD_BALANCING_POLICY_UNSPECIFIED\x10\x00\x12%\n!LOAD_BALANCING_POLICY_ROUND_ROBIN\x10\x01\x12 \n\x1cLOAD_BALANCING_POLICY_MAGLEV\x10\x02\x12 \n\x1cLOAD_BALANCING_POLICY_RANDOM\x10\x03\x12#\n\x1fLOAD_BALANCING_POLICY_RING_HASH\x10\x04\x12\'\n#LOAD_BALANCING_POLICY_LEAST_REQUEST\x10\x05*v\n\x0fOAuth2AuthStyle\x12!\n\x1dOAUTH2_AUTH_STYLE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bOAUTH2_AUTH_STYLE_IN_PARAMS\x10\x01\x12\x1f\n\x1bOAUTH2_AUTH_STYLE_IN_HEADER\x10\x02\x32\xf0\x05\n\x0cRouteService\x12^\n\x0b\x44\x65leteRoute\x12&.pomerium.dashboard.DeleteRouteRequest\x1a\'.pomerium.dashboard.DeleteRouteResponse\x12\x61\n\x0c\x44\x65leteRoutes\x12\'.pomerium.dashboard.DeleteRoutesRequest\x1a(.pomerium.dashboard.DeleteRoutesResponse\x12U\n\x08GetRoute\x12#.pomerium.dashboard.GetRouteRequest\x1a$.pomerium.dashboard.GetRouteResponse\x12[\n\nListRoutes\x12%.pomerium.dashboard.ListRoutesRequest\x1a&.pomerium.dashboard.ListRoutesResponse\x12[\n\nLoadRoutes\x12%.pomerium.dashboard.LoadRoutesRequest\x1a&.pomerium.dashboard.LoadRoutesResponse\x12U\n\x08SetRoute\x12#.pomerium.dashboard.SetRouteRequest\x1a$.pomerium.dashboard.SetRouteResponse\x12X\n\tSetRoutes\x12$.pomerium.dashboard.SetRoutesRequest\x1a%.pomerium.dashboard.SetRoutesResponse\x12[\n\nMoveRoutes\x12%.pomerium.dashboard.MoveRoutesRequest\x1a&.pomerium.dashboard.MoveRoutesResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0croutes.proto\x12\x12pomerium.dashboard\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0cpolicy.proto\x1a\x18route_health_check.proto\x1a\x1broute_redirect_action.proto\x1a\x17validate/validate.proto\"P\n\x12RouteRewriteHeader\x12\x0e\n\x06header\x18\x01 \x01(\t\x12\x10\n\x06prefix\x18\x03 \x01(\tH\x00\x12\r\n\x05value\x18\x02 \x01(\tB\t\n\x07matcher\"3\n\x13RouteDirectResponse\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\"Q\n\x0fJwtGroupsFilter\x12\x0e\n\x06groups\x18\x01 \x03(\t\x12\x1b\n\x0einfer_from_ppl\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_infer_from_ppl\"\x9a\x02\n\x18\x43ircuitBreakerThresholds\x12\x1c\n\x0fmax_connections\x18\x01 \x01(\rH\x00\x88\x01\x01\x12!\n\x14max_pending_requests\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_requests\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bmax_retries\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14max_connection_pools\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x12\n\x10_max_connectionsB\x17\n\x15_max_pending_requestsB\x0f\n\r_max_requestsB\x0e\n\x0c_max_retriesB\x17\n\x15_max_connection_pools\"o\n\x03MCP\x12/\n\x06server\x18\x01 \x01(\x0b\x32\x1d.pomerium.dashboard.MCPServerH\x00\x12/\n\x06\x63lient\x18\x02 \x01(\x0b\x32\x1d.pomerium.dashboard.MCPClientH\x00\x42\x06\n\x04mode\"\xb3\x01\n\tMCPServer\x12@\n\x0fupstream_oauth2\x18\x01 \x01(\x0b\x32\".pomerium.dashboard.UpstreamOAuth2H\x00\x88\x01\x01\x12\x1e\n\x11max_request_bytes\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04path\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x12\n\x10_upstream_oauth2B\x14\n\x12_max_request_bytesB\x07\n\x05_path\"\x0b\n\tMCPClient\"\x87\x01\n\x0eUpstreamOAuth2\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x15\n\rclient_secret\x18\x02 \x01(\t\x12;\n\x0foauth2_endpoint\x18\x03 \x01(\x0b\x32\".pomerium.dashboard.OAuth2Endpoint\x12\x0e\n\x06scopes\x18\x04 \x03(\t\"\x82\x01\n\x0eOAuth2Endpoint\x12\x10\n\x08\x61uth_url\x18\x01 \x01(\t\x12\x11\n\ttoken_url\x18\x02 \x01(\t\x12<\n\nauth_style\x18\x03 \x01(\x0e\x32#.pomerium.dashboard.OAuth2AuthStyleH\x00\x88\x01\x01\x42\r\n\x0b_auth_style\"\x84\x1d\n\x05Route\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x1d \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bmodified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x41 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08logo_url\x18\x42 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tstat_name\x18/ \x01(\t\x12\x0c\n\x04\x66rom\x18\x06 \x01(\t\x12\n\n\x02to\x18\x07 \x03(\t\x12\x34\n\x08redirect\x18\x43 \x01(\x0b\x32\".pomerium.dashboard.RedirectAction\x12\x39\n\x08response\x18; \x01(\x0b\x32\'.pomerium.dashboard.RouteDirectResponse\x12\x13\n\x06prefix\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04path\x18\t \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05regex\x18\n \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0eprefix_rewrite\x18$ \x01(\tH\x05\x88\x01\x01\x12\"\n\x15regex_rewrite_pattern\x18% \x01(\tH\x06\x88\x01\x01\x12\'\n\x1aregex_rewrite_substitution\x18& \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0chost_rewrite\x18\x1e \x01(\tH\x08\x88\x01\x01\x12 \n\x13host_rewrite_header\x18\x1f \x01(\tH\t\x88\x01\x01\x12,\n\x1fhost_path_regex_rewrite_pattern\x18 \x01(\tH\n\x88\x01\x01\x12\x31\n$host_path_regex_rewrite_substitution\x18! \x01(\tH\x0b\x88\x01\x01\x12!\n\x14regex_priority_order\x18- \x01(\x03H\x0c\x88\x01\x01\x12/\n\x07timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\r\x88\x01\x01\x12\x34\n\x0cidle_timeout\x18\x30 \x01(\x0b\x32\x19.google.protobuf.DurationH\x0e\x88\x01\x01\x12\x1d\n\x10\x61llow_websockets\x18\x0e \x01(\x08H\x0f\x88\x01\x01\x12\x17\n\nallow_spdy\x18\x31 \x01(\x08H\x10\x88\x01\x01\x12\x1c\n\x0ftls_skip_verify\x18\x0f \x01(\x08H\x11\x88\x01\x01\x12%\n\x18tls_upstream_server_name\x18\x33 \x01(\tH\x12\x88\x01\x01\x12\'\n\x1atls_downstream_server_name\x18\x34 \x01(\tH\x13\x88\x01\x01\x12&\n\x19tls_custom_ca_key_pair_id\x18) \x01(\tH\x14\x88\x01\x01\x12#\n\x16tls_client_key_pair_id\x18* \x01(\tH\x15\x88\x01\x01\x12\x31\n$tls_downstream_client_ca_key_pair_id\x18+ \x01(\tH\x16\x88\x01\x01\x12-\n tls_upstream_allow_renegotiation\x18\x37 \x01(\x08H\x17\x88\x01\x01\x12M\n\x13set_request_headers\x18\x17 \x03(\x0b\x32\x30.pomerium.dashboard.Route.SetRequestHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x18 \x03(\t\x12O\n\x14set_response_headers\x18\x38 \x03(\x0b\x32\x31.pomerium.dashboard.Route.SetResponseHeadersEntry\x12H\n\x18rewrite_response_headers\x18, \x03(\x0b\x32&.pomerium.dashboard.RouteRewriteHeader\x12!\n\x14preserve_host_header\x18\x19 \x01(\x08H\x18\x88\x01\x01\x12\"\n\x15pass_identity_headers\x18\x1a \x01(\x08H\x19\x88\x01\x01\x12-\n kubernetes_service_account_token\x18\x1b \x01(\tH\x1a\x88\x01\x01\x12\x32\n%kubernetes_service_account_token_file\x18< \x01(\tH\x1b\x88\x01\x01\x12\x35\n-enable_google_cloud_serverless_authentication\x18. \x01(\x08\x12@\n\x11jwt_issuer_format\x18= \x01(\x0e\x32 .pomerium.dashboard.IssuerFormatH\x1c\x88\x01\x01\x12G\n\x13\x62\x65\x61rer_token_format\x18\x44 \x01(\x0e\x32%.pomerium.dashboard.BearerTokenFormatH\x1d\x88\x01\x01\x12>\n\x11jwt_groups_filter\x18> \x01(\x0b\x32#.pomerium.dashboard.JwtGroupsFilter\x12\x1a\n\ridp_client_id\x18\x39 \x01(\tH\x1e\x88\x01\x01\x12\x1e\n\x11idp_client_secret\x18: \x01(\tH\x1f\x88\x01\x01\x12\x1a\n\x12show_error_details\x18\x35 \x01(\x08\x12\x15\n\roriginator_id\x18\x36 \x01(\t\x12\x12\n\npolicy_ids\x18\x1c \x03(\t\x12\x12\n\ndepends_on\x18H \x03(\t\x12\x14\n\x0cpolicy_names\x18\" \x03(\t\x12\x16\n\x0enamespace_name\x18# \x01(\t\x12\x1b\n\x13\x65nforced_policy_ids\x18? \x03(\t\x12\x1d\n\x15\x65nforced_policy_names\x18@ \x03(\t\x12U\n\"idp_access_token_allowed_audiences\x18\x45 \x01(\x0b\x32$.pomerium.dashboard.Route.StringListH \x88\x01\x01\x12U\n\x15load_balancing_policy\x18\x46 \x01(\x0e\x32\'.pomerium.dashboard.LoadBalancingPolicyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01H!\x88\x01\x01\x12\x36\n\rhealth_checks\x18G \x03(\x0b\x32\x1f.pomerium.dashboard.HealthCheck\x12U\n\x1a\x63ircuit_breaker_thresholds\x18I \x01(\x0b\x32,.pomerium.dashboard.CircuitBreakerThresholdsH\"\x88\x01\x01\x12)\n\x03mcp\x18J \x01(\x0b\x32\x17.pomerium.dashboard.MCPH#\x88\x01\x01\x12$\n\x17healthy_panic_threshold\x18K \x01(\x05H$\x88\x01\x01\x12@\n\x0fupstream_tunnel\x18L \x01(\x0b\x32\".pomerium.dashboard.UpstreamTunnelH%\x88\x01\x01\x1a\x1c\n\nStringList\x12\x0e\n\x06values\x18\x01 \x03(\t\x1a\x38\n\x16SetRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x39\n\x17SetResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_logo_urlB\t\n\x07_prefixB\x07\n\x05_pathB\x08\n\x06_regexB\x11\n\x0f_prefix_rewriteB\x18\n\x16_regex_rewrite_patternB\x1d\n\x1b_regex_rewrite_substitutionB\x0f\n\r_host_rewriteB\x16\n\x14_host_rewrite_headerB\"\n _host_path_regex_rewrite_patternB\'\n%_host_path_regex_rewrite_substitutionB\x17\n\x15_regex_priority_orderB\n\n\x08_timeoutB\x0f\n\r_idle_timeoutB\x13\n\x11_allow_websocketsB\r\n\x0b_allow_spdyB\x12\n\x10_tls_skip_verifyB\x1b\n\x19_tls_upstream_server_nameB\x1d\n\x1b_tls_downstream_server_nameB\x1c\n\x1a_tls_custom_ca_key_pair_idB\x19\n\x17_tls_client_key_pair_idB\'\n%_tls_downstream_client_ca_key_pair_idB#\n!_tls_upstream_allow_renegotiationB\x17\n\x15_preserve_host_headerB\x18\n\x16_pass_identity_headersB#\n!_kubernetes_service_account_tokenB(\n&_kubernetes_service_account_token_fileB\x14\n\x12_jwt_issuer_formatB\x16\n\x14_bearer_token_formatB\x10\n\x0e_idp_client_idB\x14\n\x12_idp_client_secretB%\n#_idp_access_token_allowed_audiencesB\x18\n\x16_load_balancing_policyB\x1d\n\x1b_circuit_breaker_thresholdsB\x06\n\x04_mcpB\x1a\n\x18_healthy_panic_thresholdB\x12\n\x10_upstream_tunnelJ\x04\x08(\x10)J\x04\x08\x32\x10\x33J\x04\x08\'\x10(\"\x10\n\x0eUpstreamTunnel\"k\n\x11RouteWithPolicies\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\x12,\n\x08policies\x18\x02 \x03(\x0b\x32\x1a.pomerium.dashboard.Policy\" \n\x12\x44\x65leteRouteRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65leteRouteResponse\"\"\n\x13\x44\x65leteRoutesRequest\x12\x0b\n\x03ids\x18\x01 \x03(\t\"\x16\n\x14\x44\x65leteRoutesResponse\"\x1d\n\x0fGetRouteRequest\x12\n\n\x02id\x18\x01 \x01(\t\"<\n\x10GetRouteResponse\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"\xce\x01\n\x11ListRoutesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x17\n\ncluster_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\x08\n\x06_queryB\t\n\x07_offsetB\x08\n\x06_limitB\x0b\n\t_order_byB\r\n\x0b_cluster_id\"T\n\x12ListRoutesResponse\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\x12\x13\n\x0btotal_count\x18\x02 \x01(\x03\"3\n\x11LoadRoutesRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x63ontents\x18\x02 \x01(\x0c\"K\n\x12LoadRoutesResponse\x12\x35\n\x06routes\x18\x01 \x03(\x0b\x32%.pomerium.dashboard.RouteWithPolicies\";\n\x0fSetRouteRequest\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"<\n\x10SetRouteResponse\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"=\n\x10SetRoutesRequest\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\">\n\x11SetRoutesResponse\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\"@\n\x11MoveRoutesRequest\x12\x11\n\troute_ids\x18\x01 \x03(\t\x12\x18\n\x10new_namespace_id\x18\x02 \x01(\t\"\x14\n\x12MoveRoutesResponse*1\n\x0cIssuerFormat\x12\x12\n\x0eIssuerHostOnly\x10\x00\x12\r\n\tIssuerURI\x10\x01*\xab\x01\n\x11\x42\x65\x61rerTokenFormat\x12\x1f\n\x1b\x42\x45\x41RER_TOKEN_FORMAT_UNKNOWN\x10\x00\x12\x1f\n\x1b\x42\x45\x41RER_TOKEN_FORMAT_DEFAULT\x10\x01\x12(\n$BEARER_TOKEN_FORMAT_IDP_ACCESS_TOKEN\x10\x02\x12*\n&BEARER_TOKEN_FORMAT_IDP_IDENTITY_TOKEN\x10\x03*\xf5\x01\n\x13LoadBalancingPolicy\x12%\n!LOAD_BALANCING_POLICY_UNSPECIFIED\x10\x00\x12%\n!LOAD_BALANCING_POLICY_ROUND_ROBIN\x10\x01\x12 \n\x1cLOAD_BALANCING_POLICY_MAGLEV\x10\x02\x12 \n\x1cLOAD_BALANCING_POLICY_RANDOM\x10\x03\x12#\n\x1fLOAD_BALANCING_POLICY_RING_HASH\x10\x04\x12\'\n#LOAD_BALANCING_POLICY_LEAST_REQUEST\x10\x05*v\n\x0fOAuth2AuthStyle\x12!\n\x1dOAUTH2_AUTH_STYLE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bOAUTH2_AUTH_STYLE_IN_PARAMS\x10\x01\x12\x1f\n\x1bOAUTH2_AUTH_STYLE_IN_HEADER\x10\x02\x32\xf0\x05\n\x0cRouteService\x12^\n\x0b\x44\x65leteRoute\x12&.pomerium.dashboard.DeleteRouteRequest\x1a\'.pomerium.dashboard.DeleteRouteResponse\x12\x61\n\x0c\x44\x65leteRoutes\x12\'.pomerium.dashboard.DeleteRoutesRequest\x1a(.pomerium.dashboard.DeleteRoutesResponse\x12U\n\x08GetRoute\x12#.pomerium.dashboard.GetRouteRequest\x1a$.pomerium.dashboard.GetRouteResponse\x12[\n\nListRoutes\x12%.pomerium.dashboard.ListRoutesRequest\x1a&.pomerium.dashboard.ListRoutesResponse\x12[\n\nLoadRoutes\x12%.pomerium.dashboard.LoadRoutesRequest\x1a&.pomerium.dashboard.LoadRoutesResponse\x12U\n\x08SetRoute\x12#.pomerium.dashboard.SetRouteRequest\x1a$.pomerium.dashboard.SetRouteResponse\x12X\n\tSetRoutes\x12$.pomerium.dashboard.SetRoutesRequest\x1a%.pomerium.dashboard.SetRoutesResponse\x12[\n\nMoveRoutes\x12%.pomerium.dashboard.MoveRoutesRequest\x1a&.pomerium.dashboard.MoveRoutesResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -44,14 +44,14 @@ _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_options = b'8\001' _globals['_ROUTE'].fields_by_name['load_balancing_policy']._loaded_options = None _globals['_ROUTE'].fields_by_name['load_balancing_policy']._serialized_options = b'\372B\005\202\001\002\020\001' - _globals['_ISSUERFORMAT']._serialized_start=5992 - _globals['_ISSUERFORMAT']._serialized_end=6041 - _globals['_BEARERTOKENFORMAT']._serialized_start=6044 - _globals['_BEARERTOKENFORMAT']._serialized_end=6215 - _globals['_LOADBALANCINGPOLICY']._serialized_start=6218 - _globals['_LOADBALANCINGPOLICY']._serialized_end=6463 - _globals['_OAUTH2AUTHSTYLE']._serialized_start=6465 - _globals['_OAUTH2AUTHSTYLE']._serialized_end=6583 + _globals['_ISSUERFORMAT']._serialized_start=6096 + _globals['_ISSUERFORMAT']._serialized_end=6145 + _globals['_BEARERTOKENFORMAT']._serialized_start=6148 + _globals['_BEARERTOKENFORMAT']._serialized_end=6319 + _globals['_LOADBALANCINGPOLICY']._serialized_start=6322 + _globals['_LOADBALANCINGPOLICY']._serialized_end=6567 + _globals['_OAUTH2AUTHSTYLE']._serialized_start=6569 + _globals['_OAUTH2AUTHSTYLE']._serialized_end=6687 _globals['_ROUTEREWRITEHEADER']._serialized_start=195 _globals['_ROUTEREWRITEHEADER']._serialized_end=275 _globals['_ROUTEDIRECTRESPONSE']._serialized_start=277 @@ -71,47 +71,49 @@ _globals['_OAUTH2ENDPOINT']._serialized_start=1145 _globals['_OAUTH2ENDPOINT']._serialized_end=1275 _globals['_ROUTE']._serialized_start=1278 - _globals['_ROUTE']._serialized_end=4908 - _globals['_ROUTE_STRINGLIST']._serialized_start=3839 - _globals['_ROUTE_STRINGLIST']._serialized_end=3867 - _globals['_ROUTE_SETREQUESTHEADERSENTRY']._serialized_start=3869 - _globals['_ROUTE_SETREQUESTHEADERSENTRY']._serialized_end=3925 - _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_start=3927 - _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_end=3984 - _globals['_ROUTEWITHPOLICIES']._serialized_start=4910 - _globals['_ROUTEWITHPOLICIES']._serialized_end=5017 - _globals['_DELETEROUTEREQUEST']._serialized_start=5019 - _globals['_DELETEROUTEREQUEST']._serialized_end=5051 - _globals['_DELETEROUTERESPONSE']._serialized_start=5053 - _globals['_DELETEROUTERESPONSE']._serialized_end=5074 - _globals['_DELETEROUTESREQUEST']._serialized_start=5076 - _globals['_DELETEROUTESREQUEST']._serialized_end=5110 - _globals['_DELETEROUTESRESPONSE']._serialized_start=5112 - _globals['_DELETEROUTESRESPONSE']._serialized_end=5134 - _globals['_GETROUTEREQUEST']._serialized_start=5136 - _globals['_GETROUTEREQUEST']._serialized_end=5165 - _globals['_GETROUTERESPONSE']._serialized_start=5167 - _globals['_GETROUTERESPONSE']._serialized_end=5227 - _globals['_LISTROUTESREQUEST']._serialized_start=5230 - _globals['_LISTROUTESREQUEST']._serialized_end=5436 - _globals['_LISTROUTESRESPONSE']._serialized_start=5438 - _globals['_LISTROUTESRESPONSE']._serialized_end=5522 - _globals['_LOADROUTESREQUEST']._serialized_start=5524 - _globals['_LOADROUTESREQUEST']._serialized_end=5575 - _globals['_LOADROUTESRESPONSE']._serialized_start=5577 - _globals['_LOADROUTESRESPONSE']._serialized_end=5652 - _globals['_SETROUTEREQUEST']._serialized_start=5654 - _globals['_SETROUTEREQUEST']._serialized_end=5713 - _globals['_SETROUTERESPONSE']._serialized_start=5715 - _globals['_SETROUTERESPONSE']._serialized_end=5775 - _globals['_SETROUTESREQUEST']._serialized_start=5777 - _globals['_SETROUTESREQUEST']._serialized_end=5838 - _globals['_SETROUTESRESPONSE']._serialized_start=5840 - _globals['_SETROUTESRESPONSE']._serialized_end=5902 - _globals['_MOVEROUTESREQUEST']._serialized_start=5904 - _globals['_MOVEROUTESREQUEST']._serialized_end=5968 - _globals['_MOVEROUTESRESPONSE']._serialized_start=5970 - _globals['_MOVEROUTESRESPONSE']._serialized_end=5990 - _globals['_ROUTESERVICE']._serialized_start=6586 - _globals['_ROUTESERVICE']._serialized_end=7338 + _globals['_ROUTE']._serialized_end=4994 + _globals['_ROUTE_STRINGLIST']._serialized_start=3905 + _globals['_ROUTE_STRINGLIST']._serialized_end=3933 + _globals['_ROUTE_SETREQUESTHEADERSENTRY']._serialized_start=3935 + _globals['_ROUTE_SETREQUESTHEADERSENTRY']._serialized_end=3991 + _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_start=3993 + _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_end=4050 + _globals['_UPSTREAMTUNNEL']._serialized_start=4996 + _globals['_UPSTREAMTUNNEL']._serialized_end=5012 + _globals['_ROUTEWITHPOLICIES']._serialized_start=5014 + _globals['_ROUTEWITHPOLICIES']._serialized_end=5121 + _globals['_DELETEROUTEREQUEST']._serialized_start=5123 + _globals['_DELETEROUTEREQUEST']._serialized_end=5155 + _globals['_DELETEROUTERESPONSE']._serialized_start=5157 + _globals['_DELETEROUTERESPONSE']._serialized_end=5178 + _globals['_DELETEROUTESREQUEST']._serialized_start=5180 + _globals['_DELETEROUTESREQUEST']._serialized_end=5214 + _globals['_DELETEROUTESRESPONSE']._serialized_start=5216 + _globals['_DELETEROUTESRESPONSE']._serialized_end=5238 + _globals['_GETROUTEREQUEST']._serialized_start=5240 + _globals['_GETROUTEREQUEST']._serialized_end=5269 + _globals['_GETROUTERESPONSE']._serialized_start=5271 + _globals['_GETROUTERESPONSE']._serialized_end=5331 + _globals['_LISTROUTESREQUEST']._serialized_start=5334 + _globals['_LISTROUTESREQUEST']._serialized_end=5540 + _globals['_LISTROUTESRESPONSE']._serialized_start=5542 + _globals['_LISTROUTESRESPONSE']._serialized_end=5626 + _globals['_LOADROUTESREQUEST']._serialized_start=5628 + _globals['_LOADROUTESREQUEST']._serialized_end=5679 + _globals['_LOADROUTESRESPONSE']._serialized_start=5681 + _globals['_LOADROUTESRESPONSE']._serialized_end=5756 + _globals['_SETROUTEREQUEST']._serialized_start=5758 + _globals['_SETROUTEREQUEST']._serialized_end=5817 + _globals['_SETROUTERESPONSE']._serialized_start=5819 + _globals['_SETROUTERESPONSE']._serialized_end=5879 + _globals['_SETROUTESREQUEST']._serialized_start=5881 + _globals['_SETROUTESREQUEST']._serialized_end=5942 + _globals['_SETROUTESRESPONSE']._serialized_start=5944 + _globals['_SETROUTESRESPONSE']._serialized_end=6006 + _globals['_MOVEROUTESREQUEST']._serialized_start=6008 + _globals['_MOVEROUTESREQUEST']._serialized_end=6072 + _globals['_MOVEROUTESRESPONSE']._serialized_start=6074 + _globals['_MOVEROUTESRESPONSE']._serialized_end=6094 + _globals['_ROUTESERVICE']._serialized_start=6690 + _globals['_ROUTESERVICE']._serialized_end=7442 # @@protoc_insertion_point(module_scope) diff --git a/src/pomerium/pb/routes_pb2.pyi b/src/pomerium/pb/routes_pb2.pyi index 7bf52b8..5f65a18 100644 --- a/src/pomerium/pb/routes_pb2.pyi +++ b/src/pomerium/pb/routes_pb2.pyi @@ -373,7 +373,7 @@ global___OAuth2Endpoint = OAuth2Endpoint @typing.final class Route(google.protobuf.message.Message): """Route defines a proxy route's settings and policy associations - Next ID: 75 + Next ID: 77 """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -487,6 +487,7 @@ class Route(google.protobuf.message.Message): CIRCUIT_BREAKER_THRESHOLDS_FIELD_NUMBER: builtins.int MCP_FIELD_NUMBER: builtins.int HEALTHY_PANIC_THRESHOLD_FIELD_NUMBER: builtins.int + UPSTREAM_TUNNEL_FIELD_NUMBER: builtins.int id: builtins.str namespace_id: builtins.str name: builtins.str @@ -581,6 +582,8 @@ class Route(google.protobuf.message.Message): def circuit_breaker_thresholds(self) -> global___CircuitBreakerThresholds: ... @property def mcp(self) -> global___MCP: ... + @property + def upstream_tunnel(self) -> global___UpstreamTunnel: ... def __init__( self, *, @@ -646,9 +649,10 @@ class Route(google.protobuf.message.Message): circuit_breaker_thresholds: global___CircuitBreakerThresholds | None = ..., mcp: global___MCP | None = ..., healthy_panic_threshold: builtins.int | None = ..., + upstream_tunnel: global___UpstreamTunnel | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_allow_spdy", b"_allow_spdy", "_allow_websockets", b"_allow_websockets", "_bearer_token_format", b"_bearer_token_format", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_description", b"_description", "_healthy_panic_threshold", b"_healthy_panic_threshold", "_host_path_regex_rewrite_pattern", b"_host_path_regex_rewrite_pattern", "_host_path_regex_rewrite_substitution", b"_host_path_regex_rewrite_substitution", "_host_rewrite", b"_host_rewrite", "_host_rewrite_header", b"_host_rewrite_header", "_idle_timeout", b"_idle_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_jwt_issuer_format", b"_jwt_issuer_format", "_kubernetes_service_account_token", b"_kubernetes_service_account_token", "_kubernetes_service_account_token_file", b"_kubernetes_service_account_token_file", "_load_balancing_policy", b"_load_balancing_policy", "_logo_url", b"_logo_url", "_mcp", b"_mcp", "_pass_identity_headers", b"_pass_identity_headers", "_path", b"_path", "_prefix", b"_prefix", "_prefix_rewrite", b"_prefix_rewrite", "_preserve_host_header", b"_preserve_host_header", "_regex", b"_regex", "_regex_priority_order", b"_regex_priority_order", "_regex_rewrite_pattern", b"_regex_rewrite_pattern", "_regex_rewrite_substitution", b"_regex_rewrite_substitution", "_timeout", b"_timeout", "_tls_client_key_pair_id", b"_tls_client_key_pair_id", "_tls_custom_ca_key_pair_id", b"_tls_custom_ca_key_pair_id", "_tls_downstream_client_ca_key_pair_id", b"_tls_downstream_client_ca_key_pair_id", "_tls_downstream_server_name", b"_tls_downstream_server_name", "_tls_skip_verify", b"_tls_skip_verify", "_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation", "_tls_upstream_server_name", b"_tls_upstream_server_name", "allow_spdy", b"allow_spdy", "allow_websockets", b"allow_websockets", "bearer_token_format", b"bearer_token_format", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "created_at", b"created_at", "deleted_at", b"deleted_at", "description", b"description", "healthy_panic_threshold", b"healthy_panic_threshold", "host_path_regex_rewrite_pattern", b"host_path_regex_rewrite_pattern", "host_path_regex_rewrite_substitution", b"host_path_regex_rewrite_substitution", "host_rewrite", b"host_rewrite", "host_rewrite_header", b"host_rewrite_header", "idle_timeout", b"idle_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "kubernetes_service_account_token", b"kubernetes_service_account_token", "kubernetes_service_account_token_file", b"kubernetes_service_account_token_file", "load_balancing_policy", b"load_balancing_policy", "logo_url", b"logo_url", "mcp", b"mcp", "modified_at", b"modified_at", "pass_identity_headers", b"pass_identity_headers", "path", b"path", "prefix", b"prefix", "prefix_rewrite", b"prefix_rewrite", "preserve_host_header", b"preserve_host_header", "redirect", b"redirect", "regex", b"regex", "regex_priority_order", b"regex_priority_order", "regex_rewrite_pattern", b"regex_rewrite_pattern", "regex_rewrite_substitution", b"regex_rewrite_substitution", "response", b"response", "timeout", b"timeout", "tls_client_key_pair_id", b"tls_client_key_pair_id", "tls_custom_ca_key_pair_id", b"tls_custom_ca_key_pair_id", "tls_downstream_client_ca_key_pair_id", b"tls_downstream_client_ca_key_pair_id", "tls_downstream_server_name", b"tls_downstream_server_name", "tls_skip_verify", b"tls_skip_verify", "tls_upstream_allow_renegotiation", b"tls_upstream_allow_renegotiation", "tls_upstream_server_name", b"tls_upstream_server_name"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_allow_spdy", b"_allow_spdy", "_allow_websockets", b"_allow_websockets", "_bearer_token_format", b"_bearer_token_format", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_description", b"_description", "_healthy_panic_threshold", b"_healthy_panic_threshold", "_host_path_regex_rewrite_pattern", b"_host_path_regex_rewrite_pattern", "_host_path_regex_rewrite_substitution", b"_host_path_regex_rewrite_substitution", "_host_rewrite", b"_host_rewrite", "_host_rewrite_header", b"_host_rewrite_header", "_idle_timeout", b"_idle_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_jwt_issuer_format", b"_jwt_issuer_format", "_kubernetes_service_account_token", b"_kubernetes_service_account_token", "_kubernetes_service_account_token_file", b"_kubernetes_service_account_token_file", "_load_balancing_policy", b"_load_balancing_policy", "_logo_url", b"_logo_url", "_mcp", b"_mcp", "_pass_identity_headers", b"_pass_identity_headers", "_path", b"_path", "_prefix", b"_prefix", "_prefix_rewrite", b"_prefix_rewrite", "_preserve_host_header", b"_preserve_host_header", "_regex", b"_regex", "_regex_priority_order", b"_regex_priority_order", "_regex_rewrite_pattern", b"_regex_rewrite_pattern", "_regex_rewrite_substitution", b"_regex_rewrite_substitution", "_timeout", b"_timeout", "_tls_client_key_pair_id", b"_tls_client_key_pair_id", "_tls_custom_ca_key_pair_id", b"_tls_custom_ca_key_pair_id", "_tls_downstream_client_ca_key_pair_id", b"_tls_downstream_client_ca_key_pair_id", "_tls_downstream_server_name", b"_tls_downstream_server_name", "_tls_skip_verify", b"_tls_skip_verify", "_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation", "_tls_upstream_server_name", b"_tls_upstream_server_name", "allow_spdy", b"allow_spdy", "allow_websockets", b"allow_websockets", "bearer_token_format", b"bearer_token_format", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "created_at", b"created_at", "deleted_at", b"deleted_at", "depends_on", b"depends_on", "description", b"description", "enable_google_cloud_serverless_authentication", b"enable_google_cloud_serverless_authentication", "enforced_policy_ids", b"enforced_policy_ids", "enforced_policy_names", b"enforced_policy_names", "from", b"from", "health_checks", b"health_checks", "healthy_panic_threshold", b"healthy_panic_threshold", "host_path_regex_rewrite_pattern", b"host_path_regex_rewrite_pattern", "host_path_regex_rewrite_substitution", b"host_path_regex_rewrite_substitution", "host_rewrite", b"host_rewrite", "host_rewrite_header", b"host_rewrite_header", "id", b"id", "idle_timeout", b"idle_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "kubernetes_service_account_token", b"kubernetes_service_account_token", "kubernetes_service_account_token_file", b"kubernetes_service_account_token_file", "load_balancing_policy", b"load_balancing_policy", "logo_url", b"logo_url", "mcp", b"mcp", "modified_at", b"modified_at", "name", b"name", "namespace_id", b"namespace_id", "namespace_name", b"namespace_name", "originator_id", b"originator_id", "pass_identity_headers", b"pass_identity_headers", "path", b"path", "policy_ids", b"policy_ids", "policy_names", b"policy_names", "prefix", b"prefix", "prefix_rewrite", b"prefix_rewrite", "preserve_host_header", b"preserve_host_header", "redirect", b"redirect", "regex", b"regex", "regex_priority_order", b"regex_priority_order", "regex_rewrite_pattern", b"regex_rewrite_pattern", "regex_rewrite_substitution", b"regex_rewrite_substitution", "remove_request_headers", b"remove_request_headers", "response", b"response", "rewrite_response_headers", b"rewrite_response_headers", "set_request_headers", b"set_request_headers", "set_response_headers", b"set_response_headers", "show_error_details", b"show_error_details", "stat_name", b"stat_name", "timeout", b"timeout", "tls_client_key_pair_id", b"tls_client_key_pair_id", "tls_custom_ca_key_pair_id", b"tls_custom_ca_key_pair_id", "tls_downstream_client_ca_key_pair_id", b"tls_downstream_client_ca_key_pair_id", "tls_downstream_server_name", b"tls_downstream_server_name", "tls_skip_verify", b"tls_skip_verify", "tls_upstream_allow_renegotiation", b"tls_upstream_allow_renegotiation", "tls_upstream_server_name", b"tls_upstream_server_name", "to", b"to"]) -> None: ... + def HasField(self, field_name: typing.Literal["_allow_spdy", b"_allow_spdy", "_allow_websockets", b"_allow_websockets", "_bearer_token_format", b"_bearer_token_format", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_description", b"_description", "_healthy_panic_threshold", b"_healthy_panic_threshold", "_host_path_regex_rewrite_pattern", b"_host_path_regex_rewrite_pattern", "_host_path_regex_rewrite_substitution", b"_host_path_regex_rewrite_substitution", "_host_rewrite", b"_host_rewrite", "_host_rewrite_header", b"_host_rewrite_header", "_idle_timeout", b"_idle_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_jwt_issuer_format", b"_jwt_issuer_format", "_kubernetes_service_account_token", b"_kubernetes_service_account_token", "_kubernetes_service_account_token_file", b"_kubernetes_service_account_token_file", "_load_balancing_policy", b"_load_balancing_policy", "_logo_url", b"_logo_url", "_mcp", b"_mcp", "_pass_identity_headers", b"_pass_identity_headers", "_path", b"_path", "_prefix", b"_prefix", "_prefix_rewrite", b"_prefix_rewrite", "_preserve_host_header", b"_preserve_host_header", "_regex", b"_regex", "_regex_priority_order", b"_regex_priority_order", "_regex_rewrite_pattern", b"_regex_rewrite_pattern", "_regex_rewrite_substitution", b"_regex_rewrite_substitution", "_timeout", b"_timeout", "_tls_client_key_pair_id", b"_tls_client_key_pair_id", "_tls_custom_ca_key_pair_id", b"_tls_custom_ca_key_pair_id", "_tls_downstream_client_ca_key_pair_id", b"_tls_downstream_client_ca_key_pair_id", "_tls_downstream_server_name", b"_tls_downstream_server_name", "_tls_skip_verify", b"_tls_skip_verify", "_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation", "_tls_upstream_server_name", b"_tls_upstream_server_name", "_upstream_tunnel", b"_upstream_tunnel", "allow_spdy", b"allow_spdy", "allow_websockets", b"allow_websockets", "bearer_token_format", b"bearer_token_format", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "created_at", b"created_at", "deleted_at", b"deleted_at", "description", b"description", "healthy_panic_threshold", b"healthy_panic_threshold", "host_path_regex_rewrite_pattern", b"host_path_regex_rewrite_pattern", "host_path_regex_rewrite_substitution", b"host_path_regex_rewrite_substitution", "host_rewrite", b"host_rewrite", "host_rewrite_header", b"host_rewrite_header", "idle_timeout", b"idle_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "kubernetes_service_account_token", b"kubernetes_service_account_token", "kubernetes_service_account_token_file", b"kubernetes_service_account_token_file", "load_balancing_policy", b"load_balancing_policy", "logo_url", b"logo_url", "mcp", b"mcp", "modified_at", b"modified_at", "pass_identity_headers", b"pass_identity_headers", "path", b"path", "prefix", b"prefix", "prefix_rewrite", b"prefix_rewrite", "preserve_host_header", b"preserve_host_header", "redirect", b"redirect", "regex", b"regex", "regex_priority_order", b"regex_priority_order", "regex_rewrite_pattern", b"regex_rewrite_pattern", "regex_rewrite_substitution", b"regex_rewrite_substitution", "response", b"response", "timeout", b"timeout", "tls_client_key_pair_id", b"tls_client_key_pair_id", "tls_custom_ca_key_pair_id", b"tls_custom_ca_key_pair_id", "tls_downstream_client_ca_key_pair_id", b"tls_downstream_client_ca_key_pair_id", "tls_downstream_server_name", b"tls_downstream_server_name", "tls_skip_verify", b"tls_skip_verify", "tls_upstream_allow_renegotiation", b"tls_upstream_allow_renegotiation", "tls_upstream_server_name", b"tls_upstream_server_name", "upstream_tunnel", b"upstream_tunnel"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_allow_spdy", b"_allow_spdy", "_allow_websockets", b"_allow_websockets", "_bearer_token_format", b"_bearer_token_format", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_description", b"_description", "_healthy_panic_threshold", b"_healthy_panic_threshold", "_host_path_regex_rewrite_pattern", b"_host_path_regex_rewrite_pattern", "_host_path_regex_rewrite_substitution", b"_host_path_regex_rewrite_substitution", "_host_rewrite", b"_host_rewrite", "_host_rewrite_header", b"_host_rewrite_header", "_idle_timeout", b"_idle_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_jwt_issuer_format", b"_jwt_issuer_format", "_kubernetes_service_account_token", b"_kubernetes_service_account_token", "_kubernetes_service_account_token_file", b"_kubernetes_service_account_token_file", "_load_balancing_policy", b"_load_balancing_policy", "_logo_url", b"_logo_url", "_mcp", b"_mcp", "_pass_identity_headers", b"_pass_identity_headers", "_path", b"_path", "_prefix", b"_prefix", "_prefix_rewrite", b"_prefix_rewrite", "_preserve_host_header", b"_preserve_host_header", "_regex", b"_regex", "_regex_priority_order", b"_regex_priority_order", "_regex_rewrite_pattern", b"_regex_rewrite_pattern", "_regex_rewrite_substitution", b"_regex_rewrite_substitution", "_timeout", b"_timeout", "_tls_client_key_pair_id", b"_tls_client_key_pair_id", "_tls_custom_ca_key_pair_id", b"_tls_custom_ca_key_pair_id", "_tls_downstream_client_ca_key_pair_id", b"_tls_downstream_client_ca_key_pair_id", "_tls_downstream_server_name", b"_tls_downstream_server_name", "_tls_skip_verify", b"_tls_skip_verify", "_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation", "_tls_upstream_server_name", b"_tls_upstream_server_name", "_upstream_tunnel", b"_upstream_tunnel", "allow_spdy", b"allow_spdy", "allow_websockets", b"allow_websockets", "bearer_token_format", b"bearer_token_format", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "created_at", b"created_at", "deleted_at", b"deleted_at", "depends_on", b"depends_on", "description", b"description", "enable_google_cloud_serverless_authentication", b"enable_google_cloud_serverless_authentication", "enforced_policy_ids", b"enforced_policy_ids", "enforced_policy_names", b"enforced_policy_names", "from", b"from", "health_checks", b"health_checks", "healthy_panic_threshold", b"healthy_panic_threshold", "host_path_regex_rewrite_pattern", b"host_path_regex_rewrite_pattern", "host_path_regex_rewrite_substitution", b"host_path_regex_rewrite_substitution", "host_rewrite", b"host_rewrite", "host_rewrite_header", b"host_rewrite_header", "id", b"id", "idle_timeout", b"idle_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "kubernetes_service_account_token", b"kubernetes_service_account_token", "kubernetes_service_account_token_file", b"kubernetes_service_account_token_file", "load_balancing_policy", b"load_balancing_policy", "logo_url", b"logo_url", "mcp", b"mcp", "modified_at", b"modified_at", "name", b"name", "namespace_id", b"namespace_id", "namespace_name", b"namespace_name", "originator_id", b"originator_id", "pass_identity_headers", b"pass_identity_headers", "path", b"path", "policy_ids", b"policy_ids", "policy_names", b"policy_names", "prefix", b"prefix", "prefix_rewrite", b"prefix_rewrite", "preserve_host_header", b"preserve_host_header", "redirect", b"redirect", "regex", b"regex", "regex_priority_order", b"regex_priority_order", "regex_rewrite_pattern", b"regex_rewrite_pattern", "regex_rewrite_substitution", b"regex_rewrite_substitution", "remove_request_headers", b"remove_request_headers", "response", b"response", "rewrite_response_headers", b"rewrite_response_headers", "set_request_headers", b"set_request_headers", "set_response_headers", b"set_response_headers", "show_error_details", b"show_error_details", "stat_name", b"stat_name", "timeout", b"timeout", "tls_client_key_pair_id", b"tls_client_key_pair_id", "tls_custom_ca_key_pair_id", b"tls_custom_ca_key_pair_id", "tls_downstream_client_ca_key_pair_id", b"tls_downstream_client_ca_key_pair_id", "tls_downstream_server_name", b"tls_downstream_server_name", "tls_skip_verify", b"tls_skip_verify", "tls_upstream_allow_renegotiation", b"tls_upstream_allow_renegotiation", "tls_upstream_server_name", b"tls_upstream_server_name", "to", b"to", "upstream_tunnel", b"upstream_tunnel"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_allow_spdy", b"_allow_spdy"]) -> typing.Literal["allow_spdy"] | None: ... @typing.overload @@ -723,9 +727,21 @@ class Route(google.protobuf.message.Message): def WhichOneof(self, oneof_group: typing.Literal["_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation"]) -> typing.Literal["tls_upstream_allow_renegotiation"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_tls_upstream_server_name", b"_tls_upstream_server_name"]) -> typing.Literal["tls_upstream_server_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_upstream_tunnel", b"_upstream_tunnel"]) -> typing.Literal["upstream_tunnel"] | None: ... global___Route = Route +@typing.final +class UpstreamTunnel(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___UpstreamTunnel = UpstreamTunnel + @typing.final class RouteWithPolicies(google.protobuf.message.Message): """RouteWithPolicies contains automatically created routes and policies from a diff --git a/src/pomerium/pb/settings_pb2.py b/src/pomerium/pb/settings_pb2.py index f8f46c4..435b756 100644 --- a/src/pomerium/pb/settings_pb2.py +++ b/src/pomerium/pb/settings_pb2.py @@ -28,7 +28,7 @@ import pomerium.pb.routes_pb2 as routes__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0esettings.proto\x12\x12pomerium.dashboard\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0croutes.proto\"I\n\x0f\x43onsoleSettings\x12\x1e\n\x16\x65nable_feedback_widget\x18\x01 \x01(\x08\x12\x16\n\x0euse_changesets\x18\x02 \x01(\x08\"\xd2\x34\n\x08Settings\x12\n\n\x02id\x18k \x01(\t\x12\x17\n\ncluster_id\x18l \x01(\tH\x00\x88\x01\x01\x12/\n\x0bmodified_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x0finstallation_id\x18\x44 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tlog_level\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0fproxy_log_level\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rshared_secret\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08services\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0finsecure_server\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1e\n\x11\x64ns_lookup_family\x18< \x01(\tH\x08\x88\x01\x01\x12 \n\x13\x64ns_udp_max_queries\x18t \x01(\rH\t\x88\x01\x01\x12\x18\n\x0b\x64ns_use_tcp\x18u \x01(\x08H\n\x88\x01\x01\x12\x1c\n\x0f\x64ns_query_tries\x18v \x01(\rH\x0b\x88\x01\x01\x12\x39\n\x11\x64ns_query_timeout\x18w \x01(\x0b\x32\x19.google.protobuf.DurationH\x0c\x88\x01\x01\x12>\n\x0c\x63\x65rtificates\x18\t \x03(\x0b\x32(.pomerium.dashboard.Settings.Certificate\x12\x1f\n\x12http_redirect_addr\x18\n \x01(\tH\r\x88\x01\x01\x12\x34\n\x0ctimeout_read\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationH\x0e\x88\x01\x01\x12\x35\n\rtimeout_write\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x0f\x88\x01\x01\x12\x34\n\x0ctimeout_idle\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\x10\x88\x01\x01\x12%\n\x18\x61uthenticate_service_url\x18\x0e \x01(\tH\x11\x88\x01\x01\x12\'\n\x1a\x61uthenticate_callback_path\x18\x0f \x01(\tH\x12\x88\x01\x01\x12\x18\n\x0b\x63ookie_name\x18\x10 \x01(\tH\x13\x88\x01\x01\x12\x1a\n\rcookie_secret\x18\x11 \x01(\tH\x14\x88\x01\x01\x12\x1a\n\rcookie_domain\x18\x12 \x01(\tH\x15\x88\x01\x01\x12\x1a\n\rcookie_secure\x18\x13 \x01(\x08H\x16\x88\x01\x01\x12\x1d\n\x10\x63ookie_http_only\x18\x14 \x01(\x08H\x17\x88\x01\x01\x12\x1d\n\x10\x63ookie_same_site\x18P \x01(\tH\x18\x88\x01\x01\x12\x35\n\rcookie_expire\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationH\x19\x88\x01\x01\x12\x1a\n\ridp_client_id\x18\x16 \x01(\tH\x1a\x88\x01\x01\x12\x1e\n\x11idp_client_secret\x18\x17 \x01(\tH\x1b\x88\x01\x01\x12\x19\n\x0cidp_provider\x18\x18 \x01(\tH\x1c\x88\x01\x01\x12\x1d\n\x10idp_provider_url\x18\x19 \x01(\tH\x1d\x88\x01\x01\x12\x0e\n\x06scopes\x18\x1a \x03(\t\x12 \n\x13idp_service_account\x18\x1b \x01(\tH\x1e\x88\x01\x01\x12\x45\n\x1didp_refresh_directory_timeout\x18\x1c \x01(\x0b\x32\x19.google.protobuf.DurationH\x1f\x88\x01\x01\x12\x46\n\x1eidp_refresh_directory_interval\x18\x1d \x01(\x0b\x32\x19.google.protobuf.DurationH \x88\x01\x01\x12G\n\x0erequest_params\x18\x1e \x03(\x0b\x32/.pomerium.dashboard.Settings.RequestParamsEntry\x12\"\n\x15\x61uthorize_service_url\x18 \x01(\tH!\x88\x01\x01\x12\"\n\x15\x63\x65rtificate_authority\x18\" \x01(\tH\"\x88\x01\x01\x12\'\n\x1a\x63\x65rtificate_authority_file\x18# \x01(\tH#\x88\x01\x01\x12.\n!certificate_authority_key_pair_id\x18@ \x01(\tH$\x88\x01\x01\x12R\n\x14set_response_headers\x18\x43 \x03(\x0b\x32\x34.pomerium.dashboard.Settings.SetResponseHeadersEntry\x12N\n\x12jwt_claims_headers\x18\x42 \x03(\x0b\x32\x32.pomerium.dashboard.Settings.JwtClaimsHeadersEntry\x12>\n\x11jwt_groups_filter\x18W \x01(\x0b\x32#.pomerium.dashboard.JwtGroupsFilter\x12@\n\x11jwt_issuer_format\x18j \x01(\x0e\x32 .pomerium.dashboard.IssuerFormatH%\x88\x01\x01\x12@\n\x18\x64\x65\x66\x61ult_upstream_timeout\x18\' \x01(\x0b\x32\x19.google.protobuf.DurationH&\x88\x01\x01\x12\x1c\n\x0fmetrics_address\x18( \x01(\tH\'\x88\x01\x01\x12!\n\x14otel_traces_exporter\x18X \x01(\tH(\x88\x01\x01\x12$\n\x17otel_traces_sampler_arg\x18Y \x01(\x01H)\x88\x01\x01\x12 \n\x18otel_resource_attributes\x18Z \x03(\t\x12\x1b\n\x0eotel_log_level\x18[ \x01(\tH*\x88\x01\x01\x12.\n!otel_attribute_value_length_limit\x18\\ \x01(\x05H+\x88\x01\x01\x12(\n\x1botel_exporter_otlp_endpoint\x18] \x01(\tH,\x88\x01\x01\x12/\n\"otel_exporter_otlp_traces_endpoint\x18^ \x01(\tH-\x88\x01\x01\x12(\n\x1botel_exporter_otlp_protocol\x18_ \x01(\tH.\x88\x01\x01\x12/\n\"otel_exporter_otlp_traces_protocol\x18` \x01(\tH/\x88\x01\x01\x12\"\n\x1aotel_exporter_otlp_headers\x18\x61 \x03(\t\x12)\n!otel_exporter_otlp_traces_headers\x18\x62 \x03(\t\x12\x42\n\x1aotel_exporter_otlp_timeout\x18\x63 \x01(\x0b\x32\x19.google.protobuf.DurationH0\x88\x01\x01\x12I\n!otel_exporter_otlp_traces_timeout\x18\x64 \x01(\x0b\x32\x19.google.protobuf.DurationH1\x88\x01\x01\x12?\n\x17otel_bsp_schedule_delay\x18\x65 \x01(\x0b\x32\x19.google.protobuf.DurationH2\x88\x01\x01\x12+\n\x1eotel_bsp_max_export_batch_size\x18\x66 \x01(\x05H3\x88\x01\x01\x12\x19\n\x0cgrpc_address\x18. \x01(\tH4\x88\x01\x01\x12\x1a\n\rgrpc_insecure\x18/ \x01(\x08H5\x88\x01\x01\x12\x1e\n\x11\x63\x61\x63he_service_url\x18\x33 \x01(\tH6\x88\x01\x01\x12#\n\x16\x64\x61tabroker_service_url\x18\x34 \x01(\tH7\x88\x01\x01\x12\x16\n\tclient_ca\x18\x35 \x01(\tH8\x88\x01\x01\x12\x1b\n\x0e\x63lient_ca_file\x18\x36 \x01(\tH9\x88\x01\x01\x12\"\n\x15\x63lient_ca_key_pair_id\x18\x41 \x01(\tH:\x88\x01\x01\x12\x43\n6google_cloud_serverless_authentication_service_account\x18\x37 \x01(\tH;\x88\x01\x01\x12\x15\n\x08\x61utocert\x18\x38 \x01(\x08H<\x88\x01\x01\x12!\n\x14\x61utocert_use_staging\x18\x39 \x01(\x08H=\x88\x01\x01\x12!\n\x14\x61utocert_must_staple\x18: \x01(\x08H>\x88\x01\x01\x12\x19\n\x0c\x61utocert_dir\x18; \x01(\tH?\x88\x01\x01\x12\x1c\n\x0fskip_xff_append\x18? \x01(\x08H@\x88\x01\x01\x12\x1a\n\rprimary_color\x18\x45 \x01(\tHA\x88\x01\x01\x12\x1c\n\x0fsecondary_color\x18\x46 \x01(\tHB\x88\x01\x01\x12#\n\x16\x64\x61rkmode_primary_color\x18G \x01(\tHC\x88\x01\x01\x12%\n\x18\x64\x61rkmode_secondary_color\x18H \x01(\tHD\x88\x01\x01\x12\x15\n\x08logo_url\x18I \x01(\tHE\x88\x01\x01\x12\x18\n\x0b\x66\x61vicon_url\x18J \x01(\tHF\x88\x01\x01\x12*\n\x1d\x65rror_message_first_paragraph\x18K \x01(\tHG\x88\x01\x01\x12\x1e\n\x11identity_provider\x18L \x01(\tHH\x88\x01\x01\x12?\n\x19identity_provider_options\x18M \x01(\x0b\x32\x17.google.protobuf.StructHI\x88\x01\x01\x12J\n\"identity_provider_refresh_interval\x18N \x01(\x0b\x32\x19.google.protobuf.DurationHJ\x88\x01\x01\x12I\n!identity_provider_refresh_timeout\x18O \x01(\x0b\x32\x19.google.protobuf.DurationHK\x88\x01\x01\x12G\n\x11\x61\x63\x63\x65ss_log_fields\x18R \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHL\x88\x01\x01\x12J\n\x14\x61uthorize_log_fields\x18S \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHM\x88\x01\x01\x12\"\n\x15pass_identity_headers\x18T \x01(\x08HN\x88\x01\x01\x12\x15\n\roriginator_id\x18g \x01(\t\x12G\n\x13\x62\x65\x61rer_token_format\x18h \x01(\x0e\x32%.pomerium.dashboard.BearerTokenFormatHO\x88\x01\x01\x12X\n\"idp_access_token_allowed_audiences\x18i \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHP\x88\x01\x01\x12\x36\n\ncodec_type\x18m \x01(\x0e\x32\x1d.pomerium.dashboard.CodecTypeHQ\x88\x01\x01\x12U\n\x1a\x63ircuit_breaker_thresholds\x18n \x01(\x0b\x32,.pomerium.dashboard.CircuitBreakerThresholdsHR\x88\x01\x01\x12\x18\n\x0bssh_address\x18o \x01(\tHS\x88\x01\x01\x12H\n\x12ssh_host_key_files\x18p \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHT\x88\x01\x01\x12\x43\n\rssh_host_keys\x18q \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHU\x88\x01\x01\x12!\n\x14ssh_user_ca_key_file\x18r \x01(\tHV\x88\x01\x01\x12\x1c\n\x0fssh_user_ca_key\x18s \x01(\tHW\x88\x01\x01\x1aI\n\x0b\x43\x65rtificate\x12\x12\n\ncert_bytes\x18\x03 \x01(\x0c\x12\x11\n\tkey_bytes\x18\x04 \x01(\x0c\x12\x13\n\x0bkey_pair_id\x18\x05 \x01(\t\x1a\x1c\n\nStringList\x12\x0e\n\x06values\x18\x01 \x03(\t\x1a\x34\n\x12RequestParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x39\n\x17SetResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x37\n\x15JwtClaimsHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_cluster_idB\x12\n\x10_installation_idB\x0c\n\n_log_levelB\x12\n\x10_proxy_log_levelB\x10\n\x0e_shared_secretB\x0b\n\t_servicesB\n\n\x08_addressB\x12\n\x10_insecure_serverB\x14\n\x12_dns_lookup_familyB\x16\n\x14_dns_udp_max_queriesB\x0e\n\x0c_dns_use_tcpB\x12\n\x10_dns_query_triesB\x14\n\x12_dns_query_timeoutB\x15\n\x13_http_redirect_addrB\x0f\n\r_timeout_readB\x10\n\x0e_timeout_writeB\x0f\n\r_timeout_idleB\x1b\n\x19_authenticate_service_urlB\x1d\n\x1b_authenticate_callback_pathB\x0e\n\x0c_cookie_nameB\x10\n\x0e_cookie_secretB\x10\n\x0e_cookie_domainB\x10\n\x0e_cookie_secureB\x13\n\x11_cookie_http_onlyB\x13\n\x11_cookie_same_siteB\x10\n\x0e_cookie_expireB\x10\n\x0e_idp_client_idB\x14\n\x12_idp_client_secretB\x0f\n\r_idp_providerB\x13\n\x11_idp_provider_urlB\x16\n\x14_idp_service_accountB \n\x1e_idp_refresh_directory_timeoutB!\n\x1f_idp_refresh_directory_intervalB\x18\n\x16_authorize_service_urlB\x18\n\x16_certificate_authorityB\x1d\n\x1b_certificate_authority_fileB$\n\"_certificate_authority_key_pair_idB\x14\n\x12_jwt_issuer_formatB\x1b\n\x19_default_upstream_timeoutB\x12\n\x10_metrics_addressB\x17\n\x15_otel_traces_exporterB\x1a\n\x18_otel_traces_sampler_argB\x11\n\x0f_otel_log_levelB$\n\"_otel_attribute_value_length_limitB\x1e\n\x1c_otel_exporter_otlp_endpointB%\n#_otel_exporter_otlp_traces_endpointB\x1e\n\x1c_otel_exporter_otlp_protocolB%\n#_otel_exporter_otlp_traces_protocolB\x1d\n\x1b_otel_exporter_otlp_timeoutB$\n\"_otel_exporter_otlp_traces_timeoutB\x1a\n\x18_otel_bsp_schedule_delayB!\n\x1f_otel_bsp_max_export_batch_sizeB\x0f\n\r_grpc_addressB\x10\n\x0e_grpc_insecureB\x14\n\x12_cache_service_urlB\x19\n\x17_databroker_service_urlB\x0c\n\n_client_caB\x11\n\x0f_client_ca_fileB\x18\n\x16_client_ca_key_pair_idB9\n7_google_cloud_serverless_authentication_service_accountB\x0b\n\t_autocertB\x17\n\x15_autocert_use_stagingB\x17\n\x15_autocert_must_stapleB\x0f\n\r_autocert_dirB\x12\n\x10_skip_xff_appendB\x10\n\x0e_primary_colorB\x12\n\x10_secondary_colorB\x19\n\x17_darkmode_primary_colorB\x1b\n\x19_darkmode_secondary_colorB\x0b\n\t_logo_urlB\x0e\n\x0c_favicon_urlB \n\x1e_error_message_first_paragraphB\x14\n\x12_identity_providerB\x1c\n\x1a_identity_provider_optionsB%\n#_identity_provider_refresh_intervalB$\n\"_identity_provider_refresh_timeoutB\x14\n\x12_access_log_fieldsB\x17\n\x15_authorize_log_fieldsB\x18\n\x16_pass_identity_headersB\x16\n\x14_bearer_token_formatB%\n#_idp_access_token_allowed_audiencesB\r\n\x0b_codec_typeB\x1d\n\x1b_circuit_breaker_thresholdsB\x0e\n\x0c_ssh_addressB\x15\n\x13_ssh_host_key_filesB\x10\n\x0e_ssh_host_keysB\x17\n\x15_ssh_user_ca_key_fileB\x12\n\x10_ssh_user_ca_keyJ\x04\x08)\x10*J\x04\x08*\x10+J\x04\x08U\x10VJ\x04\x08V\x10W\"\x1b\n\x19GetConsoleSettingsRequest\"[\n\x1aGetConsoleSettingsResponse\x12=\n\x10\x63onsole_settings\x18\x01 \x01(\x0b\x32#.pomerium.dashboard.ConsoleSettings\"<\n\x12GetSettingsRequest\x12\x17\n\ncluster_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_cluster_id\"E\n\x13GetSettingsResponse\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings\"D\n\x12SetSettingsRequest\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings\"E\n\x13SetSettingsResponse\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings*z\n\tCodecType\x12\x16\n\x12\x43ODEC_TYPE_UNKNOWN\x10\x00\x12\x13\n\x0f\x43ODEC_TYPE_AUTO\x10\x01\x12\x14\n\x10\x43ODEC_TYPE_HTTP1\x10\x02\x12\x14\n\x10\x43ODEC_TYPE_HTTP2\x10\x03\x12\x14\n\x10\x43ODEC_TYPE_HTTP3\x10\x04\x32\xae\x03\n\x0fSettingsService\x12^\n\x0bGetSettings\x12&.pomerium.dashboard.GetSettingsRequest\x1a\'.pomerium.dashboard.GetSettingsResponse\x12^\n\x0bSetSettings\x12&.pomerium.dashboard.SetSettingsRequest\x1a\'.pomerium.dashboard.SetSettingsResponse\x12\x66\n\x13GetBrandingSettings\x12&.pomerium.dashboard.GetSettingsRequest\x1a\'.pomerium.dashboard.GetSettingsResponse\x12s\n\x12GetConsoleSettings\x12-.pomerium.dashboard.GetConsoleSettingsRequest\x1a..pomerium.dashboard.GetConsoleSettingsResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0esettings.proto\x12\x12pomerium.dashboard\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0croutes.proto\"I\n\x0f\x43onsoleSettings\x12\x1e\n\x16\x65nable_feedback_widget\x18\x01 \x01(\x08\x12\x16\n\x0euse_changesets\x18\x02 \x01(\x08\"\x80\x36\n\x08Settings\x12\n\n\x02id\x18k \x01(\t\x12\x17\n\ncluster_id\x18l \x01(\tH\x00\x88\x01\x01\x12/\n\x0bmodified_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x0finstallation_id\x18\x44 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tlog_level\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0fproxy_log_level\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rshared_secret\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08services\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0finsecure_server\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12@\n\x18\x64ns_failure_refresh_rate\x18x \x01(\x0b\x32\x19.google.protobuf.DurationH\x08\x88\x01\x01\x12\x1e\n\x11\x64ns_lookup_family\x18< \x01(\tH\t\x88\x01\x01\x12\x39\n\x11\x64ns_query_timeout\x18w \x01(\x0b\x32\x19.google.protobuf.DurationH\n\x88\x01\x01\x12\x1c\n\x0f\x64ns_query_tries\x18v \x01(\rH\x0b\x88\x01\x01\x12\x38\n\x10\x64ns_refresh_rate\x18y \x01(\x0b\x32\x19.google.protobuf.DurationH\x0c\x88\x01\x01\x12 \n\x13\x64ns_udp_max_queries\x18t \x01(\rH\r\x88\x01\x01\x12\x18\n\x0b\x64ns_use_tcp\x18u \x01(\x08H\x0e\x88\x01\x01\x12>\n\x0c\x63\x65rtificates\x18\t \x03(\x0b\x32(.pomerium.dashboard.Settings.Certificate\x12\x1f\n\x12http_redirect_addr\x18\n \x01(\tH\x0f\x88\x01\x01\x12\x34\n\x0ctimeout_read\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationH\x10\x88\x01\x01\x12\x35\n\rtimeout_write\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x11\x88\x01\x01\x12\x34\n\x0ctimeout_idle\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\x12\x88\x01\x01\x12%\n\x18\x61uthenticate_service_url\x18\x0e \x01(\tH\x13\x88\x01\x01\x12\'\n\x1a\x61uthenticate_callback_path\x18\x0f \x01(\tH\x14\x88\x01\x01\x12\x18\n\x0b\x63ookie_name\x18\x10 \x01(\tH\x15\x88\x01\x01\x12\x1a\n\rcookie_secret\x18\x11 \x01(\tH\x16\x88\x01\x01\x12\x1a\n\rcookie_domain\x18\x12 \x01(\tH\x17\x88\x01\x01\x12\x1a\n\rcookie_secure\x18\x13 \x01(\x08H\x18\x88\x01\x01\x12\x1d\n\x10\x63ookie_http_only\x18\x14 \x01(\x08H\x19\x88\x01\x01\x12\x1d\n\x10\x63ookie_same_site\x18P \x01(\tH\x1a\x88\x01\x01\x12\x35\n\rcookie_expire\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationH\x1b\x88\x01\x01\x12\x1a\n\ridp_client_id\x18\x16 \x01(\tH\x1c\x88\x01\x01\x12\x1e\n\x11idp_client_secret\x18\x17 \x01(\tH\x1d\x88\x01\x01\x12\x19\n\x0cidp_provider\x18\x18 \x01(\tH\x1e\x88\x01\x01\x12\x1d\n\x10idp_provider_url\x18\x19 \x01(\tH\x1f\x88\x01\x01\x12\x0e\n\x06scopes\x18\x1a \x03(\t\x12 \n\x13idp_service_account\x18\x1b \x01(\tH \x88\x01\x01\x12\x45\n\x1didp_refresh_directory_timeout\x18\x1c \x01(\x0b\x32\x19.google.protobuf.DurationH!\x88\x01\x01\x12\x46\n\x1eidp_refresh_directory_interval\x18\x1d \x01(\x0b\x32\x19.google.protobuf.DurationH\"\x88\x01\x01\x12G\n\x0erequest_params\x18\x1e \x03(\x0b\x32/.pomerium.dashboard.Settings.RequestParamsEntry\x12\"\n\x15\x61uthorize_service_url\x18 \x01(\tH#\x88\x01\x01\x12\"\n\x15\x63\x65rtificate_authority\x18\" \x01(\tH$\x88\x01\x01\x12\'\n\x1a\x63\x65rtificate_authority_file\x18# \x01(\tH%\x88\x01\x01\x12.\n!certificate_authority_key_pair_id\x18@ \x01(\tH&\x88\x01\x01\x12R\n\x14set_response_headers\x18\x43 \x03(\x0b\x32\x34.pomerium.dashboard.Settings.SetResponseHeadersEntry\x12N\n\x12jwt_claims_headers\x18\x42 \x03(\x0b\x32\x32.pomerium.dashboard.Settings.JwtClaimsHeadersEntry\x12>\n\x11jwt_groups_filter\x18W \x01(\x0b\x32#.pomerium.dashboard.JwtGroupsFilter\x12@\n\x11jwt_issuer_format\x18j \x01(\x0e\x32 .pomerium.dashboard.IssuerFormatH\'\x88\x01\x01\x12@\n\x18\x64\x65\x66\x61ult_upstream_timeout\x18\' \x01(\x0b\x32\x19.google.protobuf.DurationH(\x88\x01\x01\x12\x1c\n\x0fmetrics_address\x18( \x01(\tH)\x88\x01\x01\x12!\n\x14otel_traces_exporter\x18X \x01(\tH*\x88\x01\x01\x12$\n\x17otel_traces_sampler_arg\x18Y \x01(\x01H+\x88\x01\x01\x12 \n\x18otel_resource_attributes\x18Z \x03(\t\x12\x1b\n\x0eotel_log_level\x18[ \x01(\tH,\x88\x01\x01\x12.\n!otel_attribute_value_length_limit\x18\\ \x01(\x05H-\x88\x01\x01\x12(\n\x1botel_exporter_otlp_endpoint\x18] \x01(\tH.\x88\x01\x01\x12/\n\"otel_exporter_otlp_traces_endpoint\x18^ \x01(\tH/\x88\x01\x01\x12(\n\x1botel_exporter_otlp_protocol\x18_ \x01(\tH0\x88\x01\x01\x12/\n\"otel_exporter_otlp_traces_protocol\x18` \x01(\tH1\x88\x01\x01\x12\"\n\x1aotel_exporter_otlp_headers\x18\x61 \x03(\t\x12)\n!otel_exporter_otlp_traces_headers\x18\x62 \x03(\t\x12\x42\n\x1aotel_exporter_otlp_timeout\x18\x63 \x01(\x0b\x32\x19.google.protobuf.DurationH2\x88\x01\x01\x12I\n!otel_exporter_otlp_traces_timeout\x18\x64 \x01(\x0b\x32\x19.google.protobuf.DurationH3\x88\x01\x01\x12?\n\x17otel_bsp_schedule_delay\x18\x65 \x01(\x0b\x32\x19.google.protobuf.DurationH4\x88\x01\x01\x12+\n\x1eotel_bsp_max_export_batch_size\x18\x66 \x01(\x05H5\x88\x01\x01\x12\x19\n\x0cgrpc_address\x18. \x01(\tH6\x88\x01\x01\x12\x1a\n\rgrpc_insecure\x18/ \x01(\x08H7\x88\x01\x01\x12\x1e\n\x11\x63\x61\x63he_service_url\x18\x33 \x01(\tH8\x88\x01\x01\x12#\n\x16\x64\x61tabroker_service_url\x18\x34 \x01(\tH9\x88\x01\x01\x12\x16\n\tclient_ca\x18\x35 \x01(\tH:\x88\x01\x01\x12\x1b\n\x0e\x63lient_ca_file\x18\x36 \x01(\tH;\x88\x01\x01\x12\"\n\x15\x63lient_ca_key_pair_id\x18\x41 \x01(\tH<\x88\x01\x01\x12\x43\n6google_cloud_serverless_authentication_service_account\x18\x37 \x01(\tH=\x88\x01\x01\x12\x15\n\x08\x61utocert\x18\x38 \x01(\x08H>\x88\x01\x01\x12!\n\x14\x61utocert_use_staging\x18\x39 \x01(\x08H?\x88\x01\x01\x12!\n\x14\x61utocert_must_staple\x18: \x01(\x08H@\x88\x01\x01\x12\x19\n\x0c\x61utocert_dir\x18; \x01(\tHA\x88\x01\x01\x12\x1c\n\x0fskip_xff_append\x18? \x01(\x08HB\x88\x01\x01\x12\x1a\n\rprimary_color\x18\x45 \x01(\tHC\x88\x01\x01\x12\x1c\n\x0fsecondary_color\x18\x46 \x01(\tHD\x88\x01\x01\x12#\n\x16\x64\x61rkmode_primary_color\x18G \x01(\tHE\x88\x01\x01\x12%\n\x18\x64\x61rkmode_secondary_color\x18H \x01(\tHF\x88\x01\x01\x12\x15\n\x08logo_url\x18I \x01(\tHG\x88\x01\x01\x12\x18\n\x0b\x66\x61vicon_url\x18J \x01(\tHH\x88\x01\x01\x12*\n\x1d\x65rror_message_first_paragraph\x18K \x01(\tHI\x88\x01\x01\x12\x1e\n\x11identity_provider\x18L \x01(\tHJ\x88\x01\x01\x12?\n\x19identity_provider_options\x18M \x01(\x0b\x32\x17.google.protobuf.StructHK\x88\x01\x01\x12J\n\"identity_provider_refresh_interval\x18N \x01(\x0b\x32\x19.google.protobuf.DurationHL\x88\x01\x01\x12I\n!identity_provider_refresh_timeout\x18O \x01(\x0b\x32\x19.google.protobuf.DurationHM\x88\x01\x01\x12G\n\x11\x61\x63\x63\x65ss_log_fields\x18R \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHN\x88\x01\x01\x12J\n\x14\x61uthorize_log_fields\x18S \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHO\x88\x01\x01\x12\"\n\x15pass_identity_headers\x18T \x01(\x08HP\x88\x01\x01\x12\x15\n\roriginator_id\x18g \x01(\t\x12G\n\x13\x62\x65\x61rer_token_format\x18h \x01(\x0e\x32%.pomerium.dashboard.BearerTokenFormatHQ\x88\x01\x01\x12X\n\"idp_access_token_allowed_audiences\x18i \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHR\x88\x01\x01\x12\x36\n\ncodec_type\x18m \x01(\x0e\x32\x1d.pomerium.dashboard.CodecTypeHS\x88\x01\x01\x12U\n\x1a\x63ircuit_breaker_thresholds\x18n \x01(\x0b\x32,.pomerium.dashboard.CircuitBreakerThresholdsHT\x88\x01\x01\x12\x18\n\x0bssh_address\x18o \x01(\tHU\x88\x01\x01\x12H\n\x12ssh_host_key_files\x18p \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHV\x88\x01\x01\x12\x43\n\rssh_host_keys\x18q \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHW\x88\x01\x01\x12!\n\x14ssh_user_ca_key_file\x18r \x01(\tHX\x88\x01\x01\x12\x1c\n\x0fssh_user_ca_key\x18s \x01(\tHY\x88\x01\x01\x1aI\n\x0b\x43\x65rtificate\x12\x12\n\ncert_bytes\x18\x03 \x01(\x0c\x12\x11\n\tkey_bytes\x18\x04 \x01(\x0c\x12\x13\n\x0bkey_pair_id\x18\x05 \x01(\t\x1a\x1c\n\nStringList\x12\x0e\n\x06values\x18\x01 \x03(\t\x1a\x34\n\x12RequestParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x39\n\x17SetResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x37\n\x15JwtClaimsHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_cluster_idB\x12\n\x10_installation_idB\x0c\n\n_log_levelB\x12\n\x10_proxy_log_levelB\x10\n\x0e_shared_secretB\x0b\n\t_servicesB\n\n\x08_addressB\x12\n\x10_insecure_serverB\x1b\n\x19_dns_failure_refresh_rateB\x14\n\x12_dns_lookup_familyB\x14\n\x12_dns_query_timeoutB\x12\n\x10_dns_query_triesB\x13\n\x11_dns_refresh_rateB\x16\n\x14_dns_udp_max_queriesB\x0e\n\x0c_dns_use_tcpB\x15\n\x13_http_redirect_addrB\x0f\n\r_timeout_readB\x10\n\x0e_timeout_writeB\x0f\n\r_timeout_idleB\x1b\n\x19_authenticate_service_urlB\x1d\n\x1b_authenticate_callback_pathB\x0e\n\x0c_cookie_nameB\x10\n\x0e_cookie_secretB\x10\n\x0e_cookie_domainB\x10\n\x0e_cookie_secureB\x13\n\x11_cookie_http_onlyB\x13\n\x11_cookie_same_siteB\x10\n\x0e_cookie_expireB\x10\n\x0e_idp_client_idB\x14\n\x12_idp_client_secretB\x0f\n\r_idp_providerB\x13\n\x11_idp_provider_urlB\x16\n\x14_idp_service_accountB \n\x1e_idp_refresh_directory_timeoutB!\n\x1f_idp_refresh_directory_intervalB\x18\n\x16_authorize_service_urlB\x18\n\x16_certificate_authorityB\x1d\n\x1b_certificate_authority_fileB$\n\"_certificate_authority_key_pair_idB\x14\n\x12_jwt_issuer_formatB\x1b\n\x19_default_upstream_timeoutB\x12\n\x10_metrics_addressB\x17\n\x15_otel_traces_exporterB\x1a\n\x18_otel_traces_sampler_argB\x11\n\x0f_otel_log_levelB$\n\"_otel_attribute_value_length_limitB\x1e\n\x1c_otel_exporter_otlp_endpointB%\n#_otel_exporter_otlp_traces_endpointB\x1e\n\x1c_otel_exporter_otlp_protocolB%\n#_otel_exporter_otlp_traces_protocolB\x1d\n\x1b_otel_exporter_otlp_timeoutB$\n\"_otel_exporter_otlp_traces_timeoutB\x1a\n\x18_otel_bsp_schedule_delayB!\n\x1f_otel_bsp_max_export_batch_sizeB\x0f\n\r_grpc_addressB\x10\n\x0e_grpc_insecureB\x14\n\x12_cache_service_urlB\x19\n\x17_databroker_service_urlB\x0c\n\n_client_caB\x11\n\x0f_client_ca_fileB\x18\n\x16_client_ca_key_pair_idB9\n7_google_cloud_serverless_authentication_service_accountB\x0b\n\t_autocertB\x17\n\x15_autocert_use_stagingB\x17\n\x15_autocert_must_stapleB\x0f\n\r_autocert_dirB\x12\n\x10_skip_xff_appendB\x10\n\x0e_primary_colorB\x12\n\x10_secondary_colorB\x19\n\x17_darkmode_primary_colorB\x1b\n\x19_darkmode_secondary_colorB\x0b\n\t_logo_urlB\x0e\n\x0c_favicon_urlB \n\x1e_error_message_first_paragraphB\x14\n\x12_identity_providerB\x1c\n\x1a_identity_provider_optionsB%\n#_identity_provider_refresh_intervalB$\n\"_identity_provider_refresh_timeoutB\x14\n\x12_access_log_fieldsB\x17\n\x15_authorize_log_fieldsB\x18\n\x16_pass_identity_headersB\x16\n\x14_bearer_token_formatB%\n#_idp_access_token_allowed_audiencesB\r\n\x0b_codec_typeB\x1d\n\x1b_circuit_breaker_thresholdsB\x0e\n\x0c_ssh_addressB\x15\n\x13_ssh_host_key_filesB\x10\n\x0e_ssh_host_keysB\x17\n\x15_ssh_user_ca_key_fileB\x12\n\x10_ssh_user_ca_keyJ\x04\x08)\x10*J\x04\x08*\x10+J\x04\x08U\x10VJ\x04\x08V\x10W\"\x1b\n\x19GetConsoleSettingsRequest\"[\n\x1aGetConsoleSettingsResponse\x12=\n\x10\x63onsole_settings\x18\x01 \x01(\x0b\x32#.pomerium.dashboard.ConsoleSettings\"<\n\x12GetSettingsRequest\x12\x17\n\ncluster_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_cluster_id\"E\n\x13GetSettingsResponse\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings\"D\n\x12SetSettingsRequest\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings\"E\n\x13SetSettingsResponse\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings*z\n\tCodecType\x12\x16\n\x12\x43ODEC_TYPE_UNKNOWN\x10\x00\x12\x13\n\x0f\x43ODEC_TYPE_AUTO\x10\x01\x12\x14\n\x10\x43ODEC_TYPE_HTTP1\x10\x02\x12\x14\n\x10\x43ODEC_TYPE_HTTP2\x10\x03\x12\x14\n\x10\x43ODEC_TYPE_HTTP3\x10\x04\x32\xae\x03\n\x0fSettingsService\x12^\n\x0bGetSettings\x12&.pomerium.dashboard.GetSettingsRequest\x1a\'.pomerium.dashboard.GetSettingsResponse\x12^\n\x0bSetSettings\x12&.pomerium.dashboard.SetSettingsRequest\x1a\'.pomerium.dashboard.SetSettingsResponse\x12\x66\n\x13GetBrandingSettings\x12&.pomerium.dashboard.GetSettingsRequest\x1a\'.pomerium.dashboard.GetSettingsResponse\x12s\n\x12GetConsoleSettings\x12-.pomerium.dashboard.GetConsoleSettingsRequest\x1a..pomerium.dashboard.GetConsoleSettingsResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,34 +42,34 @@ _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_options = b'8\001' _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._loaded_options = None _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_options = b'8\001' - _globals['_CODECTYPE']._serialized_start=7359 - _globals['_CODECTYPE']._serialized_end=7481 + _globals['_CODECTYPE']._serialized_start=7533 + _globals['_CODECTYPE']._serialized_end=7655 _globals['_CONSOLESETTINGS']._serialized_start=147 _globals['_CONSOLESETTINGS']._serialized_end=220 _globals['_SETTINGS']._serialized_start=223 - _globals['_SETTINGS']._serialized_end=6961 - _globals['_SETTINGS_CERTIFICATE']._serialized_start=4544 - _globals['_SETTINGS_CERTIFICATE']._serialized_end=4617 - _globals['_SETTINGS_STRINGLIST']._serialized_start=4619 - _globals['_SETTINGS_STRINGLIST']._serialized_end=4647 - _globals['_SETTINGS_REQUESTPARAMSENTRY']._serialized_start=4649 - _globals['_SETTINGS_REQUESTPARAMSENTRY']._serialized_end=4701 - _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_start=4703 - _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_end=4760 - _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_start=4762 - _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_end=4817 - _globals['_GETCONSOLESETTINGSREQUEST']._serialized_start=6963 - _globals['_GETCONSOLESETTINGSREQUEST']._serialized_end=6990 - _globals['_GETCONSOLESETTINGSRESPONSE']._serialized_start=6992 - _globals['_GETCONSOLESETTINGSRESPONSE']._serialized_end=7083 - _globals['_GETSETTINGSREQUEST']._serialized_start=7085 - _globals['_GETSETTINGSREQUEST']._serialized_end=7145 - _globals['_GETSETTINGSRESPONSE']._serialized_start=7147 - _globals['_GETSETTINGSRESPONSE']._serialized_end=7216 - _globals['_SETSETTINGSREQUEST']._serialized_start=7218 - _globals['_SETSETTINGSREQUEST']._serialized_end=7286 - _globals['_SETSETTINGSRESPONSE']._serialized_start=7288 - _globals['_SETSETTINGSRESPONSE']._serialized_end=7357 - _globals['_SETTINGSSERVICE']._serialized_start=7484 - _globals['_SETTINGSSERVICE']._serialized_end=7914 + _globals['_SETTINGS']._serialized_end=7135 + _globals['_SETTINGS_CERTIFICATE']._serialized_start=4668 + _globals['_SETTINGS_CERTIFICATE']._serialized_end=4741 + _globals['_SETTINGS_STRINGLIST']._serialized_start=4743 + _globals['_SETTINGS_STRINGLIST']._serialized_end=4771 + _globals['_SETTINGS_REQUESTPARAMSENTRY']._serialized_start=4773 + _globals['_SETTINGS_REQUESTPARAMSENTRY']._serialized_end=4825 + _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_start=4827 + _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_end=4884 + _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_start=4886 + _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_end=4941 + _globals['_GETCONSOLESETTINGSREQUEST']._serialized_start=7137 + _globals['_GETCONSOLESETTINGSREQUEST']._serialized_end=7164 + _globals['_GETCONSOLESETTINGSRESPONSE']._serialized_start=7166 + _globals['_GETCONSOLESETTINGSRESPONSE']._serialized_end=7257 + _globals['_GETSETTINGSREQUEST']._serialized_start=7259 + _globals['_GETSETTINGSREQUEST']._serialized_end=7319 + _globals['_GETSETTINGSRESPONSE']._serialized_start=7321 + _globals['_GETSETTINGSRESPONSE']._serialized_end=7390 + _globals['_SETSETTINGSREQUEST']._serialized_start=7392 + _globals['_SETSETTINGSREQUEST']._serialized_end=7460 + _globals['_SETSETTINGSRESPONSE']._serialized_start=7462 + _globals['_SETSETTINGSRESPONSE']._serialized_end=7531 + _globals['_SETTINGSSERVICE']._serialized_start=7658 + _globals['_SETTINGSSERVICE']._serialized_end=8088 # @@protoc_insertion_point(module_scope) diff --git a/src/pomerium/pb/settings_pb2.pyi b/src/pomerium/pb/settings_pb2.pyi index 5204ae3..429beb3 100644 --- a/src/pomerium/pb/settings_pb2.pyi +++ b/src/pomerium/pb/settings_pb2.pyi @@ -65,7 +65,7 @@ global___ConsoleSettings = ConsoleSettings @typing.final class Settings(google.protobuf.message.Message): """Settings defines the global pomerium settings - Next id: 120. + Next id: 122. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -161,11 +161,13 @@ class Settings(google.protobuf.message.Message): SERVICES_FIELD_NUMBER: builtins.int ADDRESS_FIELD_NUMBER: builtins.int INSECURE_SERVER_FIELD_NUMBER: builtins.int + DNS_FAILURE_REFRESH_RATE_FIELD_NUMBER: builtins.int DNS_LOOKUP_FAMILY_FIELD_NUMBER: builtins.int + DNS_QUERY_TIMEOUT_FIELD_NUMBER: builtins.int + DNS_QUERY_TRIES_FIELD_NUMBER: builtins.int + DNS_REFRESH_RATE_FIELD_NUMBER: builtins.int DNS_UDP_MAX_QUERIES_FIELD_NUMBER: builtins.int DNS_USE_TCP_FIELD_NUMBER: builtins.int - DNS_QUERY_TRIES_FIELD_NUMBER: builtins.int - DNS_QUERY_TIMEOUT_FIELD_NUMBER: builtins.int CERTIFICATES_FIELD_NUMBER: builtins.int HTTP_REDIRECT_ADDR_FIELD_NUMBER: builtins.int TIMEOUT_READ_FIELD_NUMBER: builtins.int @@ -261,10 +263,9 @@ class Settings(google.protobuf.message.Message): address: builtins.str insecure_server: builtins.bool dns_lookup_family: builtins.str - """dns options""" + dns_query_tries: builtins.int dns_udp_max_queries: builtins.int dns_use_tcp: builtins.bool - dns_query_tries: builtins.int http_redirect_addr: builtins.str authenticate_service_url: builtins.str authenticate_callback_path: builtins.str @@ -324,9 +325,15 @@ class Settings(google.protobuf.message.Message): ssh_user_ca_key: builtins.str @property def modified_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def dns_failure_refresh_rate(self) -> google.protobuf.duration_pb2.Duration: + """dns options""" + @property def dns_query_timeout(self) -> google.protobuf.duration_pb2.Duration: ... @property + def dns_refresh_rate(self) -> google.protobuf.duration_pb2.Duration: ... + @property def certificates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Settings.Certificate]: ... @property def timeout_read(self) -> google.protobuf.duration_pb2.Duration: ... @@ -395,11 +402,13 @@ class Settings(google.protobuf.message.Message): services: builtins.str | None = ..., address: builtins.str | None = ..., insecure_server: builtins.bool | None = ..., + dns_failure_refresh_rate: google.protobuf.duration_pb2.Duration | None = ..., dns_lookup_family: builtins.str | None = ..., + dns_query_timeout: google.protobuf.duration_pb2.Duration | None = ..., + dns_query_tries: builtins.int | None = ..., + dns_refresh_rate: google.protobuf.duration_pb2.Duration | None = ..., dns_udp_max_queries: builtins.int | None = ..., dns_use_tcp: builtins.bool | None = ..., - dns_query_tries: builtins.int | None = ..., - dns_query_timeout: google.protobuf.duration_pb2.Duration | None = ..., certificates: collections.abc.Iterable[global___Settings.Certificate] | None = ..., http_redirect_addr: builtins.str | None = ..., timeout_read: google.protobuf.duration_pb2.Duration | None = ..., @@ -486,8 +495,8 @@ class Settings(google.protobuf.message.Message): ssh_user_ca_key_file: builtins.str | None = ..., ssh_user_ca_key: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_access_log_fields", b"_access_log_fields", "_address", b"_address", "_authenticate_callback_path", b"_authenticate_callback_path", "_authenticate_service_url", b"_authenticate_service_url", "_authorize_log_fields", b"_authorize_log_fields", "_authorize_service_url", b"_authorize_service_url", "_autocert", b"_autocert", "_autocert_dir", b"_autocert_dir", "_autocert_must_staple", b"_autocert_must_staple", "_autocert_use_staging", b"_autocert_use_staging", "_bearer_token_format", b"_bearer_token_format", "_cache_service_url", b"_cache_service_url", "_certificate_authority", b"_certificate_authority", "_certificate_authority_file", b"_certificate_authority_file", "_certificate_authority_key_pair_id", b"_certificate_authority_key_pair_id", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_client_ca", b"_client_ca", "_client_ca_file", b"_client_ca_file", "_client_ca_key_pair_id", b"_client_ca_key_pair_id", "_cluster_id", b"_cluster_id", "_codec_type", b"_codec_type", "_cookie_domain", b"_cookie_domain", "_cookie_expire", b"_cookie_expire", "_cookie_http_only", b"_cookie_http_only", "_cookie_name", b"_cookie_name", "_cookie_same_site", b"_cookie_same_site", "_cookie_secret", b"_cookie_secret", "_cookie_secure", b"_cookie_secure", "_darkmode_primary_color", b"_darkmode_primary_color", "_darkmode_secondary_color", b"_darkmode_secondary_color", "_databroker_service_url", b"_databroker_service_url", "_default_upstream_timeout", b"_default_upstream_timeout", "_dns_lookup_family", b"_dns_lookup_family", "_dns_query_timeout", b"_dns_query_timeout", "_dns_query_tries", b"_dns_query_tries", "_dns_udp_max_queries", b"_dns_udp_max_queries", "_dns_use_tcp", b"_dns_use_tcp", "_error_message_first_paragraph", b"_error_message_first_paragraph", "_favicon_url", b"_favicon_url", "_google_cloud_serverless_authentication_service_account", b"_google_cloud_serverless_authentication_service_account", "_grpc_address", b"_grpc_address", "_grpc_insecure", b"_grpc_insecure", "_http_redirect_addr", b"_http_redirect_addr", "_identity_provider", b"_identity_provider", "_identity_provider_options", b"_identity_provider_options", "_identity_provider_refresh_interval", b"_identity_provider_refresh_interval", "_identity_provider_refresh_timeout", b"_identity_provider_refresh_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_idp_provider", b"_idp_provider", "_idp_provider_url", b"_idp_provider_url", "_idp_refresh_directory_interval", b"_idp_refresh_directory_interval", "_idp_refresh_directory_timeout", b"_idp_refresh_directory_timeout", "_idp_service_account", b"_idp_service_account", "_insecure_server", b"_insecure_server", "_installation_id", b"_installation_id", "_jwt_issuer_format", b"_jwt_issuer_format", "_log_level", b"_log_level", "_logo_url", b"_logo_url", "_metrics_address", b"_metrics_address", "_otel_attribute_value_length_limit", b"_otel_attribute_value_length_limit", "_otel_bsp_max_export_batch_size", b"_otel_bsp_max_export_batch_size", "_otel_bsp_schedule_delay", b"_otel_bsp_schedule_delay", "_otel_exporter_otlp_endpoint", b"_otel_exporter_otlp_endpoint", "_otel_exporter_otlp_protocol", b"_otel_exporter_otlp_protocol", "_otel_exporter_otlp_timeout", b"_otel_exporter_otlp_timeout", "_otel_exporter_otlp_traces_endpoint", b"_otel_exporter_otlp_traces_endpoint", "_otel_exporter_otlp_traces_protocol", b"_otel_exporter_otlp_traces_protocol", "_otel_exporter_otlp_traces_timeout", b"_otel_exporter_otlp_traces_timeout", "_otel_log_level", b"_otel_log_level", "_otel_traces_exporter", b"_otel_traces_exporter", "_otel_traces_sampler_arg", b"_otel_traces_sampler_arg", "_pass_identity_headers", b"_pass_identity_headers", "_primary_color", b"_primary_color", "_proxy_log_level", b"_proxy_log_level", "_secondary_color", b"_secondary_color", "_services", b"_services", "_shared_secret", b"_shared_secret", "_skip_xff_append", b"_skip_xff_append", "_ssh_address", b"_ssh_address", "_ssh_host_key_files", b"_ssh_host_key_files", "_ssh_host_keys", b"_ssh_host_keys", "_ssh_user_ca_key", b"_ssh_user_ca_key", "_ssh_user_ca_key_file", b"_ssh_user_ca_key_file", "_timeout_idle", b"_timeout_idle", "_timeout_read", b"_timeout_read", "_timeout_write", b"_timeout_write", "access_log_fields", b"access_log_fields", "address", b"address", "authenticate_callback_path", b"authenticate_callback_path", "authenticate_service_url", b"authenticate_service_url", "authorize_log_fields", b"authorize_log_fields", "authorize_service_url", b"authorize_service_url", "autocert", b"autocert", "autocert_dir", b"autocert_dir", "autocert_must_staple", b"autocert_must_staple", "autocert_use_staging", b"autocert_use_staging", "bearer_token_format", b"bearer_token_format", "cache_service_url", b"cache_service_url", "certificate_authority", b"certificate_authority", "certificate_authority_file", b"certificate_authority_file", "certificate_authority_key_pair_id", b"certificate_authority_key_pair_id", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "client_ca", b"client_ca", "client_ca_file", b"client_ca_file", "client_ca_key_pair_id", b"client_ca_key_pair_id", "cluster_id", b"cluster_id", "codec_type", b"codec_type", "cookie_domain", b"cookie_domain", "cookie_expire", b"cookie_expire", "cookie_http_only", b"cookie_http_only", "cookie_name", b"cookie_name", "cookie_same_site", b"cookie_same_site", "cookie_secret", b"cookie_secret", "cookie_secure", b"cookie_secure", "darkmode_primary_color", b"darkmode_primary_color", "darkmode_secondary_color", b"darkmode_secondary_color", "databroker_service_url", b"databroker_service_url", "default_upstream_timeout", b"default_upstream_timeout", "dns_lookup_family", b"dns_lookup_family", "dns_query_timeout", b"dns_query_timeout", "dns_query_tries", b"dns_query_tries", "dns_udp_max_queries", b"dns_udp_max_queries", "dns_use_tcp", b"dns_use_tcp", "error_message_first_paragraph", b"error_message_first_paragraph", "favicon_url", b"favicon_url", "google_cloud_serverless_authentication_service_account", b"google_cloud_serverless_authentication_service_account", "grpc_address", b"grpc_address", "grpc_insecure", b"grpc_insecure", "http_redirect_addr", b"http_redirect_addr", "identity_provider", b"identity_provider", "identity_provider_options", b"identity_provider_options", "identity_provider_refresh_interval", b"identity_provider_refresh_interval", "identity_provider_refresh_timeout", b"identity_provider_refresh_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "idp_provider", b"idp_provider", "idp_provider_url", b"idp_provider_url", "idp_refresh_directory_interval", b"idp_refresh_directory_interval", "idp_refresh_directory_timeout", b"idp_refresh_directory_timeout", "idp_service_account", b"idp_service_account", "insecure_server", b"insecure_server", "installation_id", b"installation_id", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "log_level", b"log_level", "logo_url", b"logo_url", "metrics_address", b"metrics_address", "modified_at", b"modified_at", "otel_attribute_value_length_limit", b"otel_attribute_value_length_limit", "otel_bsp_max_export_batch_size", b"otel_bsp_max_export_batch_size", "otel_bsp_schedule_delay", b"otel_bsp_schedule_delay", "otel_exporter_otlp_endpoint", b"otel_exporter_otlp_endpoint", "otel_exporter_otlp_protocol", b"otel_exporter_otlp_protocol", "otel_exporter_otlp_timeout", b"otel_exporter_otlp_timeout", "otel_exporter_otlp_traces_endpoint", b"otel_exporter_otlp_traces_endpoint", "otel_exporter_otlp_traces_protocol", b"otel_exporter_otlp_traces_protocol", "otel_exporter_otlp_traces_timeout", b"otel_exporter_otlp_traces_timeout", "otel_log_level", b"otel_log_level", "otel_traces_exporter", b"otel_traces_exporter", "otel_traces_sampler_arg", b"otel_traces_sampler_arg", "pass_identity_headers", b"pass_identity_headers", "primary_color", b"primary_color", "proxy_log_level", b"proxy_log_level", "secondary_color", b"secondary_color", "services", b"services", "shared_secret", b"shared_secret", "skip_xff_append", b"skip_xff_append", "ssh_address", b"ssh_address", "ssh_host_key_files", b"ssh_host_key_files", "ssh_host_keys", b"ssh_host_keys", "ssh_user_ca_key", b"ssh_user_ca_key", "ssh_user_ca_key_file", b"ssh_user_ca_key_file", "timeout_idle", b"timeout_idle", "timeout_read", b"timeout_read", "timeout_write", b"timeout_write"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_access_log_fields", b"_access_log_fields", "_address", b"_address", "_authenticate_callback_path", b"_authenticate_callback_path", "_authenticate_service_url", b"_authenticate_service_url", "_authorize_log_fields", b"_authorize_log_fields", "_authorize_service_url", b"_authorize_service_url", "_autocert", b"_autocert", "_autocert_dir", b"_autocert_dir", "_autocert_must_staple", b"_autocert_must_staple", "_autocert_use_staging", b"_autocert_use_staging", "_bearer_token_format", b"_bearer_token_format", "_cache_service_url", b"_cache_service_url", "_certificate_authority", b"_certificate_authority", "_certificate_authority_file", b"_certificate_authority_file", "_certificate_authority_key_pair_id", b"_certificate_authority_key_pair_id", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_client_ca", b"_client_ca", "_client_ca_file", b"_client_ca_file", "_client_ca_key_pair_id", b"_client_ca_key_pair_id", "_cluster_id", b"_cluster_id", "_codec_type", b"_codec_type", "_cookie_domain", b"_cookie_domain", "_cookie_expire", b"_cookie_expire", "_cookie_http_only", b"_cookie_http_only", "_cookie_name", b"_cookie_name", "_cookie_same_site", b"_cookie_same_site", "_cookie_secret", b"_cookie_secret", "_cookie_secure", b"_cookie_secure", "_darkmode_primary_color", b"_darkmode_primary_color", "_darkmode_secondary_color", b"_darkmode_secondary_color", "_databroker_service_url", b"_databroker_service_url", "_default_upstream_timeout", b"_default_upstream_timeout", "_dns_lookup_family", b"_dns_lookup_family", "_dns_query_timeout", b"_dns_query_timeout", "_dns_query_tries", b"_dns_query_tries", "_dns_udp_max_queries", b"_dns_udp_max_queries", "_dns_use_tcp", b"_dns_use_tcp", "_error_message_first_paragraph", b"_error_message_first_paragraph", "_favicon_url", b"_favicon_url", "_google_cloud_serverless_authentication_service_account", b"_google_cloud_serverless_authentication_service_account", "_grpc_address", b"_grpc_address", "_grpc_insecure", b"_grpc_insecure", "_http_redirect_addr", b"_http_redirect_addr", "_identity_provider", b"_identity_provider", "_identity_provider_options", b"_identity_provider_options", "_identity_provider_refresh_interval", b"_identity_provider_refresh_interval", "_identity_provider_refresh_timeout", b"_identity_provider_refresh_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_idp_provider", b"_idp_provider", "_idp_provider_url", b"_idp_provider_url", "_idp_refresh_directory_interval", b"_idp_refresh_directory_interval", "_idp_refresh_directory_timeout", b"_idp_refresh_directory_timeout", "_idp_service_account", b"_idp_service_account", "_insecure_server", b"_insecure_server", "_installation_id", b"_installation_id", "_jwt_issuer_format", b"_jwt_issuer_format", "_log_level", b"_log_level", "_logo_url", b"_logo_url", "_metrics_address", b"_metrics_address", "_otel_attribute_value_length_limit", b"_otel_attribute_value_length_limit", "_otel_bsp_max_export_batch_size", b"_otel_bsp_max_export_batch_size", "_otel_bsp_schedule_delay", b"_otel_bsp_schedule_delay", "_otel_exporter_otlp_endpoint", b"_otel_exporter_otlp_endpoint", "_otel_exporter_otlp_protocol", b"_otel_exporter_otlp_protocol", "_otel_exporter_otlp_timeout", b"_otel_exporter_otlp_timeout", "_otel_exporter_otlp_traces_endpoint", b"_otel_exporter_otlp_traces_endpoint", "_otel_exporter_otlp_traces_protocol", b"_otel_exporter_otlp_traces_protocol", "_otel_exporter_otlp_traces_timeout", b"_otel_exporter_otlp_traces_timeout", "_otel_log_level", b"_otel_log_level", "_otel_traces_exporter", b"_otel_traces_exporter", "_otel_traces_sampler_arg", b"_otel_traces_sampler_arg", "_pass_identity_headers", b"_pass_identity_headers", "_primary_color", b"_primary_color", "_proxy_log_level", b"_proxy_log_level", "_secondary_color", b"_secondary_color", "_services", b"_services", "_shared_secret", b"_shared_secret", "_skip_xff_append", b"_skip_xff_append", "_ssh_address", b"_ssh_address", "_ssh_host_key_files", b"_ssh_host_key_files", "_ssh_host_keys", b"_ssh_host_keys", "_ssh_user_ca_key", b"_ssh_user_ca_key", "_ssh_user_ca_key_file", b"_ssh_user_ca_key_file", "_timeout_idle", b"_timeout_idle", "_timeout_read", b"_timeout_read", "_timeout_write", b"_timeout_write", "access_log_fields", b"access_log_fields", "address", b"address", "authenticate_callback_path", b"authenticate_callback_path", "authenticate_service_url", b"authenticate_service_url", "authorize_log_fields", b"authorize_log_fields", "authorize_service_url", b"authorize_service_url", "autocert", b"autocert", "autocert_dir", b"autocert_dir", "autocert_must_staple", b"autocert_must_staple", "autocert_use_staging", b"autocert_use_staging", "bearer_token_format", b"bearer_token_format", "cache_service_url", b"cache_service_url", "certificate_authority", b"certificate_authority", "certificate_authority_file", b"certificate_authority_file", "certificate_authority_key_pair_id", b"certificate_authority_key_pair_id", "certificates", b"certificates", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "client_ca", b"client_ca", "client_ca_file", b"client_ca_file", "client_ca_key_pair_id", b"client_ca_key_pair_id", "cluster_id", b"cluster_id", "codec_type", b"codec_type", "cookie_domain", b"cookie_domain", "cookie_expire", b"cookie_expire", "cookie_http_only", b"cookie_http_only", "cookie_name", b"cookie_name", "cookie_same_site", b"cookie_same_site", "cookie_secret", b"cookie_secret", "cookie_secure", b"cookie_secure", "darkmode_primary_color", b"darkmode_primary_color", "darkmode_secondary_color", b"darkmode_secondary_color", "databroker_service_url", b"databroker_service_url", "default_upstream_timeout", b"default_upstream_timeout", "dns_lookup_family", b"dns_lookup_family", "dns_query_timeout", b"dns_query_timeout", "dns_query_tries", b"dns_query_tries", "dns_udp_max_queries", b"dns_udp_max_queries", "dns_use_tcp", b"dns_use_tcp", "error_message_first_paragraph", b"error_message_first_paragraph", "favicon_url", b"favicon_url", "google_cloud_serverless_authentication_service_account", b"google_cloud_serverless_authentication_service_account", "grpc_address", b"grpc_address", "grpc_insecure", b"grpc_insecure", "http_redirect_addr", b"http_redirect_addr", "id", b"id", "identity_provider", b"identity_provider", "identity_provider_options", b"identity_provider_options", "identity_provider_refresh_interval", b"identity_provider_refresh_interval", "identity_provider_refresh_timeout", b"identity_provider_refresh_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "idp_provider", b"idp_provider", "idp_provider_url", b"idp_provider_url", "idp_refresh_directory_interval", b"idp_refresh_directory_interval", "idp_refresh_directory_timeout", b"idp_refresh_directory_timeout", "idp_service_account", b"idp_service_account", "insecure_server", b"insecure_server", "installation_id", b"installation_id", "jwt_claims_headers", b"jwt_claims_headers", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "log_level", b"log_level", "logo_url", b"logo_url", "metrics_address", b"metrics_address", "modified_at", b"modified_at", "originator_id", b"originator_id", "otel_attribute_value_length_limit", b"otel_attribute_value_length_limit", "otel_bsp_max_export_batch_size", b"otel_bsp_max_export_batch_size", "otel_bsp_schedule_delay", b"otel_bsp_schedule_delay", "otel_exporter_otlp_endpoint", b"otel_exporter_otlp_endpoint", "otel_exporter_otlp_headers", b"otel_exporter_otlp_headers", "otel_exporter_otlp_protocol", b"otel_exporter_otlp_protocol", "otel_exporter_otlp_timeout", b"otel_exporter_otlp_timeout", "otel_exporter_otlp_traces_endpoint", b"otel_exporter_otlp_traces_endpoint", "otel_exporter_otlp_traces_headers", b"otel_exporter_otlp_traces_headers", "otel_exporter_otlp_traces_protocol", b"otel_exporter_otlp_traces_protocol", "otel_exporter_otlp_traces_timeout", b"otel_exporter_otlp_traces_timeout", "otel_log_level", b"otel_log_level", "otel_resource_attributes", b"otel_resource_attributes", "otel_traces_exporter", b"otel_traces_exporter", "otel_traces_sampler_arg", b"otel_traces_sampler_arg", "pass_identity_headers", b"pass_identity_headers", "primary_color", b"primary_color", "proxy_log_level", b"proxy_log_level", "request_params", b"request_params", "scopes", b"scopes", "secondary_color", b"secondary_color", "services", b"services", "set_response_headers", b"set_response_headers", "shared_secret", b"shared_secret", "skip_xff_append", b"skip_xff_append", "ssh_address", b"ssh_address", "ssh_host_key_files", b"ssh_host_key_files", "ssh_host_keys", b"ssh_host_keys", "ssh_user_ca_key", b"ssh_user_ca_key", "ssh_user_ca_key_file", b"ssh_user_ca_key_file", "timeout_idle", b"timeout_idle", "timeout_read", b"timeout_read", "timeout_write", b"timeout_write"]) -> None: ... + def HasField(self, field_name: typing.Literal["_access_log_fields", b"_access_log_fields", "_address", b"_address", "_authenticate_callback_path", b"_authenticate_callback_path", "_authenticate_service_url", b"_authenticate_service_url", "_authorize_log_fields", b"_authorize_log_fields", "_authorize_service_url", b"_authorize_service_url", "_autocert", b"_autocert", "_autocert_dir", b"_autocert_dir", "_autocert_must_staple", b"_autocert_must_staple", "_autocert_use_staging", b"_autocert_use_staging", "_bearer_token_format", b"_bearer_token_format", "_cache_service_url", b"_cache_service_url", "_certificate_authority", b"_certificate_authority", "_certificate_authority_file", b"_certificate_authority_file", "_certificate_authority_key_pair_id", b"_certificate_authority_key_pair_id", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_client_ca", b"_client_ca", "_client_ca_file", b"_client_ca_file", "_client_ca_key_pair_id", b"_client_ca_key_pair_id", "_cluster_id", b"_cluster_id", "_codec_type", b"_codec_type", "_cookie_domain", b"_cookie_domain", "_cookie_expire", b"_cookie_expire", "_cookie_http_only", b"_cookie_http_only", "_cookie_name", b"_cookie_name", "_cookie_same_site", b"_cookie_same_site", "_cookie_secret", b"_cookie_secret", "_cookie_secure", b"_cookie_secure", "_darkmode_primary_color", b"_darkmode_primary_color", "_darkmode_secondary_color", b"_darkmode_secondary_color", "_databroker_service_url", b"_databroker_service_url", "_default_upstream_timeout", b"_default_upstream_timeout", "_dns_failure_refresh_rate", b"_dns_failure_refresh_rate", "_dns_lookup_family", b"_dns_lookup_family", "_dns_query_timeout", b"_dns_query_timeout", "_dns_query_tries", b"_dns_query_tries", "_dns_refresh_rate", b"_dns_refresh_rate", "_dns_udp_max_queries", b"_dns_udp_max_queries", "_dns_use_tcp", b"_dns_use_tcp", "_error_message_first_paragraph", b"_error_message_first_paragraph", "_favicon_url", b"_favicon_url", "_google_cloud_serverless_authentication_service_account", b"_google_cloud_serverless_authentication_service_account", "_grpc_address", b"_grpc_address", "_grpc_insecure", b"_grpc_insecure", "_http_redirect_addr", b"_http_redirect_addr", "_identity_provider", b"_identity_provider", "_identity_provider_options", b"_identity_provider_options", "_identity_provider_refresh_interval", b"_identity_provider_refresh_interval", "_identity_provider_refresh_timeout", b"_identity_provider_refresh_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_idp_provider", b"_idp_provider", "_idp_provider_url", b"_idp_provider_url", "_idp_refresh_directory_interval", b"_idp_refresh_directory_interval", "_idp_refresh_directory_timeout", b"_idp_refresh_directory_timeout", "_idp_service_account", b"_idp_service_account", "_insecure_server", b"_insecure_server", "_installation_id", b"_installation_id", "_jwt_issuer_format", b"_jwt_issuer_format", "_log_level", b"_log_level", "_logo_url", b"_logo_url", "_metrics_address", b"_metrics_address", "_otel_attribute_value_length_limit", b"_otel_attribute_value_length_limit", "_otel_bsp_max_export_batch_size", b"_otel_bsp_max_export_batch_size", "_otel_bsp_schedule_delay", b"_otel_bsp_schedule_delay", "_otel_exporter_otlp_endpoint", b"_otel_exporter_otlp_endpoint", "_otel_exporter_otlp_protocol", b"_otel_exporter_otlp_protocol", "_otel_exporter_otlp_timeout", b"_otel_exporter_otlp_timeout", "_otel_exporter_otlp_traces_endpoint", b"_otel_exporter_otlp_traces_endpoint", "_otel_exporter_otlp_traces_protocol", b"_otel_exporter_otlp_traces_protocol", "_otel_exporter_otlp_traces_timeout", b"_otel_exporter_otlp_traces_timeout", "_otel_log_level", b"_otel_log_level", "_otel_traces_exporter", b"_otel_traces_exporter", "_otel_traces_sampler_arg", b"_otel_traces_sampler_arg", "_pass_identity_headers", b"_pass_identity_headers", "_primary_color", b"_primary_color", "_proxy_log_level", b"_proxy_log_level", "_secondary_color", b"_secondary_color", "_services", b"_services", "_shared_secret", b"_shared_secret", "_skip_xff_append", b"_skip_xff_append", "_ssh_address", b"_ssh_address", "_ssh_host_key_files", b"_ssh_host_key_files", "_ssh_host_keys", b"_ssh_host_keys", "_ssh_user_ca_key", b"_ssh_user_ca_key", "_ssh_user_ca_key_file", b"_ssh_user_ca_key_file", "_timeout_idle", b"_timeout_idle", "_timeout_read", b"_timeout_read", "_timeout_write", b"_timeout_write", "access_log_fields", b"access_log_fields", "address", b"address", "authenticate_callback_path", b"authenticate_callback_path", "authenticate_service_url", b"authenticate_service_url", "authorize_log_fields", b"authorize_log_fields", "authorize_service_url", b"authorize_service_url", "autocert", b"autocert", "autocert_dir", b"autocert_dir", "autocert_must_staple", b"autocert_must_staple", "autocert_use_staging", b"autocert_use_staging", "bearer_token_format", b"bearer_token_format", "cache_service_url", b"cache_service_url", "certificate_authority", b"certificate_authority", "certificate_authority_file", b"certificate_authority_file", "certificate_authority_key_pair_id", b"certificate_authority_key_pair_id", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "client_ca", b"client_ca", "client_ca_file", b"client_ca_file", "client_ca_key_pair_id", b"client_ca_key_pair_id", "cluster_id", b"cluster_id", "codec_type", b"codec_type", "cookie_domain", b"cookie_domain", "cookie_expire", b"cookie_expire", "cookie_http_only", b"cookie_http_only", "cookie_name", b"cookie_name", "cookie_same_site", b"cookie_same_site", "cookie_secret", b"cookie_secret", "cookie_secure", b"cookie_secure", "darkmode_primary_color", b"darkmode_primary_color", "darkmode_secondary_color", b"darkmode_secondary_color", "databroker_service_url", b"databroker_service_url", "default_upstream_timeout", b"default_upstream_timeout", "dns_failure_refresh_rate", b"dns_failure_refresh_rate", "dns_lookup_family", b"dns_lookup_family", "dns_query_timeout", b"dns_query_timeout", "dns_query_tries", b"dns_query_tries", "dns_refresh_rate", b"dns_refresh_rate", "dns_udp_max_queries", b"dns_udp_max_queries", "dns_use_tcp", b"dns_use_tcp", "error_message_first_paragraph", b"error_message_first_paragraph", "favicon_url", b"favicon_url", "google_cloud_serverless_authentication_service_account", b"google_cloud_serverless_authentication_service_account", "grpc_address", b"grpc_address", "grpc_insecure", b"grpc_insecure", "http_redirect_addr", b"http_redirect_addr", "identity_provider", b"identity_provider", "identity_provider_options", b"identity_provider_options", "identity_provider_refresh_interval", b"identity_provider_refresh_interval", "identity_provider_refresh_timeout", b"identity_provider_refresh_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "idp_provider", b"idp_provider", "idp_provider_url", b"idp_provider_url", "idp_refresh_directory_interval", b"idp_refresh_directory_interval", "idp_refresh_directory_timeout", b"idp_refresh_directory_timeout", "idp_service_account", b"idp_service_account", "insecure_server", b"insecure_server", "installation_id", b"installation_id", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "log_level", b"log_level", "logo_url", b"logo_url", "metrics_address", b"metrics_address", "modified_at", b"modified_at", "otel_attribute_value_length_limit", b"otel_attribute_value_length_limit", "otel_bsp_max_export_batch_size", b"otel_bsp_max_export_batch_size", "otel_bsp_schedule_delay", b"otel_bsp_schedule_delay", "otel_exporter_otlp_endpoint", b"otel_exporter_otlp_endpoint", "otel_exporter_otlp_protocol", b"otel_exporter_otlp_protocol", "otel_exporter_otlp_timeout", b"otel_exporter_otlp_timeout", "otel_exporter_otlp_traces_endpoint", b"otel_exporter_otlp_traces_endpoint", "otel_exporter_otlp_traces_protocol", b"otel_exporter_otlp_traces_protocol", "otel_exporter_otlp_traces_timeout", b"otel_exporter_otlp_traces_timeout", "otel_log_level", b"otel_log_level", "otel_traces_exporter", b"otel_traces_exporter", "otel_traces_sampler_arg", b"otel_traces_sampler_arg", "pass_identity_headers", b"pass_identity_headers", "primary_color", b"primary_color", "proxy_log_level", b"proxy_log_level", "secondary_color", b"secondary_color", "services", b"services", "shared_secret", b"shared_secret", "skip_xff_append", b"skip_xff_append", "ssh_address", b"ssh_address", "ssh_host_key_files", b"ssh_host_key_files", "ssh_host_keys", b"ssh_host_keys", "ssh_user_ca_key", b"ssh_user_ca_key", "ssh_user_ca_key_file", b"ssh_user_ca_key_file", "timeout_idle", b"timeout_idle", "timeout_read", b"timeout_read", "timeout_write", b"timeout_write"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_access_log_fields", b"_access_log_fields", "_address", b"_address", "_authenticate_callback_path", b"_authenticate_callback_path", "_authenticate_service_url", b"_authenticate_service_url", "_authorize_log_fields", b"_authorize_log_fields", "_authorize_service_url", b"_authorize_service_url", "_autocert", b"_autocert", "_autocert_dir", b"_autocert_dir", "_autocert_must_staple", b"_autocert_must_staple", "_autocert_use_staging", b"_autocert_use_staging", "_bearer_token_format", b"_bearer_token_format", "_cache_service_url", b"_cache_service_url", "_certificate_authority", b"_certificate_authority", "_certificate_authority_file", b"_certificate_authority_file", "_certificate_authority_key_pair_id", b"_certificate_authority_key_pair_id", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_client_ca", b"_client_ca", "_client_ca_file", b"_client_ca_file", "_client_ca_key_pair_id", b"_client_ca_key_pair_id", "_cluster_id", b"_cluster_id", "_codec_type", b"_codec_type", "_cookie_domain", b"_cookie_domain", "_cookie_expire", b"_cookie_expire", "_cookie_http_only", b"_cookie_http_only", "_cookie_name", b"_cookie_name", "_cookie_same_site", b"_cookie_same_site", "_cookie_secret", b"_cookie_secret", "_cookie_secure", b"_cookie_secure", "_darkmode_primary_color", b"_darkmode_primary_color", "_darkmode_secondary_color", b"_darkmode_secondary_color", "_databroker_service_url", b"_databroker_service_url", "_default_upstream_timeout", b"_default_upstream_timeout", "_dns_failure_refresh_rate", b"_dns_failure_refresh_rate", "_dns_lookup_family", b"_dns_lookup_family", "_dns_query_timeout", b"_dns_query_timeout", "_dns_query_tries", b"_dns_query_tries", "_dns_refresh_rate", b"_dns_refresh_rate", "_dns_udp_max_queries", b"_dns_udp_max_queries", "_dns_use_tcp", b"_dns_use_tcp", "_error_message_first_paragraph", b"_error_message_first_paragraph", "_favicon_url", b"_favicon_url", "_google_cloud_serverless_authentication_service_account", b"_google_cloud_serverless_authentication_service_account", "_grpc_address", b"_grpc_address", "_grpc_insecure", b"_grpc_insecure", "_http_redirect_addr", b"_http_redirect_addr", "_identity_provider", b"_identity_provider", "_identity_provider_options", b"_identity_provider_options", "_identity_provider_refresh_interval", b"_identity_provider_refresh_interval", "_identity_provider_refresh_timeout", b"_identity_provider_refresh_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_idp_provider", b"_idp_provider", "_idp_provider_url", b"_idp_provider_url", "_idp_refresh_directory_interval", b"_idp_refresh_directory_interval", "_idp_refresh_directory_timeout", b"_idp_refresh_directory_timeout", "_idp_service_account", b"_idp_service_account", "_insecure_server", b"_insecure_server", "_installation_id", b"_installation_id", "_jwt_issuer_format", b"_jwt_issuer_format", "_log_level", b"_log_level", "_logo_url", b"_logo_url", "_metrics_address", b"_metrics_address", "_otel_attribute_value_length_limit", b"_otel_attribute_value_length_limit", "_otel_bsp_max_export_batch_size", b"_otel_bsp_max_export_batch_size", "_otel_bsp_schedule_delay", b"_otel_bsp_schedule_delay", "_otel_exporter_otlp_endpoint", b"_otel_exporter_otlp_endpoint", "_otel_exporter_otlp_protocol", b"_otel_exporter_otlp_protocol", "_otel_exporter_otlp_timeout", b"_otel_exporter_otlp_timeout", "_otel_exporter_otlp_traces_endpoint", b"_otel_exporter_otlp_traces_endpoint", "_otel_exporter_otlp_traces_protocol", b"_otel_exporter_otlp_traces_protocol", "_otel_exporter_otlp_traces_timeout", b"_otel_exporter_otlp_traces_timeout", "_otel_log_level", b"_otel_log_level", "_otel_traces_exporter", b"_otel_traces_exporter", "_otel_traces_sampler_arg", b"_otel_traces_sampler_arg", "_pass_identity_headers", b"_pass_identity_headers", "_primary_color", b"_primary_color", "_proxy_log_level", b"_proxy_log_level", "_secondary_color", b"_secondary_color", "_services", b"_services", "_shared_secret", b"_shared_secret", "_skip_xff_append", b"_skip_xff_append", "_ssh_address", b"_ssh_address", "_ssh_host_key_files", b"_ssh_host_key_files", "_ssh_host_keys", b"_ssh_host_keys", "_ssh_user_ca_key", b"_ssh_user_ca_key", "_ssh_user_ca_key_file", b"_ssh_user_ca_key_file", "_timeout_idle", b"_timeout_idle", "_timeout_read", b"_timeout_read", "_timeout_write", b"_timeout_write", "access_log_fields", b"access_log_fields", "address", b"address", "authenticate_callback_path", b"authenticate_callback_path", "authenticate_service_url", b"authenticate_service_url", "authorize_log_fields", b"authorize_log_fields", "authorize_service_url", b"authorize_service_url", "autocert", b"autocert", "autocert_dir", b"autocert_dir", "autocert_must_staple", b"autocert_must_staple", "autocert_use_staging", b"autocert_use_staging", "bearer_token_format", b"bearer_token_format", "cache_service_url", b"cache_service_url", "certificate_authority", b"certificate_authority", "certificate_authority_file", b"certificate_authority_file", "certificate_authority_key_pair_id", b"certificate_authority_key_pair_id", "certificates", b"certificates", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "client_ca", b"client_ca", "client_ca_file", b"client_ca_file", "client_ca_key_pair_id", b"client_ca_key_pair_id", "cluster_id", b"cluster_id", "codec_type", b"codec_type", "cookie_domain", b"cookie_domain", "cookie_expire", b"cookie_expire", "cookie_http_only", b"cookie_http_only", "cookie_name", b"cookie_name", "cookie_same_site", b"cookie_same_site", "cookie_secret", b"cookie_secret", "cookie_secure", b"cookie_secure", "darkmode_primary_color", b"darkmode_primary_color", "darkmode_secondary_color", b"darkmode_secondary_color", "databroker_service_url", b"databroker_service_url", "default_upstream_timeout", b"default_upstream_timeout", "dns_failure_refresh_rate", b"dns_failure_refresh_rate", "dns_lookup_family", b"dns_lookup_family", "dns_query_timeout", b"dns_query_timeout", "dns_query_tries", b"dns_query_tries", "dns_refresh_rate", b"dns_refresh_rate", "dns_udp_max_queries", b"dns_udp_max_queries", "dns_use_tcp", b"dns_use_tcp", "error_message_first_paragraph", b"error_message_first_paragraph", "favicon_url", b"favicon_url", "google_cloud_serverless_authentication_service_account", b"google_cloud_serverless_authentication_service_account", "grpc_address", b"grpc_address", "grpc_insecure", b"grpc_insecure", "http_redirect_addr", b"http_redirect_addr", "id", b"id", "identity_provider", b"identity_provider", "identity_provider_options", b"identity_provider_options", "identity_provider_refresh_interval", b"identity_provider_refresh_interval", "identity_provider_refresh_timeout", b"identity_provider_refresh_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "idp_provider", b"idp_provider", "idp_provider_url", b"idp_provider_url", "idp_refresh_directory_interval", b"idp_refresh_directory_interval", "idp_refresh_directory_timeout", b"idp_refresh_directory_timeout", "idp_service_account", b"idp_service_account", "insecure_server", b"insecure_server", "installation_id", b"installation_id", "jwt_claims_headers", b"jwt_claims_headers", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "log_level", b"log_level", "logo_url", b"logo_url", "metrics_address", b"metrics_address", "modified_at", b"modified_at", "originator_id", b"originator_id", "otel_attribute_value_length_limit", b"otel_attribute_value_length_limit", "otel_bsp_max_export_batch_size", b"otel_bsp_max_export_batch_size", "otel_bsp_schedule_delay", b"otel_bsp_schedule_delay", "otel_exporter_otlp_endpoint", b"otel_exporter_otlp_endpoint", "otel_exporter_otlp_headers", b"otel_exporter_otlp_headers", "otel_exporter_otlp_protocol", b"otel_exporter_otlp_protocol", "otel_exporter_otlp_timeout", b"otel_exporter_otlp_timeout", "otel_exporter_otlp_traces_endpoint", b"otel_exporter_otlp_traces_endpoint", "otel_exporter_otlp_traces_headers", b"otel_exporter_otlp_traces_headers", "otel_exporter_otlp_traces_protocol", b"otel_exporter_otlp_traces_protocol", "otel_exporter_otlp_traces_timeout", b"otel_exporter_otlp_traces_timeout", "otel_log_level", b"otel_log_level", "otel_resource_attributes", b"otel_resource_attributes", "otel_traces_exporter", b"otel_traces_exporter", "otel_traces_sampler_arg", b"otel_traces_sampler_arg", "pass_identity_headers", b"pass_identity_headers", "primary_color", b"primary_color", "proxy_log_level", b"proxy_log_level", "request_params", b"request_params", "scopes", b"scopes", "secondary_color", b"secondary_color", "services", b"services", "set_response_headers", b"set_response_headers", "shared_secret", b"shared_secret", "skip_xff_append", b"skip_xff_append", "ssh_address", b"ssh_address", "ssh_host_key_files", b"ssh_host_key_files", "ssh_host_keys", b"ssh_host_keys", "ssh_user_ca_key", b"ssh_user_ca_key", "ssh_user_ca_key_file", b"ssh_user_ca_key_file", "timeout_idle", b"timeout_idle", "timeout_read", b"timeout_read", "timeout_write", b"timeout_write"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_access_log_fields", b"_access_log_fields"]) -> typing.Literal["access_log_fields"] | None: ... @typing.overload @@ -553,12 +562,16 @@ class Settings(google.protobuf.message.Message): @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_default_upstream_timeout", b"_default_upstream_timeout"]) -> typing.Literal["default_upstream_timeout"] | None: ... @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_dns_failure_refresh_rate", b"_dns_failure_refresh_rate"]) -> typing.Literal["dns_failure_refresh_rate"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_lookup_family", b"_dns_lookup_family"]) -> typing.Literal["dns_lookup_family"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_query_timeout", b"_dns_query_timeout"]) -> typing.Literal["dns_query_timeout"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_query_tries", b"_dns_query_tries"]) -> typing.Literal["dns_query_tries"] | None: ... @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_dns_refresh_rate", b"_dns_refresh_rate"]) -> typing.Literal["dns_refresh_rate"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_udp_max_queries", b"_dns_udp_max_queries"]) -> typing.Literal["dns_udp_max_queries"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_use_tcp", b"_dns_use_tcp"]) -> typing.Literal["dns_use_tcp"] | None: ... From 635ceda8c22966b3f1873fb7ef3f2efbd808442c Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:23:02 -0600 Subject: [PATCH 05/22] wip --- .github/workflows/test.yaml | 24 ------- .github/workflows/update.yaml | 18 +++++- src/pomerium/pb/routes_pb2.py | 106 ++++++++++++++++--------------- src/pomerium/pb/routes_pb2.pyi | 22 ++++++- src/pomerium/pb/settings_pb2.py | 56 ++++++++-------- src/pomerium/pb/settings_pb2.pyi | 31 ++++++--- 6 files changed, 138 insertions(+), 119 deletions(-) delete mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index 997fccc..0000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,24 +0,0 @@ -name: test - -on: - pull_request: - push: - branches: - - main -jobs: - tests: - needs: [update] - strategy: - matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 - - - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: ${{ matrix.python-version }} - - - run: pip install . - - - run: make test diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 84939a0..a13d93c 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -2,11 +2,12 @@ name: Update on: pull_request: - + push: + branches: + - main jobs: update: - runs-on: ubuntu-latest - # if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'pomerium/enterprise-client' + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 @@ -15,10 +16,21 @@ jobs: submodules: "true" token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} + - name: Setup Python + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: "3.9" + - name: Update run: | ./scripts/update + - name: Install + run: pip install . + + - name: Test + run: make test + - name: Commit uses: devops-infra/action-commit-push@e6a24fad602d1f92e46432c89a7e0c7fdd45d62d with: diff --git a/src/pomerium/pb/routes_pb2.py b/src/pomerium/pb/routes_pb2.py index 3e8371f..1744a59 100644 --- a/src/pomerium/pb/routes_pb2.py +++ b/src/pomerium/pb/routes_pb2.py @@ -30,7 +30,7 @@ from validate import validate_pb2 as validate_dot_validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0croutes.proto\x12\x12pomerium.dashboard\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0cpolicy.proto\x1a\x18route_health_check.proto\x1a\x1broute_redirect_action.proto\x1a\x17validate/validate.proto\"P\n\x12RouteRewriteHeader\x12\x0e\n\x06header\x18\x01 \x01(\t\x12\x10\n\x06prefix\x18\x03 \x01(\tH\x00\x12\r\n\x05value\x18\x02 \x01(\tB\t\n\x07matcher\"3\n\x13RouteDirectResponse\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\"Q\n\x0fJwtGroupsFilter\x12\x0e\n\x06groups\x18\x01 \x03(\t\x12\x1b\n\x0einfer_from_ppl\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_infer_from_ppl\"\x9a\x02\n\x18\x43ircuitBreakerThresholds\x12\x1c\n\x0fmax_connections\x18\x01 \x01(\rH\x00\x88\x01\x01\x12!\n\x14max_pending_requests\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_requests\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bmax_retries\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14max_connection_pools\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x12\n\x10_max_connectionsB\x17\n\x15_max_pending_requestsB\x0f\n\r_max_requestsB\x0e\n\x0c_max_retriesB\x17\n\x15_max_connection_pools\"o\n\x03MCP\x12/\n\x06server\x18\x01 \x01(\x0b\x32\x1d.pomerium.dashboard.MCPServerH\x00\x12/\n\x06\x63lient\x18\x02 \x01(\x0b\x32\x1d.pomerium.dashboard.MCPClientH\x00\x42\x06\n\x04mode\"\xb3\x01\n\tMCPServer\x12@\n\x0fupstream_oauth2\x18\x01 \x01(\x0b\x32\".pomerium.dashboard.UpstreamOAuth2H\x00\x88\x01\x01\x12\x1e\n\x11max_request_bytes\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04path\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x12\n\x10_upstream_oauth2B\x14\n\x12_max_request_bytesB\x07\n\x05_path\"\x0b\n\tMCPClient\"\x87\x01\n\x0eUpstreamOAuth2\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x15\n\rclient_secret\x18\x02 \x01(\t\x12;\n\x0foauth2_endpoint\x18\x03 \x01(\x0b\x32\".pomerium.dashboard.OAuth2Endpoint\x12\x0e\n\x06scopes\x18\x04 \x03(\t\"\x82\x01\n\x0eOAuth2Endpoint\x12\x10\n\x08\x61uth_url\x18\x01 \x01(\t\x12\x11\n\ttoken_url\x18\x02 \x01(\t\x12<\n\nauth_style\x18\x03 \x01(\x0e\x32#.pomerium.dashboard.OAuth2AuthStyleH\x00\x88\x01\x01\x42\r\n\x0b_auth_style\"\xae\x1c\n\x05Route\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x1d \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bmodified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x41 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08logo_url\x18\x42 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tstat_name\x18/ \x01(\t\x12\x0c\n\x04\x66rom\x18\x06 \x01(\t\x12\n\n\x02to\x18\x07 \x03(\t\x12\x34\n\x08redirect\x18\x43 \x01(\x0b\x32\".pomerium.dashboard.RedirectAction\x12\x39\n\x08response\x18; \x01(\x0b\x32\'.pomerium.dashboard.RouteDirectResponse\x12\x13\n\x06prefix\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04path\x18\t \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05regex\x18\n \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0eprefix_rewrite\x18$ \x01(\tH\x05\x88\x01\x01\x12\"\n\x15regex_rewrite_pattern\x18% \x01(\tH\x06\x88\x01\x01\x12\'\n\x1aregex_rewrite_substitution\x18& \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0chost_rewrite\x18\x1e \x01(\tH\x08\x88\x01\x01\x12 \n\x13host_rewrite_header\x18\x1f \x01(\tH\t\x88\x01\x01\x12,\n\x1fhost_path_regex_rewrite_pattern\x18 \x01(\tH\n\x88\x01\x01\x12\x31\n$host_path_regex_rewrite_substitution\x18! \x01(\tH\x0b\x88\x01\x01\x12!\n\x14regex_priority_order\x18- \x01(\x03H\x0c\x88\x01\x01\x12/\n\x07timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\r\x88\x01\x01\x12\x34\n\x0cidle_timeout\x18\x30 \x01(\x0b\x32\x19.google.protobuf.DurationH\x0e\x88\x01\x01\x12\x1d\n\x10\x61llow_websockets\x18\x0e \x01(\x08H\x0f\x88\x01\x01\x12\x17\n\nallow_spdy\x18\x31 \x01(\x08H\x10\x88\x01\x01\x12\x1c\n\x0ftls_skip_verify\x18\x0f \x01(\x08H\x11\x88\x01\x01\x12%\n\x18tls_upstream_server_name\x18\x33 \x01(\tH\x12\x88\x01\x01\x12\'\n\x1atls_downstream_server_name\x18\x34 \x01(\tH\x13\x88\x01\x01\x12&\n\x19tls_custom_ca_key_pair_id\x18) \x01(\tH\x14\x88\x01\x01\x12#\n\x16tls_client_key_pair_id\x18* \x01(\tH\x15\x88\x01\x01\x12\x31\n$tls_downstream_client_ca_key_pair_id\x18+ \x01(\tH\x16\x88\x01\x01\x12-\n tls_upstream_allow_renegotiation\x18\x37 \x01(\x08H\x17\x88\x01\x01\x12M\n\x13set_request_headers\x18\x17 \x03(\x0b\x32\x30.pomerium.dashboard.Route.SetRequestHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x18 \x03(\t\x12O\n\x14set_response_headers\x18\x38 \x03(\x0b\x32\x31.pomerium.dashboard.Route.SetResponseHeadersEntry\x12H\n\x18rewrite_response_headers\x18, \x03(\x0b\x32&.pomerium.dashboard.RouteRewriteHeader\x12!\n\x14preserve_host_header\x18\x19 \x01(\x08H\x18\x88\x01\x01\x12\"\n\x15pass_identity_headers\x18\x1a \x01(\x08H\x19\x88\x01\x01\x12-\n kubernetes_service_account_token\x18\x1b \x01(\tH\x1a\x88\x01\x01\x12\x32\n%kubernetes_service_account_token_file\x18< \x01(\tH\x1b\x88\x01\x01\x12\x35\n-enable_google_cloud_serverless_authentication\x18. \x01(\x08\x12@\n\x11jwt_issuer_format\x18= \x01(\x0e\x32 .pomerium.dashboard.IssuerFormatH\x1c\x88\x01\x01\x12G\n\x13\x62\x65\x61rer_token_format\x18\x44 \x01(\x0e\x32%.pomerium.dashboard.BearerTokenFormatH\x1d\x88\x01\x01\x12>\n\x11jwt_groups_filter\x18> \x01(\x0b\x32#.pomerium.dashboard.JwtGroupsFilter\x12\x1a\n\ridp_client_id\x18\x39 \x01(\tH\x1e\x88\x01\x01\x12\x1e\n\x11idp_client_secret\x18: \x01(\tH\x1f\x88\x01\x01\x12\x1a\n\x12show_error_details\x18\x35 \x01(\x08\x12\x15\n\roriginator_id\x18\x36 \x01(\t\x12\x12\n\npolicy_ids\x18\x1c \x03(\t\x12\x12\n\ndepends_on\x18H \x03(\t\x12\x14\n\x0cpolicy_names\x18\" \x03(\t\x12\x16\n\x0enamespace_name\x18# \x01(\t\x12\x1b\n\x13\x65nforced_policy_ids\x18? \x03(\t\x12\x1d\n\x15\x65nforced_policy_names\x18@ \x03(\t\x12U\n\"idp_access_token_allowed_audiences\x18\x45 \x01(\x0b\x32$.pomerium.dashboard.Route.StringListH \x88\x01\x01\x12U\n\x15load_balancing_policy\x18\x46 \x01(\x0e\x32\'.pomerium.dashboard.LoadBalancingPolicyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01H!\x88\x01\x01\x12\x36\n\rhealth_checks\x18G \x03(\x0b\x32\x1f.pomerium.dashboard.HealthCheck\x12U\n\x1a\x63ircuit_breaker_thresholds\x18I \x01(\x0b\x32,.pomerium.dashboard.CircuitBreakerThresholdsH\"\x88\x01\x01\x12)\n\x03mcp\x18J \x01(\x0b\x32\x17.pomerium.dashboard.MCPH#\x88\x01\x01\x12$\n\x17healthy_panic_threshold\x18K \x01(\x05H$\x88\x01\x01\x1a\x1c\n\nStringList\x12\x0e\n\x06values\x18\x01 \x03(\t\x1a\x38\n\x16SetRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x39\n\x17SetResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_logo_urlB\t\n\x07_prefixB\x07\n\x05_pathB\x08\n\x06_regexB\x11\n\x0f_prefix_rewriteB\x18\n\x16_regex_rewrite_patternB\x1d\n\x1b_regex_rewrite_substitutionB\x0f\n\r_host_rewriteB\x16\n\x14_host_rewrite_headerB\"\n _host_path_regex_rewrite_patternB\'\n%_host_path_regex_rewrite_substitutionB\x17\n\x15_regex_priority_orderB\n\n\x08_timeoutB\x0f\n\r_idle_timeoutB\x13\n\x11_allow_websocketsB\r\n\x0b_allow_spdyB\x12\n\x10_tls_skip_verifyB\x1b\n\x19_tls_upstream_server_nameB\x1d\n\x1b_tls_downstream_server_nameB\x1c\n\x1a_tls_custom_ca_key_pair_idB\x19\n\x17_tls_client_key_pair_idB\'\n%_tls_downstream_client_ca_key_pair_idB#\n!_tls_upstream_allow_renegotiationB\x17\n\x15_preserve_host_headerB\x18\n\x16_pass_identity_headersB#\n!_kubernetes_service_account_tokenB(\n&_kubernetes_service_account_token_fileB\x14\n\x12_jwt_issuer_formatB\x16\n\x14_bearer_token_formatB\x10\n\x0e_idp_client_idB\x14\n\x12_idp_client_secretB%\n#_idp_access_token_allowed_audiencesB\x18\n\x16_load_balancing_policyB\x1d\n\x1b_circuit_breaker_thresholdsB\x06\n\x04_mcpB\x1a\n\x18_healthy_panic_thresholdJ\x04\x08(\x10)J\x04\x08\x32\x10\x33J\x04\x08\'\x10(\"k\n\x11RouteWithPolicies\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\x12,\n\x08policies\x18\x02 \x03(\x0b\x32\x1a.pomerium.dashboard.Policy\" \n\x12\x44\x65leteRouteRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65leteRouteResponse\"\"\n\x13\x44\x65leteRoutesRequest\x12\x0b\n\x03ids\x18\x01 \x03(\t\"\x16\n\x14\x44\x65leteRoutesResponse\"\x1d\n\x0fGetRouteRequest\x12\n\n\x02id\x18\x01 \x01(\t\"<\n\x10GetRouteResponse\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"\xce\x01\n\x11ListRoutesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x17\n\ncluster_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\x08\n\x06_queryB\t\n\x07_offsetB\x08\n\x06_limitB\x0b\n\t_order_byB\r\n\x0b_cluster_id\"T\n\x12ListRoutesResponse\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\x12\x13\n\x0btotal_count\x18\x02 \x01(\x03\"3\n\x11LoadRoutesRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x63ontents\x18\x02 \x01(\x0c\"K\n\x12LoadRoutesResponse\x12\x35\n\x06routes\x18\x01 \x03(\x0b\x32%.pomerium.dashboard.RouteWithPolicies\";\n\x0fSetRouteRequest\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"<\n\x10SetRouteResponse\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"=\n\x10SetRoutesRequest\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\">\n\x11SetRoutesResponse\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\"@\n\x11MoveRoutesRequest\x12\x11\n\troute_ids\x18\x01 \x03(\t\x12\x18\n\x10new_namespace_id\x18\x02 \x01(\t\"\x14\n\x12MoveRoutesResponse*1\n\x0cIssuerFormat\x12\x12\n\x0eIssuerHostOnly\x10\x00\x12\r\n\tIssuerURI\x10\x01*\xab\x01\n\x11\x42\x65\x61rerTokenFormat\x12\x1f\n\x1b\x42\x45\x41RER_TOKEN_FORMAT_UNKNOWN\x10\x00\x12\x1f\n\x1b\x42\x45\x41RER_TOKEN_FORMAT_DEFAULT\x10\x01\x12(\n$BEARER_TOKEN_FORMAT_IDP_ACCESS_TOKEN\x10\x02\x12*\n&BEARER_TOKEN_FORMAT_IDP_IDENTITY_TOKEN\x10\x03*\xf5\x01\n\x13LoadBalancingPolicy\x12%\n!LOAD_BALANCING_POLICY_UNSPECIFIED\x10\x00\x12%\n!LOAD_BALANCING_POLICY_ROUND_ROBIN\x10\x01\x12 \n\x1cLOAD_BALANCING_POLICY_MAGLEV\x10\x02\x12 \n\x1cLOAD_BALANCING_POLICY_RANDOM\x10\x03\x12#\n\x1fLOAD_BALANCING_POLICY_RING_HASH\x10\x04\x12\'\n#LOAD_BALANCING_POLICY_LEAST_REQUEST\x10\x05*v\n\x0fOAuth2AuthStyle\x12!\n\x1dOAUTH2_AUTH_STYLE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bOAUTH2_AUTH_STYLE_IN_PARAMS\x10\x01\x12\x1f\n\x1bOAUTH2_AUTH_STYLE_IN_HEADER\x10\x02\x32\xf0\x05\n\x0cRouteService\x12^\n\x0b\x44\x65leteRoute\x12&.pomerium.dashboard.DeleteRouteRequest\x1a\'.pomerium.dashboard.DeleteRouteResponse\x12\x61\n\x0c\x44\x65leteRoutes\x12\'.pomerium.dashboard.DeleteRoutesRequest\x1a(.pomerium.dashboard.DeleteRoutesResponse\x12U\n\x08GetRoute\x12#.pomerium.dashboard.GetRouteRequest\x1a$.pomerium.dashboard.GetRouteResponse\x12[\n\nListRoutes\x12%.pomerium.dashboard.ListRoutesRequest\x1a&.pomerium.dashboard.ListRoutesResponse\x12[\n\nLoadRoutes\x12%.pomerium.dashboard.LoadRoutesRequest\x1a&.pomerium.dashboard.LoadRoutesResponse\x12U\n\x08SetRoute\x12#.pomerium.dashboard.SetRouteRequest\x1a$.pomerium.dashboard.SetRouteResponse\x12X\n\tSetRoutes\x12$.pomerium.dashboard.SetRoutesRequest\x1a%.pomerium.dashboard.SetRoutesResponse\x12[\n\nMoveRoutes\x12%.pomerium.dashboard.MoveRoutesRequest\x1a&.pomerium.dashboard.MoveRoutesResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0croutes.proto\x12\x12pomerium.dashboard\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0cpolicy.proto\x1a\x18route_health_check.proto\x1a\x1broute_redirect_action.proto\x1a\x17validate/validate.proto\"P\n\x12RouteRewriteHeader\x12\x0e\n\x06header\x18\x01 \x01(\t\x12\x10\n\x06prefix\x18\x03 \x01(\tH\x00\x12\r\n\x05value\x18\x02 \x01(\tB\t\n\x07matcher\"3\n\x13RouteDirectResponse\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0c\n\x04\x62ody\x18\x02 \x01(\t\"Q\n\x0fJwtGroupsFilter\x12\x0e\n\x06groups\x18\x01 \x03(\t\x12\x1b\n\x0einfer_from_ppl\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_infer_from_ppl\"\x9a\x02\n\x18\x43ircuitBreakerThresholds\x12\x1c\n\x0fmax_connections\x18\x01 \x01(\rH\x00\x88\x01\x01\x12!\n\x14max_pending_requests\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_requests\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bmax_retries\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14max_connection_pools\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x12\n\x10_max_connectionsB\x17\n\x15_max_pending_requestsB\x0f\n\r_max_requestsB\x0e\n\x0c_max_retriesB\x17\n\x15_max_connection_pools\"o\n\x03MCP\x12/\n\x06server\x18\x01 \x01(\x0b\x32\x1d.pomerium.dashboard.MCPServerH\x00\x12/\n\x06\x63lient\x18\x02 \x01(\x0b\x32\x1d.pomerium.dashboard.MCPClientH\x00\x42\x06\n\x04mode\"\xb3\x01\n\tMCPServer\x12@\n\x0fupstream_oauth2\x18\x01 \x01(\x0b\x32\".pomerium.dashboard.UpstreamOAuth2H\x00\x88\x01\x01\x12\x1e\n\x11max_request_bytes\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04path\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x12\n\x10_upstream_oauth2B\x14\n\x12_max_request_bytesB\x07\n\x05_path\"\x0b\n\tMCPClient\"\x87\x01\n\x0eUpstreamOAuth2\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x15\n\rclient_secret\x18\x02 \x01(\t\x12;\n\x0foauth2_endpoint\x18\x03 \x01(\x0b\x32\".pomerium.dashboard.OAuth2Endpoint\x12\x0e\n\x06scopes\x18\x04 \x03(\t\"\x82\x01\n\x0eOAuth2Endpoint\x12\x10\n\x08\x61uth_url\x18\x01 \x01(\t\x12\x11\n\ttoken_url\x18\x02 \x01(\t\x12<\n\nauth_style\x18\x03 \x01(\x0e\x32#.pomerium.dashboard.OAuth2AuthStyleH\x00\x88\x01\x01\x42\r\n\x0b_auth_style\"\x84\x1d\n\x05Route\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x1d \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bmodified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x41 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08logo_url\x18\x42 \x01(\tH\x01\x88\x01\x01\x12\x11\n\tstat_name\x18/ \x01(\t\x12\x0c\n\x04\x66rom\x18\x06 \x01(\t\x12\n\n\x02to\x18\x07 \x03(\t\x12\x34\n\x08redirect\x18\x43 \x01(\x0b\x32\".pomerium.dashboard.RedirectAction\x12\x39\n\x08response\x18; \x01(\x0b\x32\'.pomerium.dashboard.RouteDirectResponse\x12\x13\n\x06prefix\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04path\x18\t \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05regex\x18\n \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0eprefix_rewrite\x18$ \x01(\tH\x05\x88\x01\x01\x12\"\n\x15regex_rewrite_pattern\x18% \x01(\tH\x06\x88\x01\x01\x12\'\n\x1aregex_rewrite_substitution\x18& \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0chost_rewrite\x18\x1e \x01(\tH\x08\x88\x01\x01\x12 \n\x13host_rewrite_header\x18\x1f \x01(\tH\t\x88\x01\x01\x12,\n\x1fhost_path_regex_rewrite_pattern\x18 \x01(\tH\n\x88\x01\x01\x12\x31\n$host_path_regex_rewrite_substitution\x18! \x01(\tH\x0b\x88\x01\x01\x12!\n\x14regex_priority_order\x18- \x01(\x03H\x0c\x88\x01\x01\x12/\n\x07timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\r\x88\x01\x01\x12\x34\n\x0cidle_timeout\x18\x30 \x01(\x0b\x32\x19.google.protobuf.DurationH\x0e\x88\x01\x01\x12\x1d\n\x10\x61llow_websockets\x18\x0e \x01(\x08H\x0f\x88\x01\x01\x12\x17\n\nallow_spdy\x18\x31 \x01(\x08H\x10\x88\x01\x01\x12\x1c\n\x0ftls_skip_verify\x18\x0f \x01(\x08H\x11\x88\x01\x01\x12%\n\x18tls_upstream_server_name\x18\x33 \x01(\tH\x12\x88\x01\x01\x12\'\n\x1atls_downstream_server_name\x18\x34 \x01(\tH\x13\x88\x01\x01\x12&\n\x19tls_custom_ca_key_pair_id\x18) \x01(\tH\x14\x88\x01\x01\x12#\n\x16tls_client_key_pair_id\x18* \x01(\tH\x15\x88\x01\x01\x12\x31\n$tls_downstream_client_ca_key_pair_id\x18+ \x01(\tH\x16\x88\x01\x01\x12-\n tls_upstream_allow_renegotiation\x18\x37 \x01(\x08H\x17\x88\x01\x01\x12M\n\x13set_request_headers\x18\x17 \x03(\x0b\x32\x30.pomerium.dashboard.Route.SetRequestHeadersEntry\x12\x1e\n\x16remove_request_headers\x18\x18 \x03(\t\x12O\n\x14set_response_headers\x18\x38 \x03(\x0b\x32\x31.pomerium.dashboard.Route.SetResponseHeadersEntry\x12H\n\x18rewrite_response_headers\x18, \x03(\x0b\x32&.pomerium.dashboard.RouteRewriteHeader\x12!\n\x14preserve_host_header\x18\x19 \x01(\x08H\x18\x88\x01\x01\x12\"\n\x15pass_identity_headers\x18\x1a \x01(\x08H\x19\x88\x01\x01\x12-\n kubernetes_service_account_token\x18\x1b \x01(\tH\x1a\x88\x01\x01\x12\x32\n%kubernetes_service_account_token_file\x18< \x01(\tH\x1b\x88\x01\x01\x12\x35\n-enable_google_cloud_serverless_authentication\x18. \x01(\x08\x12@\n\x11jwt_issuer_format\x18= \x01(\x0e\x32 .pomerium.dashboard.IssuerFormatH\x1c\x88\x01\x01\x12G\n\x13\x62\x65\x61rer_token_format\x18\x44 \x01(\x0e\x32%.pomerium.dashboard.BearerTokenFormatH\x1d\x88\x01\x01\x12>\n\x11jwt_groups_filter\x18> \x01(\x0b\x32#.pomerium.dashboard.JwtGroupsFilter\x12\x1a\n\ridp_client_id\x18\x39 \x01(\tH\x1e\x88\x01\x01\x12\x1e\n\x11idp_client_secret\x18: \x01(\tH\x1f\x88\x01\x01\x12\x1a\n\x12show_error_details\x18\x35 \x01(\x08\x12\x15\n\roriginator_id\x18\x36 \x01(\t\x12\x12\n\npolicy_ids\x18\x1c \x03(\t\x12\x12\n\ndepends_on\x18H \x03(\t\x12\x14\n\x0cpolicy_names\x18\" \x03(\t\x12\x16\n\x0enamespace_name\x18# \x01(\t\x12\x1b\n\x13\x65nforced_policy_ids\x18? \x03(\t\x12\x1d\n\x15\x65nforced_policy_names\x18@ \x03(\t\x12U\n\"idp_access_token_allowed_audiences\x18\x45 \x01(\x0b\x32$.pomerium.dashboard.Route.StringListH \x88\x01\x01\x12U\n\x15load_balancing_policy\x18\x46 \x01(\x0e\x32\'.pomerium.dashboard.LoadBalancingPolicyB\x08\xfa\x42\x05\x82\x01\x02\x10\x01H!\x88\x01\x01\x12\x36\n\rhealth_checks\x18G \x03(\x0b\x32\x1f.pomerium.dashboard.HealthCheck\x12U\n\x1a\x63ircuit_breaker_thresholds\x18I \x01(\x0b\x32,.pomerium.dashboard.CircuitBreakerThresholdsH\"\x88\x01\x01\x12)\n\x03mcp\x18J \x01(\x0b\x32\x17.pomerium.dashboard.MCPH#\x88\x01\x01\x12$\n\x17healthy_panic_threshold\x18K \x01(\x05H$\x88\x01\x01\x12@\n\x0fupstream_tunnel\x18L \x01(\x0b\x32\".pomerium.dashboard.UpstreamTunnelH%\x88\x01\x01\x1a\x1c\n\nStringList\x12\x0e\n\x06values\x18\x01 \x03(\t\x1a\x38\n\x16SetRequestHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x39\n\x17SetResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_logo_urlB\t\n\x07_prefixB\x07\n\x05_pathB\x08\n\x06_regexB\x11\n\x0f_prefix_rewriteB\x18\n\x16_regex_rewrite_patternB\x1d\n\x1b_regex_rewrite_substitutionB\x0f\n\r_host_rewriteB\x16\n\x14_host_rewrite_headerB\"\n _host_path_regex_rewrite_patternB\'\n%_host_path_regex_rewrite_substitutionB\x17\n\x15_regex_priority_orderB\n\n\x08_timeoutB\x0f\n\r_idle_timeoutB\x13\n\x11_allow_websocketsB\r\n\x0b_allow_spdyB\x12\n\x10_tls_skip_verifyB\x1b\n\x19_tls_upstream_server_nameB\x1d\n\x1b_tls_downstream_server_nameB\x1c\n\x1a_tls_custom_ca_key_pair_idB\x19\n\x17_tls_client_key_pair_idB\'\n%_tls_downstream_client_ca_key_pair_idB#\n!_tls_upstream_allow_renegotiationB\x17\n\x15_preserve_host_headerB\x18\n\x16_pass_identity_headersB#\n!_kubernetes_service_account_tokenB(\n&_kubernetes_service_account_token_fileB\x14\n\x12_jwt_issuer_formatB\x16\n\x14_bearer_token_formatB\x10\n\x0e_idp_client_idB\x14\n\x12_idp_client_secretB%\n#_idp_access_token_allowed_audiencesB\x18\n\x16_load_balancing_policyB\x1d\n\x1b_circuit_breaker_thresholdsB\x06\n\x04_mcpB\x1a\n\x18_healthy_panic_thresholdB\x12\n\x10_upstream_tunnelJ\x04\x08(\x10)J\x04\x08\x32\x10\x33J\x04\x08\'\x10(\"\x10\n\x0eUpstreamTunnel\"k\n\x11RouteWithPolicies\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\x12,\n\x08policies\x18\x02 \x03(\x0b\x32\x1a.pomerium.dashboard.Policy\" \n\x12\x44\x65leteRouteRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65leteRouteResponse\"\"\n\x13\x44\x65leteRoutesRequest\x12\x0b\n\x03ids\x18\x01 \x03(\t\"\x16\n\x14\x44\x65leteRoutesResponse\"\x1d\n\x0fGetRouteRequest\x12\n\n\x02id\x18\x01 \x01(\t\"<\n\x10GetRouteResponse\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"\xce\x01\n\x11ListRoutesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x17\n\ncluster_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\x08\n\x06_queryB\t\n\x07_offsetB\x08\n\x06_limitB\x0b\n\t_order_byB\r\n\x0b_cluster_id\"T\n\x12ListRoutesResponse\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\x12\x13\n\x0btotal_count\x18\x02 \x01(\x03\"3\n\x11LoadRoutesRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x63ontents\x18\x02 \x01(\x0c\"K\n\x12LoadRoutesResponse\x12\x35\n\x06routes\x18\x01 \x03(\x0b\x32%.pomerium.dashboard.RouteWithPolicies\";\n\x0fSetRouteRequest\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"<\n\x10SetRouteResponse\x12(\n\x05route\x18\x01 \x01(\x0b\x32\x19.pomerium.dashboard.Route\"=\n\x10SetRoutesRequest\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\">\n\x11SetRoutesResponse\x12)\n\x06routes\x18\x01 \x03(\x0b\x32\x19.pomerium.dashboard.Route\"@\n\x11MoveRoutesRequest\x12\x11\n\troute_ids\x18\x01 \x03(\t\x12\x18\n\x10new_namespace_id\x18\x02 \x01(\t\"\x14\n\x12MoveRoutesResponse*1\n\x0cIssuerFormat\x12\x12\n\x0eIssuerHostOnly\x10\x00\x12\r\n\tIssuerURI\x10\x01*\xab\x01\n\x11\x42\x65\x61rerTokenFormat\x12\x1f\n\x1b\x42\x45\x41RER_TOKEN_FORMAT_UNKNOWN\x10\x00\x12\x1f\n\x1b\x42\x45\x41RER_TOKEN_FORMAT_DEFAULT\x10\x01\x12(\n$BEARER_TOKEN_FORMAT_IDP_ACCESS_TOKEN\x10\x02\x12*\n&BEARER_TOKEN_FORMAT_IDP_IDENTITY_TOKEN\x10\x03*\xf5\x01\n\x13LoadBalancingPolicy\x12%\n!LOAD_BALANCING_POLICY_UNSPECIFIED\x10\x00\x12%\n!LOAD_BALANCING_POLICY_ROUND_ROBIN\x10\x01\x12 \n\x1cLOAD_BALANCING_POLICY_MAGLEV\x10\x02\x12 \n\x1cLOAD_BALANCING_POLICY_RANDOM\x10\x03\x12#\n\x1fLOAD_BALANCING_POLICY_RING_HASH\x10\x04\x12\'\n#LOAD_BALANCING_POLICY_LEAST_REQUEST\x10\x05*v\n\x0fOAuth2AuthStyle\x12!\n\x1dOAUTH2_AUTH_STYLE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bOAUTH2_AUTH_STYLE_IN_PARAMS\x10\x01\x12\x1f\n\x1bOAUTH2_AUTH_STYLE_IN_HEADER\x10\x02\x32\xf0\x05\n\x0cRouteService\x12^\n\x0b\x44\x65leteRoute\x12&.pomerium.dashboard.DeleteRouteRequest\x1a\'.pomerium.dashboard.DeleteRouteResponse\x12\x61\n\x0c\x44\x65leteRoutes\x12\'.pomerium.dashboard.DeleteRoutesRequest\x1a(.pomerium.dashboard.DeleteRoutesResponse\x12U\n\x08GetRoute\x12#.pomerium.dashboard.GetRouteRequest\x1a$.pomerium.dashboard.GetRouteResponse\x12[\n\nListRoutes\x12%.pomerium.dashboard.ListRoutesRequest\x1a&.pomerium.dashboard.ListRoutesResponse\x12[\n\nLoadRoutes\x12%.pomerium.dashboard.LoadRoutesRequest\x1a&.pomerium.dashboard.LoadRoutesResponse\x12U\n\x08SetRoute\x12#.pomerium.dashboard.SetRouteRequest\x1a$.pomerium.dashboard.SetRouteResponse\x12X\n\tSetRoutes\x12$.pomerium.dashboard.SetRoutesRequest\x1a%.pomerium.dashboard.SetRoutesResponse\x12[\n\nMoveRoutes\x12%.pomerium.dashboard.MoveRoutesRequest\x1a&.pomerium.dashboard.MoveRoutesResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -44,14 +44,14 @@ _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_options = b'8\001' _globals['_ROUTE'].fields_by_name['load_balancing_policy']._loaded_options = None _globals['_ROUTE'].fields_by_name['load_balancing_policy']._serialized_options = b'\372B\005\202\001\002\020\001' - _globals['_ISSUERFORMAT']._serialized_start=5992 - _globals['_ISSUERFORMAT']._serialized_end=6041 - _globals['_BEARERTOKENFORMAT']._serialized_start=6044 - _globals['_BEARERTOKENFORMAT']._serialized_end=6215 - _globals['_LOADBALANCINGPOLICY']._serialized_start=6218 - _globals['_LOADBALANCINGPOLICY']._serialized_end=6463 - _globals['_OAUTH2AUTHSTYLE']._serialized_start=6465 - _globals['_OAUTH2AUTHSTYLE']._serialized_end=6583 + _globals['_ISSUERFORMAT']._serialized_start=6096 + _globals['_ISSUERFORMAT']._serialized_end=6145 + _globals['_BEARERTOKENFORMAT']._serialized_start=6148 + _globals['_BEARERTOKENFORMAT']._serialized_end=6319 + _globals['_LOADBALANCINGPOLICY']._serialized_start=6322 + _globals['_LOADBALANCINGPOLICY']._serialized_end=6567 + _globals['_OAUTH2AUTHSTYLE']._serialized_start=6569 + _globals['_OAUTH2AUTHSTYLE']._serialized_end=6687 _globals['_ROUTEREWRITEHEADER']._serialized_start=195 _globals['_ROUTEREWRITEHEADER']._serialized_end=275 _globals['_ROUTEDIRECTRESPONSE']._serialized_start=277 @@ -71,47 +71,49 @@ _globals['_OAUTH2ENDPOINT']._serialized_start=1145 _globals['_OAUTH2ENDPOINT']._serialized_end=1275 _globals['_ROUTE']._serialized_start=1278 - _globals['_ROUTE']._serialized_end=4908 - _globals['_ROUTE_STRINGLIST']._serialized_start=3839 - _globals['_ROUTE_STRINGLIST']._serialized_end=3867 - _globals['_ROUTE_SETREQUESTHEADERSENTRY']._serialized_start=3869 - _globals['_ROUTE_SETREQUESTHEADERSENTRY']._serialized_end=3925 - _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_start=3927 - _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_end=3984 - _globals['_ROUTEWITHPOLICIES']._serialized_start=4910 - _globals['_ROUTEWITHPOLICIES']._serialized_end=5017 - _globals['_DELETEROUTEREQUEST']._serialized_start=5019 - _globals['_DELETEROUTEREQUEST']._serialized_end=5051 - _globals['_DELETEROUTERESPONSE']._serialized_start=5053 - _globals['_DELETEROUTERESPONSE']._serialized_end=5074 - _globals['_DELETEROUTESREQUEST']._serialized_start=5076 - _globals['_DELETEROUTESREQUEST']._serialized_end=5110 - _globals['_DELETEROUTESRESPONSE']._serialized_start=5112 - _globals['_DELETEROUTESRESPONSE']._serialized_end=5134 - _globals['_GETROUTEREQUEST']._serialized_start=5136 - _globals['_GETROUTEREQUEST']._serialized_end=5165 - _globals['_GETROUTERESPONSE']._serialized_start=5167 - _globals['_GETROUTERESPONSE']._serialized_end=5227 - _globals['_LISTROUTESREQUEST']._serialized_start=5230 - _globals['_LISTROUTESREQUEST']._serialized_end=5436 - _globals['_LISTROUTESRESPONSE']._serialized_start=5438 - _globals['_LISTROUTESRESPONSE']._serialized_end=5522 - _globals['_LOADROUTESREQUEST']._serialized_start=5524 - _globals['_LOADROUTESREQUEST']._serialized_end=5575 - _globals['_LOADROUTESRESPONSE']._serialized_start=5577 - _globals['_LOADROUTESRESPONSE']._serialized_end=5652 - _globals['_SETROUTEREQUEST']._serialized_start=5654 - _globals['_SETROUTEREQUEST']._serialized_end=5713 - _globals['_SETROUTERESPONSE']._serialized_start=5715 - _globals['_SETROUTERESPONSE']._serialized_end=5775 - _globals['_SETROUTESREQUEST']._serialized_start=5777 - _globals['_SETROUTESREQUEST']._serialized_end=5838 - _globals['_SETROUTESRESPONSE']._serialized_start=5840 - _globals['_SETROUTESRESPONSE']._serialized_end=5902 - _globals['_MOVEROUTESREQUEST']._serialized_start=5904 - _globals['_MOVEROUTESREQUEST']._serialized_end=5968 - _globals['_MOVEROUTESRESPONSE']._serialized_start=5970 - _globals['_MOVEROUTESRESPONSE']._serialized_end=5990 - _globals['_ROUTESERVICE']._serialized_start=6586 - _globals['_ROUTESERVICE']._serialized_end=7338 + _globals['_ROUTE']._serialized_end=4994 + _globals['_ROUTE_STRINGLIST']._serialized_start=3905 + _globals['_ROUTE_STRINGLIST']._serialized_end=3933 + _globals['_ROUTE_SETREQUESTHEADERSENTRY']._serialized_start=3935 + _globals['_ROUTE_SETREQUESTHEADERSENTRY']._serialized_end=3991 + _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_start=3993 + _globals['_ROUTE_SETRESPONSEHEADERSENTRY']._serialized_end=4050 + _globals['_UPSTREAMTUNNEL']._serialized_start=4996 + _globals['_UPSTREAMTUNNEL']._serialized_end=5012 + _globals['_ROUTEWITHPOLICIES']._serialized_start=5014 + _globals['_ROUTEWITHPOLICIES']._serialized_end=5121 + _globals['_DELETEROUTEREQUEST']._serialized_start=5123 + _globals['_DELETEROUTEREQUEST']._serialized_end=5155 + _globals['_DELETEROUTERESPONSE']._serialized_start=5157 + _globals['_DELETEROUTERESPONSE']._serialized_end=5178 + _globals['_DELETEROUTESREQUEST']._serialized_start=5180 + _globals['_DELETEROUTESREQUEST']._serialized_end=5214 + _globals['_DELETEROUTESRESPONSE']._serialized_start=5216 + _globals['_DELETEROUTESRESPONSE']._serialized_end=5238 + _globals['_GETROUTEREQUEST']._serialized_start=5240 + _globals['_GETROUTEREQUEST']._serialized_end=5269 + _globals['_GETROUTERESPONSE']._serialized_start=5271 + _globals['_GETROUTERESPONSE']._serialized_end=5331 + _globals['_LISTROUTESREQUEST']._serialized_start=5334 + _globals['_LISTROUTESREQUEST']._serialized_end=5540 + _globals['_LISTROUTESRESPONSE']._serialized_start=5542 + _globals['_LISTROUTESRESPONSE']._serialized_end=5626 + _globals['_LOADROUTESREQUEST']._serialized_start=5628 + _globals['_LOADROUTESREQUEST']._serialized_end=5679 + _globals['_LOADROUTESRESPONSE']._serialized_start=5681 + _globals['_LOADROUTESRESPONSE']._serialized_end=5756 + _globals['_SETROUTEREQUEST']._serialized_start=5758 + _globals['_SETROUTEREQUEST']._serialized_end=5817 + _globals['_SETROUTERESPONSE']._serialized_start=5819 + _globals['_SETROUTERESPONSE']._serialized_end=5879 + _globals['_SETROUTESREQUEST']._serialized_start=5881 + _globals['_SETROUTESREQUEST']._serialized_end=5942 + _globals['_SETROUTESRESPONSE']._serialized_start=5944 + _globals['_SETROUTESRESPONSE']._serialized_end=6006 + _globals['_MOVEROUTESREQUEST']._serialized_start=6008 + _globals['_MOVEROUTESREQUEST']._serialized_end=6072 + _globals['_MOVEROUTESRESPONSE']._serialized_start=6074 + _globals['_MOVEROUTESRESPONSE']._serialized_end=6094 + _globals['_ROUTESERVICE']._serialized_start=6690 + _globals['_ROUTESERVICE']._serialized_end=7442 # @@protoc_insertion_point(module_scope) diff --git a/src/pomerium/pb/routes_pb2.pyi b/src/pomerium/pb/routes_pb2.pyi index 7bf52b8..5f65a18 100644 --- a/src/pomerium/pb/routes_pb2.pyi +++ b/src/pomerium/pb/routes_pb2.pyi @@ -373,7 +373,7 @@ global___OAuth2Endpoint = OAuth2Endpoint @typing.final class Route(google.protobuf.message.Message): """Route defines a proxy route's settings and policy associations - Next ID: 75 + Next ID: 77 """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -487,6 +487,7 @@ class Route(google.protobuf.message.Message): CIRCUIT_BREAKER_THRESHOLDS_FIELD_NUMBER: builtins.int MCP_FIELD_NUMBER: builtins.int HEALTHY_PANIC_THRESHOLD_FIELD_NUMBER: builtins.int + UPSTREAM_TUNNEL_FIELD_NUMBER: builtins.int id: builtins.str namespace_id: builtins.str name: builtins.str @@ -581,6 +582,8 @@ class Route(google.protobuf.message.Message): def circuit_breaker_thresholds(self) -> global___CircuitBreakerThresholds: ... @property def mcp(self) -> global___MCP: ... + @property + def upstream_tunnel(self) -> global___UpstreamTunnel: ... def __init__( self, *, @@ -646,9 +649,10 @@ class Route(google.protobuf.message.Message): circuit_breaker_thresholds: global___CircuitBreakerThresholds | None = ..., mcp: global___MCP | None = ..., healthy_panic_threshold: builtins.int | None = ..., + upstream_tunnel: global___UpstreamTunnel | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_allow_spdy", b"_allow_spdy", "_allow_websockets", b"_allow_websockets", "_bearer_token_format", b"_bearer_token_format", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_description", b"_description", "_healthy_panic_threshold", b"_healthy_panic_threshold", "_host_path_regex_rewrite_pattern", b"_host_path_regex_rewrite_pattern", "_host_path_regex_rewrite_substitution", b"_host_path_regex_rewrite_substitution", "_host_rewrite", b"_host_rewrite", "_host_rewrite_header", b"_host_rewrite_header", "_idle_timeout", b"_idle_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_jwt_issuer_format", b"_jwt_issuer_format", "_kubernetes_service_account_token", b"_kubernetes_service_account_token", "_kubernetes_service_account_token_file", b"_kubernetes_service_account_token_file", "_load_balancing_policy", b"_load_balancing_policy", "_logo_url", b"_logo_url", "_mcp", b"_mcp", "_pass_identity_headers", b"_pass_identity_headers", "_path", b"_path", "_prefix", b"_prefix", "_prefix_rewrite", b"_prefix_rewrite", "_preserve_host_header", b"_preserve_host_header", "_regex", b"_regex", "_regex_priority_order", b"_regex_priority_order", "_regex_rewrite_pattern", b"_regex_rewrite_pattern", "_regex_rewrite_substitution", b"_regex_rewrite_substitution", "_timeout", b"_timeout", "_tls_client_key_pair_id", b"_tls_client_key_pair_id", "_tls_custom_ca_key_pair_id", b"_tls_custom_ca_key_pair_id", "_tls_downstream_client_ca_key_pair_id", b"_tls_downstream_client_ca_key_pair_id", "_tls_downstream_server_name", b"_tls_downstream_server_name", "_tls_skip_verify", b"_tls_skip_verify", "_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation", "_tls_upstream_server_name", b"_tls_upstream_server_name", "allow_spdy", b"allow_spdy", "allow_websockets", b"allow_websockets", "bearer_token_format", b"bearer_token_format", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "created_at", b"created_at", "deleted_at", b"deleted_at", "description", b"description", "healthy_panic_threshold", b"healthy_panic_threshold", "host_path_regex_rewrite_pattern", b"host_path_regex_rewrite_pattern", "host_path_regex_rewrite_substitution", b"host_path_regex_rewrite_substitution", "host_rewrite", b"host_rewrite", "host_rewrite_header", b"host_rewrite_header", "idle_timeout", b"idle_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "kubernetes_service_account_token", b"kubernetes_service_account_token", "kubernetes_service_account_token_file", b"kubernetes_service_account_token_file", "load_balancing_policy", b"load_balancing_policy", "logo_url", b"logo_url", "mcp", b"mcp", "modified_at", b"modified_at", "pass_identity_headers", b"pass_identity_headers", "path", b"path", "prefix", b"prefix", "prefix_rewrite", b"prefix_rewrite", "preserve_host_header", b"preserve_host_header", "redirect", b"redirect", "regex", b"regex", "regex_priority_order", b"regex_priority_order", "regex_rewrite_pattern", b"regex_rewrite_pattern", "regex_rewrite_substitution", b"regex_rewrite_substitution", "response", b"response", "timeout", b"timeout", "tls_client_key_pair_id", b"tls_client_key_pair_id", "tls_custom_ca_key_pair_id", b"tls_custom_ca_key_pair_id", "tls_downstream_client_ca_key_pair_id", b"tls_downstream_client_ca_key_pair_id", "tls_downstream_server_name", b"tls_downstream_server_name", "tls_skip_verify", b"tls_skip_verify", "tls_upstream_allow_renegotiation", b"tls_upstream_allow_renegotiation", "tls_upstream_server_name", b"tls_upstream_server_name"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_allow_spdy", b"_allow_spdy", "_allow_websockets", b"_allow_websockets", "_bearer_token_format", b"_bearer_token_format", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_description", b"_description", "_healthy_panic_threshold", b"_healthy_panic_threshold", "_host_path_regex_rewrite_pattern", b"_host_path_regex_rewrite_pattern", "_host_path_regex_rewrite_substitution", b"_host_path_regex_rewrite_substitution", "_host_rewrite", b"_host_rewrite", "_host_rewrite_header", b"_host_rewrite_header", "_idle_timeout", b"_idle_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_jwt_issuer_format", b"_jwt_issuer_format", "_kubernetes_service_account_token", b"_kubernetes_service_account_token", "_kubernetes_service_account_token_file", b"_kubernetes_service_account_token_file", "_load_balancing_policy", b"_load_balancing_policy", "_logo_url", b"_logo_url", "_mcp", b"_mcp", "_pass_identity_headers", b"_pass_identity_headers", "_path", b"_path", "_prefix", b"_prefix", "_prefix_rewrite", b"_prefix_rewrite", "_preserve_host_header", b"_preserve_host_header", "_regex", b"_regex", "_regex_priority_order", b"_regex_priority_order", "_regex_rewrite_pattern", b"_regex_rewrite_pattern", "_regex_rewrite_substitution", b"_regex_rewrite_substitution", "_timeout", b"_timeout", "_tls_client_key_pair_id", b"_tls_client_key_pair_id", "_tls_custom_ca_key_pair_id", b"_tls_custom_ca_key_pair_id", "_tls_downstream_client_ca_key_pair_id", b"_tls_downstream_client_ca_key_pair_id", "_tls_downstream_server_name", b"_tls_downstream_server_name", "_tls_skip_verify", b"_tls_skip_verify", "_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation", "_tls_upstream_server_name", b"_tls_upstream_server_name", "allow_spdy", b"allow_spdy", "allow_websockets", b"allow_websockets", "bearer_token_format", b"bearer_token_format", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "created_at", b"created_at", "deleted_at", b"deleted_at", "depends_on", b"depends_on", "description", b"description", "enable_google_cloud_serverless_authentication", b"enable_google_cloud_serverless_authentication", "enforced_policy_ids", b"enforced_policy_ids", "enforced_policy_names", b"enforced_policy_names", "from", b"from", "health_checks", b"health_checks", "healthy_panic_threshold", b"healthy_panic_threshold", "host_path_regex_rewrite_pattern", b"host_path_regex_rewrite_pattern", "host_path_regex_rewrite_substitution", b"host_path_regex_rewrite_substitution", "host_rewrite", b"host_rewrite", "host_rewrite_header", b"host_rewrite_header", "id", b"id", "idle_timeout", b"idle_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "kubernetes_service_account_token", b"kubernetes_service_account_token", "kubernetes_service_account_token_file", b"kubernetes_service_account_token_file", "load_balancing_policy", b"load_balancing_policy", "logo_url", b"logo_url", "mcp", b"mcp", "modified_at", b"modified_at", "name", b"name", "namespace_id", b"namespace_id", "namespace_name", b"namespace_name", "originator_id", b"originator_id", "pass_identity_headers", b"pass_identity_headers", "path", b"path", "policy_ids", b"policy_ids", "policy_names", b"policy_names", "prefix", b"prefix", "prefix_rewrite", b"prefix_rewrite", "preserve_host_header", b"preserve_host_header", "redirect", b"redirect", "regex", b"regex", "regex_priority_order", b"regex_priority_order", "regex_rewrite_pattern", b"regex_rewrite_pattern", "regex_rewrite_substitution", b"regex_rewrite_substitution", "remove_request_headers", b"remove_request_headers", "response", b"response", "rewrite_response_headers", b"rewrite_response_headers", "set_request_headers", b"set_request_headers", "set_response_headers", b"set_response_headers", "show_error_details", b"show_error_details", "stat_name", b"stat_name", "timeout", b"timeout", "tls_client_key_pair_id", b"tls_client_key_pair_id", "tls_custom_ca_key_pair_id", b"tls_custom_ca_key_pair_id", "tls_downstream_client_ca_key_pair_id", b"tls_downstream_client_ca_key_pair_id", "tls_downstream_server_name", b"tls_downstream_server_name", "tls_skip_verify", b"tls_skip_verify", "tls_upstream_allow_renegotiation", b"tls_upstream_allow_renegotiation", "tls_upstream_server_name", b"tls_upstream_server_name", "to", b"to"]) -> None: ... + def HasField(self, field_name: typing.Literal["_allow_spdy", b"_allow_spdy", "_allow_websockets", b"_allow_websockets", "_bearer_token_format", b"_bearer_token_format", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_description", b"_description", "_healthy_panic_threshold", b"_healthy_panic_threshold", "_host_path_regex_rewrite_pattern", b"_host_path_regex_rewrite_pattern", "_host_path_regex_rewrite_substitution", b"_host_path_regex_rewrite_substitution", "_host_rewrite", b"_host_rewrite", "_host_rewrite_header", b"_host_rewrite_header", "_idle_timeout", b"_idle_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_jwt_issuer_format", b"_jwt_issuer_format", "_kubernetes_service_account_token", b"_kubernetes_service_account_token", "_kubernetes_service_account_token_file", b"_kubernetes_service_account_token_file", "_load_balancing_policy", b"_load_balancing_policy", "_logo_url", b"_logo_url", "_mcp", b"_mcp", "_pass_identity_headers", b"_pass_identity_headers", "_path", b"_path", "_prefix", b"_prefix", "_prefix_rewrite", b"_prefix_rewrite", "_preserve_host_header", b"_preserve_host_header", "_regex", b"_regex", "_regex_priority_order", b"_regex_priority_order", "_regex_rewrite_pattern", b"_regex_rewrite_pattern", "_regex_rewrite_substitution", b"_regex_rewrite_substitution", "_timeout", b"_timeout", "_tls_client_key_pair_id", b"_tls_client_key_pair_id", "_tls_custom_ca_key_pair_id", b"_tls_custom_ca_key_pair_id", "_tls_downstream_client_ca_key_pair_id", b"_tls_downstream_client_ca_key_pair_id", "_tls_downstream_server_name", b"_tls_downstream_server_name", "_tls_skip_verify", b"_tls_skip_verify", "_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation", "_tls_upstream_server_name", b"_tls_upstream_server_name", "_upstream_tunnel", b"_upstream_tunnel", "allow_spdy", b"allow_spdy", "allow_websockets", b"allow_websockets", "bearer_token_format", b"bearer_token_format", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "created_at", b"created_at", "deleted_at", b"deleted_at", "description", b"description", "healthy_panic_threshold", b"healthy_panic_threshold", "host_path_regex_rewrite_pattern", b"host_path_regex_rewrite_pattern", "host_path_regex_rewrite_substitution", b"host_path_regex_rewrite_substitution", "host_rewrite", b"host_rewrite", "host_rewrite_header", b"host_rewrite_header", "idle_timeout", b"idle_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "kubernetes_service_account_token", b"kubernetes_service_account_token", "kubernetes_service_account_token_file", b"kubernetes_service_account_token_file", "load_balancing_policy", b"load_balancing_policy", "logo_url", b"logo_url", "mcp", b"mcp", "modified_at", b"modified_at", "pass_identity_headers", b"pass_identity_headers", "path", b"path", "prefix", b"prefix", "prefix_rewrite", b"prefix_rewrite", "preserve_host_header", b"preserve_host_header", "redirect", b"redirect", "regex", b"regex", "regex_priority_order", b"regex_priority_order", "regex_rewrite_pattern", b"regex_rewrite_pattern", "regex_rewrite_substitution", b"regex_rewrite_substitution", "response", b"response", "timeout", b"timeout", "tls_client_key_pair_id", b"tls_client_key_pair_id", "tls_custom_ca_key_pair_id", b"tls_custom_ca_key_pair_id", "tls_downstream_client_ca_key_pair_id", b"tls_downstream_client_ca_key_pair_id", "tls_downstream_server_name", b"tls_downstream_server_name", "tls_skip_verify", b"tls_skip_verify", "tls_upstream_allow_renegotiation", b"tls_upstream_allow_renegotiation", "tls_upstream_server_name", b"tls_upstream_server_name", "upstream_tunnel", b"upstream_tunnel"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_allow_spdy", b"_allow_spdy", "_allow_websockets", b"_allow_websockets", "_bearer_token_format", b"_bearer_token_format", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_description", b"_description", "_healthy_panic_threshold", b"_healthy_panic_threshold", "_host_path_regex_rewrite_pattern", b"_host_path_regex_rewrite_pattern", "_host_path_regex_rewrite_substitution", b"_host_path_regex_rewrite_substitution", "_host_rewrite", b"_host_rewrite", "_host_rewrite_header", b"_host_rewrite_header", "_idle_timeout", b"_idle_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_jwt_issuer_format", b"_jwt_issuer_format", "_kubernetes_service_account_token", b"_kubernetes_service_account_token", "_kubernetes_service_account_token_file", b"_kubernetes_service_account_token_file", "_load_balancing_policy", b"_load_balancing_policy", "_logo_url", b"_logo_url", "_mcp", b"_mcp", "_pass_identity_headers", b"_pass_identity_headers", "_path", b"_path", "_prefix", b"_prefix", "_prefix_rewrite", b"_prefix_rewrite", "_preserve_host_header", b"_preserve_host_header", "_regex", b"_regex", "_regex_priority_order", b"_regex_priority_order", "_regex_rewrite_pattern", b"_regex_rewrite_pattern", "_regex_rewrite_substitution", b"_regex_rewrite_substitution", "_timeout", b"_timeout", "_tls_client_key_pair_id", b"_tls_client_key_pair_id", "_tls_custom_ca_key_pair_id", b"_tls_custom_ca_key_pair_id", "_tls_downstream_client_ca_key_pair_id", b"_tls_downstream_client_ca_key_pair_id", "_tls_downstream_server_name", b"_tls_downstream_server_name", "_tls_skip_verify", b"_tls_skip_verify", "_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation", "_tls_upstream_server_name", b"_tls_upstream_server_name", "_upstream_tunnel", b"_upstream_tunnel", "allow_spdy", b"allow_spdy", "allow_websockets", b"allow_websockets", "bearer_token_format", b"bearer_token_format", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "created_at", b"created_at", "deleted_at", b"deleted_at", "depends_on", b"depends_on", "description", b"description", "enable_google_cloud_serverless_authentication", b"enable_google_cloud_serverless_authentication", "enforced_policy_ids", b"enforced_policy_ids", "enforced_policy_names", b"enforced_policy_names", "from", b"from", "health_checks", b"health_checks", "healthy_panic_threshold", b"healthy_panic_threshold", "host_path_regex_rewrite_pattern", b"host_path_regex_rewrite_pattern", "host_path_regex_rewrite_substitution", b"host_path_regex_rewrite_substitution", "host_rewrite", b"host_rewrite", "host_rewrite_header", b"host_rewrite_header", "id", b"id", "idle_timeout", b"idle_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "kubernetes_service_account_token", b"kubernetes_service_account_token", "kubernetes_service_account_token_file", b"kubernetes_service_account_token_file", "load_balancing_policy", b"load_balancing_policy", "logo_url", b"logo_url", "mcp", b"mcp", "modified_at", b"modified_at", "name", b"name", "namespace_id", b"namespace_id", "namespace_name", b"namespace_name", "originator_id", b"originator_id", "pass_identity_headers", b"pass_identity_headers", "path", b"path", "policy_ids", b"policy_ids", "policy_names", b"policy_names", "prefix", b"prefix", "prefix_rewrite", b"prefix_rewrite", "preserve_host_header", b"preserve_host_header", "redirect", b"redirect", "regex", b"regex", "regex_priority_order", b"regex_priority_order", "regex_rewrite_pattern", b"regex_rewrite_pattern", "regex_rewrite_substitution", b"regex_rewrite_substitution", "remove_request_headers", b"remove_request_headers", "response", b"response", "rewrite_response_headers", b"rewrite_response_headers", "set_request_headers", b"set_request_headers", "set_response_headers", b"set_response_headers", "show_error_details", b"show_error_details", "stat_name", b"stat_name", "timeout", b"timeout", "tls_client_key_pair_id", b"tls_client_key_pair_id", "tls_custom_ca_key_pair_id", b"tls_custom_ca_key_pair_id", "tls_downstream_client_ca_key_pair_id", b"tls_downstream_client_ca_key_pair_id", "tls_downstream_server_name", b"tls_downstream_server_name", "tls_skip_verify", b"tls_skip_verify", "tls_upstream_allow_renegotiation", b"tls_upstream_allow_renegotiation", "tls_upstream_server_name", b"tls_upstream_server_name", "to", b"to", "upstream_tunnel", b"upstream_tunnel"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_allow_spdy", b"_allow_spdy"]) -> typing.Literal["allow_spdy"] | None: ... @typing.overload @@ -723,9 +727,21 @@ class Route(google.protobuf.message.Message): def WhichOneof(self, oneof_group: typing.Literal["_tls_upstream_allow_renegotiation", b"_tls_upstream_allow_renegotiation"]) -> typing.Literal["tls_upstream_allow_renegotiation"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_tls_upstream_server_name", b"_tls_upstream_server_name"]) -> typing.Literal["tls_upstream_server_name"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_upstream_tunnel", b"_upstream_tunnel"]) -> typing.Literal["upstream_tunnel"] | None: ... global___Route = Route +@typing.final +class UpstreamTunnel(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___UpstreamTunnel = UpstreamTunnel + @typing.final class RouteWithPolicies(google.protobuf.message.Message): """RouteWithPolicies contains automatically created routes and policies from a diff --git a/src/pomerium/pb/settings_pb2.py b/src/pomerium/pb/settings_pb2.py index f8f46c4..435b756 100644 --- a/src/pomerium/pb/settings_pb2.py +++ b/src/pomerium/pb/settings_pb2.py @@ -28,7 +28,7 @@ import pomerium.pb.routes_pb2 as routes__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0esettings.proto\x12\x12pomerium.dashboard\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0croutes.proto\"I\n\x0f\x43onsoleSettings\x12\x1e\n\x16\x65nable_feedback_widget\x18\x01 \x01(\x08\x12\x16\n\x0euse_changesets\x18\x02 \x01(\x08\"\xd2\x34\n\x08Settings\x12\n\n\x02id\x18k \x01(\t\x12\x17\n\ncluster_id\x18l \x01(\tH\x00\x88\x01\x01\x12/\n\x0bmodified_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x0finstallation_id\x18\x44 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tlog_level\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0fproxy_log_level\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rshared_secret\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08services\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0finsecure_server\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1e\n\x11\x64ns_lookup_family\x18< \x01(\tH\x08\x88\x01\x01\x12 \n\x13\x64ns_udp_max_queries\x18t \x01(\rH\t\x88\x01\x01\x12\x18\n\x0b\x64ns_use_tcp\x18u \x01(\x08H\n\x88\x01\x01\x12\x1c\n\x0f\x64ns_query_tries\x18v \x01(\rH\x0b\x88\x01\x01\x12\x39\n\x11\x64ns_query_timeout\x18w \x01(\x0b\x32\x19.google.protobuf.DurationH\x0c\x88\x01\x01\x12>\n\x0c\x63\x65rtificates\x18\t \x03(\x0b\x32(.pomerium.dashboard.Settings.Certificate\x12\x1f\n\x12http_redirect_addr\x18\n \x01(\tH\r\x88\x01\x01\x12\x34\n\x0ctimeout_read\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationH\x0e\x88\x01\x01\x12\x35\n\rtimeout_write\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x0f\x88\x01\x01\x12\x34\n\x0ctimeout_idle\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\x10\x88\x01\x01\x12%\n\x18\x61uthenticate_service_url\x18\x0e \x01(\tH\x11\x88\x01\x01\x12\'\n\x1a\x61uthenticate_callback_path\x18\x0f \x01(\tH\x12\x88\x01\x01\x12\x18\n\x0b\x63ookie_name\x18\x10 \x01(\tH\x13\x88\x01\x01\x12\x1a\n\rcookie_secret\x18\x11 \x01(\tH\x14\x88\x01\x01\x12\x1a\n\rcookie_domain\x18\x12 \x01(\tH\x15\x88\x01\x01\x12\x1a\n\rcookie_secure\x18\x13 \x01(\x08H\x16\x88\x01\x01\x12\x1d\n\x10\x63ookie_http_only\x18\x14 \x01(\x08H\x17\x88\x01\x01\x12\x1d\n\x10\x63ookie_same_site\x18P \x01(\tH\x18\x88\x01\x01\x12\x35\n\rcookie_expire\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationH\x19\x88\x01\x01\x12\x1a\n\ridp_client_id\x18\x16 \x01(\tH\x1a\x88\x01\x01\x12\x1e\n\x11idp_client_secret\x18\x17 \x01(\tH\x1b\x88\x01\x01\x12\x19\n\x0cidp_provider\x18\x18 \x01(\tH\x1c\x88\x01\x01\x12\x1d\n\x10idp_provider_url\x18\x19 \x01(\tH\x1d\x88\x01\x01\x12\x0e\n\x06scopes\x18\x1a \x03(\t\x12 \n\x13idp_service_account\x18\x1b \x01(\tH\x1e\x88\x01\x01\x12\x45\n\x1didp_refresh_directory_timeout\x18\x1c \x01(\x0b\x32\x19.google.protobuf.DurationH\x1f\x88\x01\x01\x12\x46\n\x1eidp_refresh_directory_interval\x18\x1d \x01(\x0b\x32\x19.google.protobuf.DurationH \x88\x01\x01\x12G\n\x0erequest_params\x18\x1e \x03(\x0b\x32/.pomerium.dashboard.Settings.RequestParamsEntry\x12\"\n\x15\x61uthorize_service_url\x18 \x01(\tH!\x88\x01\x01\x12\"\n\x15\x63\x65rtificate_authority\x18\" \x01(\tH\"\x88\x01\x01\x12\'\n\x1a\x63\x65rtificate_authority_file\x18# \x01(\tH#\x88\x01\x01\x12.\n!certificate_authority_key_pair_id\x18@ \x01(\tH$\x88\x01\x01\x12R\n\x14set_response_headers\x18\x43 \x03(\x0b\x32\x34.pomerium.dashboard.Settings.SetResponseHeadersEntry\x12N\n\x12jwt_claims_headers\x18\x42 \x03(\x0b\x32\x32.pomerium.dashboard.Settings.JwtClaimsHeadersEntry\x12>\n\x11jwt_groups_filter\x18W \x01(\x0b\x32#.pomerium.dashboard.JwtGroupsFilter\x12@\n\x11jwt_issuer_format\x18j \x01(\x0e\x32 .pomerium.dashboard.IssuerFormatH%\x88\x01\x01\x12@\n\x18\x64\x65\x66\x61ult_upstream_timeout\x18\' \x01(\x0b\x32\x19.google.protobuf.DurationH&\x88\x01\x01\x12\x1c\n\x0fmetrics_address\x18( \x01(\tH\'\x88\x01\x01\x12!\n\x14otel_traces_exporter\x18X \x01(\tH(\x88\x01\x01\x12$\n\x17otel_traces_sampler_arg\x18Y \x01(\x01H)\x88\x01\x01\x12 \n\x18otel_resource_attributes\x18Z \x03(\t\x12\x1b\n\x0eotel_log_level\x18[ \x01(\tH*\x88\x01\x01\x12.\n!otel_attribute_value_length_limit\x18\\ \x01(\x05H+\x88\x01\x01\x12(\n\x1botel_exporter_otlp_endpoint\x18] \x01(\tH,\x88\x01\x01\x12/\n\"otel_exporter_otlp_traces_endpoint\x18^ \x01(\tH-\x88\x01\x01\x12(\n\x1botel_exporter_otlp_protocol\x18_ \x01(\tH.\x88\x01\x01\x12/\n\"otel_exporter_otlp_traces_protocol\x18` \x01(\tH/\x88\x01\x01\x12\"\n\x1aotel_exporter_otlp_headers\x18\x61 \x03(\t\x12)\n!otel_exporter_otlp_traces_headers\x18\x62 \x03(\t\x12\x42\n\x1aotel_exporter_otlp_timeout\x18\x63 \x01(\x0b\x32\x19.google.protobuf.DurationH0\x88\x01\x01\x12I\n!otel_exporter_otlp_traces_timeout\x18\x64 \x01(\x0b\x32\x19.google.protobuf.DurationH1\x88\x01\x01\x12?\n\x17otel_bsp_schedule_delay\x18\x65 \x01(\x0b\x32\x19.google.protobuf.DurationH2\x88\x01\x01\x12+\n\x1eotel_bsp_max_export_batch_size\x18\x66 \x01(\x05H3\x88\x01\x01\x12\x19\n\x0cgrpc_address\x18. \x01(\tH4\x88\x01\x01\x12\x1a\n\rgrpc_insecure\x18/ \x01(\x08H5\x88\x01\x01\x12\x1e\n\x11\x63\x61\x63he_service_url\x18\x33 \x01(\tH6\x88\x01\x01\x12#\n\x16\x64\x61tabroker_service_url\x18\x34 \x01(\tH7\x88\x01\x01\x12\x16\n\tclient_ca\x18\x35 \x01(\tH8\x88\x01\x01\x12\x1b\n\x0e\x63lient_ca_file\x18\x36 \x01(\tH9\x88\x01\x01\x12\"\n\x15\x63lient_ca_key_pair_id\x18\x41 \x01(\tH:\x88\x01\x01\x12\x43\n6google_cloud_serverless_authentication_service_account\x18\x37 \x01(\tH;\x88\x01\x01\x12\x15\n\x08\x61utocert\x18\x38 \x01(\x08H<\x88\x01\x01\x12!\n\x14\x61utocert_use_staging\x18\x39 \x01(\x08H=\x88\x01\x01\x12!\n\x14\x61utocert_must_staple\x18: \x01(\x08H>\x88\x01\x01\x12\x19\n\x0c\x61utocert_dir\x18; \x01(\tH?\x88\x01\x01\x12\x1c\n\x0fskip_xff_append\x18? \x01(\x08H@\x88\x01\x01\x12\x1a\n\rprimary_color\x18\x45 \x01(\tHA\x88\x01\x01\x12\x1c\n\x0fsecondary_color\x18\x46 \x01(\tHB\x88\x01\x01\x12#\n\x16\x64\x61rkmode_primary_color\x18G \x01(\tHC\x88\x01\x01\x12%\n\x18\x64\x61rkmode_secondary_color\x18H \x01(\tHD\x88\x01\x01\x12\x15\n\x08logo_url\x18I \x01(\tHE\x88\x01\x01\x12\x18\n\x0b\x66\x61vicon_url\x18J \x01(\tHF\x88\x01\x01\x12*\n\x1d\x65rror_message_first_paragraph\x18K \x01(\tHG\x88\x01\x01\x12\x1e\n\x11identity_provider\x18L \x01(\tHH\x88\x01\x01\x12?\n\x19identity_provider_options\x18M \x01(\x0b\x32\x17.google.protobuf.StructHI\x88\x01\x01\x12J\n\"identity_provider_refresh_interval\x18N \x01(\x0b\x32\x19.google.protobuf.DurationHJ\x88\x01\x01\x12I\n!identity_provider_refresh_timeout\x18O \x01(\x0b\x32\x19.google.protobuf.DurationHK\x88\x01\x01\x12G\n\x11\x61\x63\x63\x65ss_log_fields\x18R \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHL\x88\x01\x01\x12J\n\x14\x61uthorize_log_fields\x18S \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHM\x88\x01\x01\x12\"\n\x15pass_identity_headers\x18T \x01(\x08HN\x88\x01\x01\x12\x15\n\roriginator_id\x18g \x01(\t\x12G\n\x13\x62\x65\x61rer_token_format\x18h \x01(\x0e\x32%.pomerium.dashboard.BearerTokenFormatHO\x88\x01\x01\x12X\n\"idp_access_token_allowed_audiences\x18i \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHP\x88\x01\x01\x12\x36\n\ncodec_type\x18m \x01(\x0e\x32\x1d.pomerium.dashboard.CodecTypeHQ\x88\x01\x01\x12U\n\x1a\x63ircuit_breaker_thresholds\x18n \x01(\x0b\x32,.pomerium.dashboard.CircuitBreakerThresholdsHR\x88\x01\x01\x12\x18\n\x0bssh_address\x18o \x01(\tHS\x88\x01\x01\x12H\n\x12ssh_host_key_files\x18p \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHT\x88\x01\x01\x12\x43\n\rssh_host_keys\x18q \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHU\x88\x01\x01\x12!\n\x14ssh_user_ca_key_file\x18r \x01(\tHV\x88\x01\x01\x12\x1c\n\x0fssh_user_ca_key\x18s \x01(\tHW\x88\x01\x01\x1aI\n\x0b\x43\x65rtificate\x12\x12\n\ncert_bytes\x18\x03 \x01(\x0c\x12\x11\n\tkey_bytes\x18\x04 \x01(\x0c\x12\x13\n\x0bkey_pair_id\x18\x05 \x01(\t\x1a\x1c\n\nStringList\x12\x0e\n\x06values\x18\x01 \x03(\t\x1a\x34\n\x12RequestParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x39\n\x17SetResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x37\n\x15JwtClaimsHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_cluster_idB\x12\n\x10_installation_idB\x0c\n\n_log_levelB\x12\n\x10_proxy_log_levelB\x10\n\x0e_shared_secretB\x0b\n\t_servicesB\n\n\x08_addressB\x12\n\x10_insecure_serverB\x14\n\x12_dns_lookup_familyB\x16\n\x14_dns_udp_max_queriesB\x0e\n\x0c_dns_use_tcpB\x12\n\x10_dns_query_triesB\x14\n\x12_dns_query_timeoutB\x15\n\x13_http_redirect_addrB\x0f\n\r_timeout_readB\x10\n\x0e_timeout_writeB\x0f\n\r_timeout_idleB\x1b\n\x19_authenticate_service_urlB\x1d\n\x1b_authenticate_callback_pathB\x0e\n\x0c_cookie_nameB\x10\n\x0e_cookie_secretB\x10\n\x0e_cookie_domainB\x10\n\x0e_cookie_secureB\x13\n\x11_cookie_http_onlyB\x13\n\x11_cookie_same_siteB\x10\n\x0e_cookie_expireB\x10\n\x0e_idp_client_idB\x14\n\x12_idp_client_secretB\x0f\n\r_idp_providerB\x13\n\x11_idp_provider_urlB\x16\n\x14_idp_service_accountB \n\x1e_idp_refresh_directory_timeoutB!\n\x1f_idp_refresh_directory_intervalB\x18\n\x16_authorize_service_urlB\x18\n\x16_certificate_authorityB\x1d\n\x1b_certificate_authority_fileB$\n\"_certificate_authority_key_pair_idB\x14\n\x12_jwt_issuer_formatB\x1b\n\x19_default_upstream_timeoutB\x12\n\x10_metrics_addressB\x17\n\x15_otel_traces_exporterB\x1a\n\x18_otel_traces_sampler_argB\x11\n\x0f_otel_log_levelB$\n\"_otel_attribute_value_length_limitB\x1e\n\x1c_otel_exporter_otlp_endpointB%\n#_otel_exporter_otlp_traces_endpointB\x1e\n\x1c_otel_exporter_otlp_protocolB%\n#_otel_exporter_otlp_traces_protocolB\x1d\n\x1b_otel_exporter_otlp_timeoutB$\n\"_otel_exporter_otlp_traces_timeoutB\x1a\n\x18_otel_bsp_schedule_delayB!\n\x1f_otel_bsp_max_export_batch_sizeB\x0f\n\r_grpc_addressB\x10\n\x0e_grpc_insecureB\x14\n\x12_cache_service_urlB\x19\n\x17_databroker_service_urlB\x0c\n\n_client_caB\x11\n\x0f_client_ca_fileB\x18\n\x16_client_ca_key_pair_idB9\n7_google_cloud_serverless_authentication_service_accountB\x0b\n\t_autocertB\x17\n\x15_autocert_use_stagingB\x17\n\x15_autocert_must_stapleB\x0f\n\r_autocert_dirB\x12\n\x10_skip_xff_appendB\x10\n\x0e_primary_colorB\x12\n\x10_secondary_colorB\x19\n\x17_darkmode_primary_colorB\x1b\n\x19_darkmode_secondary_colorB\x0b\n\t_logo_urlB\x0e\n\x0c_favicon_urlB \n\x1e_error_message_first_paragraphB\x14\n\x12_identity_providerB\x1c\n\x1a_identity_provider_optionsB%\n#_identity_provider_refresh_intervalB$\n\"_identity_provider_refresh_timeoutB\x14\n\x12_access_log_fieldsB\x17\n\x15_authorize_log_fieldsB\x18\n\x16_pass_identity_headersB\x16\n\x14_bearer_token_formatB%\n#_idp_access_token_allowed_audiencesB\r\n\x0b_codec_typeB\x1d\n\x1b_circuit_breaker_thresholdsB\x0e\n\x0c_ssh_addressB\x15\n\x13_ssh_host_key_filesB\x10\n\x0e_ssh_host_keysB\x17\n\x15_ssh_user_ca_key_fileB\x12\n\x10_ssh_user_ca_keyJ\x04\x08)\x10*J\x04\x08*\x10+J\x04\x08U\x10VJ\x04\x08V\x10W\"\x1b\n\x19GetConsoleSettingsRequest\"[\n\x1aGetConsoleSettingsResponse\x12=\n\x10\x63onsole_settings\x18\x01 \x01(\x0b\x32#.pomerium.dashboard.ConsoleSettings\"<\n\x12GetSettingsRequest\x12\x17\n\ncluster_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_cluster_id\"E\n\x13GetSettingsResponse\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings\"D\n\x12SetSettingsRequest\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings\"E\n\x13SetSettingsResponse\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings*z\n\tCodecType\x12\x16\n\x12\x43ODEC_TYPE_UNKNOWN\x10\x00\x12\x13\n\x0f\x43ODEC_TYPE_AUTO\x10\x01\x12\x14\n\x10\x43ODEC_TYPE_HTTP1\x10\x02\x12\x14\n\x10\x43ODEC_TYPE_HTTP2\x10\x03\x12\x14\n\x10\x43ODEC_TYPE_HTTP3\x10\x04\x32\xae\x03\n\x0fSettingsService\x12^\n\x0bGetSettings\x12&.pomerium.dashboard.GetSettingsRequest\x1a\'.pomerium.dashboard.GetSettingsResponse\x12^\n\x0bSetSettings\x12&.pomerium.dashboard.SetSettingsRequest\x1a\'.pomerium.dashboard.SetSettingsResponse\x12\x66\n\x13GetBrandingSettings\x12&.pomerium.dashboard.GetSettingsRequest\x1a\'.pomerium.dashboard.GetSettingsResponse\x12s\n\x12GetConsoleSettings\x12-.pomerium.dashboard.GetConsoleSettingsRequest\x1a..pomerium.dashboard.GetConsoleSettingsResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0esettings.proto\x12\x12pomerium.dashboard\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0croutes.proto\"I\n\x0f\x43onsoleSettings\x12\x1e\n\x16\x65nable_feedback_widget\x18\x01 \x01(\x08\x12\x16\n\x0euse_changesets\x18\x02 \x01(\x08\"\x80\x36\n\x08Settings\x12\n\n\x02id\x18k \x01(\t\x12\x17\n\ncluster_id\x18l \x01(\tH\x00\x88\x01\x01\x12/\n\x0bmodified_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x0finstallation_id\x18\x44 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tlog_level\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0fproxy_log_level\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rshared_secret\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08services\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0finsecure_server\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12@\n\x18\x64ns_failure_refresh_rate\x18x \x01(\x0b\x32\x19.google.protobuf.DurationH\x08\x88\x01\x01\x12\x1e\n\x11\x64ns_lookup_family\x18< \x01(\tH\t\x88\x01\x01\x12\x39\n\x11\x64ns_query_timeout\x18w \x01(\x0b\x32\x19.google.protobuf.DurationH\n\x88\x01\x01\x12\x1c\n\x0f\x64ns_query_tries\x18v \x01(\rH\x0b\x88\x01\x01\x12\x38\n\x10\x64ns_refresh_rate\x18y \x01(\x0b\x32\x19.google.protobuf.DurationH\x0c\x88\x01\x01\x12 \n\x13\x64ns_udp_max_queries\x18t \x01(\rH\r\x88\x01\x01\x12\x18\n\x0b\x64ns_use_tcp\x18u \x01(\x08H\x0e\x88\x01\x01\x12>\n\x0c\x63\x65rtificates\x18\t \x03(\x0b\x32(.pomerium.dashboard.Settings.Certificate\x12\x1f\n\x12http_redirect_addr\x18\n \x01(\tH\x0f\x88\x01\x01\x12\x34\n\x0ctimeout_read\x18\x0b \x01(\x0b\x32\x19.google.protobuf.DurationH\x10\x88\x01\x01\x12\x35\n\rtimeout_write\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x11\x88\x01\x01\x12\x34\n\x0ctimeout_idle\x18\r \x01(\x0b\x32\x19.google.protobuf.DurationH\x12\x88\x01\x01\x12%\n\x18\x61uthenticate_service_url\x18\x0e \x01(\tH\x13\x88\x01\x01\x12\'\n\x1a\x61uthenticate_callback_path\x18\x0f \x01(\tH\x14\x88\x01\x01\x12\x18\n\x0b\x63ookie_name\x18\x10 \x01(\tH\x15\x88\x01\x01\x12\x1a\n\rcookie_secret\x18\x11 \x01(\tH\x16\x88\x01\x01\x12\x1a\n\rcookie_domain\x18\x12 \x01(\tH\x17\x88\x01\x01\x12\x1a\n\rcookie_secure\x18\x13 \x01(\x08H\x18\x88\x01\x01\x12\x1d\n\x10\x63ookie_http_only\x18\x14 \x01(\x08H\x19\x88\x01\x01\x12\x1d\n\x10\x63ookie_same_site\x18P \x01(\tH\x1a\x88\x01\x01\x12\x35\n\rcookie_expire\x18\x15 \x01(\x0b\x32\x19.google.protobuf.DurationH\x1b\x88\x01\x01\x12\x1a\n\ridp_client_id\x18\x16 \x01(\tH\x1c\x88\x01\x01\x12\x1e\n\x11idp_client_secret\x18\x17 \x01(\tH\x1d\x88\x01\x01\x12\x19\n\x0cidp_provider\x18\x18 \x01(\tH\x1e\x88\x01\x01\x12\x1d\n\x10idp_provider_url\x18\x19 \x01(\tH\x1f\x88\x01\x01\x12\x0e\n\x06scopes\x18\x1a \x03(\t\x12 \n\x13idp_service_account\x18\x1b \x01(\tH \x88\x01\x01\x12\x45\n\x1didp_refresh_directory_timeout\x18\x1c \x01(\x0b\x32\x19.google.protobuf.DurationH!\x88\x01\x01\x12\x46\n\x1eidp_refresh_directory_interval\x18\x1d \x01(\x0b\x32\x19.google.protobuf.DurationH\"\x88\x01\x01\x12G\n\x0erequest_params\x18\x1e \x03(\x0b\x32/.pomerium.dashboard.Settings.RequestParamsEntry\x12\"\n\x15\x61uthorize_service_url\x18 \x01(\tH#\x88\x01\x01\x12\"\n\x15\x63\x65rtificate_authority\x18\" \x01(\tH$\x88\x01\x01\x12\'\n\x1a\x63\x65rtificate_authority_file\x18# \x01(\tH%\x88\x01\x01\x12.\n!certificate_authority_key_pair_id\x18@ \x01(\tH&\x88\x01\x01\x12R\n\x14set_response_headers\x18\x43 \x03(\x0b\x32\x34.pomerium.dashboard.Settings.SetResponseHeadersEntry\x12N\n\x12jwt_claims_headers\x18\x42 \x03(\x0b\x32\x32.pomerium.dashboard.Settings.JwtClaimsHeadersEntry\x12>\n\x11jwt_groups_filter\x18W \x01(\x0b\x32#.pomerium.dashboard.JwtGroupsFilter\x12@\n\x11jwt_issuer_format\x18j \x01(\x0e\x32 .pomerium.dashboard.IssuerFormatH\'\x88\x01\x01\x12@\n\x18\x64\x65\x66\x61ult_upstream_timeout\x18\' \x01(\x0b\x32\x19.google.protobuf.DurationH(\x88\x01\x01\x12\x1c\n\x0fmetrics_address\x18( \x01(\tH)\x88\x01\x01\x12!\n\x14otel_traces_exporter\x18X \x01(\tH*\x88\x01\x01\x12$\n\x17otel_traces_sampler_arg\x18Y \x01(\x01H+\x88\x01\x01\x12 \n\x18otel_resource_attributes\x18Z \x03(\t\x12\x1b\n\x0eotel_log_level\x18[ \x01(\tH,\x88\x01\x01\x12.\n!otel_attribute_value_length_limit\x18\\ \x01(\x05H-\x88\x01\x01\x12(\n\x1botel_exporter_otlp_endpoint\x18] \x01(\tH.\x88\x01\x01\x12/\n\"otel_exporter_otlp_traces_endpoint\x18^ \x01(\tH/\x88\x01\x01\x12(\n\x1botel_exporter_otlp_protocol\x18_ \x01(\tH0\x88\x01\x01\x12/\n\"otel_exporter_otlp_traces_protocol\x18` \x01(\tH1\x88\x01\x01\x12\"\n\x1aotel_exporter_otlp_headers\x18\x61 \x03(\t\x12)\n!otel_exporter_otlp_traces_headers\x18\x62 \x03(\t\x12\x42\n\x1aotel_exporter_otlp_timeout\x18\x63 \x01(\x0b\x32\x19.google.protobuf.DurationH2\x88\x01\x01\x12I\n!otel_exporter_otlp_traces_timeout\x18\x64 \x01(\x0b\x32\x19.google.protobuf.DurationH3\x88\x01\x01\x12?\n\x17otel_bsp_schedule_delay\x18\x65 \x01(\x0b\x32\x19.google.protobuf.DurationH4\x88\x01\x01\x12+\n\x1eotel_bsp_max_export_batch_size\x18\x66 \x01(\x05H5\x88\x01\x01\x12\x19\n\x0cgrpc_address\x18. \x01(\tH6\x88\x01\x01\x12\x1a\n\rgrpc_insecure\x18/ \x01(\x08H7\x88\x01\x01\x12\x1e\n\x11\x63\x61\x63he_service_url\x18\x33 \x01(\tH8\x88\x01\x01\x12#\n\x16\x64\x61tabroker_service_url\x18\x34 \x01(\tH9\x88\x01\x01\x12\x16\n\tclient_ca\x18\x35 \x01(\tH:\x88\x01\x01\x12\x1b\n\x0e\x63lient_ca_file\x18\x36 \x01(\tH;\x88\x01\x01\x12\"\n\x15\x63lient_ca_key_pair_id\x18\x41 \x01(\tH<\x88\x01\x01\x12\x43\n6google_cloud_serverless_authentication_service_account\x18\x37 \x01(\tH=\x88\x01\x01\x12\x15\n\x08\x61utocert\x18\x38 \x01(\x08H>\x88\x01\x01\x12!\n\x14\x61utocert_use_staging\x18\x39 \x01(\x08H?\x88\x01\x01\x12!\n\x14\x61utocert_must_staple\x18: \x01(\x08H@\x88\x01\x01\x12\x19\n\x0c\x61utocert_dir\x18; \x01(\tHA\x88\x01\x01\x12\x1c\n\x0fskip_xff_append\x18? \x01(\x08HB\x88\x01\x01\x12\x1a\n\rprimary_color\x18\x45 \x01(\tHC\x88\x01\x01\x12\x1c\n\x0fsecondary_color\x18\x46 \x01(\tHD\x88\x01\x01\x12#\n\x16\x64\x61rkmode_primary_color\x18G \x01(\tHE\x88\x01\x01\x12%\n\x18\x64\x61rkmode_secondary_color\x18H \x01(\tHF\x88\x01\x01\x12\x15\n\x08logo_url\x18I \x01(\tHG\x88\x01\x01\x12\x18\n\x0b\x66\x61vicon_url\x18J \x01(\tHH\x88\x01\x01\x12*\n\x1d\x65rror_message_first_paragraph\x18K \x01(\tHI\x88\x01\x01\x12\x1e\n\x11identity_provider\x18L \x01(\tHJ\x88\x01\x01\x12?\n\x19identity_provider_options\x18M \x01(\x0b\x32\x17.google.protobuf.StructHK\x88\x01\x01\x12J\n\"identity_provider_refresh_interval\x18N \x01(\x0b\x32\x19.google.protobuf.DurationHL\x88\x01\x01\x12I\n!identity_provider_refresh_timeout\x18O \x01(\x0b\x32\x19.google.protobuf.DurationHM\x88\x01\x01\x12G\n\x11\x61\x63\x63\x65ss_log_fields\x18R \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHN\x88\x01\x01\x12J\n\x14\x61uthorize_log_fields\x18S \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHO\x88\x01\x01\x12\"\n\x15pass_identity_headers\x18T \x01(\x08HP\x88\x01\x01\x12\x15\n\roriginator_id\x18g \x01(\t\x12G\n\x13\x62\x65\x61rer_token_format\x18h \x01(\x0e\x32%.pomerium.dashboard.BearerTokenFormatHQ\x88\x01\x01\x12X\n\"idp_access_token_allowed_audiences\x18i \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHR\x88\x01\x01\x12\x36\n\ncodec_type\x18m \x01(\x0e\x32\x1d.pomerium.dashboard.CodecTypeHS\x88\x01\x01\x12U\n\x1a\x63ircuit_breaker_thresholds\x18n \x01(\x0b\x32,.pomerium.dashboard.CircuitBreakerThresholdsHT\x88\x01\x01\x12\x18\n\x0bssh_address\x18o \x01(\tHU\x88\x01\x01\x12H\n\x12ssh_host_key_files\x18p \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHV\x88\x01\x01\x12\x43\n\rssh_host_keys\x18q \x01(\x0b\x32\'.pomerium.dashboard.Settings.StringListHW\x88\x01\x01\x12!\n\x14ssh_user_ca_key_file\x18r \x01(\tHX\x88\x01\x01\x12\x1c\n\x0fssh_user_ca_key\x18s \x01(\tHY\x88\x01\x01\x1aI\n\x0b\x43\x65rtificate\x12\x12\n\ncert_bytes\x18\x03 \x01(\x0c\x12\x11\n\tkey_bytes\x18\x04 \x01(\x0c\x12\x13\n\x0bkey_pair_id\x18\x05 \x01(\t\x1a\x1c\n\nStringList\x12\x0e\n\x06values\x18\x01 \x03(\t\x1a\x34\n\x12RequestParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x39\n\x17SetResponseHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x37\n\x15JwtClaimsHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_cluster_idB\x12\n\x10_installation_idB\x0c\n\n_log_levelB\x12\n\x10_proxy_log_levelB\x10\n\x0e_shared_secretB\x0b\n\t_servicesB\n\n\x08_addressB\x12\n\x10_insecure_serverB\x1b\n\x19_dns_failure_refresh_rateB\x14\n\x12_dns_lookup_familyB\x14\n\x12_dns_query_timeoutB\x12\n\x10_dns_query_triesB\x13\n\x11_dns_refresh_rateB\x16\n\x14_dns_udp_max_queriesB\x0e\n\x0c_dns_use_tcpB\x15\n\x13_http_redirect_addrB\x0f\n\r_timeout_readB\x10\n\x0e_timeout_writeB\x0f\n\r_timeout_idleB\x1b\n\x19_authenticate_service_urlB\x1d\n\x1b_authenticate_callback_pathB\x0e\n\x0c_cookie_nameB\x10\n\x0e_cookie_secretB\x10\n\x0e_cookie_domainB\x10\n\x0e_cookie_secureB\x13\n\x11_cookie_http_onlyB\x13\n\x11_cookie_same_siteB\x10\n\x0e_cookie_expireB\x10\n\x0e_idp_client_idB\x14\n\x12_idp_client_secretB\x0f\n\r_idp_providerB\x13\n\x11_idp_provider_urlB\x16\n\x14_idp_service_accountB \n\x1e_idp_refresh_directory_timeoutB!\n\x1f_idp_refresh_directory_intervalB\x18\n\x16_authorize_service_urlB\x18\n\x16_certificate_authorityB\x1d\n\x1b_certificate_authority_fileB$\n\"_certificate_authority_key_pair_idB\x14\n\x12_jwt_issuer_formatB\x1b\n\x19_default_upstream_timeoutB\x12\n\x10_metrics_addressB\x17\n\x15_otel_traces_exporterB\x1a\n\x18_otel_traces_sampler_argB\x11\n\x0f_otel_log_levelB$\n\"_otel_attribute_value_length_limitB\x1e\n\x1c_otel_exporter_otlp_endpointB%\n#_otel_exporter_otlp_traces_endpointB\x1e\n\x1c_otel_exporter_otlp_protocolB%\n#_otel_exporter_otlp_traces_protocolB\x1d\n\x1b_otel_exporter_otlp_timeoutB$\n\"_otel_exporter_otlp_traces_timeoutB\x1a\n\x18_otel_bsp_schedule_delayB!\n\x1f_otel_bsp_max_export_batch_sizeB\x0f\n\r_grpc_addressB\x10\n\x0e_grpc_insecureB\x14\n\x12_cache_service_urlB\x19\n\x17_databroker_service_urlB\x0c\n\n_client_caB\x11\n\x0f_client_ca_fileB\x18\n\x16_client_ca_key_pair_idB9\n7_google_cloud_serverless_authentication_service_accountB\x0b\n\t_autocertB\x17\n\x15_autocert_use_stagingB\x17\n\x15_autocert_must_stapleB\x0f\n\r_autocert_dirB\x12\n\x10_skip_xff_appendB\x10\n\x0e_primary_colorB\x12\n\x10_secondary_colorB\x19\n\x17_darkmode_primary_colorB\x1b\n\x19_darkmode_secondary_colorB\x0b\n\t_logo_urlB\x0e\n\x0c_favicon_urlB \n\x1e_error_message_first_paragraphB\x14\n\x12_identity_providerB\x1c\n\x1a_identity_provider_optionsB%\n#_identity_provider_refresh_intervalB$\n\"_identity_provider_refresh_timeoutB\x14\n\x12_access_log_fieldsB\x17\n\x15_authorize_log_fieldsB\x18\n\x16_pass_identity_headersB\x16\n\x14_bearer_token_formatB%\n#_idp_access_token_allowed_audiencesB\r\n\x0b_codec_typeB\x1d\n\x1b_circuit_breaker_thresholdsB\x0e\n\x0c_ssh_addressB\x15\n\x13_ssh_host_key_filesB\x10\n\x0e_ssh_host_keysB\x17\n\x15_ssh_user_ca_key_fileB\x12\n\x10_ssh_user_ca_keyJ\x04\x08)\x10*J\x04\x08*\x10+J\x04\x08U\x10VJ\x04\x08V\x10W\"\x1b\n\x19GetConsoleSettingsRequest\"[\n\x1aGetConsoleSettingsResponse\x12=\n\x10\x63onsole_settings\x18\x01 \x01(\x0b\x32#.pomerium.dashboard.ConsoleSettings\"<\n\x12GetSettingsRequest\x12\x17\n\ncluster_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_cluster_id\"E\n\x13GetSettingsResponse\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings\"D\n\x12SetSettingsRequest\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings\"E\n\x13SetSettingsResponse\x12.\n\x08settings\x18\x01 \x01(\x0b\x32\x1c.pomerium.dashboard.Settings*z\n\tCodecType\x12\x16\n\x12\x43ODEC_TYPE_UNKNOWN\x10\x00\x12\x13\n\x0f\x43ODEC_TYPE_AUTO\x10\x01\x12\x14\n\x10\x43ODEC_TYPE_HTTP1\x10\x02\x12\x14\n\x10\x43ODEC_TYPE_HTTP2\x10\x03\x12\x14\n\x10\x43ODEC_TYPE_HTTP3\x10\x04\x32\xae\x03\n\x0fSettingsService\x12^\n\x0bGetSettings\x12&.pomerium.dashboard.GetSettingsRequest\x1a\'.pomerium.dashboard.GetSettingsResponse\x12^\n\x0bSetSettings\x12&.pomerium.dashboard.SetSettingsRequest\x1a\'.pomerium.dashboard.SetSettingsResponse\x12\x66\n\x13GetBrandingSettings\x12&.pomerium.dashboard.GetSettingsRequest\x1a\'.pomerium.dashboard.GetSettingsResponse\x12s\n\x12GetConsoleSettings\x12-.pomerium.dashboard.GetConsoleSettingsRequest\x1a..pomerium.dashboard.GetConsoleSettingsResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,34 +42,34 @@ _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_options = b'8\001' _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._loaded_options = None _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_options = b'8\001' - _globals['_CODECTYPE']._serialized_start=7359 - _globals['_CODECTYPE']._serialized_end=7481 + _globals['_CODECTYPE']._serialized_start=7533 + _globals['_CODECTYPE']._serialized_end=7655 _globals['_CONSOLESETTINGS']._serialized_start=147 _globals['_CONSOLESETTINGS']._serialized_end=220 _globals['_SETTINGS']._serialized_start=223 - _globals['_SETTINGS']._serialized_end=6961 - _globals['_SETTINGS_CERTIFICATE']._serialized_start=4544 - _globals['_SETTINGS_CERTIFICATE']._serialized_end=4617 - _globals['_SETTINGS_STRINGLIST']._serialized_start=4619 - _globals['_SETTINGS_STRINGLIST']._serialized_end=4647 - _globals['_SETTINGS_REQUESTPARAMSENTRY']._serialized_start=4649 - _globals['_SETTINGS_REQUESTPARAMSENTRY']._serialized_end=4701 - _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_start=4703 - _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_end=4760 - _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_start=4762 - _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_end=4817 - _globals['_GETCONSOLESETTINGSREQUEST']._serialized_start=6963 - _globals['_GETCONSOLESETTINGSREQUEST']._serialized_end=6990 - _globals['_GETCONSOLESETTINGSRESPONSE']._serialized_start=6992 - _globals['_GETCONSOLESETTINGSRESPONSE']._serialized_end=7083 - _globals['_GETSETTINGSREQUEST']._serialized_start=7085 - _globals['_GETSETTINGSREQUEST']._serialized_end=7145 - _globals['_GETSETTINGSRESPONSE']._serialized_start=7147 - _globals['_GETSETTINGSRESPONSE']._serialized_end=7216 - _globals['_SETSETTINGSREQUEST']._serialized_start=7218 - _globals['_SETSETTINGSREQUEST']._serialized_end=7286 - _globals['_SETSETTINGSRESPONSE']._serialized_start=7288 - _globals['_SETSETTINGSRESPONSE']._serialized_end=7357 - _globals['_SETTINGSSERVICE']._serialized_start=7484 - _globals['_SETTINGSSERVICE']._serialized_end=7914 + _globals['_SETTINGS']._serialized_end=7135 + _globals['_SETTINGS_CERTIFICATE']._serialized_start=4668 + _globals['_SETTINGS_CERTIFICATE']._serialized_end=4741 + _globals['_SETTINGS_STRINGLIST']._serialized_start=4743 + _globals['_SETTINGS_STRINGLIST']._serialized_end=4771 + _globals['_SETTINGS_REQUESTPARAMSENTRY']._serialized_start=4773 + _globals['_SETTINGS_REQUESTPARAMSENTRY']._serialized_end=4825 + _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_start=4827 + _globals['_SETTINGS_SETRESPONSEHEADERSENTRY']._serialized_end=4884 + _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_start=4886 + _globals['_SETTINGS_JWTCLAIMSHEADERSENTRY']._serialized_end=4941 + _globals['_GETCONSOLESETTINGSREQUEST']._serialized_start=7137 + _globals['_GETCONSOLESETTINGSREQUEST']._serialized_end=7164 + _globals['_GETCONSOLESETTINGSRESPONSE']._serialized_start=7166 + _globals['_GETCONSOLESETTINGSRESPONSE']._serialized_end=7257 + _globals['_GETSETTINGSREQUEST']._serialized_start=7259 + _globals['_GETSETTINGSREQUEST']._serialized_end=7319 + _globals['_GETSETTINGSRESPONSE']._serialized_start=7321 + _globals['_GETSETTINGSRESPONSE']._serialized_end=7390 + _globals['_SETSETTINGSREQUEST']._serialized_start=7392 + _globals['_SETSETTINGSREQUEST']._serialized_end=7460 + _globals['_SETSETTINGSRESPONSE']._serialized_start=7462 + _globals['_SETSETTINGSRESPONSE']._serialized_end=7531 + _globals['_SETTINGSSERVICE']._serialized_start=7658 + _globals['_SETTINGSSERVICE']._serialized_end=8088 # @@protoc_insertion_point(module_scope) diff --git a/src/pomerium/pb/settings_pb2.pyi b/src/pomerium/pb/settings_pb2.pyi index 5204ae3..429beb3 100644 --- a/src/pomerium/pb/settings_pb2.pyi +++ b/src/pomerium/pb/settings_pb2.pyi @@ -65,7 +65,7 @@ global___ConsoleSettings = ConsoleSettings @typing.final class Settings(google.protobuf.message.Message): """Settings defines the global pomerium settings - Next id: 120. + Next id: 122. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -161,11 +161,13 @@ class Settings(google.protobuf.message.Message): SERVICES_FIELD_NUMBER: builtins.int ADDRESS_FIELD_NUMBER: builtins.int INSECURE_SERVER_FIELD_NUMBER: builtins.int + DNS_FAILURE_REFRESH_RATE_FIELD_NUMBER: builtins.int DNS_LOOKUP_FAMILY_FIELD_NUMBER: builtins.int + DNS_QUERY_TIMEOUT_FIELD_NUMBER: builtins.int + DNS_QUERY_TRIES_FIELD_NUMBER: builtins.int + DNS_REFRESH_RATE_FIELD_NUMBER: builtins.int DNS_UDP_MAX_QUERIES_FIELD_NUMBER: builtins.int DNS_USE_TCP_FIELD_NUMBER: builtins.int - DNS_QUERY_TRIES_FIELD_NUMBER: builtins.int - DNS_QUERY_TIMEOUT_FIELD_NUMBER: builtins.int CERTIFICATES_FIELD_NUMBER: builtins.int HTTP_REDIRECT_ADDR_FIELD_NUMBER: builtins.int TIMEOUT_READ_FIELD_NUMBER: builtins.int @@ -261,10 +263,9 @@ class Settings(google.protobuf.message.Message): address: builtins.str insecure_server: builtins.bool dns_lookup_family: builtins.str - """dns options""" + dns_query_tries: builtins.int dns_udp_max_queries: builtins.int dns_use_tcp: builtins.bool - dns_query_tries: builtins.int http_redirect_addr: builtins.str authenticate_service_url: builtins.str authenticate_callback_path: builtins.str @@ -324,9 +325,15 @@ class Settings(google.protobuf.message.Message): ssh_user_ca_key: builtins.str @property def modified_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def dns_failure_refresh_rate(self) -> google.protobuf.duration_pb2.Duration: + """dns options""" + @property def dns_query_timeout(self) -> google.protobuf.duration_pb2.Duration: ... @property + def dns_refresh_rate(self) -> google.protobuf.duration_pb2.Duration: ... + @property def certificates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Settings.Certificate]: ... @property def timeout_read(self) -> google.protobuf.duration_pb2.Duration: ... @@ -395,11 +402,13 @@ class Settings(google.protobuf.message.Message): services: builtins.str | None = ..., address: builtins.str | None = ..., insecure_server: builtins.bool | None = ..., + dns_failure_refresh_rate: google.protobuf.duration_pb2.Duration | None = ..., dns_lookup_family: builtins.str | None = ..., + dns_query_timeout: google.protobuf.duration_pb2.Duration | None = ..., + dns_query_tries: builtins.int | None = ..., + dns_refresh_rate: google.protobuf.duration_pb2.Duration | None = ..., dns_udp_max_queries: builtins.int | None = ..., dns_use_tcp: builtins.bool | None = ..., - dns_query_tries: builtins.int | None = ..., - dns_query_timeout: google.protobuf.duration_pb2.Duration | None = ..., certificates: collections.abc.Iterable[global___Settings.Certificate] | None = ..., http_redirect_addr: builtins.str | None = ..., timeout_read: google.protobuf.duration_pb2.Duration | None = ..., @@ -486,8 +495,8 @@ class Settings(google.protobuf.message.Message): ssh_user_ca_key_file: builtins.str | None = ..., ssh_user_ca_key: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_access_log_fields", b"_access_log_fields", "_address", b"_address", "_authenticate_callback_path", b"_authenticate_callback_path", "_authenticate_service_url", b"_authenticate_service_url", "_authorize_log_fields", b"_authorize_log_fields", "_authorize_service_url", b"_authorize_service_url", "_autocert", b"_autocert", "_autocert_dir", b"_autocert_dir", "_autocert_must_staple", b"_autocert_must_staple", "_autocert_use_staging", b"_autocert_use_staging", "_bearer_token_format", b"_bearer_token_format", "_cache_service_url", b"_cache_service_url", "_certificate_authority", b"_certificate_authority", "_certificate_authority_file", b"_certificate_authority_file", "_certificate_authority_key_pair_id", b"_certificate_authority_key_pair_id", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_client_ca", b"_client_ca", "_client_ca_file", b"_client_ca_file", "_client_ca_key_pair_id", b"_client_ca_key_pair_id", "_cluster_id", b"_cluster_id", "_codec_type", b"_codec_type", "_cookie_domain", b"_cookie_domain", "_cookie_expire", b"_cookie_expire", "_cookie_http_only", b"_cookie_http_only", "_cookie_name", b"_cookie_name", "_cookie_same_site", b"_cookie_same_site", "_cookie_secret", b"_cookie_secret", "_cookie_secure", b"_cookie_secure", "_darkmode_primary_color", b"_darkmode_primary_color", "_darkmode_secondary_color", b"_darkmode_secondary_color", "_databroker_service_url", b"_databroker_service_url", "_default_upstream_timeout", b"_default_upstream_timeout", "_dns_lookup_family", b"_dns_lookup_family", "_dns_query_timeout", b"_dns_query_timeout", "_dns_query_tries", b"_dns_query_tries", "_dns_udp_max_queries", b"_dns_udp_max_queries", "_dns_use_tcp", b"_dns_use_tcp", "_error_message_first_paragraph", b"_error_message_first_paragraph", "_favicon_url", b"_favicon_url", "_google_cloud_serverless_authentication_service_account", b"_google_cloud_serverless_authentication_service_account", "_grpc_address", b"_grpc_address", "_grpc_insecure", b"_grpc_insecure", "_http_redirect_addr", b"_http_redirect_addr", "_identity_provider", b"_identity_provider", "_identity_provider_options", b"_identity_provider_options", "_identity_provider_refresh_interval", b"_identity_provider_refresh_interval", "_identity_provider_refresh_timeout", b"_identity_provider_refresh_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_idp_provider", b"_idp_provider", "_idp_provider_url", b"_idp_provider_url", "_idp_refresh_directory_interval", b"_idp_refresh_directory_interval", "_idp_refresh_directory_timeout", b"_idp_refresh_directory_timeout", "_idp_service_account", b"_idp_service_account", "_insecure_server", b"_insecure_server", "_installation_id", b"_installation_id", "_jwt_issuer_format", b"_jwt_issuer_format", "_log_level", b"_log_level", "_logo_url", b"_logo_url", "_metrics_address", b"_metrics_address", "_otel_attribute_value_length_limit", b"_otel_attribute_value_length_limit", "_otel_bsp_max_export_batch_size", b"_otel_bsp_max_export_batch_size", "_otel_bsp_schedule_delay", b"_otel_bsp_schedule_delay", "_otel_exporter_otlp_endpoint", b"_otel_exporter_otlp_endpoint", "_otel_exporter_otlp_protocol", b"_otel_exporter_otlp_protocol", "_otel_exporter_otlp_timeout", b"_otel_exporter_otlp_timeout", "_otel_exporter_otlp_traces_endpoint", b"_otel_exporter_otlp_traces_endpoint", "_otel_exporter_otlp_traces_protocol", b"_otel_exporter_otlp_traces_protocol", "_otel_exporter_otlp_traces_timeout", b"_otel_exporter_otlp_traces_timeout", "_otel_log_level", b"_otel_log_level", "_otel_traces_exporter", b"_otel_traces_exporter", "_otel_traces_sampler_arg", b"_otel_traces_sampler_arg", "_pass_identity_headers", b"_pass_identity_headers", "_primary_color", b"_primary_color", "_proxy_log_level", b"_proxy_log_level", "_secondary_color", b"_secondary_color", "_services", b"_services", "_shared_secret", b"_shared_secret", "_skip_xff_append", b"_skip_xff_append", "_ssh_address", b"_ssh_address", "_ssh_host_key_files", b"_ssh_host_key_files", "_ssh_host_keys", b"_ssh_host_keys", "_ssh_user_ca_key", b"_ssh_user_ca_key", "_ssh_user_ca_key_file", b"_ssh_user_ca_key_file", "_timeout_idle", b"_timeout_idle", "_timeout_read", b"_timeout_read", "_timeout_write", b"_timeout_write", "access_log_fields", b"access_log_fields", "address", b"address", "authenticate_callback_path", b"authenticate_callback_path", "authenticate_service_url", b"authenticate_service_url", "authorize_log_fields", b"authorize_log_fields", "authorize_service_url", b"authorize_service_url", "autocert", b"autocert", "autocert_dir", b"autocert_dir", "autocert_must_staple", b"autocert_must_staple", "autocert_use_staging", b"autocert_use_staging", "bearer_token_format", b"bearer_token_format", "cache_service_url", b"cache_service_url", "certificate_authority", b"certificate_authority", "certificate_authority_file", b"certificate_authority_file", "certificate_authority_key_pair_id", b"certificate_authority_key_pair_id", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "client_ca", b"client_ca", "client_ca_file", b"client_ca_file", "client_ca_key_pair_id", b"client_ca_key_pair_id", "cluster_id", b"cluster_id", "codec_type", b"codec_type", "cookie_domain", b"cookie_domain", "cookie_expire", b"cookie_expire", "cookie_http_only", b"cookie_http_only", "cookie_name", b"cookie_name", "cookie_same_site", b"cookie_same_site", "cookie_secret", b"cookie_secret", "cookie_secure", b"cookie_secure", "darkmode_primary_color", b"darkmode_primary_color", "darkmode_secondary_color", b"darkmode_secondary_color", "databroker_service_url", b"databroker_service_url", "default_upstream_timeout", b"default_upstream_timeout", "dns_lookup_family", b"dns_lookup_family", "dns_query_timeout", b"dns_query_timeout", "dns_query_tries", b"dns_query_tries", "dns_udp_max_queries", b"dns_udp_max_queries", "dns_use_tcp", b"dns_use_tcp", "error_message_first_paragraph", b"error_message_first_paragraph", "favicon_url", b"favicon_url", "google_cloud_serverless_authentication_service_account", b"google_cloud_serverless_authentication_service_account", "grpc_address", b"grpc_address", "grpc_insecure", b"grpc_insecure", "http_redirect_addr", b"http_redirect_addr", "identity_provider", b"identity_provider", "identity_provider_options", b"identity_provider_options", "identity_provider_refresh_interval", b"identity_provider_refresh_interval", "identity_provider_refresh_timeout", b"identity_provider_refresh_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "idp_provider", b"idp_provider", "idp_provider_url", b"idp_provider_url", "idp_refresh_directory_interval", b"idp_refresh_directory_interval", "idp_refresh_directory_timeout", b"idp_refresh_directory_timeout", "idp_service_account", b"idp_service_account", "insecure_server", b"insecure_server", "installation_id", b"installation_id", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "log_level", b"log_level", "logo_url", b"logo_url", "metrics_address", b"metrics_address", "modified_at", b"modified_at", "otel_attribute_value_length_limit", b"otel_attribute_value_length_limit", "otel_bsp_max_export_batch_size", b"otel_bsp_max_export_batch_size", "otel_bsp_schedule_delay", b"otel_bsp_schedule_delay", "otel_exporter_otlp_endpoint", b"otel_exporter_otlp_endpoint", "otel_exporter_otlp_protocol", b"otel_exporter_otlp_protocol", "otel_exporter_otlp_timeout", b"otel_exporter_otlp_timeout", "otel_exporter_otlp_traces_endpoint", b"otel_exporter_otlp_traces_endpoint", "otel_exporter_otlp_traces_protocol", b"otel_exporter_otlp_traces_protocol", "otel_exporter_otlp_traces_timeout", b"otel_exporter_otlp_traces_timeout", "otel_log_level", b"otel_log_level", "otel_traces_exporter", b"otel_traces_exporter", "otel_traces_sampler_arg", b"otel_traces_sampler_arg", "pass_identity_headers", b"pass_identity_headers", "primary_color", b"primary_color", "proxy_log_level", b"proxy_log_level", "secondary_color", b"secondary_color", "services", b"services", "shared_secret", b"shared_secret", "skip_xff_append", b"skip_xff_append", "ssh_address", b"ssh_address", "ssh_host_key_files", b"ssh_host_key_files", "ssh_host_keys", b"ssh_host_keys", "ssh_user_ca_key", b"ssh_user_ca_key", "ssh_user_ca_key_file", b"ssh_user_ca_key_file", "timeout_idle", b"timeout_idle", "timeout_read", b"timeout_read", "timeout_write", b"timeout_write"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_access_log_fields", b"_access_log_fields", "_address", b"_address", "_authenticate_callback_path", b"_authenticate_callback_path", "_authenticate_service_url", b"_authenticate_service_url", "_authorize_log_fields", b"_authorize_log_fields", "_authorize_service_url", b"_authorize_service_url", "_autocert", b"_autocert", "_autocert_dir", b"_autocert_dir", "_autocert_must_staple", b"_autocert_must_staple", "_autocert_use_staging", b"_autocert_use_staging", "_bearer_token_format", b"_bearer_token_format", "_cache_service_url", b"_cache_service_url", "_certificate_authority", b"_certificate_authority", "_certificate_authority_file", b"_certificate_authority_file", "_certificate_authority_key_pair_id", b"_certificate_authority_key_pair_id", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_client_ca", b"_client_ca", "_client_ca_file", b"_client_ca_file", "_client_ca_key_pair_id", b"_client_ca_key_pair_id", "_cluster_id", b"_cluster_id", "_codec_type", b"_codec_type", "_cookie_domain", b"_cookie_domain", "_cookie_expire", b"_cookie_expire", "_cookie_http_only", b"_cookie_http_only", "_cookie_name", b"_cookie_name", "_cookie_same_site", b"_cookie_same_site", "_cookie_secret", b"_cookie_secret", "_cookie_secure", b"_cookie_secure", "_darkmode_primary_color", b"_darkmode_primary_color", "_darkmode_secondary_color", b"_darkmode_secondary_color", "_databroker_service_url", b"_databroker_service_url", "_default_upstream_timeout", b"_default_upstream_timeout", "_dns_lookup_family", b"_dns_lookup_family", "_dns_query_timeout", b"_dns_query_timeout", "_dns_query_tries", b"_dns_query_tries", "_dns_udp_max_queries", b"_dns_udp_max_queries", "_dns_use_tcp", b"_dns_use_tcp", "_error_message_first_paragraph", b"_error_message_first_paragraph", "_favicon_url", b"_favicon_url", "_google_cloud_serverless_authentication_service_account", b"_google_cloud_serverless_authentication_service_account", "_grpc_address", b"_grpc_address", "_grpc_insecure", b"_grpc_insecure", "_http_redirect_addr", b"_http_redirect_addr", "_identity_provider", b"_identity_provider", "_identity_provider_options", b"_identity_provider_options", "_identity_provider_refresh_interval", b"_identity_provider_refresh_interval", "_identity_provider_refresh_timeout", b"_identity_provider_refresh_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_idp_provider", b"_idp_provider", "_idp_provider_url", b"_idp_provider_url", "_idp_refresh_directory_interval", b"_idp_refresh_directory_interval", "_idp_refresh_directory_timeout", b"_idp_refresh_directory_timeout", "_idp_service_account", b"_idp_service_account", "_insecure_server", b"_insecure_server", "_installation_id", b"_installation_id", "_jwt_issuer_format", b"_jwt_issuer_format", "_log_level", b"_log_level", "_logo_url", b"_logo_url", "_metrics_address", b"_metrics_address", "_otel_attribute_value_length_limit", b"_otel_attribute_value_length_limit", "_otel_bsp_max_export_batch_size", b"_otel_bsp_max_export_batch_size", "_otel_bsp_schedule_delay", b"_otel_bsp_schedule_delay", "_otel_exporter_otlp_endpoint", b"_otel_exporter_otlp_endpoint", "_otel_exporter_otlp_protocol", b"_otel_exporter_otlp_protocol", "_otel_exporter_otlp_timeout", b"_otel_exporter_otlp_timeout", "_otel_exporter_otlp_traces_endpoint", b"_otel_exporter_otlp_traces_endpoint", "_otel_exporter_otlp_traces_protocol", b"_otel_exporter_otlp_traces_protocol", "_otel_exporter_otlp_traces_timeout", b"_otel_exporter_otlp_traces_timeout", "_otel_log_level", b"_otel_log_level", "_otel_traces_exporter", b"_otel_traces_exporter", "_otel_traces_sampler_arg", b"_otel_traces_sampler_arg", "_pass_identity_headers", b"_pass_identity_headers", "_primary_color", b"_primary_color", "_proxy_log_level", b"_proxy_log_level", "_secondary_color", b"_secondary_color", "_services", b"_services", "_shared_secret", b"_shared_secret", "_skip_xff_append", b"_skip_xff_append", "_ssh_address", b"_ssh_address", "_ssh_host_key_files", b"_ssh_host_key_files", "_ssh_host_keys", b"_ssh_host_keys", "_ssh_user_ca_key", b"_ssh_user_ca_key", "_ssh_user_ca_key_file", b"_ssh_user_ca_key_file", "_timeout_idle", b"_timeout_idle", "_timeout_read", b"_timeout_read", "_timeout_write", b"_timeout_write", "access_log_fields", b"access_log_fields", "address", b"address", "authenticate_callback_path", b"authenticate_callback_path", "authenticate_service_url", b"authenticate_service_url", "authorize_log_fields", b"authorize_log_fields", "authorize_service_url", b"authorize_service_url", "autocert", b"autocert", "autocert_dir", b"autocert_dir", "autocert_must_staple", b"autocert_must_staple", "autocert_use_staging", b"autocert_use_staging", "bearer_token_format", b"bearer_token_format", "cache_service_url", b"cache_service_url", "certificate_authority", b"certificate_authority", "certificate_authority_file", b"certificate_authority_file", "certificate_authority_key_pair_id", b"certificate_authority_key_pair_id", "certificates", b"certificates", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "client_ca", b"client_ca", "client_ca_file", b"client_ca_file", "client_ca_key_pair_id", b"client_ca_key_pair_id", "cluster_id", b"cluster_id", "codec_type", b"codec_type", "cookie_domain", b"cookie_domain", "cookie_expire", b"cookie_expire", "cookie_http_only", b"cookie_http_only", "cookie_name", b"cookie_name", "cookie_same_site", b"cookie_same_site", "cookie_secret", b"cookie_secret", "cookie_secure", b"cookie_secure", "darkmode_primary_color", b"darkmode_primary_color", "darkmode_secondary_color", b"darkmode_secondary_color", "databroker_service_url", b"databroker_service_url", "default_upstream_timeout", b"default_upstream_timeout", "dns_lookup_family", b"dns_lookup_family", "dns_query_timeout", b"dns_query_timeout", "dns_query_tries", b"dns_query_tries", "dns_udp_max_queries", b"dns_udp_max_queries", "dns_use_tcp", b"dns_use_tcp", "error_message_first_paragraph", b"error_message_first_paragraph", "favicon_url", b"favicon_url", "google_cloud_serverless_authentication_service_account", b"google_cloud_serverless_authentication_service_account", "grpc_address", b"grpc_address", "grpc_insecure", b"grpc_insecure", "http_redirect_addr", b"http_redirect_addr", "id", b"id", "identity_provider", b"identity_provider", "identity_provider_options", b"identity_provider_options", "identity_provider_refresh_interval", b"identity_provider_refresh_interval", "identity_provider_refresh_timeout", b"identity_provider_refresh_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "idp_provider", b"idp_provider", "idp_provider_url", b"idp_provider_url", "idp_refresh_directory_interval", b"idp_refresh_directory_interval", "idp_refresh_directory_timeout", b"idp_refresh_directory_timeout", "idp_service_account", b"idp_service_account", "insecure_server", b"insecure_server", "installation_id", b"installation_id", "jwt_claims_headers", b"jwt_claims_headers", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "log_level", b"log_level", "logo_url", b"logo_url", "metrics_address", b"metrics_address", "modified_at", b"modified_at", "originator_id", b"originator_id", "otel_attribute_value_length_limit", b"otel_attribute_value_length_limit", "otel_bsp_max_export_batch_size", b"otel_bsp_max_export_batch_size", "otel_bsp_schedule_delay", b"otel_bsp_schedule_delay", "otel_exporter_otlp_endpoint", b"otel_exporter_otlp_endpoint", "otel_exporter_otlp_headers", b"otel_exporter_otlp_headers", "otel_exporter_otlp_protocol", b"otel_exporter_otlp_protocol", "otel_exporter_otlp_timeout", b"otel_exporter_otlp_timeout", "otel_exporter_otlp_traces_endpoint", b"otel_exporter_otlp_traces_endpoint", "otel_exporter_otlp_traces_headers", b"otel_exporter_otlp_traces_headers", "otel_exporter_otlp_traces_protocol", b"otel_exporter_otlp_traces_protocol", "otel_exporter_otlp_traces_timeout", b"otel_exporter_otlp_traces_timeout", "otel_log_level", b"otel_log_level", "otel_resource_attributes", b"otel_resource_attributes", "otel_traces_exporter", b"otel_traces_exporter", "otel_traces_sampler_arg", b"otel_traces_sampler_arg", "pass_identity_headers", b"pass_identity_headers", "primary_color", b"primary_color", "proxy_log_level", b"proxy_log_level", "request_params", b"request_params", "scopes", b"scopes", "secondary_color", b"secondary_color", "services", b"services", "set_response_headers", b"set_response_headers", "shared_secret", b"shared_secret", "skip_xff_append", b"skip_xff_append", "ssh_address", b"ssh_address", "ssh_host_key_files", b"ssh_host_key_files", "ssh_host_keys", b"ssh_host_keys", "ssh_user_ca_key", b"ssh_user_ca_key", "ssh_user_ca_key_file", b"ssh_user_ca_key_file", "timeout_idle", b"timeout_idle", "timeout_read", b"timeout_read", "timeout_write", b"timeout_write"]) -> None: ... + def HasField(self, field_name: typing.Literal["_access_log_fields", b"_access_log_fields", "_address", b"_address", "_authenticate_callback_path", b"_authenticate_callback_path", "_authenticate_service_url", b"_authenticate_service_url", "_authorize_log_fields", b"_authorize_log_fields", "_authorize_service_url", b"_authorize_service_url", "_autocert", b"_autocert", "_autocert_dir", b"_autocert_dir", "_autocert_must_staple", b"_autocert_must_staple", "_autocert_use_staging", b"_autocert_use_staging", "_bearer_token_format", b"_bearer_token_format", "_cache_service_url", b"_cache_service_url", "_certificate_authority", b"_certificate_authority", "_certificate_authority_file", b"_certificate_authority_file", "_certificate_authority_key_pair_id", b"_certificate_authority_key_pair_id", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_client_ca", b"_client_ca", "_client_ca_file", b"_client_ca_file", "_client_ca_key_pair_id", b"_client_ca_key_pair_id", "_cluster_id", b"_cluster_id", "_codec_type", b"_codec_type", "_cookie_domain", b"_cookie_domain", "_cookie_expire", b"_cookie_expire", "_cookie_http_only", b"_cookie_http_only", "_cookie_name", b"_cookie_name", "_cookie_same_site", b"_cookie_same_site", "_cookie_secret", b"_cookie_secret", "_cookie_secure", b"_cookie_secure", "_darkmode_primary_color", b"_darkmode_primary_color", "_darkmode_secondary_color", b"_darkmode_secondary_color", "_databroker_service_url", b"_databroker_service_url", "_default_upstream_timeout", b"_default_upstream_timeout", "_dns_failure_refresh_rate", b"_dns_failure_refresh_rate", "_dns_lookup_family", b"_dns_lookup_family", "_dns_query_timeout", b"_dns_query_timeout", "_dns_query_tries", b"_dns_query_tries", "_dns_refresh_rate", b"_dns_refresh_rate", "_dns_udp_max_queries", b"_dns_udp_max_queries", "_dns_use_tcp", b"_dns_use_tcp", "_error_message_first_paragraph", b"_error_message_first_paragraph", "_favicon_url", b"_favicon_url", "_google_cloud_serverless_authentication_service_account", b"_google_cloud_serverless_authentication_service_account", "_grpc_address", b"_grpc_address", "_grpc_insecure", b"_grpc_insecure", "_http_redirect_addr", b"_http_redirect_addr", "_identity_provider", b"_identity_provider", "_identity_provider_options", b"_identity_provider_options", "_identity_provider_refresh_interval", b"_identity_provider_refresh_interval", "_identity_provider_refresh_timeout", b"_identity_provider_refresh_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_idp_provider", b"_idp_provider", "_idp_provider_url", b"_idp_provider_url", "_idp_refresh_directory_interval", b"_idp_refresh_directory_interval", "_idp_refresh_directory_timeout", b"_idp_refresh_directory_timeout", "_idp_service_account", b"_idp_service_account", "_insecure_server", b"_insecure_server", "_installation_id", b"_installation_id", "_jwt_issuer_format", b"_jwt_issuer_format", "_log_level", b"_log_level", "_logo_url", b"_logo_url", "_metrics_address", b"_metrics_address", "_otel_attribute_value_length_limit", b"_otel_attribute_value_length_limit", "_otel_bsp_max_export_batch_size", b"_otel_bsp_max_export_batch_size", "_otel_bsp_schedule_delay", b"_otel_bsp_schedule_delay", "_otel_exporter_otlp_endpoint", b"_otel_exporter_otlp_endpoint", "_otel_exporter_otlp_protocol", b"_otel_exporter_otlp_protocol", "_otel_exporter_otlp_timeout", b"_otel_exporter_otlp_timeout", "_otel_exporter_otlp_traces_endpoint", b"_otel_exporter_otlp_traces_endpoint", "_otel_exporter_otlp_traces_protocol", b"_otel_exporter_otlp_traces_protocol", "_otel_exporter_otlp_traces_timeout", b"_otel_exporter_otlp_traces_timeout", "_otel_log_level", b"_otel_log_level", "_otel_traces_exporter", b"_otel_traces_exporter", "_otel_traces_sampler_arg", b"_otel_traces_sampler_arg", "_pass_identity_headers", b"_pass_identity_headers", "_primary_color", b"_primary_color", "_proxy_log_level", b"_proxy_log_level", "_secondary_color", b"_secondary_color", "_services", b"_services", "_shared_secret", b"_shared_secret", "_skip_xff_append", b"_skip_xff_append", "_ssh_address", b"_ssh_address", "_ssh_host_key_files", b"_ssh_host_key_files", "_ssh_host_keys", b"_ssh_host_keys", "_ssh_user_ca_key", b"_ssh_user_ca_key", "_ssh_user_ca_key_file", b"_ssh_user_ca_key_file", "_timeout_idle", b"_timeout_idle", "_timeout_read", b"_timeout_read", "_timeout_write", b"_timeout_write", "access_log_fields", b"access_log_fields", "address", b"address", "authenticate_callback_path", b"authenticate_callback_path", "authenticate_service_url", b"authenticate_service_url", "authorize_log_fields", b"authorize_log_fields", "authorize_service_url", b"authorize_service_url", "autocert", b"autocert", "autocert_dir", b"autocert_dir", "autocert_must_staple", b"autocert_must_staple", "autocert_use_staging", b"autocert_use_staging", "bearer_token_format", b"bearer_token_format", "cache_service_url", b"cache_service_url", "certificate_authority", b"certificate_authority", "certificate_authority_file", b"certificate_authority_file", "certificate_authority_key_pair_id", b"certificate_authority_key_pair_id", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "client_ca", b"client_ca", "client_ca_file", b"client_ca_file", "client_ca_key_pair_id", b"client_ca_key_pair_id", "cluster_id", b"cluster_id", "codec_type", b"codec_type", "cookie_domain", b"cookie_domain", "cookie_expire", b"cookie_expire", "cookie_http_only", b"cookie_http_only", "cookie_name", b"cookie_name", "cookie_same_site", b"cookie_same_site", "cookie_secret", b"cookie_secret", "cookie_secure", b"cookie_secure", "darkmode_primary_color", b"darkmode_primary_color", "darkmode_secondary_color", b"darkmode_secondary_color", "databroker_service_url", b"databroker_service_url", "default_upstream_timeout", b"default_upstream_timeout", "dns_failure_refresh_rate", b"dns_failure_refresh_rate", "dns_lookup_family", b"dns_lookup_family", "dns_query_timeout", b"dns_query_timeout", "dns_query_tries", b"dns_query_tries", "dns_refresh_rate", b"dns_refresh_rate", "dns_udp_max_queries", b"dns_udp_max_queries", "dns_use_tcp", b"dns_use_tcp", "error_message_first_paragraph", b"error_message_first_paragraph", "favicon_url", b"favicon_url", "google_cloud_serverless_authentication_service_account", b"google_cloud_serverless_authentication_service_account", "grpc_address", b"grpc_address", "grpc_insecure", b"grpc_insecure", "http_redirect_addr", b"http_redirect_addr", "identity_provider", b"identity_provider", "identity_provider_options", b"identity_provider_options", "identity_provider_refresh_interval", b"identity_provider_refresh_interval", "identity_provider_refresh_timeout", b"identity_provider_refresh_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "idp_provider", b"idp_provider", "idp_provider_url", b"idp_provider_url", "idp_refresh_directory_interval", b"idp_refresh_directory_interval", "idp_refresh_directory_timeout", b"idp_refresh_directory_timeout", "idp_service_account", b"idp_service_account", "insecure_server", b"insecure_server", "installation_id", b"installation_id", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "log_level", b"log_level", "logo_url", b"logo_url", "metrics_address", b"metrics_address", "modified_at", b"modified_at", "otel_attribute_value_length_limit", b"otel_attribute_value_length_limit", "otel_bsp_max_export_batch_size", b"otel_bsp_max_export_batch_size", "otel_bsp_schedule_delay", b"otel_bsp_schedule_delay", "otel_exporter_otlp_endpoint", b"otel_exporter_otlp_endpoint", "otel_exporter_otlp_protocol", b"otel_exporter_otlp_protocol", "otel_exporter_otlp_timeout", b"otel_exporter_otlp_timeout", "otel_exporter_otlp_traces_endpoint", b"otel_exporter_otlp_traces_endpoint", "otel_exporter_otlp_traces_protocol", b"otel_exporter_otlp_traces_protocol", "otel_exporter_otlp_traces_timeout", b"otel_exporter_otlp_traces_timeout", "otel_log_level", b"otel_log_level", "otel_traces_exporter", b"otel_traces_exporter", "otel_traces_sampler_arg", b"otel_traces_sampler_arg", "pass_identity_headers", b"pass_identity_headers", "primary_color", b"primary_color", "proxy_log_level", b"proxy_log_level", "secondary_color", b"secondary_color", "services", b"services", "shared_secret", b"shared_secret", "skip_xff_append", b"skip_xff_append", "ssh_address", b"ssh_address", "ssh_host_key_files", b"ssh_host_key_files", "ssh_host_keys", b"ssh_host_keys", "ssh_user_ca_key", b"ssh_user_ca_key", "ssh_user_ca_key_file", b"ssh_user_ca_key_file", "timeout_idle", b"timeout_idle", "timeout_read", b"timeout_read", "timeout_write", b"timeout_write"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_access_log_fields", b"_access_log_fields", "_address", b"_address", "_authenticate_callback_path", b"_authenticate_callback_path", "_authenticate_service_url", b"_authenticate_service_url", "_authorize_log_fields", b"_authorize_log_fields", "_authorize_service_url", b"_authorize_service_url", "_autocert", b"_autocert", "_autocert_dir", b"_autocert_dir", "_autocert_must_staple", b"_autocert_must_staple", "_autocert_use_staging", b"_autocert_use_staging", "_bearer_token_format", b"_bearer_token_format", "_cache_service_url", b"_cache_service_url", "_certificate_authority", b"_certificate_authority", "_certificate_authority_file", b"_certificate_authority_file", "_certificate_authority_key_pair_id", b"_certificate_authority_key_pair_id", "_circuit_breaker_thresholds", b"_circuit_breaker_thresholds", "_client_ca", b"_client_ca", "_client_ca_file", b"_client_ca_file", "_client_ca_key_pair_id", b"_client_ca_key_pair_id", "_cluster_id", b"_cluster_id", "_codec_type", b"_codec_type", "_cookie_domain", b"_cookie_domain", "_cookie_expire", b"_cookie_expire", "_cookie_http_only", b"_cookie_http_only", "_cookie_name", b"_cookie_name", "_cookie_same_site", b"_cookie_same_site", "_cookie_secret", b"_cookie_secret", "_cookie_secure", b"_cookie_secure", "_darkmode_primary_color", b"_darkmode_primary_color", "_darkmode_secondary_color", b"_darkmode_secondary_color", "_databroker_service_url", b"_databroker_service_url", "_default_upstream_timeout", b"_default_upstream_timeout", "_dns_failure_refresh_rate", b"_dns_failure_refresh_rate", "_dns_lookup_family", b"_dns_lookup_family", "_dns_query_timeout", b"_dns_query_timeout", "_dns_query_tries", b"_dns_query_tries", "_dns_refresh_rate", b"_dns_refresh_rate", "_dns_udp_max_queries", b"_dns_udp_max_queries", "_dns_use_tcp", b"_dns_use_tcp", "_error_message_first_paragraph", b"_error_message_first_paragraph", "_favicon_url", b"_favicon_url", "_google_cloud_serverless_authentication_service_account", b"_google_cloud_serverless_authentication_service_account", "_grpc_address", b"_grpc_address", "_grpc_insecure", b"_grpc_insecure", "_http_redirect_addr", b"_http_redirect_addr", "_identity_provider", b"_identity_provider", "_identity_provider_options", b"_identity_provider_options", "_identity_provider_refresh_interval", b"_identity_provider_refresh_interval", "_identity_provider_refresh_timeout", b"_identity_provider_refresh_timeout", "_idp_access_token_allowed_audiences", b"_idp_access_token_allowed_audiences", "_idp_client_id", b"_idp_client_id", "_idp_client_secret", b"_idp_client_secret", "_idp_provider", b"_idp_provider", "_idp_provider_url", b"_idp_provider_url", "_idp_refresh_directory_interval", b"_idp_refresh_directory_interval", "_idp_refresh_directory_timeout", b"_idp_refresh_directory_timeout", "_idp_service_account", b"_idp_service_account", "_insecure_server", b"_insecure_server", "_installation_id", b"_installation_id", "_jwt_issuer_format", b"_jwt_issuer_format", "_log_level", b"_log_level", "_logo_url", b"_logo_url", "_metrics_address", b"_metrics_address", "_otel_attribute_value_length_limit", b"_otel_attribute_value_length_limit", "_otel_bsp_max_export_batch_size", b"_otel_bsp_max_export_batch_size", "_otel_bsp_schedule_delay", b"_otel_bsp_schedule_delay", "_otel_exporter_otlp_endpoint", b"_otel_exporter_otlp_endpoint", "_otel_exporter_otlp_protocol", b"_otel_exporter_otlp_protocol", "_otel_exporter_otlp_timeout", b"_otel_exporter_otlp_timeout", "_otel_exporter_otlp_traces_endpoint", b"_otel_exporter_otlp_traces_endpoint", "_otel_exporter_otlp_traces_protocol", b"_otel_exporter_otlp_traces_protocol", "_otel_exporter_otlp_traces_timeout", b"_otel_exporter_otlp_traces_timeout", "_otel_log_level", b"_otel_log_level", "_otel_traces_exporter", b"_otel_traces_exporter", "_otel_traces_sampler_arg", b"_otel_traces_sampler_arg", "_pass_identity_headers", b"_pass_identity_headers", "_primary_color", b"_primary_color", "_proxy_log_level", b"_proxy_log_level", "_secondary_color", b"_secondary_color", "_services", b"_services", "_shared_secret", b"_shared_secret", "_skip_xff_append", b"_skip_xff_append", "_ssh_address", b"_ssh_address", "_ssh_host_key_files", b"_ssh_host_key_files", "_ssh_host_keys", b"_ssh_host_keys", "_ssh_user_ca_key", b"_ssh_user_ca_key", "_ssh_user_ca_key_file", b"_ssh_user_ca_key_file", "_timeout_idle", b"_timeout_idle", "_timeout_read", b"_timeout_read", "_timeout_write", b"_timeout_write", "access_log_fields", b"access_log_fields", "address", b"address", "authenticate_callback_path", b"authenticate_callback_path", "authenticate_service_url", b"authenticate_service_url", "authorize_log_fields", b"authorize_log_fields", "authorize_service_url", b"authorize_service_url", "autocert", b"autocert", "autocert_dir", b"autocert_dir", "autocert_must_staple", b"autocert_must_staple", "autocert_use_staging", b"autocert_use_staging", "bearer_token_format", b"bearer_token_format", "cache_service_url", b"cache_service_url", "certificate_authority", b"certificate_authority", "certificate_authority_file", b"certificate_authority_file", "certificate_authority_key_pair_id", b"certificate_authority_key_pair_id", "certificates", b"certificates", "circuit_breaker_thresholds", b"circuit_breaker_thresholds", "client_ca", b"client_ca", "client_ca_file", b"client_ca_file", "client_ca_key_pair_id", b"client_ca_key_pair_id", "cluster_id", b"cluster_id", "codec_type", b"codec_type", "cookie_domain", b"cookie_domain", "cookie_expire", b"cookie_expire", "cookie_http_only", b"cookie_http_only", "cookie_name", b"cookie_name", "cookie_same_site", b"cookie_same_site", "cookie_secret", b"cookie_secret", "cookie_secure", b"cookie_secure", "darkmode_primary_color", b"darkmode_primary_color", "darkmode_secondary_color", b"darkmode_secondary_color", "databroker_service_url", b"databroker_service_url", "default_upstream_timeout", b"default_upstream_timeout", "dns_failure_refresh_rate", b"dns_failure_refresh_rate", "dns_lookup_family", b"dns_lookup_family", "dns_query_timeout", b"dns_query_timeout", "dns_query_tries", b"dns_query_tries", "dns_refresh_rate", b"dns_refresh_rate", "dns_udp_max_queries", b"dns_udp_max_queries", "dns_use_tcp", b"dns_use_tcp", "error_message_first_paragraph", b"error_message_first_paragraph", "favicon_url", b"favicon_url", "google_cloud_serverless_authentication_service_account", b"google_cloud_serverless_authentication_service_account", "grpc_address", b"grpc_address", "grpc_insecure", b"grpc_insecure", "http_redirect_addr", b"http_redirect_addr", "id", b"id", "identity_provider", b"identity_provider", "identity_provider_options", b"identity_provider_options", "identity_provider_refresh_interval", b"identity_provider_refresh_interval", "identity_provider_refresh_timeout", b"identity_provider_refresh_timeout", "idp_access_token_allowed_audiences", b"idp_access_token_allowed_audiences", "idp_client_id", b"idp_client_id", "idp_client_secret", b"idp_client_secret", "idp_provider", b"idp_provider", "idp_provider_url", b"idp_provider_url", "idp_refresh_directory_interval", b"idp_refresh_directory_interval", "idp_refresh_directory_timeout", b"idp_refresh_directory_timeout", "idp_service_account", b"idp_service_account", "insecure_server", b"insecure_server", "installation_id", b"installation_id", "jwt_claims_headers", b"jwt_claims_headers", "jwt_groups_filter", b"jwt_groups_filter", "jwt_issuer_format", b"jwt_issuer_format", "log_level", b"log_level", "logo_url", b"logo_url", "metrics_address", b"metrics_address", "modified_at", b"modified_at", "originator_id", b"originator_id", "otel_attribute_value_length_limit", b"otel_attribute_value_length_limit", "otel_bsp_max_export_batch_size", b"otel_bsp_max_export_batch_size", "otel_bsp_schedule_delay", b"otel_bsp_schedule_delay", "otel_exporter_otlp_endpoint", b"otel_exporter_otlp_endpoint", "otel_exporter_otlp_headers", b"otel_exporter_otlp_headers", "otel_exporter_otlp_protocol", b"otel_exporter_otlp_protocol", "otel_exporter_otlp_timeout", b"otel_exporter_otlp_timeout", "otel_exporter_otlp_traces_endpoint", b"otel_exporter_otlp_traces_endpoint", "otel_exporter_otlp_traces_headers", b"otel_exporter_otlp_traces_headers", "otel_exporter_otlp_traces_protocol", b"otel_exporter_otlp_traces_protocol", "otel_exporter_otlp_traces_timeout", b"otel_exporter_otlp_traces_timeout", "otel_log_level", b"otel_log_level", "otel_resource_attributes", b"otel_resource_attributes", "otel_traces_exporter", b"otel_traces_exporter", "otel_traces_sampler_arg", b"otel_traces_sampler_arg", "pass_identity_headers", b"pass_identity_headers", "primary_color", b"primary_color", "proxy_log_level", b"proxy_log_level", "request_params", b"request_params", "scopes", b"scopes", "secondary_color", b"secondary_color", "services", b"services", "set_response_headers", b"set_response_headers", "shared_secret", b"shared_secret", "skip_xff_append", b"skip_xff_append", "ssh_address", b"ssh_address", "ssh_host_key_files", b"ssh_host_key_files", "ssh_host_keys", b"ssh_host_keys", "ssh_user_ca_key", b"ssh_user_ca_key", "ssh_user_ca_key_file", b"ssh_user_ca_key_file", "timeout_idle", b"timeout_idle", "timeout_read", b"timeout_read", "timeout_write", b"timeout_write"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_access_log_fields", b"_access_log_fields"]) -> typing.Literal["access_log_fields"] | None: ... @typing.overload @@ -553,12 +562,16 @@ class Settings(google.protobuf.message.Message): @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_default_upstream_timeout", b"_default_upstream_timeout"]) -> typing.Literal["default_upstream_timeout"] | None: ... @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_dns_failure_refresh_rate", b"_dns_failure_refresh_rate"]) -> typing.Literal["dns_failure_refresh_rate"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_lookup_family", b"_dns_lookup_family"]) -> typing.Literal["dns_lookup_family"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_query_timeout", b"_dns_query_timeout"]) -> typing.Literal["dns_query_timeout"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_query_tries", b"_dns_query_tries"]) -> typing.Literal["dns_query_tries"] | None: ... @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_dns_refresh_rate", b"_dns_refresh_rate"]) -> typing.Literal["dns_refresh_rate"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_udp_max_queries", b"_dns_udp_max_queries"]) -> typing.Literal["dns_udp_max_queries"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_dns_use_tcp", b"_dns_use_tcp"]) -> typing.Literal["dns_use_tcp"] | None: ... From c3a57542db46c1be5504505a33143e0ea8e2d89b Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:25:10 -0600 Subject: [PATCH 06/22] multiple python versions --- .github/workflows/update.yaml | 37 +++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index a13d93c..5edc515 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -16,7 +16,7 @@ jobs: submodules: "true" token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} - - name: Setup Python + - name: Setup Python 3.9 uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: python-version: "3.9" @@ -25,11 +25,40 @@ jobs: run: | ./scripts/update - - name: Install - run: pip install . + - name: Test + run: | + pip install . + make test + + - name: Setup Python 3.10 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: "3.10" + + - name: Test + run: | + pip install . + make test + + - name: Setup Python 3.11 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: "3.11" - name: Test - run: make test + run: | + pip install . + make test + + - name: Setup Python 3.12 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: "3.12" + + - name: Test + run: | + pip install . + make test - name: Commit uses: devops-infra/action-commit-push@e6a24fad602d1f92e46432c89a7e0c7fdd45d62d From e149647f2945e496dc6026dc8357eea06726a05b Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:27:34 -0600 Subject: [PATCH 07/22] more python versions --- .github/workflows/update.yaml | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 5edc515..fc48c62 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -25,7 +25,7 @@ jobs: run: | ./scripts/update - - name: Test + - name: Test Python 3.9 run: | pip install . make test @@ -35,7 +35,7 @@ jobs: with: python-version: "3.10" - - name: Test + - name: Test Python 3.10 run: | pip install . make test @@ -45,7 +45,7 @@ jobs: with: python-version: "3.11" - - name: Test + - name: Test Python 3.11 run: | pip install . make test @@ -55,7 +55,27 @@ jobs: with: python-version: "3.12" - - name: Test + - name: Test Python 3.12 + run: | + pip install . + make test + + - name: Setup Python 3.13 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: "3.13" + + - name: Test Python 3.13 + run: | + pip install . + make test + + - name: Setup Python 3.14 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: "3.12" + + - name: Test Python 3.14 run: | pip install . make test From 3c1e6ff4f3eccb989a4c2b5c175f5e1dd122d268 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:41:02 -0600 Subject: [PATCH 08/22] use dependencies --- .github/workflows/test.yaml | 23 +++++++++++ .github/workflows/update.yaml | 77 ++++++++--------------------------- 2 files changed, 41 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..9c830d1 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,23 @@ +name: test + +on: + pull_request: + push: + branches: + - main +jobs: + tests: + strategy: + matrix: + python-version: ["3.9", "3.10", "3.11", "3.12"] + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + + - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: ${{ matrix.python-version }} + + - run: pip install . + + - run: make test diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index fc48c62..6e30553 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -5,9 +5,10 @@ on: push: branches: - main + jobs: update: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 @@ -16,72 +17,30 @@ jobs: submodules: "true" token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} - - name: Setup Python 3.9 + - name: Setup Python uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: "3.9" - name: Update run: | ./scripts/update - - name: Test Python 3.9 - run: | - pip install . - make test - - - name: Setup Python 3.10 - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: "3.10" - - - name: Test Python 3.10 - run: | - pip install . - make test - - - name: Setup Python 3.11 - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: "3.11" - - - name: Test Python 3.11 - run: | - pip install . - make test - - - name: Setup Python 3.12 - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: "3.12" - - - name: Test Python 3.12 - run: | - pip install . - make test - - - name: Setup Python 3.13 - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: "3.13" - - - name: Test Python 3.13 - run: | - pip install . - make test - - - name: Setup Python 3.14 - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: "3.12" - - - name: Test Python 3.14 - run: | - pip install . - make test - - name: Commit uses: devops-infra/action-commit-push@e6a24fad602d1f92e46432c89a7e0c7fdd45d62d with: github_token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} commit_message: "ci: update" + + test: + needs: update + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.9", "3.10", "3.11", "3.12"] + steps: + - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: ${{ matrix.python-version }} + + - run: pip install . + + - run: make test From f36437ad58d701c2d78b7a612b51c72c8957b8fd Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:44:24 -0600 Subject: [PATCH 09/22] checkout --- .github/workflows/update.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 6e30553..b592d81 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -37,6 +37,11 @@ jobs: matrix: python-version: ["3.9", "3.10", "3.11", "3.12"] steps: + - name: Checkout + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + with: + ref: ${{ github.head_ref }} + - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c with: python-version: ${{ matrix.python-version }} From 939e1f2659ca4a3791ad8c0cffc38be849f0240c Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:44:53 -0600 Subject: [PATCH 10/22] remove test --- .github/workflows/test.yaml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index 9c830d1..0000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,23 +0,0 @@ -name: test - -on: - pull_request: - push: - branches: - - main -jobs: - tests: - strategy: - matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 - - - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: ${{ matrix.python-version }} - - - run: pip install . - - - run: make test From cbcd44723452cf872ea7faa8151bc5dc2521ca1f Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:46:31 -0600 Subject: [PATCH 11/22] set python version, only for dependabot --- .github/workflows/update.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index b592d81..836afe1 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -9,6 +9,7 @@ on: jobs: update: runs-on: ubuntu-latest + if: github.event.pull_request.user.login == 'dependabot[bot]' steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 @@ -19,6 +20,8 @@ jobs: - name: Setup Python uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: "3.14" - name: Update run: | @@ -35,7 +38,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 From 3fdbdfa730b05019b90d04d3b365e4a47c1ba927 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:50:17 -0600 Subject: [PATCH 12/22] always run test --- .github/workflows/update.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 836afe1..71de612 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -34,8 +34,9 @@ jobs: commit_message: "ci: update" test: - needs: update runs-on: ubuntu-latest + needs: update + if: always() && !failure() && !cancelled() strategy: matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] From eb0ea3f84060c51c95be83b163a7542765fa1165 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:51:18 -0600 Subject: [PATCH 13/22] always run update --- .github/workflows/update.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 71de612..c84ab3e 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -9,7 +9,6 @@ on: jobs: update: runs-on: ubuntu-latest - if: github.event.pull_request.user.login == 'dependabot[bot]' steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 @@ -36,7 +35,6 @@ jobs: test: runs-on: ubuntu-latest needs: update - if: always() && !failure() && !cancelled() strategy: matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] From 5399a0f830583bf317ea698b513190c4c1958126 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Fri, 10 Oct 2025 14:51:55 -0600 Subject: [PATCH 14/22] only commit if dependabot --- .github/workflows/update.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index c84ab3e..787eba3 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -27,6 +27,7 @@ jobs: ./scripts/update - name: Commit + if: github.event.pull_request.user.login == 'dependabot[bot]' uses: devops-infra/action-commit-push@e6a24fad602d1f92e46432c89a7e0c7fdd45d62d with: github_token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} From 96c7bbe915b0efc44974e9e373095abbf875b5e0 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Sat, 11 Oct 2025 09:47:00 -0600 Subject: [PATCH 15/22] update makefile --- Makefile | 8 ++++---- scripts/{update => generate} | 0 2 files changed, 4 insertions(+), 4 deletions(-) rename scripts/{update => generate} (100%) diff --git a/Makefile b/Makefile index 50c4d09..f601089 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,17 @@ PYTHON:=python3 .PHONY: all -all: test pkg +all: generate test pkg .PHONY: pkg pkg: @echo "==> $@" $(PYTHON) -m build . -.PHONY: update -update: +.PHONY: generate +generate: @echo "==> $@" - @scripts/update + @scripts/generate .PHONY: test test: diff --git a/scripts/update b/scripts/generate similarity index 100% rename from scripts/update rename to scripts/generate From 56569561a078a021f92febe9d32c51cdb39c39d3 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Sat, 11 Oct 2025 14:44:07 -0600 Subject: [PATCH 16/22] add CODEOWNERS --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..a866da9 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @pomerium/dev-backend From 4d8dd69891293e06dc66df0179d8ca2641bc449e Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Sat, 11 Oct 2025 14:48:42 -0600 Subject: [PATCH 17/22] rename generate --- .github/workflows/update.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 787eba3..d82f12b 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -22,9 +22,8 @@ jobs: with: python-version: "3.14" - - name: Update - run: | - ./scripts/update + - name: Generate + run: make generate - name: Commit if: github.event.pull_request.user.login == 'dependabot[bot]' From e5da41f18d75eb9f4ad6d92e6875ffef90443456 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Thu, 16 Oct 2025 02:56:42 -0600 Subject: [PATCH 18/22] wip --- .github/dependabot.yaml | 2 + .github/workflows/build.yaml | 16 ++++++++ .github/workflows/reusable-build.yaml | 28 ++++++++++++++ .github/workflows/update-pomerium.yaml | 42 ++++++++++++++++++++ .github/workflows/update.yaml | 53 -------------------------- Makefile | 6 +++ 6 files changed, 94 insertions(+), 53 deletions(-) create mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/reusable-build.yaml create mode 100644 .github/workflows/update-pomerium.yaml delete mode 100644 .github/workflows/update.yaml diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 01dddd4..0f1cca3 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -8,6 +8,8 @@ updates: gitsubmodule: patterns: - "*" + exclude-patterns: + - "deps/github.com/pomerium/*" - package-ecosystem: "github-actions" directory: "/" schedule: diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..e3eba25 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,16 @@ +name: Build + +on: + pull_request: + branches-ignore: + - "dependabot/**" + push: + branches: + - "main" + +jobs: + build: + name: Build + uses: ./.github/workflows/reusable-build.yaml + with: + ref: ${{ github.head_ref }} diff --git a/.github/workflows/reusable-build.yaml b/.github/workflows/reusable-build.yaml new file mode 100644 index 0000000..af8257e --- /dev/null +++ b/.github/workflows/reusable-build.yaml @@ -0,0 +1,28 @@ +name: Build + +on: + workflow_call: + inputs: + ref: + required: true + type: string + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + steps: + - name: Checkout + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + with: + ref: ${{ inputs.ref }} + + - name: Setup Python + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c + with: + python-version: ${{ matrix.python-version }} + + - name: Test + run: make test diff --git a/.github/workflows/update-pomerium.yaml b/.github/workflows/update-pomerium.yaml new file mode 100644 index 0000000..f2961ea --- /dev/null +++ b/.github/workflows/update-pomerium.yaml @@ -0,0 +1,42 @@ +name: Update Pomerium + +on: + schedule: + - cron: "40 1 * * *" + workflow_dispatch: + +jobs: + update: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + with: + submodules: "true" + token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} + + - name: Update Pomerium + run: make update-pomerium + + - name: Generate + run: make generate + + - name: Check for changes + id: git-diff + run: | + git config --global user.email "apparitor@users.noreply.github.com" + git config --global user.name "GitHub Actions" + git add deps/github.com/pomerium + git diff --cached --exit-code || echo "changed=true" >> $GITHUB_OUTPUT + + - name: Create Pull Request + if: ${{ steps.git-diff.outputs.changed }} == 'true' + uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e + with: + author: GitHub Actions + body: "This PR updates Pomerium Dependencies" + commit-message: "ci: update pomerium dependencies" + delete-branch: true + labels: ci + title: "ci: update pomerium dependencies" + token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml deleted file mode 100644 index d82f12b..0000000 --- a/.github/workflows/update.yaml +++ /dev/null @@ -1,53 +0,0 @@ -name: Update - -on: - pull_request: - push: - branches: - - main - -jobs: - update: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 - with: - ref: ${{ github.head_ref }} - submodules: "true" - token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} - - - name: Setup Python - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: "3.14" - - - name: Generate - run: make generate - - - name: Commit - if: github.event.pull_request.user.login == 'dependabot[bot]' - uses: devops-infra/action-commit-push@e6a24fad602d1f92e46432c89a7e0c7fdd45d62d - with: - github_token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} - commit_message: "ci: update" - - test: - runs-on: ubuntu-latest - needs: update - strategy: - matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] - steps: - - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 - with: - ref: ${{ github.head_ref }} - - - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c - with: - python-version: ${{ matrix.python-version }} - - - run: pip install . - - - run: make test diff --git a/Makefile b/Makefile index f601089..3773614 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ all: generate test pkg .PHONY: pkg pkg: @echo "==> $@" + $(PYTHON) -m pip install build $(PYTHON) -m build . .PHONY: generate @@ -17,3 +18,8 @@ generate: test: @echo "==> $@" PYTHONPATH=src/ $(PYTHON) -m unittest discover -s src -v + +.PHONY: update-pomerium +update-pomerium: + @echo "==> $@" + git submodule update --remote deps/github.com/pomerium From 7f076289d0ef3e77b06c71d3709ba12350b9f214 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Thu, 16 Oct 2025 03:02:14 -0600 Subject: [PATCH 19/22] install --- Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3773614..6796cbb 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ PYTHON:=python3 all: generate test pkg .PHONY: pkg -pkg: +pkg: install @echo "==> $@" $(PYTHON) -m pip install build $(PYTHON) -m build . @@ -15,7 +15,7 @@ generate: @scripts/generate .PHONY: test -test: +test: install @echo "==> $@" PYTHONPATH=src/ $(PYTHON) -m unittest discover -s src -v @@ -23,3 +23,8 @@ test: update-pomerium: @echo "==> $@" git submodule update --remote deps/github.com/pomerium + +.PHONY: install +install: setup.cfg +setup.cfg: + $(PYTHON) -m pip install . From 3358756e3e4244c55e488a9964d183de4b0592ef Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Thu, 16 Oct 2025 03:02:59 -0600 Subject: [PATCH 20/22] add dependabot job --- .github/workflows/dependabot.yaml | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/dependabot.yaml diff --git a/.github/workflows/dependabot.yaml b/.github/workflows/dependabot.yaml new file mode 100644 index 0000000..747fb3c --- /dev/null +++ b/.github/workflows/dependabot.yaml @@ -0,0 +1,34 @@ +name: Dependabot + +on: + pull_request: + branches: + - "dependabot/**" + +jobs: + generate: + name: Generate + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + with: + ref: ${{ github.head_ref }} + submodules: "true" + token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} + + - name: Generate + run: make generate + + - name: Commit + uses: devops-infra/action-commit-push@e6a24fad602d1f92e46432c89a7e0c7fdd45d62d + with: + github_token: ${{ secrets.APPARITOR_GITHUB_TOKEN }} + commit_message: "dependabot: generate" + + build: + name: Build + needs: generate + uses: ./.github/workflows/reusable-build.yaml + with: + ref: ${{ github.head_ref }} From a4951830a7b2fed1222f241aaa74e8c49b4c5c17 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Thu, 16 Oct 2025 03:04:13 -0600 Subject: [PATCH 21/22] update --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6796cbb..94e450a 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ pkg: install $(PYTHON) -m build . .PHONY: generate -generate: +generate: install @echo "==> $@" @scripts/generate From af14ad1db529f07188b768294cb02b20d698aa89 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Thu, 16 Oct 2025 03:04:57 -0600 Subject: [PATCH 22/22] always install --- Makefile | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 94e450a..cd80524 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,10 @@ generate: install @echo "==> $@" @scripts/generate +.PHONY: install +install: + $(PYTHON) -m pip install . + .PHONY: test test: install @echo "==> $@" @@ -23,8 +27,3 @@ test: install update-pomerium: @echo "==> $@" git submodule update --remote deps/github.com/pomerium - -.PHONY: install -install: setup.cfg -setup.cfg: - $(PYTHON) -m pip install .