From c93392e8531cbf7af0eb494905f9209df34a1888 Mon Sep 17 00:00:00 2001 From: ngrok release bot Date: Fri, 18 Aug 2023 15:36:18 +0000 Subject: [PATCH] Update generated files --- .gitignore | 2 + .tox/dist/ngrok-api-0.0.0.zip | Bin 50513 -> 51329 bytes .tox/log/GLOB-0.log | 45 ++- README.md | 2 + doc/Makefile | 2 + doc/make.bat | 72 ++--- doc/source/abuse_reports.rst | 3 + doc/source/agent_ingresses.rst | 3 + doc/source/api_keys.rst | 3 + doc/source/application_sessions.rst | 3 + doc/source/application_users.rst | 3 + doc/source/certificate_authorities.rst | 3 + doc/source/client.rst | 5 +- doc/source/conf.py | 2 + doc/source/credentials.rst | 3 + doc/source/datatypes.rst | 3 + doc/source/edge_route_backend_module.rst | 3 + .../edge_route_circuit_breaker_module.rst | 3 + doc/source/edge_route_compression_module.rst | 3 + .../edge_route_ip_restriction_module.rst | 3 + doc/source/edge_route_o_auth_module.rst | 3 + doc/source/edge_route_oidc_module.rst | 3 + .../edge_route_request_headers_module.rst | 3 + .../edge_route_response_headers_module.rst | 3 + doc/source/edge_route_saml_module.rst | 3 + ...edge_route_webhook_verification_module.rst | 3 + ...e_route_websocket_tcp_converter_module.rst | 3 + doc/source/edges_https.rst | 3 + doc/source/edges_https_routes.rst | 3 + doc/source/edges_tcp.rst | 3 + doc/source/edges_tls.rst | 3 + doc/source/endpoints.rst | 3 + doc/source/errors.rst | 3 + doc/source/event_destinations.rst | 3 + doc/source/event_sources.rst | 3 + doc/source/event_subscriptions.rst | 3 + doc/source/failover_backends.rst | 3 + doc/source/http_response_backends.rst | 3 + doc/source/https_edge_mutual_tls_module.rst | 3 + .../https_edge_tls_termination_module.rst | 3 + doc/source/index.rst | 5 +- doc/source/ip_policies.rst | 3 + doc/source/ip_policy_rules.rst | 3 + doc/source/ip_restrictions.rst | 3 + doc/source/reserved_addrs.rst | 3 + doc/source/reserved_domains.rst | 3 + doc/source/ssh_certificate_authorities.rst | 3 + doc/source/ssh_credentials.rst | 3 + doc/source/ssh_host_certificates.rst | 3 + doc/source/ssh_user_certificates.rst | 3 + doc/source/tcp_edge_backend_module.rst | 3 + doc/source/tcp_edge_ip_restriction_module.rst | 3 + doc/source/tls_certificates.rst | 3 + doc/source/tls_edge_backend_module.rst | 3 + doc/source/tls_edge_ip_restriction_module.rst | 3 + doc/source/tls_edge_mutual_tls_module.rst | 3 + .../tls_edge_tls_termination_module.rst | 3 + doc/source/tunnel_group_backends.rst | 3 + doc/source/tunnel_sessions.rst | 3 + doc/source/tunnels.rst | 3 + doc/source/weighted_backends.rst | 3 + docs/_modules/index.html | 2 +- docs/_modules/ngrok/client.html | 21 +- docs/_modules/ngrok/datatypes.html | 274 ++++++++++-------- docs/_modules/ngrok/error.html | 6 +- docs/_modules/ngrok/services.html | 210 +++++++------- docs/_sources/abuse_reports.rst.txt | 3 + docs/_sources/agent_ingresses.rst.txt | 3 + docs/_sources/api_keys.rst.txt | 3 + docs/_sources/application_sessions.rst.txt | 3 + docs/_sources/application_users.rst.txt | 3 + docs/_sources/certificate_authorities.rst.txt | 3 + docs/_sources/client.rst.txt | 5 +- docs/_sources/credentials.rst.txt | 3 + docs/_sources/datatypes.rst.txt | 3 + .../edge_route_backend_module.rst.txt | 3 + .../edge_route_circuit_breaker_module.rst.txt | 3 + .../edge_route_compression_module.rst.txt | 3 + .../edge_route_ip_restriction_module.rst.txt | 3 + .../_sources/edge_route_o_auth_module.rst.txt | 3 + docs/_sources/edge_route_oidc_module.rst.txt | 3 + .../edge_route_request_headers_module.rst.txt | 3 + ...edge_route_response_headers_module.rst.txt | 3 + docs/_sources/edge_route_saml_module.rst.txt | 3 + ..._route_webhook_verification_module.rst.txt | 3 + ...ute_websocket_tcp_converter_module.rst.txt | 3 + docs/_sources/edges_https.rst.txt | 3 + docs/_sources/edges_https_routes.rst.txt | 3 + docs/_sources/edges_tcp.rst.txt | 3 + docs/_sources/edges_tls.rst.txt | 3 + docs/_sources/endpoints.rst.txt | 3 + docs/_sources/errors.rst.txt | 3 + docs/_sources/event_destinations.rst.txt | 3 + docs/_sources/event_sources.rst.txt | 3 + docs/_sources/event_subscriptions.rst.txt | 3 + docs/_sources/failover_backends.rst.txt | 3 + docs/_sources/http_response_backends.rst.txt | 3 + .../https_edge_mutual_tls_module.rst.txt | 3 + .../https_edge_tls_termination_module.rst.txt | 3 + docs/_sources/index.rst.txt | 5 +- docs/_sources/ip_policies.rst.txt | 3 + docs/_sources/ip_policy_rules.rst.txt | 3 + docs/_sources/ip_restrictions.rst.txt | 3 + docs/_sources/reserved_addrs.rst.txt | 3 + docs/_sources/reserved_domains.rst.txt | 3 + .../ssh_certificate_authorities.rst.txt | 3 + docs/_sources/ssh_credentials.rst.txt | 3 + docs/_sources/ssh_host_certificates.rst.txt | 3 + docs/_sources/ssh_user_certificates.rst.txt | 3 + docs/_sources/tcp_edge_backend_module.rst.txt | 3 + .../tcp_edge_ip_restriction_module.rst.txt | 3 + docs/_sources/tls_certificates.rst.txt | 3 + docs/_sources/tls_edge_backend_module.rst.txt | 3 + .../tls_edge_ip_restriction_module.rst.txt | 3 + .../tls_edge_mutual_tls_module.rst.txt | 3 + .../tls_edge_tls_termination_module.rst.txt | 3 + docs/_sources/tunnel_group_backends.rst.txt | 3 + docs/_sources/tunnel_sessions.rst.txt | 3 + docs/_sources/tunnels.rst.txt | 3 + docs/_sources/weighted_backends.rst.txt | 3 + docs/_static/pygments.css | 7 +- docs/abuse_reports.html | 2 +- docs/agent_ingresses.html | 2 +- docs/api_keys.html | 2 +- docs/application_sessions.html | 2 +- docs/application_users.html | 8 +- docs/certificate_authorities.html | 2 +- docs/client.html | 2 +- docs/credentials.html | 2 +- docs/datatypes.html | 74 ++++- docs/edge_route_backend_module.html | 2 +- docs/edge_route_circuit_breaker_module.html | 2 +- docs/edge_route_compression_module.html | 2 +- docs/edge_route_ip_restriction_module.html | 2 +- docs/edge_route_o_auth_module.html | 2 +- docs/edge_route_oidc_module.html | 2 +- docs/edge_route_request_headers_module.html | 2 +- docs/edge_route_response_headers_module.html | 2 +- docs/edge_route_saml_module.html | 2 +- ...dge_route_webhook_verification_module.html | 2 +- ..._route_websocket_tcp_converter_module.html | 2 +- docs/edges_https.html | 2 +- docs/edges_https_routes.html | 2 +- docs/edges_tcp.html | 2 +- docs/edges_tls.html | 2 +- docs/endpoints.html | 2 +- docs/errors.html | 2 +- docs/event_destinations.html | 2 +- docs/event_sources.html | 2 +- docs/event_subscriptions.html | 2 +- docs/failover_backends.html | 8 +- docs/genindex.html | 18 +- docs/http_response_backends.html | 2 +- docs/https_edge_mutual_tls_module.html | 2 +- docs/https_edge_tls_termination_module.html | 2 +- docs/index.html | 32 +- docs/ip_policies.html | 2 +- docs/ip_policy_rules.html | 2 +- docs/ip_restrictions.html | 2 +- docs/objects.inv | Bin 6758 -> 6797 bytes docs/py-modindex.html | 2 +- docs/reserved_addrs.html | 2 +- docs/reserved_domains.html | 5 +- docs/search.html | 2 +- docs/searchindex.js | 2 +- docs/ssh_certificate_authorities.html | 2 +- docs/ssh_credentials.html | 2 +- docs/ssh_host_certificates.html | 2 +- docs/ssh_user_certificates.html | 2 +- docs/tcp_edge_backend_module.html | 2 +- docs/tcp_edge_ip_restriction_module.html | 2 +- docs/tls_certificates.html | 12 +- docs/tls_edge_backend_module.html | 2 +- docs/tls_edge_ip_restriction_module.html | 2 +- docs/tls_edge_mutual_tls_module.html | 2 +- docs/tls_edge_tls_termination_module.html | 2 +- docs/tunnel_group_backends.html | 2 +- docs/tunnel_sessions.html | 12 +- docs/tunnels.html | 8 +- docs/weighted_backends.html | 2 +- mypy.ini | 2 + ngrok/__init__.py | 2 + ngrok/client.py | 17 +- ngrok/datatypes.py | 268 ++++++++++------- ngrok/error.py | 2 + ngrok/http_client.py | 2 + ngrok/iterator.py | 3 + ngrok/services.py | 206 ++++++------- ngrok/utils.py | 2 + pyproject.toml | 2 + setup.py | 12 +- tests/__init__.py | 1 + tests/test_ngrok.py | 2 + tox.ini | 2 + 194 files changed, 1164 insertions(+), 611 deletions(-) diff --git a/.gitignore b/.gitignore index 08951f1..fe5708d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +# Code generated for API Clients. DO NOT EDIT. + doc/build .pyc .swp diff --git a/.tox/dist/ngrok-api-0.0.0.zip b/.tox/dist/ngrok-api-0.0.0.zip index 13be2b0f3aa07058e0df078dde93f1b66b6d1234..4d68e7f14cf7886f4325be293c27a897233216df 100644 GIT binary patch delta 47913 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 D<#taE delta 47089 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 diff --git a/.tox/log/GLOB-0.log b/.tox/log/GLOB-0.log index 5a03432..9319ce4 100644 --- a/.tox/log/GLOB-0.log +++ b/.tox/log/GLOB-0.log @@ -1,6 +1,6 @@ action: GLOB, msg: packaging -cwd: /var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python -cmd: /var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/venv/bin/python setup.py sdist --formats=zip --dist-dir /var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/.tox/dist +cwd: /var/lib/buildkite-agent-3/builds/ip-172-31-52-23-us-west-2-compute-internal-3-1/ngrok/api-client-prs/.cache/ngrok-api-python +cmd: /var/lib/buildkite-agent-3/builds/ip-172-31-52-23-us-west-2-compute-internal-3-1/ngrok/api-client-prs/.cache/ngrok-api-python/venv/bin/python setup.py sdist --formats=zip --dist-dir .tox/dist running sdist running egg_info writing ngrok_api.egg-info/PKG-INFO @@ -35,30 +35,29 @@ copying ngrok_api.egg-info/requires.txt -> ngrok-api-0.0.0/ngrok_api.egg-info copying ngrok_api.egg-info/top_level.txt -> ngrok-api-0.0.0/ngrok_api.egg-info copying tests/test_ngrok.py -> ngrok-api-0.0.0/tests Writing ngrok-api-0.0.0/setup.cfg -creating /var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/.tox/dist -creating '/var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/.tox/dist/ngrok-api-0.0.0.zip' and adding 'ngrok-api-0.0.0' to it +creating '.tox/dist/ngrok-api-0.0.0.zip' and adding 'ngrok-api-0.0.0' to it adding 'ngrok-api-0.0.0' -adding 'ngrok-api-0.0.0/ngrok' -adding 'ngrok-api-0.0.0/ngrok_api.egg-info' adding 'ngrok-api-0.0.0/tests' -adding 'ngrok-api-0.0.0/PKG-INFO' -adding 'ngrok-api-0.0.0/setup.py' -adding 'ngrok-api-0.0.0/pyproject.toml' -adding 'ngrok-api-0.0.0/README.md' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info' +adding 'ngrok-api-0.0.0/ngrok' adding 'ngrok-api-0.0.0/LICENSE' +adding 'ngrok-api-0.0.0/setup.py' +adding 'ngrok-api-0.0.0/README.md' adding 'ngrok-api-0.0.0/setup.cfg' -adding 'ngrok-api-0.0.0/ngrok/utils.py' -adding 'ngrok-api-0.0.0/ngrok/error.py' -adding 'ngrok-api-0.0.0/ngrok/__init__.py' -adding 'ngrok-api-0.0.0/ngrok/client.py' -adding 'ngrok-api-0.0.0/ngrok/datatypes.py' -adding 'ngrok-api-0.0.0/ngrok/http_client.py' -adding 'ngrok-api-0.0.0/ngrok/iterator.py' -adding 'ngrok-api-0.0.0/ngrok/services.py' -adding 'ngrok-api-0.0.0/ngrok_api.egg-info/SOURCES.txt' -adding 'ngrok-api-0.0.0/ngrok_api.egg-info/requires.txt' -adding 'ngrok-api-0.0.0/ngrok_api.egg-info/PKG-INFO' -adding 'ngrok-api-0.0.0/ngrok_api.egg-info/top_level.txt' -adding 'ngrok-api-0.0.0/ngrok_api.egg-info/dependency_links.txt' +adding 'ngrok-api-0.0.0/pyproject.toml' +adding 'ngrok-api-0.0.0/PKG-INFO' adding 'ngrok-api-0.0.0/tests/test_ngrok.py' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info/requires.txt' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info/SOURCES.txt' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info/dependency_links.txt' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info/top_level.txt' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info/PKG-INFO' +adding 'ngrok-api-0.0.0/ngrok/utils.py' +adding 'ngrok-api-0.0.0/ngrok/__init__.py' +adding 'ngrok-api-0.0.0/ngrok/services.py' +adding 'ngrok-api-0.0.0/ngrok/client.py' +adding 'ngrok-api-0.0.0/ngrok/iterator.py' +adding 'ngrok-api-0.0.0/ngrok/error.py' +adding 'ngrok-api-0.0.0/ngrok/http_client.py' +adding 'ngrok-api-0.0.0/ngrok/datatypes.py' removing 'ngrok-api-0.0.0' (and everything under it) diff --git a/README.md b/README.md index 582f828..a783645 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ + + # ngrok API client library for Python This library wraps the [ngrok HTTP API](https://ngrok.com/docs/api) to make it diff --git a/doc/Makefile b/doc/Makefile index 18e0af5..3f18cc2 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,3 +1,5 @@ +# Code generated for API Clients. DO NOT EDIT. + # Minimal makefile for Sphinx documentation # diff --git a/doc/make.bat b/doc/make.bat index 6247f7e..074a495 100644 --- a/doc/make.bat +++ b/doc/make.bat @@ -1,35 +1,37 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=source -set BUILDDIR=build - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd +REM Code generated for API Clients. DO NOT EDIT. + +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/doc/source/abuse_reports.rst b/doc/source/abuse_reports.rst index 7791dd6..1d01296 100644 --- a/doc/source/abuse_reports.rst +++ b/doc/source/abuse_reports.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Abuse Reports ===================================== diff --git a/doc/source/agent_ingresses.rst b/doc/source/agent_ingresses.rst index b6cee12..982a6b4 100644 --- a/doc/source/agent_ingresses.rst +++ b/doc/source/agent_ingresses.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Agent Ingresses ===================================== diff --git a/doc/source/api_keys.rst b/doc/source/api_keys.rst index 69593f6..3938dc8 100644 --- a/doc/source/api_keys.rst +++ b/doc/source/api_keys.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + API Keys ===================================== diff --git a/doc/source/application_sessions.rst b/doc/source/application_sessions.rst index fd3ac2d..2ed6b4d 100644 --- a/doc/source/application_sessions.rst +++ b/doc/source/application_sessions.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Application Sessions ===================================== diff --git a/doc/source/application_users.rst b/doc/source/application_users.rst index 7aa4ca6..19f801f 100644 --- a/doc/source/application_users.rst +++ b/doc/source/application_users.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Application Users ===================================== diff --git a/doc/source/certificate_authorities.rst b/doc/source/certificate_authorities.rst index 441b9e4..55ae4ee 100644 --- a/doc/source/certificate_authorities.rst +++ b/doc/source/certificate_authorities.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Certificate Authorities ===================================== diff --git a/doc/source/client.rst b/doc/source/client.rst index e10ab95..18c30c5 100644 --- a/doc/source/client.rst +++ b/doc/source/client.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Client ===================================== @@ -15,7 +18,7 @@ Client object: # list all ip policies for policy in client.ip_policies.list(): print(policy) - + # create an ngrok agent authtoken cred = client.credentials.create() print(cred) diff --git a/doc/source/conf.py b/doc/source/conf.py index f6d5852..d096775 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -1,3 +1,5 @@ +# Code generated for API Clients. DO NOT EDIT. + # Configuration file for the Sphinx documentation builder. # # This file only contains a selection of the most common options. For a full diff --git a/doc/source/credentials.rst b/doc/source/credentials.rst index 4af64a3..a2bb3f4 100644 --- a/doc/source/credentials.rst +++ b/doc/source/credentials.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Credentials ===================================== diff --git a/doc/source/datatypes.rst b/doc/source/datatypes.rst index 7db4f9d..1b4d803 100644 --- a/doc/source/datatypes.rst +++ b/doc/source/datatypes.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Datatypes ===================================== diff --git a/doc/source/edge_route_backend_module.rst b/doc/source/edge_route_backend_module.rst index 7e3dbe3..59ac3be 100644 --- a/doc/source/edge_route_backend_module.rst +++ b/doc/source/edge_route_backend_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Backend Module ===================================== diff --git a/doc/source/edge_route_circuit_breaker_module.rst b/doc/source/edge_route_circuit_breaker_module.rst index fea725c..a94dc50 100644 --- a/doc/source/edge_route_circuit_breaker_module.rst +++ b/doc/source/edge_route_circuit_breaker_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Circuit Breaker Module ===================================== diff --git a/doc/source/edge_route_compression_module.rst b/doc/source/edge_route_compression_module.rst index 4bbd06a..9e36972 100644 --- a/doc/source/edge_route_compression_module.rst +++ b/doc/source/edge_route_compression_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Compression Module ===================================== diff --git a/doc/source/edge_route_ip_restriction_module.rst b/doc/source/edge_route_ip_restriction_module.rst index 243888f..23332bb 100644 --- a/doc/source/edge_route_ip_restriction_module.rst +++ b/doc/source/edge_route_ip_restriction_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route IP Restriction Module ===================================== diff --git a/doc/source/edge_route_o_auth_module.rst b/doc/source/edge_route_o_auth_module.rst index 9e7f81a..3fd3c7b 100644 --- a/doc/source/edge_route_o_auth_module.rst +++ b/doc/source/edge_route_o_auth_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route OAuth Module ===================================== diff --git a/doc/source/edge_route_oidc_module.rst b/doc/source/edge_route_oidc_module.rst index abef39e..1b3997b 100644 --- a/doc/source/edge_route_oidc_module.rst +++ b/doc/source/edge_route_oidc_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route OIDC Module ===================================== diff --git a/doc/source/edge_route_request_headers_module.rst b/doc/source/edge_route_request_headers_module.rst index 5d5e26a..5e28e7e 100644 --- a/doc/source/edge_route_request_headers_module.rst +++ b/doc/source/edge_route_request_headers_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Request Headers Module ===================================== diff --git a/doc/source/edge_route_response_headers_module.rst b/doc/source/edge_route_response_headers_module.rst index 479644b..97156e9 100644 --- a/doc/source/edge_route_response_headers_module.rst +++ b/doc/source/edge_route_response_headers_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Response Headers Module ===================================== diff --git a/doc/source/edge_route_saml_module.rst b/doc/source/edge_route_saml_module.rst index aba3e12..4bd60c6 100644 --- a/doc/source/edge_route_saml_module.rst +++ b/doc/source/edge_route_saml_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route SAML Module ===================================== diff --git a/doc/source/edge_route_webhook_verification_module.rst b/doc/source/edge_route_webhook_verification_module.rst index 0cfc3fa..f42c30e 100644 --- a/doc/source/edge_route_webhook_verification_module.rst +++ b/doc/source/edge_route_webhook_verification_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Webhook Verification Module ===================================== diff --git a/doc/source/edge_route_websocket_tcp_converter_module.rst b/doc/source/edge_route_websocket_tcp_converter_module.rst index 4436c86..a586b27 100644 --- a/doc/source/edge_route_websocket_tcp_converter_module.rst +++ b/doc/source/edge_route_websocket_tcp_converter_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Websocket TCP Converter Module ===================================== diff --git a/doc/source/edges_https.rst b/doc/source/edges_https.rst index c8bbe29..1e09836 100644 --- a/doc/source/edges_https.rst +++ b/doc/source/edges_https.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edges ===================================== diff --git a/doc/source/edges_https_routes.rst b/doc/source/edges_https_routes.rst index afb0ce7..c2ecc23 100644 --- a/doc/source/edges_https_routes.rst +++ b/doc/source/edges_https_routes.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Routes ===================================== diff --git a/doc/source/edges_tcp.rst b/doc/source/edges_tcp.rst index b10e177..4361561 100644 --- a/doc/source/edges_tcp.rst +++ b/doc/source/edges_tcp.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edges ===================================== diff --git a/doc/source/edges_tls.rst b/doc/source/edges_tls.rst index 4b163d1..cbf751a 100644 --- a/doc/source/edges_tls.rst +++ b/doc/source/edges_tls.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edges ===================================== diff --git a/doc/source/endpoints.rst b/doc/source/endpoints.rst index 227a642..f15e5e4 100644 --- a/doc/source/endpoints.rst +++ b/doc/source/endpoints.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Endpoints ===================================== diff --git a/doc/source/errors.rst b/doc/source/errors.rst index 301a65e..5b03e51 100644 --- a/doc/source/errors.rst +++ b/doc/source/errors.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + .. _errors: Errors diff --git a/doc/source/event_destinations.rst b/doc/source/event_destinations.rst index b05b317..c674b45 100644 --- a/doc/source/event_destinations.rst +++ b/doc/source/event_destinations.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Destinations ===================================== diff --git a/doc/source/event_sources.rst b/doc/source/event_sources.rst index f096cc0..82541e8 100644 --- a/doc/source/event_sources.rst +++ b/doc/source/event_sources.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Sources ===================================== diff --git a/doc/source/event_subscriptions.rst b/doc/source/event_subscriptions.rst index 89bc463..1fab08b 100644 --- a/doc/source/event_subscriptions.rst +++ b/doc/source/event_subscriptions.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Subscriptions ===================================== diff --git a/doc/source/failover_backends.rst b/doc/source/failover_backends.rst index 9f8905c..9437ab7 100644 --- a/doc/source/failover_backends.rst +++ b/doc/source/failover_backends.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Failover Backends ===================================== diff --git a/doc/source/http_response_backends.rst b/doc/source/http_response_backends.rst index 006e269..23e36d3 100644 --- a/doc/source/http_response_backends.rst +++ b/doc/source/http_response_backends.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTP Response Backends ===================================== diff --git a/doc/source/https_edge_mutual_tls_module.rst b/doc/source/https_edge_mutual_tls_module.rst index 96a49a1..b64666d 100644 --- a/doc/source/https_edge_mutual_tls_module.rst +++ b/doc/source/https_edge_mutual_tls_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Mutual TLS Module ===================================== diff --git a/doc/source/https_edge_tls_termination_module.rst b/doc/source/https_edge_tls_termination_module.rst index 48c8b98..8aa2e66 100644 --- a/doc/source/https_edge_tls_termination_module.rst +++ b/doc/source/https_edge_tls_termination_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge TLS Termination Module ===================================== diff --git a/doc/source/index.rst b/doc/source/index.rst index 35697fc..1fce46a 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + ngrok-api ######### @@ -125,6 +128,7 @@ API Reference api_keys application_sessions application_users + tunnel_sessions failover_backends http_response_backends tunnel_group_backends @@ -168,5 +172,4 @@ API Reference ssh_host_certificates ssh_user_certificates tls_certificates - tunnel_sessions tunnels diff --git a/doc/source/ip_policies.rst b/doc/source/ip_policies.rst index 1799260..1b3cde8 100644 --- a/doc/source/ip_policies.rst +++ b/doc/source/ip_policies.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Policies ===================================== diff --git a/doc/source/ip_policy_rules.rst b/doc/source/ip_policy_rules.rst index c109f93..52b22a4 100644 --- a/doc/source/ip_policy_rules.rst +++ b/doc/source/ip_policy_rules.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Policy Rules ===================================== diff --git a/doc/source/ip_restrictions.rst b/doc/source/ip_restrictions.rst index 6593c97..5d5f3bc 100644 --- a/doc/source/ip_restrictions.rst +++ b/doc/source/ip_restrictions.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Restrictions ===================================== diff --git a/doc/source/reserved_addrs.rst b/doc/source/reserved_addrs.rst index aaf4f40..e00b300 100644 --- a/doc/source/reserved_addrs.rst +++ b/doc/source/reserved_addrs.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Reserved Addresses ===================================== diff --git a/doc/source/reserved_domains.rst b/doc/source/reserved_domains.rst index c1630b5..86758eb 100644 --- a/doc/source/reserved_domains.rst +++ b/doc/source/reserved_domains.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Reserved Domains ===================================== diff --git a/doc/source/ssh_certificate_authorities.rst b/doc/source/ssh_certificate_authorities.rst index 4bf9cd9..24dbf76 100644 --- a/doc/source/ssh_certificate_authorities.rst +++ b/doc/source/ssh_certificate_authorities.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Certificate Authorities ===================================== diff --git a/doc/source/ssh_credentials.rst b/doc/source/ssh_credentials.rst index 06044bf..c73991a 100644 --- a/doc/source/ssh_credentials.rst +++ b/doc/source/ssh_credentials.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Credentials ===================================== diff --git a/doc/source/ssh_host_certificates.rst b/doc/source/ssh_host_certificates.rst index 9e0b6db..e3387c1 100644 --- a/doc/source/ssh_host_certificates.rst +++ b/doc/source/ssh_host_certificates.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Host Certificates ===================================== diff --git a/doc/source/ssh_user_certificates.rst b/doc/source/ssh_user_certificates.rst index 4cb5fee..e63abae 100644 --- a/doc/source/ssh_user_certificates.rst +++ b/doc/source/ssh_user_certificates.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH User Certificates ===================================== diff --git a/doc/source/tcp_edge_backend_module.rst b/doc/source/tcp_edge_backend_module.rst index 636003c..98b2a5f 100644 --- a/doc/source/tcp_edge_backend_module.rst +++ b/doc/source/tcp_edge_backend_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edge Backend Module ===================================== diff --git a/doc/source/tcp_edge_ip_restriction_module.rst b/doc/source/tcp_edge_ip_restriction_module.rst index f847cc5..24810b1 100644 --- a/doc/source/tcp_edge_ip_restriction_module.rst +++ b/doc/source/tcp_edge_ip_restriction_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edge IP Restriction Module ===================================== diff --git a/doc/source/tls_certificates.rst b/doc/source/tls_certificates.rst index a664ecc..eb06183 100644 --- a/doc/source/tls_certificates.rst +++ b/doc/source/tls_certificates.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Certificates ===================================== diff --git a/doc/source/tls_edge_backend_module.rst b/doc/source/tls_edge_backend_module.rst index 1aa9ef6..8abf12f 100644 --- a/doc/source/tls_edge_backend_module.rst +++ b/doc/source/tls_edge_backend_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge Backend Module ===================================== diff --git a/doc/source/tls_edge_ip_restriction_module.rst b/doc/source/tls_edge_ip_restriction_module.rst index ed49b58..b9d14c9 100644 --- a/doc/source/tls_edge_ip_restriction_module.rst +++ b/doc/source/tls_edge_ip_restriction_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge IP Restriction Module ===================================== diff --git a/doc/source/tls_edge_mutual_tls_module.rst b/doc/source/tls_edge_mutual_tls_module.rst index bee4644..f8ff76d 100644 --- a/doc/source/tls_edge_mutual_tls_module.rst +++ b/doc/source/tls_edge_mutual_tls_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge Mutual TLS Module ===================================== diff --git a/doc/source/tls_edge_tls_termination_module.rst b/doc/source/tls_edge_tls_termination_module.rst index 55c4d52..60189de 100644 --- a/doc/source/tls_edge_tls_termination_module.rst +++ b/doc/source/tls_edge_tls_termination_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge TLS Termination Module ===================================== diff --git a/doc/source/tunnel_group_backends.rst b/doc/source/tunnel_group_backends.rst index 0f0acac..6b997cf 100644 --- a/doc/source/tunnel_group_backends.rst +++ b/doc/source/tunnel_group_backends.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Group Backends ===================================== diff --git a/doc/source/tunnel_sessions.rst b/doc/source/tunnel_sessions.rst index d03189a..5d5b640 100644 --- a/doc/source/tunnel_sessions.rst +++ b/doc/source/tunnel_sessions.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Sessions ===================================== diff --git a/doc/source/tunnels.rst b/doc/source/tunnels.rst index 347285b..e3cad8a 100644 --- a/doc/source/tunnels.rst +++ b/doc/source/tunnels.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnels ===================================== diff --git a/doc/source/weighted_backends.rst b/doc/source/weighted_backends.rst index f9781bd..496f0c8 100644 --- a/doc/source/weighted_backends.rst +++ b/doc/source/weighted_backends.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Weighted Backends ===================================== diff --git a/docs/_modules/index.html b/docs/_modules/index.html index 69bc3de..55c1940 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -166,6 +166,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -209,7 +210,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • diff --git a/docs/_modules/ngrok/client.html b/docs/_modules/ngrok/client.html index 5548197..5af2cb5 100644 --- a/docs/_modules/ngrok/client.html +++ b/docs/_modules/ngrok/client.html @@ -166,6 +166,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -209,7 +210,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • @@ -245,7 +245,10 @@

    Source code for ngrok.client

    -from __future__ import annotations
    +# Code generated for API Clients. DO NOT EDIT.
    +
    +
    +from __future__ import annotations
     import collections
     import os
     from .services import *
    @@ -282,6 +285,13 @@
         def application_users(self) -> ApplicationUsersClient:
             return ApplicationUsersClient(self)
     
    +    @property
    +    def tunnel_sessions(self) -> TunnelSessionsClient:
    +        """Tunnel Sessions represent instances of ngrok agents or SSH reverse tunnel
    +        sessions that are running and connected to the ngrok service. Each tunnel
    +        session can include one or more Tunnels."""
    +        return TunnelSessionsClient(self)
    +
         @property
         def certificate_authorities(self) -> CertificateAuthoritiesClient:
             """Certificate Authorities are x509 certificates that are used to sign other
    @@ -392,13 +402,6 @@
             automated certificate provisioning."""
             return TLSCertificatesClient(self)
     
    -    @property
    -    def tunnel_sessions(self) -> TunnelSessionsClient:
    -        """Tunnel Sessions represent instances of ngrok agents or SSH reverse tunnel
    -        sessions that are running and connected to the ngrok service. Each tunnel
    -        session can include one or more Tunnels."""
    -        return TunnelSessionsClient(self)
    -
         @property
         def tunnels(self) -> TunnelsClient:
             """Tunnels provide endpoints to access services exposed by a running ngrok
    diff --git a/docs/_modules/ngrok/datatypes.html b/docs/_modules/ngrok/datatypes.html
    index e610739..6d80d1b 100644
    --- a/docs/_modules/ngrok/datatypes.html
    +++ b/docs/_modules/ngrok/datatypes.html
    @@ -166,6 +166,7 @@
     
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -209,7 +210,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • @@ -245,7 +245,10 @@

    Source code for ngrok.datatypes

    -from __future__ import annotations
    +# Code generated for API Clients. DO NOT EDIT.
    +
    +
    +from __future__ import annotations
     from typing import Any, Mapping, Sequence
     from datetime import datetime, timedelta
     from .iterator import PagedIterator
    @@ -969,6 +972,114 @@
             return self._props["url"]
    +
    [docs]class TunnelSession(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["credential"] = ( + Ref(client, props["credential"]) + if props.get("credential") is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<TunnelSession {} {}>".format(self.id, repr(self._props)) + else: + return "<TunnelSession {}>".format(repr(self._props)) + + @property + def agent_version(self) -> str: + """version of the ngrok agent that started this ngrok tunnel session""" + return self._props["agent_version"] + + @property + def credential(self) -> Ref: + """reference to the tunnel credential or ssh credential used by the ngrok agent to start this tunnel session""" + return self._props["credential"] + + @property + def id(self) -> str: + """unique tunnel session resource identifier""" + return self._props["id"] + + @property + def ip(self) -> str: + """source ip address of the tunnel session""" + return self._props["ip"] + + @property + def metadata(self) -> str: + """arbitrary user-defined data specified in the metadata property in the ngrok configuration file. See the metadata configuration option""" + return self._props["metadata"] + + @property + def os(self) -> str: + """operating system of the host the ngrok agent is running on""" + return self._props["os"] + + @property + def region(self) -> str: + """the ngrok region identifier in which this tunnel session was started""" + return self._props["region"] + + @property + def started_at(self) -> datetime: + """time when the tunnel session first connected to the ngrok servers""" + return self._props["started_at"] + + @property + def transport(self) -> str: + """the transport protocol used to start the tunnel session. Either ``ngrok/v2`` or ``ssh``""" + return self._props["transport"] + + @property + def uri(self) -> str: + """URI to the API resource of the tunnel session""" + return self._props["uri"]
    + + +
    [docs]class TunnelSessionList(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["tunnel_sessions"] = ( + [TunnelSession(client, x) for x in props["tunnel_sessions"]] + if props.get("tunnel_sessions") is not None + else [] + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<TunnelSessionList {} {}>".format(self.id, repr(self._props)) + else: + return "<TunnelSessionList {}>".format(repr(self._props)) + + def __iter__(self): + return PagedIterator(self._client, self, "tunnel_sessions") + + @property + def tunnel_sessions(self) -> Sequence[TunnelSession]: + """list of all tunnel sessions on this account""" + return self._props["tunnel_sessions"] + + @property + def uri(self) -> str: + """URI to the API resource of the tunnel session list""" + return self._props["uri"] + + @property + def next_page_uri(self) -> str: + """URI of the next page, or null if there is no next page""" + return self._props["next_page_uri"]
    + +
    [docs]class FailoverBackend(object): def __init__(self, client, props): self._client = client @@ -3586,6 +3697,11 @@ if props.get("cloudwatch_logs") is not None else None ) + self._props["datadog"] = ( + EventTargetDatadog(client, props["datadog"]) + if props.get("datadog") is not None + else None + ) def __eq__(self, other): return self._props == other._props @@ -3609,7 +3725,12 @@ @property def cloudwatch_logs(self) -> EventTargetCloudwatchLogs: """Configuration used to send events to Amazon CloudWatch Logs.""" - return self._props["cloudwatch_logs"]
    + return self._props["cloudwatch_logs"] + + @property + def datadog(self) -> EventTargetDatadog: + """Configuration used to send events to Datadog.""" + return self._props["datadog"]
    [docs]class EventTargetFirehose(object): @@ -3698,6 +3819,41 @@ return self._props["log_group_arn"]
    +
    [docs]class EventTargetDatadog(object): + def __init__(self, client, props): + self._client = client + self._props = props + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<EventTargetDatadog {} {}>".format(self.id, repr(self._props)) + else: + return "<EventTargetDatadog {}>".format(repr(self._props)) + + @property + def api_key(self) -> str: + """Datadog API key to use.""" + return self._props["api_key"] + + @property + def ddtags(self) -> str: + """Tags to send with the event.""" + return self._props["ddtags"] + + @property + def service(self) -> str: + """Service name to send with the event.""" + return self._props["service"] + + @property + def ddsite(self) -> str: + """Datadog site to send event to.""" + return self._props["ddsite"]
    + +
    [docs]class AWSAuth(object): def __init__(self, client, props): self._client = client @@ -5155,7 +5311,7 @@ @property def certificate_pem(self) -> str: - """chain of PEM-encoded certificates, leaf first. See `Certificate Bundles </cloud-edge/endpoints#certificate-chains>`_.""" + """chain of PEM-encoded certificates, leaf first. See `Certificate Bundles <https://ngrok.com/docs/cloud-edge/endpoints#certificate-chains>`_.""" return self._props["certificate_pem"] @property @@ -5297,114 +5453,6 @@ return self._props["ips"]
    -
    [docs]class TunnelSession(object): - def __init__(self, client, props): - self._client = client - self._props = props - self._props["credential"] = ( - Ref(client, props["credential"]) - if props.get("credential") is not None - else None - ) - - def __eq__(self, other): - return self._props == other._props - - def __str__(self): - if "id" in self._props: - return "<TunnelSession {} {}>".format(self.id, repr(self._props)) - else: - return "<TunnelSession {}>".format(repr(self._props)) - - @property - def agent_version(self) -> str: - """version of the ngrok agent that started this ngrok tunnel session""" - return self._props["agent_version"] - - @property - def credential(self) -> Ref: - """reference to the tunnel credential or ssh credential used by the ngrok agent to start this tunnel session""" - return self._props["credential"] - - @property - def id(self) -> str: - """unique tunnel session resource identifier""" - return self._props["id"] - - @property - def ip(self) -> str: - """source ip address of the tunnel session""" - return self._props["ip"] - - @property - def metadata(self) -> str: - """arbitrary user-defined data specified in the metadata property in the ngrok configuration file. See the metadata configuration option""" - return self._props["metadata"] - - @property - def os(self) -> str: - """operating system of the host the ngrok agent is running on""" - return self._props["os"] - - @property - def region(self) -> str: - """the ngrok region identifier in which this tunnel session was started""" - return self._props["region"] - - @property - def started_at(self) -> datetime: - """time when the tunnel session first connected to the ngrok servers""" - return self._props["started_at"] - - @property - def transport(self) -> str: - """the transport protocol used to start the tunnel session. Either ``ngrok/v2`` or ``ssh``""" - return self._props["transport"] - - @property - def uri(self) -> str: - """URI to the API resource of the tunnel session""" - return self._props["uri"]
    - - -
    [docs]class TunnelSessionList(object): - def __init__(self, client, props): - self._client = client - self._props = props - self._props["tunnel_sessions"] = ( - [TunnelSession(client, x) for x in props["tunnel_sessions"]] - if props.get("tunnel_sessions") is not None - else [] - ) - - def __eq__(self, other): - return self._props == other._props - - def __str__(self): - if "id" in self._props: - return "<TunnelSessionList {} {}>".format(self.id, repr(self._props)) - else: - return "<TunnelSessionList {}>".format(repr(self._props)) - - def __iter__(self): - return PagedIterator(self._client, self, "tunnel_sessions") - - @property - def tunnel_sessions(self) -> Sequence[TunnelSession]: - """list of all tunnel sessions on this account""" - return self._props["tunnel_sessions"] - - @property - def uri(self) -> str: - """URI to the API resource of the tunnel session list""" - return self._props["uri"] - - @property - def next_page_uri(self) -> str: - """URI of the next page, or null if there is no next page""" - return self._props["next_page_uri"]
    - -
    [docs]class Tunnel(object): def __init__(self, client, props): self._client = client @@ -5451,7 +5499,7 @@ @property def metadata(self) -> str: - """user-supplied metadata for the tunnel defined in the ngrok configuration file. See the tunnel `metadata configuration option </ngrok-agent/config#common-tunnel-configuration-properties>`_ In API version 0, this value was instead pulled from the top-level `metadata configuration option </ngrok-agent/config#metadata>`_.""" + """user-supplied metadata for the tunnel defined in the ngrok configuration file. See the tunnel `metadata configuration option <https://ngrok.com/docs/secure-tunnels/ngrok-agent/reference/config#common-tunnel-configuration-properties>`_ In API version 0, this value was instead pulled from the top-level `metadata configuration option <https://ngrok.com/docs/secure-tunnels/ngrok-agent/reference/config#metadata>`_.""" return self._props["metadata"] @property diff --git a/docs/_modules/ngrok/error.html b/docs/_modules/ngrok/error.html index 297097c..c63d798 100644 --- a/docs/_modules/ngrok/error.html +++ b/docs/_modules/ngrok/error.html @@ -166,6 +166,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -209,7 +210,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • @@ -245,7 +245,9 @@

    Source code for ngrok.error

    -from typing import Any, Optional
    +# Code generated for API Clients. DO NOT EDIT.
    +
    +from typing import Any, Optional
     
     
     
    [docs]class Error(Exception): diff --git a/docs/_modules/ngrok/services.html b/docs/_modules/ngrok/services.html index 61584f3..43a4190 100644 --- a/docs/_modules/ngrok/services.html +++ b/docs/_modules/ngrok/services.html @@ -166,6 +166,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -209,7 +210,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • @@ -245,7 +245,10 @@

    Source code for ngrok.services

    -from __future__ import annotations
    +# Code generated for API Clients. DO NOT EDIT.
    +
    +
    +from __future__ import annotations
     from collections.abc import Iterator
     from typing import Any, Mapping, Sequence
     from datetime import datetime, timedelta
    @@ -643,6 +646,104 @@
             return ApplicationUserList(self._client, result)
    +
    [docs]class TunnelSessionsClient(object): + """Tunnel Sessions represent instances of ngrok agents or SSH reverse tunnel + sessions that are running and connected to the ngrok service. Each tunnel + session can include one or more Tunnels.""" + + def __init__(self, client): + self._client = client + +
    [docs] def list( + self, + before_id: str = None, + limit: str = None, + ) -> TunnelSessionList: + """List all online tunnel sessions running on this account. + + :param before_id: + :param limit: + + https://ngrok.com/docs/api#api-tunnel-sessions-list + """ + path = "/tunnel_sessions" + body_arg = dict( + before_id=before_id, + limit=limit, + ) + result = self._client.http_client.get(path, body_arg) + return TunnelSessionList(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> TunnelSession: + """Get the detailed status of a tunnel session by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tunnel-sessions-get + """ + path = "/tunnel_sessions/{id}" + path = path.format( + id=id, + ) + body_arg = None + result = self._client.http_client.get(path, body_arg) + return TunnelSession(self._client, result)
    + +
    [docs] def restart( + self, + id: str, + ): + """Issues a command instructing the ngrok agent to restart. The agent restarts itself by calling exec() on platforms that support it. This operation is notably not supported on Windows. When an agent restarts, it reconnects with a new tunnel session ID. + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tunnel-sessions-restart + """ + path = "/tunnel_sessions/{id}/restart" + path = path.format( + id=id, + ) + body_arg = None + self._client.http_client.post(path, body_arg)
    + +
    [docs] def stop( + self, + id: str, + ): + """Issues a command instructing the ngrok agent that started this tunnel session to exit. + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tunnel-sessions-stop + """ + path = "/tunnel_sessions/{id}/stop" + path = path.format( + id=id, + ) + body_arg = None + self._client.http_client.post(path, body_arg)
    + +
    [docs] def update( + self, + id: str, + ): + """Issues a command instructing the ngrok agent to update itself to the latest version. After this call completes successfully, the ngrok agent will be in the update process. A caller should wait some amount of time to allow the update to complete (at least 10 seconds) before making a call to the Restart endpoint to request that the agent restart itself to start using the new code. This call will never update an ngrok agent to a new major version which could cause breaking compatibility issues. If you wish to update to a new major version, that must be done manually. Still, please be aware that updating your ngrok agent could break your integration. This call will fail in any of the following circumstances: there is no update available the ngrok agent's configuration disabled update checks the agent is currently in process of updating the agent has already successfully updated but has not yet been restarted + + :param id: + + https://ngrok.com/docs/api#api-tunnel-sessions-update + """ + path = "/tunnel_sessions/{id}/update" + path = path.format( + id=id, + ) + body_arg = None + self._client.http_client.post(path, body_arg)
    + +
    [docs]class FailoverBackendsClient(object): """A Failover backend defines failover behavior within a list of referenced backends. Traffic is sent to the first backend in the list. If that backend @@ -4010,7 +4111,6 @@
    [docs] def create( self, - name: str = "", domain: str = "", region: str = "", description: str = "", @@ -4020,7 +4120,6 @@ ) -> ReservedDomain: """Create a new reserved domain. - :param name: the domain name to reserve. It may be a full domain name like app.example.com. If the name does not contain a '.' it will reserve that subdomain on ngrok.io. :param domain: hostname of the reserved domain :param region: reserve the domain in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) :param description: human-readable description of what this reserved domain will be used for @@ -4032,7 +4131,6 @@ """ path = "/reserved_domains" body_arg = dict( - name=name, domain=domain, region=region, description=description, @@ -4676,8 +4774,8 @@ :param description: human-readable description of this TLS certificate. optional, max 255 bytes. :param metadata: arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes. - :param certificate_pem: chain of PEM-encoded certificates, leaf first. See `Certificate Bundles </cloud-edge/endpoints#certificate-chains>`_. - :param private_key_pem: private key for the TLS certificate, PEM-encoded. See `Private Keys </cloud-edge/endpoints#private-keys>`_. + :param certificate_pem: chain of PEM-encoded certificates, leaf first. See `Certificate Bundles <https://ngrok.com/docs/cloud-edge/endpoints#certificate-chains>`_. + :param private_key_pem: private key for the TLS certificate, PEM-encoded. See `Private Keys <https://ngrok.com/docs/cloud-edge/endpoints#private-keys>`_. https://ngrok.com/docs/api#api-tls-certificates-create """ @@ -4772,104 +4870,6 @@ return TLSCertificate(self._client, result)
    -
    [docs]class TunnelSessionsClient(object): - """Tunnel Sessions represent instances of ngrok agents or SSH reverse tunnel - sessions that are running and connected to the ngrok service. Each tunnel - session can include one or more Tunnels.""" - - def __init__(self, client): - self._client = client - -
    [docs] def list( - self, - before_id: str = None, - limit: str = None, - ) -> TunnelSessionList: - """List all online tunnel sessions running on this account. - - :param before_id: - :param limit: - - https://ngrok.com/docs/api#api-tunnel-sessions-list - """ - path = "/tunnel_sessions" - body_arg = dict( - before_id=before_id, - limit=limit, - ) - result = self._client.http_client.get(path, body_arg) - return TunnelSessionList(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> TunnelSession: - """Get the detailed status of a tunnel session by ID - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-tunnel-sessions-get - """ - path = "/tunnel_sessions/{id}" - path = path.format( - id=id, - ) - body_arg = None - result = self._client.http_client.get(path, body_arg) - return TunnelSession(self._client, result)
    - -
    [docs] def restart( - self, - id: str, - ): - """Issues a command instructing the ngrok agent to restart. The agent restarts itself by calling exec() on platforms that support it. This operation is notably not supported on Windows. When an agent restarts, it reconnects with a new tunnel session ID. - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-tunnel-sessions-restart - """ - path = "/tunnel_sessions/{id}/restart" - path = path.format( - id=id, - ) - body_arg = None - self._client.http_client.post(path, body_arg)
    - -
    [docs] def stop( - self, - id: str, - ): - """Issues a command instructing the ngrok agent that started this tunnel session to exit. - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-tunnel-sessions-stop - """ - path = "/tunnel_sessions/{id}/stop" - path = path.format( - id=id, - ) - body_arg = None - self._client.http_client.post(path, body_arg)
    - -
    [docs] def update( - self, - id: str, - ): - """Issues a command instructing the ngrok agent to update itself to the latest version. After this call completes successfully, the ngrok agent will be in the update process. A caller should wait some amount of time to allow the update to complete (at least 10 seconds) before making a call to the Restart endpoint to request that the agent restart itself to start using the new code. This call will never update an ngrok agent to a new major version which could cause breaking compatibility issues. If you wish to update to a new major version, that must be done manually. Still, please be aware that updating your ngrok agent could break your integration. This call will fail in any of the following circumstances: there is no update available the ngrok agent's configuration disabled update checks the agent is currently in process of updating the agent has already successfully updated but has not yet been restarted - - :param id: - - https://ngrok.com/docs/api#api-tunnel-sessions-update - """ - path = "/tunnel_sessions/{id}/update" - path = path.format( - id=id, - ) - body_arg = None - self._client.http_client.post(path, body_arg)
    - -
    [docs]class TunnelsClient(object): """Tunnels provide endpoints to access services exposed by a running ngrok agent tunnel session or an SSH reverse tunnel session.""" diff --git a/docs/_sources/abuse_reports.rst.txt b/docs/_sources/abuse_reports.rst.txt index 7791dd6..1d01296 100644 --- a/docs/_sources/abuse_reports.rst.txt +++ b/docs/_sources/abuse_reports.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Abuse Reports ===================================== diff --git a/docs/_sources/agent_ingresses.rst.txt b/docs/_sources/agent_ingresses.rst.txt index b6cee12..982a6b4 100644 --- a/docs/_sources/agent_ingresses.rst.txt +++ b/docs/_sources/agent_ingresses.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Agent Ingresses ===================================== diff --git a/docs/_sources/api_keys.rst.txt b/docs/_sources/api_keys.rst.txt index 69593f6..3938dc8 100644 --- a/docs/_sources/api_keys.rst.txt +++ b/docs/_sources/api_keys.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + API Keys ===================================== diff --git a/docs/_sources/application_sessions.rst.txt b/docs/_sources/application_sessions.rst.txt index fd3ac2d..2ed6b4d 100644 --- a/docs/_sources/application_sessions.rst.txt +++ b/docs/_sources/application_sessions.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Application Sessions ===================================== diff --git a/docs/_sources/application_users.rst.txt b/docs/_sources/application_users.rst.txt index 7aa4ca6..19f801f 100644 --- a/docs/_sources/application_users.rst.txt +++ b/docs/_sources/application_users.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Application Users ===================================== diff --git a/docs/_sources/certificate_authorities.rst.txt b/docs/_sources/certificate_authorities.rst.txt index 441b9e4..55ae4ee 100644 --- a/docs/_sources/certificate_authorities.rst.txt +++ b/docs/_sources/certificate_authorities.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Certificate Authorities ===================================== diff --git a/docs/_sources/client.rst.txt b/docs/_sources/client.rst.txt index e10ab95..18c30c5 100644 --- a/docs/_sources/client.rst.txt +++ b/docs/_sources/client.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Client ===================================== @@ -15,7 +18,7 @@ Client object: # list all ip policies for policy in client.ip_policies.list(): print(policy) - + # create an ngrok agent authtoken cred = client.credentials.create() print(cred) diff --git a/docs/_sources/credentials.rst.txt b/docs/_sources/credentials.rst.txt index 4af64a3..a2bb3f4 100644 --- a/docs/_sources/credentials.rst.txt +++ b/docs/_sources/credentials.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Credentials ===================================== diff --git a/docs/_sources/datatypes.rst.txt b/docs/_sources/datatypes.rst.txt index 7db4f9d..1b4d803 100644 --- a/docs/_sources/datatypes.rst.txt +++ b/docs/_sources/datatypes.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Datatypes ===================================== diff --git a/docs/_sources/edge_route_backend_module.rst.txt b/docs/_sources/edge_route_backend_module.rst.txt index 7e3dbe3..59ac3be 100644 --- a/docs/_sources/edge_route_backend_module.rst.txt +++ b/docs/_sources/edge_route_backend_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Backend Module ===================================== diff --git a/docs/_sources/edge_route_circuit_breaker_module.rst.txt b/docs/_sources/edge_route_circuit_breaker_module.rst.txt index fea725c..a94dc50 100644 --- a/docs/_sources/edge_route_circuit_breaker_module.rst.txt +++ b/docs/_sources/edge_route_circuit_breaker_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Circuit Breaker Module ===================================== diff --git a/docs/_sources/edge_route_compression_module.rst.txt b/docs/_sources/edge_route_compression_module.rst.txt index 4bbd06a..9e36972 100644 --- a/docs/_sources/edge_route_compression_module.rst.txt +++ b/docs/_sources/edge_route_compression_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Compression Module ===================================== diff --git a/docs/_sources/edge_route_ip_restriction_module.rst.txt b/docs/_sources/edge_route_ip_restriction_module.rst.txt index 243888f..23332bb 100644 --- a/docs/_sources/edge_route_ip_restriction_module.rst.txt +++ b/docs/_sources/edge_route_ip_restriction_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route IP Restriction Module ===================================== diff --git a/docs/_sources/edge_route_o_auth_module.rst.txt b/docs/_sources/edge_route_o_auth_module.rst.txt index 9e7f81a..3fd3c7b 100644 --- a/docs/_sources/edge_route_o_auth_module.rst.txt +++ b/docs/_sources/edge_route_o_auth_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route OAuth Module ===================================== diff --git a/docs/_sources/edge_route_oidc_module.rst.txt b/docs/_sources/edge_route_oidc_module.rst.txt index abef39e..1b3997b 100644 --- a/docs/_sources/edge_route_oidc_module.rst.txt +++ b/docs/_sources/edge_route_oidc_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route OIDC Module ===================================== diff --git a/docs/_sources/edge_route_request_headers_module.rst.txt b/docs/_sources/edge_route_request_headers_module.rst.txt index 5d5e26a..5e28e7e 100644 --- a/docs/_sources/edge_route_request_headers_module.rst.txt +++ b/docs/_sources/edge_route_request_headers_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Request Headers Module ===================================== diff --git a/docs/_sources/edge_route_response_headers_module.rst.txt b/docs/_sources/edge_route_response_headers_module.rst.txt index 479644b..97156e9 100644 --- a/docs/_sources/edge_route_response_headers_module.rst.txt +++ b/docs/_sources/edge_route_response_headers_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Response Headers Module ===================================== diff --git a/docs/_sources/edge_route_saml_module.rst.txt b/docs/_sources/edge_route_saml_module.rst.txt index aba3e12..4bd60c6 100644 --- a/docs/_sources/edge_route_saml_module.rst.txt +++ b/docs/_sources/edge_route_saml_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route SAML Module ===================================== diff --git a/docs/_sources/edge_route_webhook_verification_module.rst.txt b/docs/_sources/edge_route_webhook_verification_module.rst.txt index 0cfc3fa..f42c30e 100644 --- a/docs/_sources/edge_route_webhook_verification_module.rst.txt +++ b/docs/_sources/edge_route_webhook_verification_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Webhook Verification Module ===================================== diff --git a/docs/_sources/edge_route_websocket_tcp_converter_module.rst.txt b/docs/_sources/edge_route_websocket_tcp_converter_module.rst.txt index 4436c86..a586b27 100644 --- a/docs/_sources/edge_route_websocket_tcp_converter_module.rst.txt +++ b/docs/_sources/edge_route_websocket_tcp_converter_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Websocket TCP Converter Module ===================================== diff --git a/docs/_sources/edges_https.rst.txt b/docs/_sources/edges_https.rst.txt index c8bbe29..1e09836 100644 --- a/docs/_sources/edges_https.rst.txt +++ b/docs/_sources/edges_https.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edges ===================================== diff --git a/docs/_sources/edges_https_routes.rst.txt b/docs/_sources/edges_https_routes.rst.txt index afb0ce7..c2ecc23 100644 --- a/docs/_sources/edges_https_routes.rst.txt +++ b/docs/_sources/edges_https_routes.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Routes ===================================== diff --git a/docs/_sources/edges_tcp.rst.txt b/docs/_sources/edges_tcp.rst.txt index b10e177..4361561 100644 --- a/docs/_sources/edges_tcp.rst.txt +++ b/docs/_sources/edges_tcp.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edges ===================================== diff --git a/docs/_sources/edges_tls.rst.txt b/docs/_sources/edges_tls.rst.txt index 4b163d1..cbf751a 100644 --- a/docs/_sources/edges_tls.rst.txt +++ b/docs/_sources/edges_tls.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edges ===================================== diff --git a/docs/_sources/endpoints.rst.txt b/docs/_sources/endpoints.rst.txt index 227a642..f15e5e4 100644 --- a/docs/_sources/endpoints.rst.txt +++ b/docs/_sources/endpoints.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Endpoints ===================================== diff --git a/docs/_sources/errors.rst.txt b/docs/_sources/errors.rst.txt index 301a65e..5b03e51 100644 --- a/docs/_sources/errors.rst.txt +++ b/docs/_sources/errors.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + .. _errors: Errors diff --git a/docs/_sources/event_destinations.rst.txt b/docs/_sources/event_destinations.rst.txt index b05b317..c674b45 100644 --- a/docs/_sources/event_destinations.rst.txt +++ b/docs/_sources/event_destinations.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Destinations ===================================== diff --git a/docs/_sources/event_sources.rst.txt b/docs/_sources/event_sources.rst.txt index f096cc0..82541e8 100644 --- a/docs/_sources/event_sources.rst.txt +++ b/docs/_sources/event_sources.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Sources ===================================== diff --git a/docs/_sources/event_subscriptions.rst.txt b/docs/_sources/event_subscriptions.rst.txt index 89bc463..1fab08b 100644 --- a/docs/_sources/event_subscriptions.rst.txt +++ b/docs/_sources/event_subscriptions.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Subscriptions ===================================== diff --git a/docs/_sources/failover_backends.rst.txt b/docs/_sources/failover_backends.rst.txt index 9f8905c..9437ab7 100644 --- a/docs/_sources/failover_backends.rst.txt +++ b/docs/_sources/failover_backends.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Failover Backends ===================================== diff --git a/docs/_sources/http_response_backends.rst.txt b/docs/_sources/http_response_backends.rst.txt index 006e269..23e36d3 100644 --- a/docs/_sources/http_response_backends.rst.txt +++ b/docs/_sources/http_response_backends.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTP Response Backends ===================================== diff --git a/docs/_sources/https_edge_mutual_tls_module.rst.txt b/docs/_sources/https_edge_mutual_tls_module.rst.txt index 96a49a1..b64666d 100644 --- a/docs/_sources/https_edge_mutual_tls_module.rst.txt +++ b/docs/_sources/https_edge_mutual_tls_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Mutual TLS Module ===================================== diff --git a/docs/_sources/https_edge_tls_termination_module.rst.txt b/docs/_sources/https_edge_tls_termination_module.rst.txt index 48c8b98..8aa2e66 100644 --- a/docs/_sources/https_edge_tls_termination_module.rst.txt +++ b/docs/_sources/https_edge_tls_termination_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge TLS Termination Module ===================================== diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt index 35697fc..1fce46a 100644 --- a/docs/_sources/index.rst.txt +++ b/docs/_sources/index.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + ngrok-api ######### @@ -125,6 +128,7 @@ API Reference api_keys application_sessions application_users + tunnel_sessions failover_backends http_response_backends tunnel_group_backends @@ -168,5 +172,4 @@ API Reference ssh_host_certificates ssh_user_certificates tls_certificates - tunnel_sessions tunnels diff --git a/docs/_sources/ip_policies.rst.txt b/docs/_sources/ip_policies.rst.txt index 1799260..1b3cde8 100644 --- a/docs/_sources/ip_policies.rst.txt +++ b/docs/_sources/ip_policies.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Policies ===================================== diff --git a/docs/_sources/ip_policy_rules.rst.txt b/docs/_sources/ip_policy_rules.rst.txt index c109f93..52b22a4 100644 --- a/docs/_sources/ip_policy_rules.rst.txt +++ b/docs/_sources/ip_policy_rules.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Policy Rules ===================================== diff --git a/docs/_sources/ip_restrictions.rst.txt b/docs/_sources/ip_restrictions.rst.txt index 6593c97..5d5f3bc 100644 --- a/docs/_sources/ip_restrictions.rst.txt +++ b/docs/_sources/ip_restrictions.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Restrictions ===================================== diff --git a/docs/_sources/reserved_addrs.rst.txt b/docs/_sources/reserved_addrs.rst.txt index aaf4f40..e00b300 100644 --- a/docs/_sources/reserved_addrs.rst.txt +++ b/docs/_sources/reserved_addrs.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Reserved Addresses ===================================== diff --git a/docs/_sources/reserved_domains.rst.txt b/docs/_sources/reserved_domains.rst.txt index c1630b5..86758eb 100644 --- a/docs/_sources/reserved_domains.rst.txt +++ b/docs/_sources/reserved_domains.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Reserved Domains ===================================== diff --git a/docs/_sources/ssh_certificate_authorities.rst.txt b/docs/_sources/ssh_certificate_authorities.rst.txt index 4bf9cd9..24dbf76 100644 --- a/docs/_sources/ssh_certificate_authorities.rst.txt +++ b/docs/_sources/ssh_certificate_authorities.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Certificate Authorities ===================================== diff --git a/docs/_sources/ssh_credentials.rst.txt b/docs/_sources/ssh_credentials.rst.txt index 06044bf..c73991a 100644 --- a/docs/_sources/ssh_credentials.rst.txt +++ b/docs/_sources/ssh_credentials.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Credentials ===================================== diff --git a/docs/_sources/ssh_host_certificates.rst.txt b/docs/_sources/ssh_host_certificates.rst.txt index 9e0b6db..e3387c1 100644 --- a/docs/_sources/ssh_host_certificates.rst.txt +++ b/docs/_sources/ssh_host_certificates.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Host Certificates ===================================== diff --git a/docs/_sources/ssh_user_certificates.rst.txt b/docs/_sources/ssh_user_certificates.rst.txt index 4cb5fee..e63abae 100644 --- a/docs/_sources/ssh_user_certificates.rst.txt +++ b/docs/_sources/ssh_user_certificates.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH User Certificates ===================================== diff --git a/docs/_sources/tcp_edge_backend_module.rst.txt b/docs/_sources/tcp_edge_backend_module.rst.txt index 636003c..98b2a5f 100644 --- a/docs/_sources/tcp_edge_backend_module.rst.txt +++ b/docs/_sources/tcp_edge_backend_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edge Backend Module ===================================== diff --git a/docs/_sources/tcp_edge_ip_restriction_module.rst.txt b/docs/_sources/tcp_edge_ip_restriction_module.rst.txt index f847cc5..24810b1 100644 --- a/docs/_sources/tcp_edge_ip_restriction_module.rst.txt +++ b/docs/_sources/tcp_edge_ip_restriction_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edge IP Restriction Module ===================================== diff --git a/docs/_sources/tls_certificates.rst.txt b/docs/_sources/tls_certificates.rst.txt index a664ecc..eb06183 100644 --- a/docs/_sources/tls_certificates.rst.txt +++ b/docs/_sources/tls_certificates.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Certificates ===================================== diff --git a/docs/_sources/tls_edge_backend_module.rst.txt b/docs/_sources/tls_edge_backend_module.rst.txt index 1aa9ef6..8abf12f 100644 --- a/docs/_sources/tls_edge_backend_module.rst.txt +++ b/docs/_sources/tls_edge_backend_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge Backend Module ===================================== diff --git a/docs/_sources/tls_edge_ip_restriction_module.rst.txt b/docs/_sources/tls_edge_ip_restriction_module.rst.txt index ed49b58..b9d14c9 100644 --- a/docs/_sources/tls_edge_ip_restriction_module.rst.txt +++ b/docs/_sources/tls_edge_ip_restriction_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge IP Restriction Module ===================================== diff --git a/docs/_sources/tls_edge_mutual_tls_module.rst.txt b/docs/_sources/tls_edge_mutual_tls_module.rst.txt index bee4644..f8ff76d 100644 --- a/docs/_sources/tls_edge_mutual_tls_module.rst.txt +++ b/docs/_sources/tls_edge_mutual_tls_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge Mutual TLS Module ===================================== diff --git a/docs/_sources/tls_edge_tls_termination_module.rst.txt b/docs/_sources/tls_edge_tls_termination_module.rst.txt index 55c4d52..60189de 100644 --- a/docs/_sources/tls_edge_tls_termination_module.rst.txt +++ b/docs/_sources/tls_edge_tls_termination_module.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge TLS Termination Module ===================================== diff --git a/docs/_sources/tunnel_group_backends.rst.txt b/docs/_sources/tunnel_group_backends.rst.txt index 0f0acac..6b997cf 100644 --- a/docs/_sources/tunnel_group_backends.rst.txt +++ b/docs/_sources/tunnel_group_backends.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Group Backends ===================================== diff --git a/docs/_sources/tunnel_sessions.rst.txt b/docs/_sources/tunnel_sessions.rst.txt index d03189a..5d5b640 100644 --- a/docs/_sources/tunnel_sessions.rst.txt +++ b/docs/_sources/tunnel_sessions.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Sessions ===================================== diff --git a/docs/_sources/tunnels.rst.txt b/docs/_sources/tunnels.rst.txt index 347285b..e3cad8a 100644 --- a/docs/_sources/tunnels.rst.txt +++ b/docs/_sources/tunnels.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnels ===================================== diff --git a/docs/_sources/weighted_backends.rst.txt b/docs/_sources/weighted_backends.rst.txt index f9781bd..496f0c8 100644 --- a/docs/_sources/weighted_backends.rst.txt +++ b/docs/_sources/weighted_backends.rst.txt @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Weighted Backends ===================================== diff --git a/docs/_static/pygments.css b/docs/_static/pygments.css index 7547150..c2e07c7 100644 --- a/docs/_static/pygments.css +++ b/docs/_static/pygments.css @@ -22,6 +22,7 @@ .highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ .highlight .gd { color: #a40000 } /* Generic.Deleted */ .highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ +.highlight .ges { color: #000000; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #ef2929 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ @@ -101,12 +102,13 @@ body[data-theme="dark"] .highlight .x { color: #d0d0d0 } /* Other */ body[data-theme="dark"] .highlight .p { color: #d0d0d0 } /* Punctuation */ body[data-theme="dark"] .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ body[data-theme="dark"] .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ -body[data-theme="dark"] .highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */ +body[data-theme="dark"] .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ body[data-theme="dark"] .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ body[data-theme="dark"] .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ body[data-theme="dark"] .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ body[data-theme="dark"] .highlight .gd { color: #d22323 } /* Generic.Deleted */ body[data-theme="dark"] .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body[data-theme="dark"] .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ body[data-theme="dark"] .highlight .gr { color: #d22323 } /* Generic.Error */ body[data-theme="dark"] .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ body[data-theme="dark"] .highlight .gi { color: #589819 } /* Generic.Inserted */ @@ -186,12 +188,13 @@ body:not([data-theme="light"]) .highlight .x { color: #d0d0d0 } /* Other */ body:not([data-theme="light"]) .highlight .p { color: #d0d0d0 } /* Punctuation */ body:not([data-theme="light"]) .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ body:not([data-theme="light"]) .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ -body:not([data-theme="light"]) .highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */ +body:not([data-theme="light"]) .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ body:not([data-theme="light"]) .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ body:not([data-theme="light"]) .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ body:not([data-theme="light"]) .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ body:not([data-theme="light"]) .highlight .gd { color: #d22323 } /* Generic.Deleted */ body:not([data-theme="light"]) .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body:not([data-theme="light"]) .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ body:not([data-theme="light"]) .highlight .gr { color: #d22323 } /* Generic.Error */ body:not([data-theme="light"]) .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ body:not([data-theme="light"]) .highlight .gi { color: #589819 } /* Generic.Inserted */ diff --git a/docs/abuse_reports.html b/docs/abuse_reports.html index 2ba71bd..9012b5a 100644 --- a/docs/abuse_reports.html +++ b/docs/abuse_reports.html @@ -167,6 +167,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -210,7 +211,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • diff --git a/docs/agent_ingresses.html b/docs/agent_ingresses.html index 4494564..d7a83d0 100644 --- a/docs/agent_ingresses.html +++ b/docs/agent_ingresses.html @@ -167,6 +167,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -210,7 +211,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • diff --git a/docs/api_keys.html b/docs/api_keys.html index e758724..b11bbc2 100644 --- a/docs/api_keys.html +++ b/docs/api_keys.html @@ -167,6 +167,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -210,7 +211,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • diff --git a/docs/application_sessions.html b/docs/application_sessions.html index 6918c76..1dd912f 100644 --- a/docs/application_sessions.html +++ b/docs/application_sessions.html @@ -167,6 +167,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -210,7 +211,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • diff --git a/docs/application_users.html b/docs/application_users.html index cb5e889..9b3f54c 100644 --- a/docs/application_users.html +++ b/docs/application_users.html @@ -3,7 +3,7 @@ - + Application Users - ngrok-api documentation @@ -167,6 +167,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -210,7 +211,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • @@ -311,12 +311,12 @@