From 5af7916bd5faa6290eb3f221ffdf2f31a561f2d5 Mon Sep 17 00:00:00 2001 From: "ngrok-bors-ng[bot]" <52465704+ngrok-bors-ng[bot]@users.noreply.github.com> Date: Thu, 10 Mar 2022 19:38:29 +0000 Subject: [PATCH] cut new release for ngrok-api-python --- doc/source/edge_route_backend_module.rst | 9 + .../edge_route_circuit_breaker_module.rst | 9 + doc/source/edge_route_compression_module.rst | 9 + .../edge_route_ip_restriction_module.rst | 9 + doc/source/edge_route_o_auth_module.rst | 9 + doc/source/edge_route_oidc_module.rst | 9 + .../edge_route_request_headers_module.rst | 9 + .../edge_route_response_headers_module.rst | 9 + doc/source/edge_route_saml_module.rst | 9 + ...edge_route_webhook_verification_module.rst | 9 + ...e_route_websocket_tcp_converter_module.rst | 9 + doc/source/edges_https.rst | 9 + doc/source/edges_https_routes.rst | 9 + doc/source/edges_tcp.rst | 9 + doc/source/edges_tls.rst | 9 + .../endpoint_circuit_breaker_module.rst | 9 - doc/source/endpoint_compression_module.rst | 9 - doc/source/endpoint_configurations.rst | 9 - doc/source/endpoint_ip_policy_module.rst | 9 - doc/source/endpoint_logging_module.rst | 9 - doc/source/endpoint_mutual_tls_module.rst | 9 - doc/source/endpoint_o_auth_module.rst | 9 - doc/source/endpoint_oidc_module.rst | 9 - .../endpoint_request_headers_module.rst | 9 - .../endpoint_response_headers_module.rst | 9 - doc/source/endpoint_saml_module.rst | 9 - .../endpoint_tls_termination_module.rst | 9 - .../endpoint_webhook_validation_module.rst | 9 - doc/source/endpoints.rst | 9 + doc/source/event_streams.rst | 9 - doc/source/failover_backends.rst | 9 + doc/source/http_response_backends.rst | 9 + doc/source/https_edge_mutual_tls_module.rst | 9 + .../https_edge_tls_termination_module.rst | 9 + doc/source/index.rst | 42 +- doc/source/tcp_edge_backend_module.rst | 9 + doc/source/tcp_edge_ip_restriction_module.rst | 9 + doc/source/tls_edge_backend_module.rst | 9 + doc/source/tls_edge_ip_restriction_module.rst | 9 + doc/source/tls_edge_mutual_tls_module.rst | 9 + .../tls_edge_tls_termination_module.rst | 9 + doc/source/tunnel_group_backends.rst | 9 + doc/source/weighted_backends.rst | 9 + docs/.buildinfo | 2 +- docs/_modules/index.html | 44 +- docs/_modules/ngrok/client.html | 160 +- docs/_modules/ngrok/datatypes.html | 1667 +++++++-- docs/_modules/ngrok/error.html | 44 +- docs/_modules/ngrok/services.html | 3287 ++++++++++++----- .../edge_route_backend_module.rst.txt | 9 + .../edge_route_circuit_breaker_module.rst.txt | 9 + .../edge_route_compression_module.rst.txt | 9 + .../edge_route_ip_restriction_module.rst.txt | 9 + .../_sources/edge_route_o_auth_module.rst.txt | 9 + docs/_sources/edge_route_oidc_module.rst.txt | 9 + .../edge_route_request_headers_module.rst.txt | 9 + ...edge_route_response_headers_module.rst.txt | 9 + docs/_sources/edge_route_saml_module.rst.txt | 9 + ..._route_webhook_verification_module.rst.txt | 9 + ...ute_websocket_tcp_converter_module.rst.txt | 9 + docs/_sources/edges_https.rst.txt | 9 + docs/_sources/edges_https_routes.rst.txt | 9 + docs/_sources/edges_tcp.rst.txt | 9 + docs/_sources/edges_tls.rst.txt | 9 + .../endpoint_circuit_breaker_module.rst.txt | 9 - .../endpoint_compression_module.rst.txt | 9 - docs/_sources/endpoint_configurations.rst.txt | 9 - .../endpoint_ip_policy_module.rst.txt | 9 - docs/_sources/endpoint_logging_module.rst.txt | 9 - .../endpoint_mutual_tls_module.rst.txt | 9 - docs/_sources/endpoint_o_auth_module.rst.txt | 9 - docs/_sources/endpoint_oidc_module.rst.txt | 9 - .../endpoint_request_headers_module.rst.txt | 9 - .../endpoint_response_headers_module.rst.txt | 9 - docs/_sources/endpoint_saml_module.rst.txt | 9 - .../endpoint_tls_termination_module.rst.txt | 9 - ...endpoint_webhook_validation_module.rst.txt | 9 - docs/_sources/endpoints.rst.txt | 9 + docs/_sources/event_streams.rst.txt | 9 - docs/_sources/failover_backends.rst.txt | 9 + docs/_sources/http_response_backends.rst.txt | 9 + .../https_edge_mutual_tls_module.rst.txt | 9 + .../https_edge_tls_termination_module.rst.txt | 9 + docs/_sources/index.rst.txt | 42 +- docs/_sources/tcp_edge_backend_module.rst.txt | 9 + .../tcp_edge_ip_restriction_module.rst.txt | 9 + docs/_sources/tls_edge_backend_module.rst.txt | 9 + .../tls_edge_ip_restriction_module.rst.txt | 9 + .../tls_edge_mutual_tls_module.rst.txt | 9 + .../tls_edge_tls_termination_module.rst.txt | 9 + docs/_sources/tunnel_group_backends.rst.txt | 9 + docs/_sources/weighted_backends.rst.txt | 9 + docs/_static/pygments.css | 34 +- docs/abuse_reports.html | 44 +- docs/agent_ingresses.html | 44 +- docs/api_keys.html | 50 +- docs/certificate_authorities.html | 50 +- docs/client.html | 81 +- docs/credentials.html | 50 +- docs/datatypes.html | 1808 ++++++--- docs/edge_route_backend_module.html | 294 ++ docs/edge_route_circuit_breaker_module.html | 294 ++ ...tml => edge_route_compression_module.html} | 97 +- docs/edge_route_ip_restriction_module.html | 294 ++ ...ule.html => edge_route_o_auth_module.html} | 97 +- docs/edge_route_oidc_module.html | 294 ++ docs/edge_route_request_headers_module.html | 294 ++ docs/edge_route_response_headers_module.html | 294 ++ ...odule.html => edge_route_saml_module.html} | 97 +- ...ge_route_webhook_verification_module.html} | 97 +- ..._route_websocket_tcp_converter_module.html | 294 ++ docs/edges_https.html | 335 ++ docs/edges_https_routes.html | 344 ++ docs/edges_tcp.html | 335 ++ docs/edges_tls.html | 339 ++ docs/endpoint_configurations.html | 343 -- docs/endpoints.html | 282 ++ docs/errors.html | 44 +- docs/event_destinations.html | 52 +- docs/event_sources.html | 44 +- docs/event_subscriptions.html | 48 +- docs/failover_backends.html | 335 ++ docs/genindex.html | 796 +++- docs/http_response_backends.html | 330 ++ ...html => https_edge_mutual_tls_module.html} | 92 +- ...=> https_edge_tls_termination_module.html} | 92 +- docs/index.html | 86 +- docs/ip_policies.html | 47 +- docs/ip_policy_rules.html | 47 +- docs/ip_restrictions.html | 50 +- docs/objects.inv | Bin 4982 -> 6132 bytes docs/py-modindex.html | 46 +- docs/reserved_addrs.html | 67 +- docs/reserved_domains.html | 74 +- docs/search.html | 44 +- docs/searchindex.js | 2 +- docs/ssh_certificate_authorities.html | 44 +- docs/ssh_credentials.html | 44 +- docs/ssh_host_certificates.html | 44 +- docs/ssh_user_certificates.html | 44 +- ...dule.html => tcp_edge_backend_module.html} | 92 +- ...ml => tcp_edge_ip_restriction_module.html} | 86 +- docs/tls_certificates.html | 44 +- ...dule.html => tls_edge_backend_module.html} | 92 +- ...ml => tls_edge_ip_restriction_module.html} | 92 +- ...e.html => tls_edge_mutual_tls_module.html} | 86 +- ...l => tls_edge_tls_termination_module.html} | 86 +- ...treams.html => tunnel_group_backends.html} | 139 +- docs/tunnel_sessions.html | 44 +- docs/tunnels.html | 60 +- docs/weighted_backends.html | 335 ++ ngrok/__init__.py | 2 + ngrok/client.py | 116 +- ngrok/datatypes.py | 1623 ++++++-- ngrok/http_client.py | 15 + ngrok/services.py | 3215 +++++++++++----- setup.py | 2 +- 157 files changed, 16080 insertions(+), 5150 deletions(-) create mode 100644 doc/source/edge_route_backend_module.rst create mode 100644 doc/source/edge_route_circuit_breaker_module.rst create mode 100644 doc/source/edge_route_compression_module.rst create mode 100644 doc/source/edge_route_ip_restriction_module.rst create mode 100644 doc/source/edge_route_o_auth_module.rst create mode 100644 doc/source/edge_route_oidc_module.rst create mode 100644 doc/source/edge_route_request_headers_module.rst create mode 100644 doc/source/edge_route_response_headers_module.rst create mode 100644 doc/source/edge_route_saml_module.rst create mode 100644 doc/source/edge_route_webhook_verification_module.rst create mode 100644 doc/source/edge_route_websocket_tcp_converter_module.rst create mode 100644 doc/source/edges_https.rst create mode 100644 doc/source/edges_https_routes.rst create mode 100644 doc/source/edges_tcp.rst create mode 100644 doc/source/edges_tls.rst delete mode 100644 doc/source/endpoint_circuit_breaker_module.rst delete mode 100644 doc/source/endpoint_compression_module.rst delete mode 100644 doc/source/endpoint_configurations.rst delete mode 100644 doc/source/endpoint_ip_policy_module.rst delete mode 100644 doc/source/endpoint_logging_module.rst delete mode 100644 doc/source/endpoint_mutual_tls_module.rst delete mode 100644 doc/source/endpoint_o_auth_module.rst delete mode 100644 doc/source/endpoint_oidc_module.rst delete mode 100644 doc/source/endpoint_request_headers_module.rst delete mode 100644 doc/source/endpoint_response_headers_module.rst delete mode 100644 doc/source/endpoint_saml_module.rst delete mode 100644 doc/source/endpoint_tls_termination_module.rst delete mode 100644 doc/source/endpoint_webhook_validation_module.rst create mode 100644 doc/source/endpoints.rst delete mode 100644 doc/source/event_streams.rst create mode 100644 doc/source/failover_backends.rst create mode 100644 doc/source/http_response_backends.rst create mode 100644 doc/source/https_edge_mutual_tls_module.rst create mode 100644 doc/source/https_edge_tls_termination_module.rst create mode 100644 doc/source/tcp_edge_backend_module.rst create mode 100644 doc/source/tcp_edge_ip_restriction_module.rst create mode 100644 doc/source/tls_edge_backend_module.rst create mode 100644 doc/source/tls_edge_ip_restriction_module.rst create mode 100644 doc/source/tls_edge_mutual_tls_module.rst create mode 100644 doc/source/tls_edge_tls_termination_module.rst create mode 100644 doc/source/tunnel_group_backends.rst create mode 100644 doc/source/weighted_backends.rst create mode 100644 docs/_sources/edge_route_backend_module.rst.txt create mode 100644 docs/_sources/edge_route_circuit_breaker_module.rst.txt create mode 100644 docs/_sources/edge_route_compression_module.rst.txt create mode 100644 docs/_sources/edge_route_ip_restriction_module.rst.txt create mode 100644 docs/_sources/edge_route_o_auth_module.rst.txt create mode 100644 docs/_sources/edge_route_oidc_module.rst.txt create mode 100644 docs/_sources/edge_route_request_headers_module.rst.txt create mode 100644 docs/_sources/edge_route_response_headers_module.rst.txt create mode 100644 docs/_sources/edge_route_saml_module.rst.txt create mode 100644 docs/_sources/edge_route_webhook_verification_module.rst.txt create mode 100644 docs/_sources/edge_route_websocket_tcp_converter_module.rst.txt create mode 100644 docs/_sources/edges_https.rst.txt create mode 100644 docs/_sources/edges_https_routes.rst.txt create mode 100644 docs/_sources/edges_tcp.rst.txt create mode 100644 docs/_sources/edges_tls.rst.txt delete mode 100644 docs/_sources/endpoint_circuit_breaker_module.rst.txt delete mode 100644 docs/_sources/endpoint_compression_module.rst.txt delete mode 100644 docs/_sources/endpoint_configurations.rst.txt delete mode 100644 docs/_sources/endpoint_ip_policy_module.rst.txt delete mode 100644 docs/_sources/endpoint_logging_module.rst.txt delete mode 100644 docs/_sources/endpoint_mutual_tls_module.rst.txt delete mode 100644 docs/_sources/endpoint_o_auth_module.rst.txt delete mode 100644 docs/_sources/endpoint_oidc_module.rst.txt delete mode 100644 docs/_sources/endpoint_request_headers_module.rst.txt delete mode 100644 docs/_sources/endpoint_response_headers_module.rst.txt delete mode 100644 docs/_sources/endpoint_saml_module.rst.txt delete mode 100644 docs/_sources/endpoint_tls_termination_module.rst.txt delete mode 100644 docs/_sources/endpoint_webhook_validation_module.rst.txt create mode 100644 docs/_sources/endpoints.rst.txt delete mode 100644 docs/_sources/event_streams.rst.txt create mode 100644 docs/_sources/failover_backends.rst.txt create mode 100644 docs/_sources/http_response_backends.rst.txt create mode 100644 docs/_sources/https_edge_mutual_tls_module.rst.txt create mode 100644 docs/_sources/https_edge_tls_termination_module.rst.txt create mode 100644 docs/_sources/tcp_edge_backend_module.rst.txt create mode 100644 docs/_sources/tcp_edge_ip_restriction_module.rst.txt create mode 100644 docs/_sources/tls_edge_backend_module.rst.txt create mode 100644 docs/_sources/tls_edge_ip_restriction_module.rst.txt create mode 100644 docs/_sources/tls_edge_mutual_tls_module.rst.txt create mode 100644 docs/_sources/tls_edge_tls_termination_module.rst.txt create mode 100644 docs/_sources/tunnel_group_backends.rst.txt create mode 100644 docs/_sources/weighted_backends.rst.txt create mode 100644 docs/edge_route_backend_module.html create mode 100644 docs/edge_route_circuit_breaker_module.html rename docs/{endpoint_compression_module.html => edge_route_compression_module.html} (57%) create mode 100644 docs/edge_route_ip_restriction_module.html rename docs/{endpoint_o_auth_module.html => edge_route_o_auth_module.html} (57%) create mode 100644 docs/edge_route_oidc_module.html create mode 100644 docs/edge_route_request_headers_module.html create mode 100644 docs/edge_route_response_headers_module.html rename docs/{endpoint_saml_module.html => edge_route_saml_module.html} (57%) rename docs/{endpoint_webhook_validation_module.html => edge_route_webhook_verification_module.html} (56%) create mode 100644 docs/edge_route_websocket_tcp_converter_module.html create mode 100644 docs/edges_https.html create mode 100644 docs/edges_https_routes.html create mode 100644 docs/edges_tcp.html create mode 100644 docs/edges_tls.html delete mode 100644 docs/endpoint_configurations.html create mode 100644 docs/endpoints.html create mode 100644 docs/failover_backends.html create mode 100644 docs/http_response_backends.html rename docs/{endpoint_oidc_module.html => https_edge_mutual_tls_module.html} (62%) rename docs/{endpoint_response_headers_module.html => https_edge_tls_termination_module.html} (64%) rename docs/{endpoint_logging_module.html => tcp_edge_backend_module.html} (63%) rename docs/{endpoint_ip_policy_module.html => tcp_edge_ip_restriction_module.html} (65%) rename docs/{endpoint_request_headers_module.html => tls_edge_backend_module.html} (62%) rename docs/{endpoint_circuit_breaker_module.html => tls_edge_ip_restriction_module.html} (61%) rename docs/{endpoint_mutual_tls_module.html => tls_edge_mutual_tls_module.html} (66%) rename docs/{endpoint_tls_termination_module.html => tls_edge_tls_termination_module.html} (66%) rename docs/{event_streams.html => tunnel_group_backends.html} (54%) create mode 100644 docs/weighted_backends.html diff --git a/doc/source/edge_route_backend_module.rst b/doc/source/edge_route_backend_module.rst new file mode 100644 index 0000000..7e3dbe3 --- /dev/null +++ b/doc/source/edge_route_backend_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route Backend Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_backend_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteBackendModuleClient + :undoc-members: EdgeRouteBackendModuleClient diff --git a/doc/source/edge_route_circuit_breaker_module.rst b/doc/source/edge_route_circuit_breaker_module.rst new file mode 100644 index 0000000..fea725c --- /dev/null +++ b/doc/source/edge_route_circuit_breaker_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route Circuit Breaker Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_circuit_breaker_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteCircuitBreakerModuleClient + :undoc-members: EdgeRouteCircuitBreakerModuleClient diff --git a/doc/source/edge_route_compression_module.rst b/doc/source/edge_route_compression_module.rst new file mode 100644 index 0000000..4bbd06a --- /dev/null +++ b/doc/source/edge_route_compression_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route Compression Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_compression_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteCompressionModuleClient + :undoc-members: EdgeRouteCompressionModuleClient diff --git a/doc/source/edge_route_ip_restriction_module.rst b/doc/source/edge_route_ip_restriction_module.rst new file mode 100644 index 0000000..243888f --- /dev/null +++ b/doc/source/edge_route_ip_restriction_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route IP Restriction Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_ip_restriction_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteIPRestrictionModuleClient + :undoc-members: EdgeRouteIPRestrictionModuleClient diff --git a/doc/source/edge_route_o_auth_module.rst b/doc/source/edge_route_o_auth_module.rst new file mode 100644 index 0000000..9e7f81a --- /dev/null +++ b/doc/source/edge_route_o_auth_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route OAuth Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_o_auth_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteOAuthModuleClient + :undoc-members: EdgeRouteOAuthModuleClient diff --git a/doc/source/edge_route_oidc_module.rst b/doc/source/edge_route_oidc_module.rst new file mode 100644 index 0000000..abef39e --- /dev/null +++ b/doc/source/edge_route_oidc_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route OIDC Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_oidc_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteOIDCModuleClient + :undoc-members: EdgeRouteOIDCModuleClient diff --git a/doc/source/edge_route_request_headers_module.rst b/doc/source/edge_route_request_headers_module.rst new file mode 100644 index 0000000..5d5e26a --- /dev/null +++ b/doc/source/edge_route_request_headers_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route Request Headers Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_request_headers_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteRequestHeadersModuleClient + :undoc-members: EdgeRouteRequestHeadersModuleClient diff --git a/doc/source/edge_route_response_headers_module.rst b/doc/source/edge_route_response_headers_module.rst new file mode 100644 index 0000000..479644b --- /dev/null +++ b/doc/source/edge_route_response_headers_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route Response Headers Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_response_headers_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteResponseHeadersModuleClient + :undoc-members: EdgeRouteResponseHeadersModuleClient diff --git a/doc/source/edge_route_saml_module.rst b/doc/source/edge_route_saml_module.rst new file mode 100644 index 0000000..aba3e12 --- /dev/null +++ b/doc/source/edge_route_saml_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route SAML Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_saml_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteSAMLModuleClient + :undoc-members: EdgeRouteSAMLModuleClient diff --git a/doc/source/edge_route_webhook_verification_module.rst b/doc/source/edge_route_webhook_verification_module.rst new file mode 100644 index 0000000..0cfc3fa --- /dev/null +++ b/doc/source/edge_route_webhook_verification_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route Webhook Verification Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_webhook_verification_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteWebhookVerificationModuleClient + :undoc-members: EdgeRouteWebhookVerificationModuleClient diff --git a/doc/source/edge_route_websocket_tcp_converter_module.rst b/doc/source/edge_route_websocket_tcp_converter_module.rst new file mode 100644 index 0000000..4436c86 --- /dev/null +++ b/doc/source/edge_route_websocket_tcp_converter_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Route Websocket TCP Converter Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edge_route_websocket_tcp_converter_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgeRouteWebsocketTCPConverterModuleClient + :undoc-members: EdgeRouteWebsocketTCPConverterModuleClient diff --git a/doc/source/edges_https.rst b/doc/source/edges_https.rst new file mode 100644 index 0000000..c8bbe29 --- /dev/null +++ b/doc/source/edges_https.rst @@ -0,0 +1,9 @@ +HTTPS Edges +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edges_https` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgesHTTPSClient + :undoc-members: EdgesHTTPSClient diff --git a/doc/source/edges_https_routes.rst b/doc/source/edges_https_routes.rst new file mode 100644 index 0000000..afb0ce7 --- /dev/null +++ b/doc/source/edges_https_routes.rst @@ -0,0 +1,9 @@ +HTTPS Edge Routes +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edges_https_routes` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgesHTTPSRoutesClient + :undoc-members: EdgesHTTPSRoutesClient diff --git a/doc/source/edges_tcp.rst b/doc/source/edges_tcp.rst new file mode 100644 index 0000000..b10e177 --- /dev/null +++ b/doc/source/edges_tcp.rst @@ -0,0 +1,9 @@ +TCP Edges +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edges_tcp` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgesTCPClient + :undoc-members: EdgesTCPClient diff --git a/doc/source/edges_tls.rst b/doc/source/edges_tls.rst new file mode 100644 index 0000000..4b163d1 --- /dev/null +++ b/doc/source/edges_tls.rst @@ -0,0 +1,9 @@ +TLS Edges +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.edges_tls` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EdgesTLSClient + :undoc-members: EdgesTLSClient diff --git a/doc/source/endpoint_circuit_breaker_module.rst b/doc/source/endpoint_circuit_breaker_module.rst deleted file mode 100644 index c788124..0000000 --- a/doc/source/endpoint_circuit_breaker_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -Circuit Breaker Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_circuit_breaker_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointCircuitBreakerModuleClient - :undoc-members: EndpointCircuitBreakerModuleClient diff --git a/doc/source/endpoint_compression_module.rst b/doc/source/endpoint_compression_module.rst deleted file mode 100644 index 62fac0d..0000000 --- a/doc/source/endpoint_compression_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -Compression Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_compression_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointCompressionModuleClient - :undoc-members: EndpointCompressionModuleClient diff --git a/doc/source/endpoint_configurations.rst b/doc/source/endpoint_configurations.rst deleted file mode 100644 index f08395c..0000000 --- a/doc/source/endpoint_configurations.rst +++ /dev/null @@ -1,9 +0,0 @@ -Endpoint Configurations -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_configurations` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointConfigurationsClient - :undoc-members: EndpointConfigurationsClient diff --git a/doc/source/endpoint_ip_policy_module.rst b/doc/source/endpoint_ip_policy_module.rst deleted file mode 100644 index 93d6bdc..0000000 --- a/doc/source/endpoint_ip_policy_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -IP Policy Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_ip_policy_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointIPPolicyModuleClient - :undoc-members: EndpointIPPolicyModuleClient diff --git a/doc/source/endpoint_logging_module.rst b/doc/source/endpoint_logging_module.rst deleted file mode 100644 index 84e80be..0000000 --- a/doc/source/endpoint_logging_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -Logging Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_logging_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointLoggingModuleClient - :undoc-members: EndpointLoggingModuleClient diff --git a/doc/source/endpoint_mutual_tls_module.rst b/doc/source/endpoint_mutual_tls_module.rst deleted file mode 100644 index e11ce59..0000000 --- a/doc/source/endpoint_mutual_tls_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -Mutual TLS Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_mutual_tls_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointMutualTLSModuleClient - :undoc-members: EndpointMutualTLSModuleClient diff --git a/doc/source/endpoint_o_auth_module.rst b/doc/source/endpoint_o_auth_module.rst deleted file mode 100644 index ab123fc..0000000 --- a/doc/source/endpoint_o_auth_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -OAuth Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_o_auth_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointOAuthModuleClient - :undoc-members: EndpointOAuthModuleClient diff --git a/doc/source/endpoint_oidc_module.rst b/doc/source/endpoint_oidc_module.rst deleted file mode 100644 index d1499c7..0000000 --- a/doc/source/endpoint_oidc_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -OIDC Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_oidc_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointOIDCModuleClient - :undoc-members: EndpointOIDCModuleClient diff --git a/doc/source/endpoint_request_headers_module.rst b/doc/source/endpoint_request_headers_module.rst deleted file mode 100644 index c309636..0000000 --- a/doc/source/endpoint_request_headers_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -Request Headers Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_request_headers_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointRequestHeadersModuleClient - :undoc-members: EndpointRequestHeadersModuleClient diff --git a/doc/source/endpoint_response_headers_module.rst b/doc/source/endpoint_response_headers_module.rst deleted file mode 100644 index 91384f2..0000000 --- a/doc/source/endpoint_response_headers_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -Response Headers Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_response_headers_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointResponseHeadersModuleClient - :undoc-members: EndpointResponseHeadersModuleClient diff --git a/doc/source/endpoint_saml_module.rst b/doc/source/endpoint_saml_module.rst deleted file mode 100644 index 7404ac1..0000000 --- a/doc/source/endpoint_saml_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -SAML Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_saml_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointSAMLModuleClient - :undoc-members: EndpointSAMLModuleClient diff --git a/doc/source/endpoint_tls_termination_module.rst b/doc/source/endpoint_tls_termination_module.rst deleted file mode 100644 index da2f5e3..0000000 --- a/doc/source/endpoint_tls_termination_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -TLS Termination Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_tls_termination_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointTLSTerminationModuleClient - :undoc-members: EndpointTLSTerminationModuleClient diff --git a/doc/source/endpoint_webhook_validation_module.rst b/doc/source/endpoint_webhook_validation_module.rst deleted file mode 100644 index 1dea32f..0000000 --- a/doc/source/endpoint_webhook_validation_module.rst +++ /dev/null @@ -1,9 +0,0 @@ -Webhook Validation Module -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.endpoint_webhook_validation_module` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EndpointWebhookValidationModuleClient - :undoc-members: EndpointWebhookValidationModuleClient diff --git a/doc/source/endpoints.rst b/doc/source/endpoints.rst new file mode 100644 index 0000000..227a642 --- /dev/null +++ b/doc/source/endpoints.rst @@ -0,0 +1,9 @@ +Endpoints +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.endpoints` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: EndpointsClient + :undoc-members: EndpointsClient diff --git a/doc/source/event_streams.rst b/doc/source/event_streams.rst deleted file mode 100644 index 701b2e3..0000000 --- a/doc/source/event_streams.rst +++ /dev/null @@ -1,9 +0,0 @@ -Event Streams -===================================== - -Do not construct this object directly, instead access the -:attr:`~ngrok.Client.event_streams` property of an :class:`ngrok.Client` object. - -.. automodule:: ngrok.services - :members: EventStreamsClient - :undoc-members: EventStreamsClient diff --git a/doc/source/failover_backends.rst b/doc/source/failover_backends.rst new file mode 100644 index 0000000..9f8905c --- /dev/null +++ b/doc/source/failover_backends.rst @@ -0,0 +1,9 @@ +Failover Backends +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.failover_backends` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: FailoverBackendsClient + :undoc-members: FailoverBackendsClient diff --git a/doc/source/http_response_backends.rst b/doc/source/http_response_backends.rst new file mode 100644 index 0000000..006e269 --- /dev/null +++ b/doc/source/http_response_backends.rst @@ -0,0 +1,9 @@ +HTTP Response Backends +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.http_response_backends` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: HTTPResponseBackendsClient + :undoc-members: HTTPResponseBackendsClient diff --git a/doc/source/https_edge_mutual_tls_module.rst b/doc/source/https_edge_mutual_tls_module.rst new file mode 100644 index 0000000..96a49a1 --- /dev/null +++ b/doc/source/https_edge_mutual_tls_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge Mutual TLS Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.https_edge_mutual_tls_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: HTTPSEdgeMutualTLSModuleClient + :undoc-members: HTTPSEdgeMutualTLSModuleClient diff --git a/doc/source/https_edge_tls_termination_module.rst b/doc/source/https_edge_tls_termination_module.rst new file mode 100644 index 0000000..48c8b98 --- /dev/null +++ b/doc/source/https_edge_tls_termination_module.rst @@ -0,0 +1,9 @@ +HTTPS Edge TLS Termination Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.https_edge_tls_termination_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: HTTPSEdgeTLSTerminationModuleClient + :undoc-members: HTTPSEdgeTLSTerminationModuleClient diff --git a/doc/source/index.rst b/doc/source/index.rst index 7c72972..fb9c48e 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -119,28 +119,42 @@ API Reference abuse_reports agent_ingresses api_keys + failover_backends + http_response_backends + tunnel_group_backends + weighted_backends certificate_authorities credentials - endpoint_configurations - event_streams + edges_https_routes + edges_https + https_edge_mutual_tls_module + https_edge_tls_termination_module + edge_route_backend_module + edge_route_ip_restriction_module + edge_route_request_headers_module + edge_route_response_headers_module + edge_route_compression_module + edge_route_circuit_breaker_module + edge_route_webhook_verification_module + edge_route_o_auth_module + edge_route_saml_module + edge_route_oidc_module + edge_route_websocket_tcp_converter_module + edges_tcp + tcp_edge_backend_module + tcp_edge_ip_restriction_module + edges_tls + tls_edge_backend_module + tls_edge_ip_restriction_module + tls_edge_mutual_tls_module + tls_edge_tls_termination_module + endpoints event_destinations event_subscriptions event_sources ip_policies ip_policy_rules ip_restrictions - endpoint_logging_module - endpoint_circuit_breaker_module - endpoint_compression_module - endpoint_tls_termination_module - endpoint_ip_policy_module - endpoint_mutual_tls_module - endpoint_request_headers_module - endpoint_response_headers_module - endpoint_o_auth_module - endpoint_webhook_validation_module - endpoint_saml_module - endpoint_oidc_module reserved_addrs reserved_domains ssh_certificate_authorities diff --git a/doc/source/tcp_edge_backend_module.rst b/doc/source/tcp_edge_backend_module.rst new file mode 100644 index 0000000..636003c --- /dev/null +++ b/doc/source/tcp_edge_backend_module.rst @@ -0,0 +1,9 @@ +TCP Edge Backend Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.tcp_edge_backend_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: TCPEdgeBackendModuleClient + :undoc-members: TCPEdgeBackendModuleClient diff --git a/doc/source/tcp_edge_ip_restriction_module.rst b/doc/source/tcp_edge_ip_restriction_module.rst new file mode 100644 index 0000000..f847cc5 --- /dev/null +++ b/doc/source/tcp_edge_ip_restriction_module.rst @@ -0,0 +1,9 @@ +TCP Edge IP Restriction Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.tcp_edge_ip_restriction_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: TCPEdgeIPRestrictionModuleClient + :undoc-members: TCPEdgeIPRestrictionModuleClient diff --git a/doc/source/tls_edge_backend_module.rst b/doc/source/tls_edge_backend_module.rst new file mode 100644 index 0000000..1aa9ef6 --- /dev/null +++ b/doc/source/tls_edge_backend_module.rst @@ -0,0 +1,9 @@ +TLS Edge Backend Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.tls_edge_backend_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: TLSEdgeBackendModuleClient + :undoc-members: TLSEdgeBackendModuleClient diff --git a/doc/source/tls_edge_ip_restriction_module.rst b/doc/source/tls_edge_ip_restriction_module.rst new file mode 100644 index 0000000..ed49b58 --- /dev/null +++ b/doc/source/tls_edge_ip_restriction_module.rst @@ -0,0 +1,9 @@ +TLS Edge IP Restriction Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.tls_edge_ip_restriction_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: TLSEdgeIPRestrictionModuleClient + :undoc-members: TLSEdgeIPRestrictionModuleClient diff --git a/doc/source/tls_edge_mutual_tls_module.rst b/doc/source/tls_edge_mutual_tls_module.rst new file mode 100644 index 0000000..bee4644 --- /dev/null +++ b/doc/source/tls_edge_mutual_tls_module.rst @@ -0,0 +1,9 @@ +TLS Edge Mutual TLS Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.tls_edge_mutual_tls_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: TLSEdgeMutualTLSModuleClient + :undoc-members: TLSEdgeMutualTLSModuleClient diff --git a/doc/source/tls_edge_tls_termination_module.rst b/doc/source/tls_edge_tls_termination_module.rst new file mode 100644 index 0000000..55c4d52 --- /dev/null +++ b/doc/source/tls_edge_tls_termination_module.rst @@ -0,0 +1,9 @@ +TLS Edge TLS Termination Module +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.tls_edge_tls_termination_module` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: TLSEdgeTLSTerminationModuleClient + :undoc-members: TLSEdgeTLSTerminationModuleClient diff --git a/doc/source/tunnel_group_backends.rst b/doc/source/tunnel_group_backends.rst new file mode 100644 index 0000000..0f0acac --- /dev/null +++ b/doc/source/tunnel_group_backends.rst @@ -0,0 +1,9 @@ +Tunnel Group Backends +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.tunnel_group_backends` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: TunnelGroupBackendsClient + :undoc-members: TunnelGroupBackendsClient diff --git a/doc/source/weighted_backends.rst b/doc/source/weighted_backends.rst new file mode 100644 index 0000000..f9781bd --- /dev/null +++ b/doc/source/weighted_backends.rst @@ -0,0 +1,9 @@ +Weighted Backends +===================================== + +Do not construct this object directly, instead access the +:attr:`~ngrok.Client.weighted_backends` property of an :class:`ngrok.Client` object. + +.. automodule:: ngrok.services + :members: WeightedBackendsClient + :undoc-members: WeightedBackendsClient diff --git a/docs/.buildinfo b/docs/.buildinfo index 9ec548e..343f974 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 3f8a1ac14affc527e270aebbfc8445e3 +config: de84d0462ff6d33ecc3044bd6eb7001c tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_modules/index.html b/docs/_modules/index.html index 2e53f27..48408d8 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -118,28 +118,42 @@
  • Abuse Reports
  • Agent Ingresses
  • API Keys
  • +
  • Failover Backends
  • +
  • HTTP Response Backends
  • +
  • Tunnel Group Backends
  • +
  • Weighted Backends
  • Certificate Authorities
  • Tunnel Credentials
  • -
  • Endpoint Configurations
  • -
  • Event Streams
  • +
  • HTTPS Edge Routes
  • +
  • HTTPS Edges
  • +
  • HTTPS Edge Mutual TLS Module
  • +
  • HTTPS Edge TLS Termination Module
  • +
  • HTTPS Edge Route Backend Module
  • +
  • HTTPS Edge Route IP Restriction Module
  • +
  • HTTPS Edge Route Request Headers Module
  • +
  • HTTPS Edge Route Response Headers Module
  • +
  • HTTPS Edge Route Compression Module
  • +
  • HTTPS Edge Route Circuit Breaker Module
  • +
  • HTTPS Edge Route Webhook Verification Module
  • +
  • HTTPS Edge Route OAuth Module
  • +
  • HTTPS Edge Route SAML Module
  • +
  • HTTPS Edge Route OIDC Module
  • +
  • HTTPS Edge Route Websocket TCP Converter Module
  • +
  • TCP Edges
  • +
  • TCP Edge Backend Module
  • +
  • TCP Edge IP Restriction Module
  • +
  • TLS Edges
  • +
  • TLS Edge Backend Module
  • +
  • TLS Edge IP Restriction Module
  • +
  • TLS Edge Mutual TLS Module
  • +
  • TLS Edge TLS Termination Module
  • +
  • Endpoints
  • Event Destinations
  • Event Subscriptions
  • Event Sources
  • IP Policies
  • IP Policy Rules
  • IP Restrictions
  • -
  • Logging Module
  • -
  • Circuit Breaker Module
  • -
  • Compression Module
  • -
  • TLS Termination Module
  • -
  • IP Policy Module
  • -
  • Mutual TLS Module
  • -
  • Request Headers Module
  • -
  • Response Headers Module
  • -
  • OAuth Module
  • -
  • Webhook Validation Module
  • -
  • SAML Module
  • -
  • OIDC Module
  • Reserved Addresses
  • Reserved Domains
  • SSH Certificate Authorities
  • @@ -178,7 +192,7 @@ @@ -361,7 +423,7 @@ +
    [docs]class FailoverBackend(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 "<FailoverBackend {} {}>".format(self.id, repr(self._props)) + else: + return "<FailoverBackend {}>".format(repr(self._props)) + +
    [docs] def delete( + self, + ): + self._client.failover_backends.delete( + id=self.id, + )
    + +
    [docs] def update( + self, + description: str = None, + metadata: str = None, + backends: Sequence[str] = [], + ): + self._client.failover_backends.update( + id=self.id, + description=description, + metadata=metadata, + backends=backends, + )
    + + @property + def id(self) -> str: + """unique identifier for this Failover backend""" + return self._props["id"] + + @property + def uri(self) -> str: + """URI of the FailoverBackend API resource""" + return self._props["uri"] + + @property + def created_at(self) -> str: + """timestamp when the backend was created, RFC 3339 format""" + return self._props["created_at"] + + @property + def description(self) -> str: + """human-readable description of this backend. Optional""" + return self._props["description"] + + @property + def metadata(self) -> str: + """arbitrary user-defined machine-readable data of this backend. Optional""" + return self._props["metadata"] + + @property + def backends(self) -> Sequence[str]: + """the ids of the child backends in order""" + return self._props["backends"]
    + + +
    [docs]class FailoverBackendList(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["backends"] = ( + [FailoverBackend(client, x) for x in props["backends"]] + if props["backends"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<FailoverBackendList {} {}>".format(self.id, repr(self._props)) + else: + return "<FailoverBackendList {}>".format(repr(self._props)) + + def __iter__(self): + return PagedIterator(self._client, self, "backends") + + @property + def backends(self) -> Sequence[FailoverBackend]: + """the list of all Failover backends on this account""" + return self._props["backends"] + + @property + def uri(self) -> str: + """URI of the Failover backends list API resource""" + 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 HTTPResponseBackend(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 "<HTTPResponseBackend {} {}>".format(self.id, repr(self._props)) + else: + return "<HTTPResponseBackend {}>".format(repr(self._props)) + +
    [docs] def delete( + self, + ): + self._client.http_response_backends.delete( + id=self.id, + )
    + +
    [docs] def update( + self, + description: str = None, + metadata: str = None, + body: str = None, + headers: Mapping[str, str] = None, + status_code: int = None, + ): + self._client.http_response_backends.update( + id=self.id, + description=description, + metadata=metadata, + body=body, + headers=headers, + status_code=status_code, + )
    + + @property + def id(self) -> str: + return self._props["id"] + + @property + def uri(self) -> str: + """URI of the HTTPResponseBackend API resource""" + return self._props["uri"] + + @property + def created_at(self) -> str: + """timestamp when the backend was created, RFC 3339 format""" + return self._props["created_at"] + + @property + def description(self) -> str: + """human-readable description of this backend. Optional""" + return self._props["description"] + + @property + def metadata(self) -> str: + """arbitrary user-defined machine-readable data of this backend. Optional""" + return self._props["metadata"] + + @property + def body(self) -> str: + """body to return as fixed content""" + return self._props["body"] + + @property + def headers(self) -> Mapping[str, str]: + """headers to return""" + return self._props["headers"] + + @property + def status_code(self) -> int: + """status code to return""" + return self._props["status_code"]
    + + +
    [docs]class HTTPResponseBackendList(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["backends"] = ( + [HTTPResponseBackend(client, x) for x in props["backends"]] + if props["backends"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<HTTPResponseBackendList {} {}>".format(self.id, repr(self._props)) + else: + return "<HTTPResponseBackendList {}>".format(repr(self._props)) + + def __iter__(self): + return PagedIterator(self._client, self, "backends") + + @property + def backends(self) -> Sequence[HTTPResponseBackend]: + return self._props["backends"] + + @property + def uri(self) -> str: + return self._props["uri"] + + @property + def next_page_uri(self) -> str: + return self._props["next_page_uri"]
    + + +
    [docs]class TunnelGroupBackend(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["tunnels"] = ( + [Ref(client, x) for x in props["tunnels"]] + if props["tunnels"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<TunnelGroupBackend {} {}>".format(self.id, repr(self._props)) + else: + return "<TunnelGroupBackend {}>".format(repr(self._props)) + +
    [docs] def delete( + self, + ): + self._client.tunnel_group_backends.delete( + id=self.id, + )
    + +
    [docs] def update( + self, + description: str = None, + metadata: str = None, + labels: Mapping[str, str] = {}, + ): + self._client.tunnel_group_backends.update( + id=self.id, + description=description, + metadata=metadata, + labels=labels, + )
    + + @property + def id(self) -> str: + """unique identifier for this TunnelGroup backend""" + return self._props["id"] + + @property + def uri(self) -> str: + """URI of the TunnelGroupBackend API resource""" + return self._props["uri"] + + @property + def created_at(self) -> str: + """timestamp when the backend was created, RFC 3339 format""" + return self._props["created_at"] + + @property + def description(self) -> str: + """human-readable description of this backend. Optional""" + return self._props["description"] + + @property + def metadata(self) -> str: + """arbitrary user-defined machine-readable data of this backend. Optional""" + return self._props["metadata"] + + @property + def labels(self) -> Mapping[str, str]: + """labels to watch for tunnels on, e.g. app->foo, dc->bar""" + return self._props["labels"] + + @property + def tunnels(self) -> Sequence[Ref]: + """tunnels matching this backend""" + return self._props["tunnels"]
    + + +
    [docs]class TunnelGroupBackendList(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["backends"] = ( + [TunnelGroupBackend(client, x) for x in props["backends"]] + if props["backends"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<TunnelGroupBackendList {} {}>".format(self.id, repr(self._props)) + else: + return "<TunnelGroupBackendList {}>".format(repr(self._props)) + + def __iter__(self): + return PagedIterator(self._client, self, "backends") + + @property + def backends(self) -> Sequence[TunnelGroupBackend]: + """the list of all TunnelGroup backends on this account""" + return self._props["backends"] + + @property + def uri(self) -> str: + """URI of the TunnelGroup backends list API resource""" + 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 WeightedBackend(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 "<WeightedBackend {} {}>".format(self.id, repr(self._props)) + else: + return "<WeightedBackend {}>".format(repr(self._props)) + +
    [docs] def delete( + self, + ): + self._client.weighted_backends.delete( + id=self.id, + )
    + +
    [docs] def update( + self, + description: str = None, + metadata: str = None, + backends: Mapping[str, int] = {}, + ): + self._client.weighted_backends.update( + id=self.id, + description=description, + metadata=metadata, + backends=backends, + )
    + + @property + def id(self) -> str: + """unique identifier for this Weighted backend""" + return self._props["id"] + + @property + def uri(self) -> str: + """URI of the WeightedBackend API resource""" + return self._props["uri"] + + @property + def created_at(self) -> str: + """timestamp when the backend was created, RFC 3339 format""" + return self._props["created_at"] + + @property + def description(self) -> str: + """human-readable description of this backend. Optional""" + return self._props["description"] + + @property + def metadata(self) -> str: + """arbitrary user-defined machine-readable data of this backend. Optional""" + return self._props["metadata"] + + @property + def backends(self) -> Mapping[str, int]: + """the ids of the child backends to their weights (0-10000)""" + return self._props["backends"]
    + + +
    [docs]class WeightedBackendList(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["backends"] = ( + [WeightedBackend(client, x) for x in props["backends"]] + if props["backends"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<WeightedBackendList {} {}>".format(self.id, repr(self._props)) + else: + return "<WeightedBackendList {}>".format(repr(self._props)) + + def __iter__(self): + return PagedIterator(self._client, self, "backends") + + @property + def backends(self) -> Sequence[WeightedBackend]: + """the list of all Weighted backends on this account""" + return self._props["backends"] + + @property + def uri(self) -> str: + """URI of the Weighted backends list API resource""" + 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 CertificateAuthority(object): def __init__(self, client, props): self._client = client @@ -720,249 +1166,6 @@ return self._props["next_page_uri"]
    -
    [docs]class EndpointConfiguration(object): - def __init__(self, client, props): - self._client = client - self._props = props - self._props["circuit_breaker"] = ( - EndpointCircuitBreaker(client, props["circuit_breaker"]) - if props["circuit_breaker"] is not None - else None - ) - self._props["compression"] = ( - EndpointCompression(client, props["compression"]) - if props["compression"] is not None - else None - ) - self._props["request_headers"] = ( - EndpointRequestHeaders(client, props["request_headers"]) - if props["request_headers"] is not None - else None - ) - self._props["response_headers"] = ( - EndpointResponseHeaders(client, props["response_headers"]) - if props["response_headers"] is not None - else None - ) - self._props["ip_policy"] = ( - EndpointIPPolicy(client, props["ip_policy"]) - if props["ip_policy"] is not None - else None - ) - self._props["mutual_tls"] = ( - EndpointMutualTLS(client, props["mutual_tls"]) - if props["mutual_tls"] is not None - else None - ) - self._props["tls_termination"] = ( - EndpointTLSTermination(client, props["tls_termination"]) - if props["tls_termination"] is not None - else None - ) - self._props["webhook_validation"] = ( - EndpointWebhookValidation(client, props["webhook_validation"]) - if props["webhook_validation"] is not None - else None - ) - self._props["oauth"] = ( - EndpointOAuth(client, props["oauth"]) - if props["oauth"] is not None - else None - ) - self._props["logging"] = ( - EndpointLogging(client, props["logging"]) - if props["logging"] is not None - else None - ) - self._props["saml"] = ( - EndpointSAML(client, props["saml"]) if props["saml"] is not None else None - ) - self._props["oidc"] = ( - EndpointOIDC(client, props["oidc"]) if props["oidc"] is not None else None - ) - - def __eq__(self, other): - return self._props == other._props - - def __str__(self): - if "id" in self._props: - return "<EndpointConfiguration {} {}>".format(self.id, repr(self._props)) - else: - return "<EndpointConfiguration {}>".format(repr(self._props)) - -
    [docs] def delete( - self, - ): - self._client.endpoint_configurations.delete( - id=self.id, - )
    - -
    [docs] def update( - self, - description: str = None, - metadata: str = None, - circuit_breaker: EndpointCircuitBreaker = None, - compression: EndpointCompression = None, - request_headers: EndpointRequestHeaders = None, - response_headers: EndpointResponseHeaders = None, - ip_policy: EndpointIPPolicyMutate = None, - mutual_tls: EndpointMutualTLSMutate = None, - tls_termination: EndpointTLSTermination = None, - webhook_validation: EndpointWebhookValidation = None, - oauth: EndpointOAuth = None, - logging: EndpointLoggingMutate = None, - saml: EndpointSAMLMutate = None, - oidc: EndpointOIDC = None, - ): - self._client.endpoint_configurations.update( - id=self.id, - description=description, - metadata=metadata, - circuit_breaker=circuit_breaker, - compression=compression, - request_headers=request_headers, - response_headers=response_headers, - ip_policy=ip_policy, - mutual_tls=mutual_tls, - tls_termination=tls_termination, - webhook_validation=webhook_validation, - oauth=oauth, - logging=logging, - saml=saml, - oidc=oidc, - )
    - - @property - def id(self) -> str: - """unique identifier of this endpoint configuration""" - return self._props["id"] - - @property - def type(self) -> str: - """they type of traffic this endpoint configuration can be applied to. one of: ``http``, ``https``, ``tcp``""" - return self._props["type"] - - @property - def description(self) -> str: - """human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes""" - return self._props["description"] - - @property - def metadata(self) -> str: - """arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes.""" - return self._props["metadata"] - - @property - def created_at(self) -> str: - """timestamp when the endpoint configuration was created, RFC 3339 format""" - return self._props["created_at"] - - @property - def uri(self) -> str: - """URI of the endpoint configuration API resource""" - return self._props["uri"] - - @property - def circuit_breaker(self) -> EndpointCircuitBreaker: - """circuit breaker module configuration or ``null``""" - return self._props["circuit_breaker"] - - @property - def compression(self) -> EndpointCompression: - """compression module configuration or ``null``""" - return self._props["compression"] - - @property - def request_headers(self) -> EndpointRequestHeaders: - """request headers module configuration or ``null``""" - return self._props["request_headers"] - - @property - def response_headers(self) -> EndpointResponseHeaders: - """response headers module configuration or ``null``""" - return self._props["response_headers"] - - @property - def ip_policy(self) -> EndpointIPPolicy: - """ip policy module configuration or ``null``""" - return self._props["ip_policy"] - - @property - def mutual_tls(self) -> EndpointMutualTLS: - """mutual TLS module configuration or ``null``""" - return self._props["mutual_tls"] - - @property - def tls_termination(self) -> EndpointTLSTermination: - """TLS termination module configuration or ``null``""" - return self._props["tls_termination"] - - @property - def webhook_validation(self) -> EndpointWebhookValidation: - """webhook validation module configuration or ``null``""" - return self._props["webhook_validation"] - - @property - def oauth(self) -> EndpointOAuth: - """oauth module configuration or ``null``""" - return self._props["oauth"] - - @property - def logging(self) -> EndpointLogging: - """logging module configuration or ``null``""" - return self._props["logging"] - - @property - def saml(self) -> EndpointSAML: - """saml module configuration or ``null``""" - return self._props["saml"] - - @property - def oidc(self) -> EndpointOIDC: - """oidc module configuration or ``null``""" - return self._props["oidc"]
    - - -
    [docs]class EndpointConfigurationList(object): - def __init__(self, client, props): - self._client = client - self._props = props - self._props["endpoint_configurations"] = ( - [EndpointConfiguration(client, x) for x in props["endpoint_configurations"]] - if props["endpoint_configurations"] is not None - else None - ) - - def __eq__(self, other): - return self._props == other._props - - def __str__(self): - if "id" in self._props: - return "<EndpointConfigurationList {} {}>".format( - self.id, repr(self._props) - ) - else: - return "<EndpointConfigurationList {}>".format(repr(self._props)) - - def __iter__(self): - return PagedIterator(self._client, self, "endpoint_configurations") - - @property - def endpoint_configurations(self) -> Sequence[EndpointConfiguration]: - """the list of all endpoint configurations on this account""" - return self._props["endpoint_configurations"] - - @property - def uri(self) -> str: - """URI of the endpoint configurations list API resource""" - 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 EndpointWebhookValidation(object): def __init__(self, client, props): self._client = client @@ -986,7 +1189,7 @@ @property def provider(self) -> str: - """a string indicating which webhook provider will be sending webhooks to this endpoint. Value must be one of the supported providers: ``SLACK``, ``SNS``, ``STRIPE``, ``GITHUB``, ``TWILIO``, ``SHOPIFY``, ``GITLAB``, ``INTERCOM``, ``SENDGRID``, ``XERO``.""" + """a string indicating which webhook provider will be sending webhooks to this endpoint. Value must be one of the supported providers: ``SLACK``, ``SNS``, ``STRIPE``, ``GITHUB``, ``TWILIO``, ``SHOPIFY``, ``GITLAB``, ``INTERCOM``, ``SENDGRID``, ``XERO``, ``PAGERDUTY``.""" return self._props["provider"] @property @@ -1100,37 +1303,7 @@ return self._props["min_version"]
    -
    [docs]class EndpointLogging(object): - def __init__(self, client, props): - self._client = client - self._props = props - self._props["event_streams"] = ( - [Ref(client, x) for x in props["event_streams"]] - if props["event_streams"] is not None - else None - ) - - def __eq__(self, other): - return self._props == other._props - - def __str__(self): - if "id" in self._props: - return "<EndpointLogging {} {}>".format(self.id, repr(self._props)) - else: - return "<EndpointLogging {}>".format(repr(self._props)) - - @property - def enabled(self) -> bool: - """``true`` if the module will be applied to traffic, ``false`` to disable. default ``true`` if unspecified""" - return self._props["enabled"] - - @property - def event_streams(self) -> Sequence[Ref]: - """list of all EventStreams that will be used to configure and export this endpoint's logs""" - return self._props["event_streams"]
    - - -
    [docs]class EndpointLoggingMutate(object): +
    [docs]class EndpointTLSTerminationAtEdge(object): def __init__(self, client, props): self._client = client self._props = props @@ -1140,9 +1313,11 @@ def __str__(self): if "id" in self._props: - return "<EndpointLoggingMutate {} {}>".format(self.id, repr(self._props)) + return "<EndpointTLSTerminationAtEdge {} {}>".format( + self.id, repr(self._props) + ) else: - return "<EndpointLoggingMutate {}>".format(repr(self._props)) + return "<EndpointTLSTerminationAtEdge {}>".format(repr(self._props)) @property def enabled(self) -> bool: @@ -1150,9 +1325,9 @@ return self._props["enabled"] @property - def event_stream_ids(self) -> Sequence[str]: - """list of all EventStreams that will be used to configure and export this endpoint's logs""" - return self._props["event_stream_ids"]
    + def min_version(self) -> str: + """The minimum TLS version used for termination and advertised to the client during the TLS handshake. if unspecified, ngrok will choose an industry-safe default. This value must be null if ``terminate_at`` is set to ``upstream``.""" + return self._props["min_version"]
    [docs]class EndpointRequestHeaders(object): @@ -1809,13 +1984,134 @@ return self._props["scopes"]
    -
    [docs]class EventStreamList(object): +
    [docs]class EndpointBackend(object): def __init__(self, client, props): self._client = client self._props = props - self._props["event_streams"] = ( - [EventStream(client, x) for x in props["event_streams"]] - if props["event_streams"] is not None + self._props["backend"] = ( + Ref(client, props["backend"]) if props["backend"] is not None else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<EndpointBackend {} {}>".format(self.id, repr(self._props)) + else: + return "<EndpointBackend {}>".format(repr(self._props)) + + @property + def enabled(self) -> bool: + """``true`` if the module will be applied to traffic, ``false`` to disable. default ``true`` if unspecified""" + return self._props["enabled"] + + @property + def backend(self) -> Ref: + """backend to be used to back this endpoint""" + return self._props["backend"]
    + + +
    [docs]class EndpointBackendMutate(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 "<EndpointBackendMutate {} {}>".format(self.id, repr(self._props)) + else: + return "<EndpointBackendMutate {}>".format(repr(self._props)) + + @property + def enabled(self) -> bool: + """``true`` if the module will be applied to traffic, ``false`` to disable. default ``true`` if unspecified""" + return self._props["enabled"] + + @property + def backend_id(self) -> str: + """backend to be used to back this endpoint""" + return self._props["backend_id"]
    + + +
    [docs]class EndpointWebsocketTCPConverter(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 "<EndpointWebsocketTCPConverter {} {}>".format( + self.id, repr(self._props) + ) + else: + return "<EndpointWebsocketTCPConverter {}>".format(repr(self._props)) + + @property + def enabled(self) -> bool: + """``true`` if the module will be applied to traffic, ``false`` to disable. default ``true`` if unspecified""" + return self._props["enabled"]
    + + +
    [docs]class HTTPSEdgeRoute(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["backend"] = ( + EndpointBackend(client, props["backend"]) + if props["backend"] is not None + else None + ) + self._props["ip_restriction"] = ( + EndpointIPPolicy(client, props["ip_restriction"]) + if props["ip_restriction"] is not None + else None + ) + self._props["circuit_breaker"] = ( + EndpointCircuitBreaker(client, props["circuit_breaker"]) + if props["circuit_breaker"] is not None + else None + ) + self._props["compression"] = ( + EndpointCompression(client, props["compression"]) + if props["compression"] is not None + else None + ) + self._props["request_headers"] = ( + EndpointRequestHeaders(client, props["request_headers"]) + if props["request_headers"] is not None + else None + ) + self._props["response_headers"] = ( + EndpointResponseHeaders(client, props["response_headers"]) + if props["response_headers"] is not None + else None + ) + self._props["webhook_verification"] = ( + EndpointWebhookValidation(client, props["webhook_verification"]) + if props["webhook_verification"] is not None + else None + ) + self._props["oauth"] = ( + EndpointOAuth(client, props["oauth"]) + if props["oauth"] is not None + else None + ) + self._props["saml"] = ( + EndpointSAML(client, props["saml"]) if props["saml"] is not None else None + ) + self._props["oidc"] = ( + EndpointOIDC(client, props["oidc"]) if props["oidc"] is not None else None + ) + self._props["websocket_tcp_converter"] = ( + EndpointWebsocketTCPConverter(client, props["websocket_tcp_converter"]) + if props["websocket_tcp_converter"] is not None else None ) @@ -1824,111 +2120,690 @@ def __str__(self): if "id" in self._props: - return "<EventStreamList {} {}>".format(self.id, repr(self._props)) + return "<HTTPSEdgeRoute {} {}>".format(self.id, repr(self._props)) else: - return "<EventStreamList {}>".format(repr(self._props)) + return "<HTTPSEdgeRoute {}>".format(repr(self._props)) - def __iter__(self): - return PagedIterator(self._client, self, "event_streams") +
    [docs] def update( + self, + match_type: str = "", + match: str = "", + description: str = "", + metadata: str = "", + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, + circuit_breaker: EndpointCircuitBreaker = None, + compression: EndpointCompression = None, + request_headers: EndpointRequestHeaders = None, + response_headers: EndpointResponseHeaders = None, + webhook_verification: EndpointWebhookValidation = None, + oauth: EndpointOAuth = None, + saml: EndpointSAMLMutate = None, + oidc: EndpointOIDC = None, + websocket_tcp_converter: EndpointWebsocketTCPConverter = None, + ): + self._client.edges_https_routes.update( + edge_id=self.edge_id, + id=self.id, + match_type=match_type, + match=match, + description=description, + metadata=metadata, + backend=backend, + ip_restriction=ip_restriction, + circuit_breaker=circuit_breaker, + compression=compression, + request_headers=request_headers, + response_headers=response_headers, + webhook_verification=webhook_verification, + oauth=oauth, + saml=saml, + oidc=oidc, + websocket_tcp_converter=websocket_tcp_converter, + )
    + +
    [docs] def delete( + self, + ): + self._client.edges_https_routes.delete( + edge_id=self.edge_id, + id=self.id, + )
    @property - def event_streams(self) -> Sequence[EventStream]: - """The list of all Event Streams on this account.""" - return self._props["event_streams"] + def edge_id(self) -> str: + """unique identifier of this edge""" + return self._props["edge_id"] + + @property + def id(self) -> str: + """unique identifier of this edge route""" + return self._props["id"] + + @property + def created_at(self) -> str: + """timestamp when the edge configuration was created, RFC 3339 format""" + return self._props["created_at"] + + @property + def match_type(self) -> str: + """Type of match to use for this route. Valid values are "exact_path" and "path_prefix".""" + return self._props["match_type"] + + @property + def match(self) -> str: + """Route selector: "/blog" or "example.com" or "example.com/blog" """ + return self._props["match"] @property def uri(self) -> str: - """URI of the Event Stream list API resource.""" + """URI of the edge API resource""" 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"]
    + def description(self) -> str: + """human-readable description of what this edge will be used for; optional, max 255 bytes.""" + return self._props["description"] + + @property + def metadata(self) -> str: + """arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes.""" + return self._props["metadata"] + + @property + def backend(self) -> EndpointBackend: + """backend module configuration or ``null``""" + return self._props["backend"] + + @property + def ip_restriction(self) -> EndpointIPPolicy: + """ip restriction module configuration or ``null``""" + return self._props["ip_restriction"] + + @property + def circuit_breaker(self) -> EndpointCircuitBreaker: + """circuit breaker module configuration or ``null``""" + return self._props["circuit_breaker"] + + @property + def compression(self) -> EndpointCompression: + """compression module configuration or ``null``""" + return self._props["compression"] + + @property + def request_headers(self) -> EndpointRequestHeaders: + """request headers module configuration or ``null``""" + return self._props["request_headers"] + + @property + def response_headers(self) -> EndpointResponseHeaders: + """response headers module configuration or ``null``""" + return self._props["response_headers"] + + @property + def webhook_verification(self) -> EndpointWebhookValidation: + """webhook verification module configuration or ``null``""" + return self._props["webhook_verification"] + + @property + def oauth(self) -> EndpointOAuth: + """oauth module configuration or ``null``""" + return self._props["oauth"] + + @property + def saml(self) -> EndpointSAML: + """saml module configuration or ``null``""" + return self._props["saml"] + + @property + def oidc(self) -> EndpointOIDC: + """oidc module configuration or ``null``""" + return self._props["oidc"] + + @property + def websocket_tcp_converter(self) -> EndpointWebsocketTCPConverter: + """websocket to tcp adapter configuration or ``null``""" + return self._props["websocket_tcp_converter"]
    -
    [docs]class EventStream(object): +
    [docs]class HTTPSEdgeList(object): def __init__(self, client, props): self._client = client self._props = props + self._props["https_edges"] = ( + [HTTPSEdge(client, x) for x in props["https_edges"]] + if props["https_edges"] is not None + else None + ) def __eq__(self, other): return self._props == other._props def __str__(self): if "id" in self._props: - return "<EventStream {} {}>".format(self.id, repr(self._props)) + return "<HTTPSEdgeList {} {}>".format(self.id, repr(self._props)) else: - return "<EventStream {}>".format(repr(self._props)) + return "<HTTPSEdgeList {}>".format(repr(self._props)) -
    [docs] def delete( + def __iter__(self): + return PagedIterator(self._client, self, "https_edges") + + @property + def https_edges(self) -> Sequence[HTTPSEdge]: + """the list of all HTTPS Edges on this account""" + return self._props["https_edges"] + + @property + def uri(self) -> str: + """URI of the HTTPS Edge list API resource""" + 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 HTTPSEdge(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["mutual_tls"] = ( + EndpointMutualTLS(client, props["mutual_tls"]) + if props["mutual_tls"] is not None + else None + ) + self._props["tls_termination"] = ( + EndpointTLSTermination(client, props["tls_termination"]) + if props["tls_termination"] is not None + else None + ) + self._props["routes"] = ( + [HTTPSEdgeRoute(client, x) for x in props["routes"]] + if props["routes"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<HTTPSEdge {} {}>".format(self.id, repr(self._props)) + else: + return "<HTTPSEdge {}>".format(repr(self._props)) + +
    [docs] def update( self, + description: str = None, + metadata: str = None, + hostports: Sequence[str] = None, + mutual_tls: EndpointMutualTLSMutate = None, + tls_termination: EndpointTLSTerminationAtEdge = None, ): - self._client.event_streams.delete( + self._client.edges_https.update( id=self.id, + description=description, + metadata=metadata, + hostports=hostports, + mutual_tls=mutual_tls, + tls_termination=tls_termination, )
    -
    [docs] def update( +
    [docs] def delete( self, - metadata: str = None, - description: str = None, - fields: Sequence[str] = None, - destination_ids: Sequence[str] = None, - sampling_rate: float = None, ): - self._client.event_streams.update( + self._client.edges_https.delete( id=self.id, - metadata=metadata, - description=description, - fields=fields, - destination_ids=destination_ids, - sampling_rate=sampling_rate, )
    @property def id(self) -> str: - """Unique identifier for this Event Stream.""" + """unique identifier of this edge""" return self._props["id"] - @property - def uri(self) -> str: - """URI of the Event Stream API resource.""" - return self._props["uri"] - - @property - def created_at(self) -> str: - """Timestamp when the Event Stream was created, RFC 3339 format.""" - return self._props["created_at"] - - @property - def metadata(self) -> str: - """Arbitrary user-defined machine-readable data of this Event Stream. Optional, max 4096 bytes.""" - return self._props["metadata"] - @property def description(self) -> str: - """Human-readable description of the Event Stream. Optional, max 255 bytes.""" + """human-readable description of what this edge will be used for; optional, max 255 bytes.""" return self._props["description"] @property - def fields(self) -> Sequence[str]: - """A list of protocol-specific fields you want to collect on each event.""" - return self._props["fields"] + def metadata(self) -> str: + """arbitrary user-defined machine-readable data of this edge; optional, max 4096 bytes.""" + return self._props["metadata"] @property - def event_type(self) -> str: - """The protocol that determines which events will be collected. Supported values are ``tcp_connection_closed`` and ``http_request_complete``.""" - return self._props["event_type"] + def created_at(self) -> str: + """timestamp when the edge configuration was created, RFC 3339 format""" + return self._props["created_at"] @property - def destination_ids(self) -> Sequence[str]: - """A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination.""" - return self._props["destination_ids"] + def uri(self) -> str: + """URI of the edge API resource""" + return self._props["uri"] @property - def sampling_rate(self) -> float: - """The percentage of all events you would like to capture. Valid values range from 0.01, representing 1% of all events to 1.00, representing 100% of all events.""" - return self._props["sampling_rate"]
    + def hostports(self) -> Sequence[str]: + """hostports served by this edge""" + return self._props["hostports"] + + @property + def mutual_tls(self) -> EndpointMutualTLS: + """edge modules""" + return self._props["mutual_tls"] + + @property + def tls_termination(self) -> EndpointTLSTermination: + return self._props["tls_termination"] + + @property + def routes(self) -> Sequence[HTTPSEdgeRoute]: + """routes""" + return self._props["routes"]
    + + +
    [docs]class TCPEdgeList(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["tcp_edges"] = ( + [TCPEdge(client, x) for x in props["tcp_edges"]] + if props["tcp_edges"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<TCPEdgeList {} {}>".format(self.id, repr(self._props)) + else: + return "<TCPEdgeList {}>".format(repr(self._props)) + + def __iter__(self): + return PagedIterator(self._client, self, "tcp_edges") + + @property + def tcp_edges(self) -> Sequence[TCPEdge]: + """the list of all TCP Edges on this account""" + return self._props["tcp_edges"] + + @property + def uri(self) -> str: + """URI of the TCP Edge list API resource""" + 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 TCPEdge(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["backend"] = ( + EndpointBackend(client, props["backend"]) + if props["backend"] is not None + else None + ) + self._props["ip_restriction"] = ( + EndpointIPPolicy(client, props["ip_restriction"]) + if props["ip_restriction"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<TCPEdge {} {}>".format(self.id, repr(self._props)) + else: + return "<TCPEdge {}>".format(repr(self._props)) + +
    [docs] def update( + self, + description: str = None, + metadata: str = None, + hostports: Sequence[str] = None, + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, + ): + self._client.edges_tcp.update( + id=self.id, + description=description, + metadata=metadata, + hostports=hostports, + backend=backend, + ip_restriction=ip_restriction, + )
    + +
    [docs] def delete( + self, + ): + self._client.edges_tcp.delete( + id=self.id, + )
    + + @property + def id(self) -> str: + """unique identifier of this edge""" + return self._props["id"] + + @property + def description(self) -> str: + """human-readable description of what this edge will be used for; optional, max 255 bytes.""" + return self._props["description"] + + @property + def metadata(self) -> str: + """arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes.""" + return self._props["metadata"] + + @property + def created_at(self) -> str: + """timestamp when the edge was created, RFC 3339 format""" + return self._props["created_at"] + + @property + def uri(self) -> str: + """URI of the edge API resource""" + return self._props["uri"] + + @property + def hostports(self) -> Sequence[str]: + """hostports served by this edge""" + return self._props["hostports"] + + @property + def backend(self) -> EndpointBackend: + """edge modules""" + return self._props["backend"] + + @property + def ip_restriction(self) -> EndpointIPPolicy: + return self._props["ip_restriction"]
    + + +
    [docs]class TLSEdgeList(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["tls_edges"] = ( + [TLSEdge(client, x) for x in props["tls_edges"]] + if props["tls_edges"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<TLSEdgeList {} {}>".format(self.id, repr(self._props)) + else: + return "<TLSEdgeList {}>".format(repr(self._props)) + + def __iter__(self): + return PagedIterator(self._client, self, "tls_edges") + + @property + def tls_edges(self) -> Sequence[TLSEdge]: + """the list of all TLS Edges on this account""" + return self._props["tls_edges"] + + @property + def uri(self) -> str: + """URI of the TLS Edge list API resource""" + 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 TLSEdge(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["backend"] = ( + EndpointBackend(client, props["backend"]) + if props["backend"] is not None + else None + ) + self._props["ip_restriction"] = ( + EndpointIPPolicy(client, props["ip_restriction"]) + if props["ip_restriction"] is not None + else None + ) + self._props["mutual_tls"] = ( + EndpointMutualTLS(client, props["mutual_tls"]) + if props["mutual_tls"] is not None + else None + ) + self._props["tls_termination"] = ( + EndpointTLSTermination(client, props["tls_termination"]) + if props["tls_termination"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<TLSEdge {} {}>".format(self.id, repr(self._props)) + else: + return "<TLSEdge {}>".format(repr(self._props)) + +
    [docs] def update( + self, + description: str = None, + metadata: str = None, + hostports: Sequence[str] = None, + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, + mutual_tls: EndpointMutualTLSMutate = None, + tls_termination: EndpointTLSTermination = None, + ): + self._client.edges_tls.update( + id=self.id, + description=description, + metadata=metadata, + hostports=hostports, + backend=backend, + ip_restriction=ip_restriction, + mutual_tls=mutual_tls, + tls_termination=tls_termination, + )
    + +
    [docs] def delete( + self, + ): + self._client.edges_tls.delete( + id=self.id, + )
    + + @property + def id(self) -> str: + """unique identifier of this edge""" + return self._props["id"] + + @property + def description(self) -> str: + """human-readable description of what this edge will be used for; optional, max 255 bytes.""" + return self._props["description"] + + @property + def metadata(self) -> str: + """arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes.""" + return self._props["metadata"] + + @property + def created_at(self) -> str: + """timestamp when the edge configuration was created, RFC 3339 format""" + return self._props["created_at"] + + @property + def uri(self) -> str: + """URI of the edge API resource""" + return self._props["uri"] + + @property + def hostports(self) -> Sequence[str]: + """hostports served by this edge""" + return self._props["hostports"] + + @property + def backend(self) -> EndpointBackend: + """edge modules""" + return self._props["backend"] + + @property + def ip_restriction(self) -> EndpointIPPolicy: + return self._props["ip_restriction"] + + @property + def mutual_tls(self) -> EndpointMutualTLS: + return self._props["mutual_tls"] + + @property + def tls_termination(self) -> EndpointTLSTermination: + return self._props["tls_termination"]
    + + +
    [docs]class Endpoint(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["domain"] = ( + Ref(client, props["domain"]) if props["domain"] is not None else None + ) + self._props["tcp_addr"] = ( + Ref(client, props["tcp_addr"]) if props["tcp_addr"] is not None else None + ) + self._props["tunnel"] = ( + Ref(client, props["tunnel"]) if props["tunnel"] is not None else None + ) + self._props["edge"] = ( + Ref(client, props["edge"]) if props["edge"] is not None else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<Endpoint {} {}>".format(self.id, repr(self._props)) + else: + return "<Endpoint {}>".format(repr(self._props)) + + @property + def id(self) -> str: + """unique endpoint resource identifier""" + return self._props["id"] + + @property + def region(self) -> str: + """identifier of the region this endpoint belongs to""" + return self._props["region"] + + @property + def created_at(self) -> str: + """timestamp when the endpoint was created in RFC 3339 format""" + return self._props["created_at"] + + @property + def updated_at(self) -> str: + """timestamp when the endpoint was updated in RFC 3339 format""" + return self._props["updated_at"] + + @property + def public_url(self) -> str: + """URL of the hostport served by this endpoint""" + return self._props["public_url"] + + @property + def proto(self) -> str: + """protocol served by this endpoint. one of ``http``, ``https``, ``tcp``, or ``tls``""" + return self._props["proto"] + + @property + def hostport(self) -> str: + """hostport served by this endpoint (hostname:port)""" + return self._props["hostport"] + + @property + def type(self) -> str: + """whether the endpoint is ``ephemeral`` (served directly by an agent-initiated tunnel) or ``edge`` (served by an edge)""" + return self._props["type"] + + @property + def metadata(self) -> str: + """user-supplied metadata of the associated tunnel or edge object""" + return self._props["metadata"] + + @property + def domain(self) -> Ref: + """the domain reserved for this endpoint""" + return self._props["domain"] + + @property + def tcp_addr(self) -> Ref: + """the address reserved for this endpoint""" + return self._props["tcp_addr"] + + @property + def tunnel(self) -> Ref: + """the tunnel serving requests to this endpoint, if this is an ephemeral endpoint""" + return self._props["tunnel"] + + @property + def edge(self) -> Ref: + """the edge serving requests to this endpoint, if this is an edge endpoint""" + return self._props["edge"]
    + + +
    [docs]class EndpointList(object): + def __init__(self, client, props): + self._client = client + self._props = props + self._props["endpoints"] = ( + [Endpoint(client, x) for x in props["endpoints"]] + if props["endpoints"] is not None + else None + ) + + def __eq__(self, other): + return self._props == other._props + + def __str__(self): + if "id" in self._props: + return "<EndpointList {} {}>".format(self.id, repr(self._props)) + else: + return "<EndpointList {}>".format(repr(self._props)) + + def __iter__(self): + return PagedIterator(self._client, self, "endpoints") + + @property + def endpoints(self) -> Sequence[Endpoint]: + """the list of all active endpoints on this account""" + return self._props["endpoints"] + + @property + def uri(self) -> str: + """URI of the endpoints list API resource""" + 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 EventDestination(object): @@ -2475,12 +3350,7 @@ @property def metadata(self) -> str: """arbitrary user-defined machine-readable data of this IP policy. optional, max 4096 bytes.""" - return self._props["metadata"] - - @property - def action(self) -> str: - """the IP policy action. Supported values are ``allow`` or ``deny``""" - return self._props["action"]
    + return self._props["metadata"]
    [docs]class IPPolicyList(object): @@ -2591,7 +3461,12 @@ @property def ip_policy(self) -> Ref: """object describing the IP policy this IP Policy Rule belongs to""" - return self._props["ip_policy"]
    + return self._props["ip_policy"] + + @property + def action(self) -> str: + """the action to apply to the policy rule, either ``allow`` or ``deny``""" + return self._props["action"]
    [docs]class IPPolicyRuleList(object): @@ -2741,11 +3616,6 @@ def __init__(self, client, props): self._client = client self._props = props - self._props["endpoint_configuration"] = ( - Ref(client, props["endpoint_configuration"]) - if props["endpoint_configuration"] is not None - else None - ) def __eq__(self, other): return self._props == other._props @@ -2796,12 +3666,7 @@ @property def region(self) -> str: """reserve the address in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa)""" - return self._props["region"] - - @property - def endpoint_configuration(self) -> Ref: - """object reference to the endpoint configuration that will be applied to traffic to this address""" - return self._props["endpoint_configuration"]
    + return self._props["region"]
    [docs]class ReservedAddrList(object): @@ -2846,16 +3711,6 @@ def __init__(self, client, props): self._client = client self._props = props - self._props["http_endpoint_configuration"] = ( - Ref(client, props["http_endpoint_configuration"]) - if props["http_endpoint_configuration"] is not None - else None - ) - self._props["https_endpoint_configuration"] = ( - Ref(client, props["https_endpoint_configuration"]) - if props["https_endpoint_configuration"] is not None - else None - ) self._props["certificate"] = ( Ref(client, props["certificate"]) if props["certificate"] is not None @@ -2928,16 +3783,6 @@ """DNS CNAME target for a custom hostname, or null if the reserved domain is a subdomain of *.ngrok.io""" return self._props["cname_target"] - @property - def http_endpoint_configuration(self) -> Ref: - """object referencing the endpoint configuration applied to http traffic on this domain""" - return self._props["http_endpoint_configuration"] - - @property - def https_endpoint_configuration(self) -> Ref: - """object referencing the endpoint configuration applied to https traffic on this domain""" - return self._props["https_endpoint_configuration"] - @property def certificate(self) -> Ref: """object referencing the TLS certificate used for connections to this domain. This can be either a user-uploaded certificate, the most recently issued automatic one, or null otherwise.""" @@ -3901,6 +4746,14 @@ if props["tunnel_session"] is not None else None ) + self._props["endpoint"] = ( + Ref(client, props["endpoint"]) if props["endpoint"] is not None else None + ) + self._props["backends"] = ( + [Ref(client, x) for x in props["backends"]] + if props["backends"] is not None + else None + ) def __eq__(self, other): return self._props == other._props @@ -3918,7 +4771,7 @@ @property def public_url(self) -> str: - """URL of the tunnel's public endpoint""" + """URL of the ephemeral tunnel's public endpoint""" return self._props["public_url"] @property @@ -3933,7 +4786,7 @@ @property def proto(self) -> str: - """tunnel protocol. one of ``http``, ``https``, ``tcp`` or ``tls``""" + """tunnel protocol for ephemeral tunnels. one of ``http``, ``https``, ``tcp`` or ``tls``""" return self._props["proto"] @property @@ -3944,7 +4797,27 @@ @property def tunnel_session(self) -> Ref: """reference object pointing to the tunnel session on which this tunnel was started""" - return self._props["tunnel_session"]
    + return self._props["tunnel_session"] + + @property + def endpoint(self) -> Ref: + """the ephemeral endpoint this tunnel is associated with, if this is an agent-initiated tunnel""" + return self._props["endpoint"] + + @property + def labels(self) -> Mapping[str, str]: + """the labels the tunnel group backends will match against, if this is a backend tunnel""" + return self._props["labels"] + + @property + def backends(self) -> Sequence[Ref]: + """tunnel group backends served by this backend tunnel""" + return self._props["backends"] + + @property + def forwards_to(self) -> str: + """upstream address the ngrok agent forwards traffic over this tunnel to. this may be expressed as a URL or a network address.""" + return self._props["forwards_to"]
    [docs]class TunnelList(object): @@ -3993,7 +4866,7 @@
    +
    [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 + is offline or no connection can be established, ngrok attempts to connect to + the next backend in the list until one is successful.""" + + def __init__(self, client): + self._client = client + +
    [docs] def create( + self, + description: str = "", + metadata: str = "", + backends: Sequence[str] = [], + ) -> FailoverBackend: + """Create a new Failover backend + + :param description: human-readable description of this backend. Optional + :param metadata: arbitrary user-defined machine-readable data of this backend. Optional + :param backends: the ids of the child backends in order + + https://ngrok.com/docs/api#api-failover-backends-create + """ + path = "/backends/failover" + result = self._client.http_client.post( + path, + dict( + description=description, + metadata=metadata, + backends=backends, + ), + ) + return FailoverBackend(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """Delete a Failover backend by ID. TODO what if used? + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-failover-backends-delete + """ + path = "/backends/failover/{id}" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + +
    [docs] def get( + self, + id: str, + ) -> FailoverBackend: + """Get detailed information about a Failover backend by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-failover-backends-get + """ + path = "/backends/failover/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return FailoverBackend(self._client, result)
    + +
    [docs] def list( + self, + before_id: str = None, + limit: str = None, + ) -> FailoverBackendList: + """List all Failover backends on this account + + :param before_id: + :param limit: + + https://ngrok.com/docs/api#api-failover-backends-list + """ + path = "/backends/failover" + result = self._client.http_client.get( + path, + dict( + before_id=before_id, + limit=limit, + ), + ) + return FailoverBackendList(self._client, result)
    + +
    [docs] def update( + self, + id: str, + description: str = None, + metadata: str = None, + backends: Sequence[str] = [], + ) -> FailoverBackend: + """Update Failover backend by ID + + :param id: + :param description: human-readable description of this backend. Optional + :param metadata: arbitrary user-defined machine-readable data of this backend. Optional + :param backends: the ids of the child backends in order + + https://ngrok.com/docs/api#api-failover-backends-update + """ + path = "/backends/failover/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.patch( + path, + dict( + description=description, + metadata=metadata, + backends=backends, + ), + ) + return FailoverBackend(self._client, result)
    + + +
    [docs]class HTTPResponseBackendsClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def create( + self, + description: str = "", + metadata: str = "", + body: str = "", + headers: Mapping[str, str] = {}, + status_code: int = None, + ) -> HTTPResponseBackend: + """ + + :param description: human-readable description of this backend. Optional + :param metadata: arbitrary user-defined machine-readable data of this backend. Optional + :param body: body to return as fixed content + :param headers: headers to return + :param status_code: status code to return + + https://ngrok.com/docs/api#api-http-response-backends-create + """ + path = "/backends/http_response" + result = self._client.http_client.post( + path, + dict( + description=description, + metadata=metadata, + body=body, + headers=headers, + status_code=status_code, + ), + ) + return HTTPResponseBackend(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-http-response-backends-delete + """ + path = "/backends/http_response/{id}" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + +
    [docs] def get( + self, + id: str, + ) -> HTTPResponseBackend: + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-http-response-backends-get + """ + path = "/backends/http_response/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return HTTPResponseBackend(self._client, result)
    + +
    [docs] def list( + self, + before_id: str = None, + limit: str = None, + ) -> HTTPResponseBackendList: + """ + + :param before_id: + :param limit: + + https://ngrok.com/docs/api#api-http-response-backends-list + """ + path = "/backends/http_response" + result = self._client.http_client.get( + path, + dict( + before_id=before_id, + limit=limit, + ), + ) + return HTTPResponseBackendList(self._client, result)
    + +
    [docs] def update( + self, + id: str, + description: str = None, + metadata: str = None, + body: str = None, + headers: Mapping[str, str] = None, + status_code: int = None, + ) -> HTTPResponseBackend: + """ + + :param id: + :param description: human-readable description of this backend. Optional + :param metadata: arbitrary user-defined machine-readable data of this backend. Optional + :param body: body to return as fixed content + :param headers: headers to return + :param status_code: status code to return + + https://ngrok.com/docs/api#api-http-response-backends-update + """ + path = "/backends/http_response/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.patch( + path, + dict( + description=description, + metadata=metadata, + body=body, + headers=headers, + status_code=status_code, + ), + ) + return HTTPResponseBackend(self._client, result)
    + + +
    [docs]class TunnelGroupBackendsClient(object): + """A Tunnel Group Backend balances traffic among all online tunnels that match + a label selector.""" + + def __init__(self, client): + self._client = client + +
    [docs] def create( + self, + description: str = "", + metadata: str = "", + labels: Mapping[str, str] = {}, + ) -> TunnelGroupBackend: + """Create a new TunnelGroup backend + + :param description: human-readable description of this backend. Optional + :param metadata: arbitrary user-defined machine-readable data of this backend. Optional + :param labels: labels to watch for tunnels on, e.g. app->foo, dc->bar + + https://ngrok.com/docs/api#api-tunnel-group-backends-create + """ + path = "/backends/tunnel_group" + result = self._client.http_client.post( + path, + dict( + description=description, + metadata=metadata, + labels=labels, + ), + ) + return TunnelGroupBackend(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """Delete a TunnelGroup backend by ID. TODO what if used? + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tunnel-group-backends-delete + """ + path = "/backends/tunnel_group/{id}" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + +
    [docs] def get( + self, + id: str, + ) -> TunnelGroupBackend: + """Get detailed information about a TunnelGroup backend by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tunnel-group-backends-get + """ + path = "/backends/tunnel_group/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return TunnelGroupBackend(self._client, result)
    + +
    [docs] def list( + self, + before_id: str = None, + limit: str = None, + ) -> TunnelGroupBackendList: + """List all TunnelGroup backends on this account + + :param before_id: + :param limit: + + https://ngrok.com/docs/api#api-tunnel-group-backends-list + """ + path = "/backends/tunnel_group" + result = self._client.http_client.get( + path, + dict( + before_id=before_id, + limit=limit, + ), + ) + return TunnelGroupBackendList(self._client, result)
    + +
    [docs] def update( + self, + id: str, + description: str = None, + metadata: str = None, + labels: Mapping[str, str] = {}, + ) -> TunnelGroupBackend: + """Update TunnelGroup backend by ID + + :param id: + :param description: human-readable description of this backend. Optional + :param metadata: arbitrary user-defined machine-readable data of this backend. Optional + :param labels: labels to watch for tunnels on, e.g. app->foo, dc->bar + + https://ngrok.com/docs/api#api-tunnel-group-backends-update + """ + path = "/backends/tunnel_group/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.patch( + path, + dict( + description=description, + metadata=metadata, + labels=labels, + ), + ) + return TunnelGroupBackend(self._client, result)
    + + +
    [docs]class WeightedBackendsClient(object): + """A Weighted Backend balances traffic among the referenced backends. Traffic + is assigned proportionally to each based on its weight. The percentage of + traffic is calculated by dividing a backend's weight by the sum of all + weights.""" + + def __init__(self, client): + self._client = client + +
    [docs] def create( + self, + description: str = "", + metadata: str = "", + backends: Mapping[str, int] = {}, + ) -> WeightedBackend: + """Create a new Weighted backend + + :param description: human-readable description of this backend. Optional + :param metadata: arbitrary user-defined machine-readable data of this backend. Optional + :param backends: the ids of the child backends to their weights (0-10000) + + https://ngrok.com/docs/api#api-weighted-backends-create + """ + path = "/backends/weighted" + result = self._client.http_client.post( + path, + dict( + description=description, + metadata=metadata, + backends=backends, + ), + ) + return WeightedBackend(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """Delete a Weighted backend by ID. TODO what if used? + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-weighted-backends-delete + """ + path = "/backends/weighted/{id}" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + +
    [docs] def get( + self, + id: str, + ) -> WeightedBackend: + """Get detailed information about a Weighted backend by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-weighted-backends-get + """ + path = "/backends/weighted/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return WeightedBackend(self._client, result)
    + +
    [docs] def list( + self, + before_id: str = None, + limit: str = None, + ) -> WeightedBackendList: + """List all Weighted backends on this account + + :param before_id: + :param limit: + + https://ngrok.com/docs/api#api-weighted-backends-list + """ + path = "/backends/weighted" + result = self._client.http_client.get( + path, + dict( + before_id=before_id, + limit=limit, + ), + ) + return WeightedBackendList(self._client, result)
    + +
    [docs] def update( + self, + id: str, + description: str = None, + metadata: str = None, + backends: Mapping[str, int] = {}, + ) -> WeightedBackend: + """Update Weighted backend by ID + + :param id: + :param description: human-readable description of this backend. Optional + :param metadata: arbitrary user-defined machine-readable data of this backend. Optional + :param backends: the ids of the child backends to their weights (0-10000) + + https://ngrok.com/docs/api#api-weighted-backends-update + """ + path = "/backends/weighted/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.patch( + path, + dict( + description=description, + metadata=metadata, + backends=backends, + ), + ) + return WeightedBackend(self._client, result)
    + +
    [docs]class CertificateAuthoritiesClient(object): """Certificate Authorities are x509 certificates that are used to sign other x509 certificates. Attach a Certificate Authority to the Mutual TLS module @@ -684,121 +1183,250 @@ return Credential(self._client, result)
    -
    [docs]class EndpointConfigurationsClient(object): - """Endpoint Configurations are a reusable group of modules that encapsulate how - traffic to a domain or address is handled. Endpoint configurations are only - applied to Domains and TCP Addresses they have been attached to.""" - +
    [docs]class EdgesHTTPSRoutesClient(object): def __init__(self, client): self._client = client -
    [docs] def create( +
    [docs] def create( self, - type: str = "", + edge_id: str, + match_type: str, + match: str, description: str = "", metadata: str = "", + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, circuit_breaker: EndpointCircuitBreaker = None, compression: EndpointCompression = None, request_headers: EndpointRequestHeaders = None, response_headers: EndpointResponseHeaders = None, - ip_policy: EndpointIPPolicyMutate = None, - mutual_tls: EndpointMutualTLSMutate = None, - tls_termination: EndpointTLSTermination = None, - webhook_validation: EndpointWebhookValidation = None, + webhook_verification: EndpointWebhookValidation = None, oauth: EndpointOAuth = None, - logging: EndpointLoggingMutate = None, saml: EndpointSAMLMutate = None, oidc: EndpointOIDC = None, - ) -> EndpointConfiguration: - """Create a new endpoint configuration + websocket_tcp_converter: EndpointWebsocketTCPConverter = None, + ) -> HTTPSEdgeRoute: + """Create an HTTPS Edge Route - :param type: they type of traffic this endpoint configuration can be applied to. one of: ``http``, ``https``, ``tcp`` - :param description: human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes - :param metadata: arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes. + :param edge_id: unique identifier of this edge + :param match_type: Type of match to use for this route. Valid values are "exact_path" and "path_prefix". + :param match: Route selector: "/blog" or "example.com" or "example.com/blog" + :param description: human-readable description of what this edge will be used for; optional, max 255 bytes. + :param metadata: arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. + :param backend: backend module configuration or ``null`` + :param ip_restriction: ip restriction module configuration or ``null`` :param circuit_breaker: circuit breaker module configuration or ``null`` :param compression: compression module configuration or ``null`` :param request_headers: request headers module configuration or ``null`` :param response_headers: response headers module configuration or ``null`` - :param ip_policy: ip policy module configuration or ``null`` - :param mutual_tls: mutual TLS module configuration or ``null`` - :param tls_termination: TLS termination module configuration or ``null`` - :param webhook_validation: webhook validation module configuration or ``null`` + :param webhook_verification: webhook verification module configuration or ``null`` :param oauth: oauth module configuration or ``null`` - :param logging: logging module configuration or ``null`` :param saml: saml module configuration or ``null`` :param oidc: oidc module configuration or ``null`` + :param websocket_tcp_converter: websocket to tcp adapter configuration or ``null`` - https://ngrok.com/docs/api#api-endpoint-configurations-create + https://ngrok.com/docs/api#api-edges-https-routes-create """ - path = "/endpoint_configurations" + path = "/edges/https/{edge_id}/routes" + path = path.format( + edge_id=edge_id, + ) result = self._client.http_client.post( path, dict( - type=type, + match_type=match_type, + match=match, description=description, metadata=metadata, + backend=backend, + ip_restriction=ip_restriction, circuit_breaker=circuit_breaker, compression=compression, request_headers=request_headers, response_headers=response_headers, - ip_policy=ip_policy, - mutual_tls=mutual_tls, - tls_termination=tls_termination, - webhook_validation=webhook_validation, + webhook_verification=webhook_verification, oauth=oauth, - logging=logging, saml=saml, oidc=oidc, + websocket_tcp_converter=websocket_tcp_converter, ), ) - return EndpointConfiguration(self._client, result)
    + return HTTPSEdgeRoute(self._client, result)
    -
    [docs] def delete( +
    [docs] def get( self, + edge_id: str, id: str, - ): - """Delete an endpoint configuration. This operation will fail if the endpoint configuration is still referenced by any reserved domain or reserved address. + ) -> HTTPSEdgeRoute: + """Get an HTTPS Edge Route by ID - :param id: a resource identifier + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route - https://ngrok.com/docs/api#api-endpoint-configurations-delete + https://ngrok.com/docs/api#api-edges-https-routes-get """ - path = "/endpoint_configurations/{id}" + path = "/edges/https/{edge_id}/routes/{id}" path = path.format( + edge_id=edge_id, id=id, ) - self._client.http_client.delete(path, dict())
    + result = self._client.http_client.get(path, dict()) + return HTTPSEdgeRoute(self._client, result)
    -
    [docs] def get( +
    [docs] def update( + self, + edge_id: str, + id: str, + match_type: str = "", + match: str = "", + description: str = "", + metadata: str = "", + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, + circuit_breaker: EndpointCircuitBreaker = None, + compression: EndpointCompression = None, + request_headers: EndpointRequestHeaders = None, + response_headers: EndpointResponseHeaders = None, + webhook_verification: EndpointWebhookValidation = None, + oauth: EndpointOAuth = None, + saml: EndpointSAMLMutate = None, + oidc: EndpointOIDC = None, + websocket_tcp_converter: EndpointWebsocketTCPConverter = None, + ) -> HTTPSEdgeRoute: + """Updates an HTTPS Edge Route by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API. + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + :param match_type: Type of match to use for this route. Valid values are "exact_path" and "path_prefix". + :param match: Route selector: "/blog" or "example.com" or "example.com/blog" + :param description: human-readable description of what this edge will be used for; optional, max 255 bytes. + :param metadata: arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. + :param backend: backend module configuration or ``null`` + :param ip_restriction: ip restriction module configuration or ``null`` + :param circuit_breaker: circuit breaker module configuration or ``null`` + :param compression: compression module configuration or ``null`` + :param request_headers: request headers module configuration or ``null`` + :param response_headers: response headers module configuration or ``null`` + :param webhook_verification: webhook verification module configuration or ``null`` + :param oauth: oauth module configuration or ``null`` + :param saml: saml module configuration or ``null`` + :param oidc: oidc module configuration or ``null`` + :param websocket_tcp_converter: websocket to tcp adapter configuration or ``null`` + + https://ngrok.com/docs/api#api-edges-https-routes-update + """ + path = "/edges/https/{edge_id}/routes/{id}" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.patch( + path, + dict( + match_type=match_type, + match=match, + description=description, + metadata=metadata, + backend=backend, + ip_restriction=ip_restriction, + circuit_breaker=circuit_breaker, + compression=compression, + request_headers=request_headers, + response_headers=response_headers, + webhook_verification=webhook_verification, + oauth=oauth, + saml=saml, + oidc=oidc, + websocket_tcp_converter=websocket_tcp_converter, + ), + ) + return HTTPSEdgeRoute(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """Delete an HTTPS Edge Route by ID + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edges-https-routes-delete + """ + path = "/edges/https/{edge_id}/routes/{id}" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgesHTTPSClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def create( + self, + description: str = "", + metadata: str = "", + hostports: Sequence[str] = None, + mutual_tls: EndpointMutualTLSMutate = None, + tls_termination: EndpointTLSTerminationAtEdge = None, + ) -> HTTPSEdge: + """Create an HTTPS Edge + + :param description: human-readable description of what this edge will be used for; optional, max 255 bytes. + :param metadata: arbitrary user-defined machine-readable data of this edge; optional, max 4096 bytes. + :param hostports: hostports served by this edge + :param mutual_tls: edge modules + :param tls_termination: + + https://ngrok.com/docs/api#api-edges-https-create + """ + path = "/edges/https" + result = self._client.http_client.post( + path, + dict( + description=description, + metadata=metadata, + hostports=hostports, + mutual_tls=mutual_tls, + tls_termination=tls_termination, + ), + ) + return HTTPSEdge(self._client, result)
    + +
    [docs] def get( self, id: str, - ) -> EndpointConfiguration: - """Returns detailed information about an endpoint configuration + ) -> HTTPSEdge: + """Get an HTTPS Edge by ID :param id: a resource identifier - https://ngrok.com/docs/api#api-endpoint-configurations-get + https://ngrok.com/docs/api#api-edges-https-get """ - path = "/endpoint_configurations/{id}" + path = "/edges/https/{id}" path = path.format( id=id, ) result = self._client.http_client.get(path, dict()) - return EndpointConfiguration(self._client, result)
    + return HTTPSEdge(self._client, result)
    -
    [docs] def list( +
    [docs] def list( self, before_id: str = None, limit: str = None, - ) -> EndpointConfigurationList: - """Returns a list of all endpoint configurations on this account + ) -> HTTPSEdgeList: + """Returns a list of all HTTPS Edges on this account :param before_id: :param limit: - https://ngrok.com/docs/api#api-endpoint-configurations-list + https://ngrok.com/docs/api#api-edges-https-list """ - path = "/endpoint_configurations" + path = "/edges/https" result = self._client.http_client.get( path, dict( @@ -806,47 +1434,29 @@ limit=limit, ), ) - return EndpointConfigurationList(self._client, result)
    + return HTTPSEdgeList(self._client, result)
    -
    [docs] def update( +
    [docs] def update( self, id: str, description: str = None, metadata: str = None, - circuit_breaker: EndpointCircuitBreaker = None, - compression: EndpointCompression = None, - request_headers: EndpointRequestHeaders = None, - response_headers: EndpointResponseHeaders = None, - ip_policy: EndpointIPPolicyMutate = None, + hostports: Sequence[str] = None, mutual_tls: EndpointMutualTLSMutate = None, - tls_termination: EndpointTLSTermination = None, - webhook_validation: EndpointWebhookValidation = None, - oauth: EndpointOAuth = None, - logging: EndpointLoggingMutate = None, - saml: EndpointSAMLMutate = None, - oidc: EndpointOIDC = None, - ) -> EndpointConfiguration: - """Updates an endpoint configuration. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API. + tls_termination: EndpointTLSTerminationAtEdge = None, + ) -> HTTPSEdge: + """Updates an HTTPS Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API. - :param id: unique identifier of this endpoint configuration - :param description: human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes - :param metadata: arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes. - :param circuit_breaker: circuit breaker module configuration or ``null`` - :param compression: compression module configuration or ``null`` - :param request_headers: request headers module configuration or ``null`` - :param response_headers: response headers module configuration or ``null`` - :param ip_policy: ip policy module configuration or ``null`` - :param mutual_tls: mutual TLS module configuration or ``null`` - :param tls_termination: TLS termination module configuration or ``null`` - :param webhook_validation: webhook validation module configuration or ``null`` - :param oauth: oauth module configuration or ``null`` - :param logging: logging module configuration or ``null`` - :param saml: saml module configuration or ``null`` - :param oidc: oidc module configuration or ``null`` + :param id: unique identifier of this edge + :param description: human-readable description of what this edge will be used for; optional, max 255 bytes. + :param metadata: arbitrary user-defined machine-readable data of this edge; optional, max 4096 bytes. + :param hostports: hostports served by this edge + :param mutual_tls: edge modules + :param tls_termination: - https://ngrok.com/docs/api#api-endpoint-configurations-update + https://ngrok.com/docs/api#api-edges-https-update """ - path = "/endpoint_configurations/{id}" + path = "/edges/https/{id}" path = path.format( id=id, ) @@ -855,107 +1465,1000 @@ dict( description=description, metadata=metadata, - circuit_breaker=circuit_breaker, - compression=compression, - request_headers=request_headers, - response_headers=response_headers, - ip_policy=ip_policy, + hostports=hostports, mutual_tls=mutual_tls, tls_termination=tls_termination, - webhook_validation=webhook_validation, - oauth=oauth, - logging=logging, - saml=saml, - oidc=oidc, ), ) - return EndpointConfiguration(self._client, result)
    + return HTTPSEdge(self._client, result)
    - -
    [docs]class EventStreamsClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def create( - self, - metadata: str = "", - description: str = "", - fields: Sequence[str] = [], - event_type: str = "", - destination_ids: Sequence[str] = [], - sampling_rate: float = 0, - ) -> EventStream: - """Create a new Event Stream. It will not apply to anything until you associate it with one or more Endpoint Configs. - - :param metadata: Arbitrary user-defined machine-readable data of this Event Stream. Optional, max 4096 bytes. - :param description: Human-readable description of the Event Stream. Optional, max 255 bytes. - :param fields: A list of protocol-specific fields you want to collect on each event. - :param event_type: The protocol that determines which events will be collected. Supported values are ``tcp_connection_closed`` and ``http_request_complete``. - :param destination_ids: A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. - :param sampling_rate: The percentage of all events you would like to capture. Valid values range from 0.01, representing 1% of all events to 1.00, representing 100% of all events. - - https://ngrok.com/docs/api#api-event-streams-create - """ - path = "/event_streams" - result = self._client.http_client.post( - path, - dict( - metadata=metadata, - description=description, - fields=fields, - event_type=event_type, - destination_ids=destination_ids, - sampling_rate=sampling_rate, - ), - ) - return EventStream(self._client, result)
    - -
    [docs] def delete( +
    [docs] def delete( self, id: str, ): - """Delete an Event Stream. Associated Event Destinations will be preserved. + """Delete an HTTPS Edge by ID :param id: a resource identifier - https://ngrok.com/docs/api#api-event-streams-delete + https://ngrok.com/docs/api#api-edges-https-delete """ - path = "/event_streams/{id}" + path = "/edges/https/{id}" path = path.format( id=id, ) - self._client.http_client.delete(path, dict())
    + self._client.http_client.delete(path, dict())
    -
    [docs] def get( + +
    [docs]class HTTPSEdgeMutualTLSModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( self, id: str, - ) -> EventStream: - """Get detailed information about an Event Stream by ID. + module: EndpointMutualTLSMutate = None, + ) -> EndpointMutualTLS: + """ + + :param id: + :param module: + + https://ngrok.com/docs/api#api-https-edge-mutual-tls-module-replace + """ + path = "/edges/https/{id}/mutual_tls" + path = path.format( + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointMutualTLS(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> EndpointMutualTLS: + """ :param id: a resource identifier - https://ngrok.com/docs/api#api-event-streams-get + https://ngrok.com/docs/api#api-https-edge-mutual-tls-module-get """ - path = "/event_streams/{id}" + path = "/edges/https/{id}/mutual_tls" path = path.format( id=id, ) result = self._client.http_client.get(path, dict()) - return EventStream(self._client, result)
    + return EndpointMutualTLS(self._client, result)
    -
    [docs] def list( +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-https-edge-mutual-tls-module-delete + """ + path = "/edges/https/{id}/mutual_tls" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class HTTPSEdgeTLSTerminationModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + id: str, + module: EndpointTLSTerminationAtEdge = None, + ) -> EndpointTLSTermination: + """ + + :param id: + :param module: + + https://ngrok.com/docs/api#api-https-edge-tls-termination-module-replace + """ + path = "/edges/https/{id}/tls_termination" + path = path.format( + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointTLSTermination(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> EndpointTLSTermination: + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-https-edge-tls-termination-module-get + """ + path = "/edges/https/{id}/tls_termination" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointTLSTermination(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-https-edge-tls-termination-module-delete + """ + path = "/edges/https/{id}/tls_termination" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteBackendModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointBackendMutate = None, + ) -> EndpointBackend: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-backend-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/backend" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointBackend(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointBackend: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-backend-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/backend" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointBackend(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-backend-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/backend" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteIPRestrictionModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointIPPolicyMutate = None, + ) -> EndpointIPPolicy: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-ip-restriction-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/ip_restriction" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointIPPolicy(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointIPPolicy: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-ip-restriction-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/ip_restriction" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointIPPolicy(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-ip-restriction-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/ip_restriction" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteRequestHeadersModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointRequestHeaders = None, + ) -> EndpointRequestHeaders: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-request-headers-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/request_headers" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointRequestHeaders(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointRequestHeaders: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-request-headers-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/request_headers" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointRequestHeaders(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-request-headers-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/request_headers" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteResponseHeadersModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointResponseHeaders = None, + ) -> EndpointResponseHeaders: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-response-headers-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/response_headers" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointResponseHeaders(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointResponseHeaders: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-response-headers-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/response_headers" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointResponseHeaders(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-response-headers-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/response_headers" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteCompressionModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointCompression = None, + ) -> EndpointCompression: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-compression-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/compression" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointCompression(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointCompression: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-compression-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/compression" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointCompression(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-compression-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/compression" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteCircuitBreakerModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointCircuitBreaker = None, + ) -> EndpointCircuitBreaker: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-circuit-breaker-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/circuit_breaker" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointCircuitBreaker(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointCircuitBreaker: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-circuit-breaker-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/circuit_breaker" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointCircuitBreaker(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-circuit-breaker-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/circuit_breaker" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteWebhookVerificationModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointWebhookValidation = None, + ) -> EndpointWebhookValidation: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-webhook-verification-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/webhook_verification" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointWebhookValidation(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointWebhookValidation: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-webhook-verification-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/webhook_verification" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointWebhookValidation(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-webhook-verification-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/webhook_verification" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteOAuthModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointOAuth = None, + ) -> EndpointOAuth: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-o-auth-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/oauth" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointOAuth(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointOAuth: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-o-auth-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/oauth" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointOAuth(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-o-auth-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/oauth" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteSAMLModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointSAMLMutate = None, + ) -> EndpointSAML: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-saml-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/saml" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointSAML(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointSAML: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-saml-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/saml" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointSAML(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-saml-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/saml" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteOIDCModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointOIDC = None, + ) -> EndpointOIDC: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-oidc-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/oidc" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointOIDC(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointOIDC: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-oidc-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/oidc" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointOIDC(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-oidc-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/oidc" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgeRouteWebsocketTCPConverterModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + edge_id: str, + id: str, + module: EndpointWebsocketTCPConverter = None, + ) -> EndpointWebsocketTCPConverter: + """ + + :param edge_id: + :param id: + :param module: + + https://ngrok.com/docs/api#api-edge-route-websocket-tcp-converter-module-replace + """ + path = "/edges/https/{edge_id}/routes/{id}/websocket_tcp_converter" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointWebsocketTCPConverter(self._client, result)
    + +
    [docs] def get( + self, + edge_id: str, + id: str, + ) -> EndpointWebsocketTCPConverter: + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-websocket-tcp-converter-module-get + """ + path = "/edges/https/{edge_id}/routes/{id}/websocket_tcp_converter" + path = path.format( + edge_id=edge_id, + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointWebsocketTCPConverter(self._client, result)
    + +
    [docs] def delete( + self, + edge_id: str, + id: str, + ): + """ + + :param edge_id: unique identifier of this edge + :param id: unique identifier of this edge route + + https://ngrok.com/docs/api#api-edge-route-websocket-tcp-converter-module-delete + """ + path = "/edges/https/{edge_id}/routes/{id}/websocket_tcp_converter" + path = path.format( + edge_id=edge_id, + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgesTCPClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def create( + self, + description: str = "", + metadata: str = "", + hostports: Sequence[str] = None, + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, + ) -> TCPEdge: + """Create a TCP Edge + + :param description: human-readable description of what this edge will be used for; optional, max 255 bytes. + :param metadata: arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. + :param hostports: hostports served by this edge + :param backend: edge modules + :param ip_restriction: + + https://ngrok.com/docs/api#api-edges-tcp-create + """ + path = "/edges/tcp" + result = self._client.http_client.post( + path, + dict( + description=description, + metadata=metadata, + hostports=hostports, + backend=backend, + ip_restriction=ip_restriction, + ), + ) + return TCPEdge(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> TCPEdge: + """Get a TCP Edge by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-edges-tcp-get + """ + path = "/edges/tcp/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return TCPEdge(self._client, result)
    + +
    [docs] def list( self, before_id: str = None, limit: str = None, - ) -> EventStreamList: - """List all Event Streams available on this account. + ) -> TCPEdgeList: + """Returns a list of all TCP Edges on this account :param before_id: :param limit: - https://ngrok.com/docs/api#api-event-streams-list + https://ngrok.com/docs/api#api-edges-tcp-list """ - path = "/event_streams" + path = "/edges/tcp" result = self._client.http_client.get( path, dict( @@ -963,43 +2466,618 @@ limit=limit, ), ) - return EventStreamList(self._client, result)
    + return TCPEdgeList(self._client, result)
    -
    [docs] def update( +
    [docs] def update( self, id: str, - metadata: str = None, description: str = None, - fields: Sequence[str] = None, - destination_ids: Sequence[str] = None, - sampling_rate: float = None, - ) -> EventStream: - """Update attributes of an Event Stream by ID. + metadata: str = None, + hostports: Sequence[str] = None, + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, + ) -> TCPEdge: + """Updates a TCP Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API. - :param id: Unique identifier for this Event Stream. - :param metadata: Arbitrary user-defined machine-readable data of this Event Stream. Optional, max 4096 bytes. - :param description: Human-readable description of the Event Stream. Optional, max 255 bytes. - :param fields: A list of protocol-specific fields you want to collect on each event. - :param destination_ids: A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. - :param sampling_rate: The percentage of all events you would like to capture. Valid values range from 0.01, representing 1% of all events to 1.00, representing 100% of all events. + :param id: unique identifier of this edge + :param description: human-readable description of what this edge will be used for; optional, max 255 bytes. + :param metadata: arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. + :param hostports: hostports served by this edge + :param backend: edge modules + :param ip_restriction: - https://ngrok.com/docs/api#api-event-streams-update + https://ngrok.com/docs/api#api-edges-tcp-update """ - path = "/event_streams/{id}" + path = "/edges/tcp/{id}" path = path.format( id=id, ) result = self._client.http_client.patch( path, dict( - metadata=metadata, description=description, - fields=fields, - destination_ids=destination_ids, - sampling_rate=sampling_rate, + metadata=metadata, + hostports=hostports, + backend=backend, + ip_restriction=ip_restriction, ), ) - return EventStream(self._client, result)
    + return TCPEdge(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """Delete a TCP Edge by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-edges-tcp-delete + """ + path = "/edges/tcp/{id}" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class TCPEdgeBackendModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + id: str, + module: EndpointBackendMutate = None, + ) -> EndpointBackend: + """ + + :param id: + :param module: + + https://ngrok.com/docs/api#api-tcp-edge-backend-module-replace + """ + path = "/edges/tcp/{id}/backend" + path = path.format( + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointBackend(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> EndpointBackend: + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tcp-edge-backend-module-get + """ + path = "/edges/tcp/{id}/backend" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointBackend(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tcp-edge-backend-module-delete + """ + path = "/edges/tcp/{id}/backend" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class TCPEdgeIPRestrictionModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + id: str, + module: EndpointIPPolicyMutate = None, + ) -> EndpointIPPolicy: + """ + + :param id: + :param module: + + https://ngrok.com/docs/api#api-tcp-edge-ip-restriction-module-replace + """ + path = "/edges/tcp/{id}/ip_restriction" + path = path.format( + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointIPPolicy(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> EndpointIPPolicy: + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tcp-edge-ip-restriction-module-get + """ + path = "/edges/tcp/{id}/ip_restriction" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointIPPolicy(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tcp-edge-ip-restriction-module-delete + """ + path = "/edges/tcp/{id}/ip_restriction" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EdgesTLSClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def create( + self, + description: str = "", + metadata: str = "", + hostports: Sequence[str] = None, + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, + mutual_tls: EndpointMutualTLSMutate = None, + tls_termination: EndpointTLSTermination = None, + ) -> TLSEdge: + """Create a TLS Edge + + :param description: human-readable description of what this edge will be used for; optional, max 255 bytes. + :param metadata: arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. + :param hostports: hostports served by this edge + :param backend: edge modules + :param ip_restriction: + :param mutual_tls: + :param tls_termination: + + https://ngrok.com/docs/api#api-edges-tls-create + """ + path = "/edges/tls" + result = self._client.http_client.post( + path, + dict( + description=description, + metadata=metadata, + hostports=hostports, + backend=backend, + ip_restriction=ip_restriction, + mutual_tls=mutual_tls, + tls_termination=tls_termination, + ), + ) + return TLSEdge(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> TLSEdge: + """Get a TLS Edge by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-edges-tls-get + """ + path = "/edges/tls/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return TLSEdge(self._client, result)
    + +
    [docs] def list( + self, + before_id: str = None, + limit: str = None, + ) -> TLSEdgeList: + """Returns a list of all TLS Edges on this account + + :param before_id: + :param limit: + + https://ngrok.com/docs/api#api-edges-tls-list + """ + path = "/edges/tls" + result = self._client.http_client.get( + path, + dict( + before_id=before_id, + limit=limit, + ), + ) + return TLSEdgeList(self._client, result)
    + +
    [docs] def update( + self, + id: str, + description: str = None, + metadata: str = None, + hostports: Sequence[str] = None, + backend: EndpointBackendMutate = None, + ip_restriction: EndpointIPPolicyMutate = None, + mutual_tls: EndpointMutualTLSMutate = None, + tls_termination: EndpointTLSTermination = None, + ) -> TLSEdge: + """Updates a TLS Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API. + + :param id: unique identifier of this edge + :param description: human-readable description of what this edge will be used for; optional, max 255 bytes. + :param metadata: arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. + :param hostports: hostports served by this edge + :param backend: edge modules + :param ip_restriction: + :param mutual_tls: + :param tls_termination: + + https://ngrok.com/docs/api#api-edges-tls-update + """ + path = "/edges/tls/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.patch( + path, + dict( + description=description, + metadata=metadata, + hostports=hostports, + backend=backend, + ip_restriction=ip_restriction, + mutual_tls=mutual_tls, + tls_termination=tls_termination, + ), + ) + return TLSEdge(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """Delete a TLS Edge by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-edges-tls-delete + """ + path = "/edges/tls/{id}" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class TLSEdgeBackendModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + id: str, + module: EndpointBackendMutate = None, + ) -> EndpointBackend: + """ + + :param id: + :param module: + + https://ngrok.com/docs/api#api-tls-edge-backend-module-replace + """ + path = "/edges/tls/{id}/backend" + path = path.format( + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointBackend(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> EndpointBackend: + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tls-edge-backend-module-get + """ + path = "/edges/tls/{id}/backend" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointBackend(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tls-edge-backend-module-delete + """ + path = "/edges/tls/{id}/backend" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class TLSEdgeIPRestrictionModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + id: str, + module: EndpointIPPolicyMutate = None, + ) -> EndpointIPPolicy: + """ + + :param id: + :param module: + + https://ngrok.com/docs/api#api-tls-edge-ip-restriction-module-replace + """ + path = "/edges/tls/{id}/ip_restriction" + path = path.format( + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointIPPolicy(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> EndpointIPPolicy: + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tls-edge-ip-restriction-module-get + """ + path = "/edges/tls/{id}/ip_restriction" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointIPPolicy(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tls-edge-ip-restriction-module-delete + """ + path = "/edges/tls/{id}/ip_restriction" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class TLSEdgeMutualTLSModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + id: str, + module: EndpointMutualTLSMutate = None, + ) -> EndpointMutualTLS: + """ + + :param id: + :param module: + + https://ngrok.com/docs/api#api-tls-edge-mutual-tls-module-replace + """ + path = "/edges/tls/{id}/mutual_tls" + path = path.format( + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointMutualTLS(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> EndpointMutualTLS: + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tls-edge-mutual-tls-module-get + """ + path = "/edges/tls/{id}/mutual_tls" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointMutualTLS(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tls-edge-mutual-tls-module-delete + """ + path = "/edges/tls/{id}/mutual_tls" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class TLSEdgeTLSTerminationModuleClient(object): + def __init__(self, client): + self._client = client + +
    [docs] def replace( + self, + id: str, + module: EndpointTLSTermination = None, + ) -> EndpointTLSTermination: + """ + + :param id: + :param module: + + https://ngrok.com/docs/api#api-tls-edge-tls-termination-module-replace + """ + path = "/edges/tls/{id}/tls_termination" + path = path.format( + id=id, + ) + result = self._client.http_client.put( + path, + dict( + module=module, + ), + ) + return EndpointTLSTermination(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> EndpointTLSTermination: + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tls-edge-tls-termination-module-get + """ + path = "/edges/tls/{id}/tls_termination" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return EndpointTLSTermination(self._client, result)
    + +
    [docs] def delete( + self, + id: str, + ): + """ + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tls-edge-tls-termination-module-delete + """ + path = "/edges/tls/{id}/tls_termination" + path = path.format( + id=id, + ) + self._client.http_client.delete(path, dict())
    + + +
    [docs]class EndpointsClient(object): + """Endpoints provides an API for querying the endpoint objects + which define what tunnel or edge is used to serve a hostport. + Only active endpoints associated with a tunnel or backend are returned.""" + + def __init__(self, client): + self._client = client + +
    [docs] def list( + self, + before_id: str = None, + limit: str = None, + ) -> EndpointList: + """List all active endpoints on the account + + :param before_id: + :param limit: + + https://ngrok.com/docs/api#api-endpoints-list + """ + path = "/endpoints" + result = self._client.http_client.get( + path, + dict( + before_id=before_id, + limit=limit, + ), + ) + return EndpointList(self._client, result)
    + +
    [docs] def get( + self, + id: str, + ) -> Endpoint: + """Get the status of an endpoint by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-endpoints-get + """ + path = "/endpoints/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return Endpoint(self._client, result)
    [docs]class EventDestinationsClient(object): @@ -1038,7 +3116,7 @@ self, id: str, ): - """Delete an Event Destination. If the Event Destination is still referenced by an Event Stream, this will throw an error until that Event Stream has removed that reference. + """Delete an Event Destination. If the Event Destination is still referenced by an Event Subscription. :param id: a resource identifier @@ -1139,7 +3217,7 @@ :param metadata: Arbitrary customer supplied information intended to be machine readable. Optional, max 4096 chars. :param description: Arbitrary customer supplied information intended to be human readable. Optional, max 255 chars. :param sources: Sources containing the types for which this event subscription will trigger - :param destination_ids: A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. + :param destination_ids: A list of Event Destination IDs which should be used for this Event Subscription. https://ngrok.com/docs/api#api-event-subscriptions-create """ @@ -1224,7 +3302,7 @@ :param metadata: Arbitrary customer supplied information intended to be machine readable. Optional, max 4096 chars. :param description: Arbitrary customer supplied information intended to be human readable. Optional, max 255 chars. :param sources: Sources containing the types for which this event subscription will trigger - :param destination_ids: A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. + :param destination_ids: A list of Event Destination IDs which should be used for this Event Subscription. https://ngrok.com/docs/api#api-event-subscriptions-update """ @@ -1360,7 +3438,6 @@
    [docs] def create( self, - action: str, description: str = "", metadata: str = "", ) -> IPPolicy: @@ -1368,7 +3445,6 @@ :param description: human-readable description of the source IPs of this IP policy. optional, max 255 bytes. :param metadata: arbitrary user-defined machine-readable data of this IP policy. optional, max 4096 bytes. - :param action: the IP policy action. Supported values are ``allow`` or ``deny`` https://ngrok.com/docs/api#api-ip-policies-create """ @@ -1378,7 +3454,6 @@ dict( description=description, metadata=metadata, - action=action, ), ) return IPPolicy(self._client, result)
    @@ -1479,6 +3554,7 @@ ip_policy_id: str, description: str = "", metadata: str = "", + action: str = None, ) -> IPPolicyRule: """Create a new IP policy rule attached to an IP Policy. @@ -1486,6 +3562,7 @@ :param metadata: arbitrary user-defined machine-readable data of this IP policy rule. optional, max 4096 bytes. :param cidr: an IP or IP range specified in CIDR notation. IPv4 and IPv6 are both supported. :param ip_policy_id: ID of the IP policy this IP policy rule will be attached to + :param action: the action to apply to the policy rule, either ``allow`` or ``deny`` https://ngrok.com/docs/api#api-ip-policy-rules-create """ @@ -1497,6 +3574,7 @@ metadata=metadata, cidr=cidr, ip_policy_id=ip_policy_id, + action=action, ), ) return IPPolicyRule(self._client, result)
    @@ -1718,750 +3796,6 @@ return IPRestriction(self._client, result) -
    [docs]class EndpointLoggingModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointLoggingMutate = None, - ) -> EndpointLogging: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-logging-module-replace - """ - path = "/endpoint_configurations/{id}/logging" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointLogging(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointLogging: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-logging-module-get - """ - path = "/endpoint_configurations/{id}/logging" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointLogging(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-logging-module-delete - """ - path = "/endpoint_configurations/{id}/logging" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointCircuitBreakerModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointCircuitBreaker = None, - ) -> EndpointCircuitBreaker: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-circuit-breaker-module-replace - """ - path = "/endpoint_configurations/{id}/circuit_breaker" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointCircuitBreaker(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointCircuitBreaker: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-circuit-breaker-module-get - """ - path = "/endpoint_configurations/{id}/circuit_breaker" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointCircuitBreaker(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-circuit-breaker-module-delete - """ - path = "/endpoint_configurations/{id}/circuit_breaker" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointCompressionModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointCompression = None, - ) -> EndpointCompression: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-compression-module-replace - """ - path = "/endpoint_configurations/{id}/compression" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointCompression(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointCompression: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-compression-module-get - """ - path = "/endpoint_configurations/{id}/compression" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointCompression(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-compression-module-delete - """ - path = "/endpoint_configurations/{id}/compression" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointTLSTerminationModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointTLSTermination = None, - ) -> EndpointTLSTermination: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-tls-termination-module-replace - """ - path = "/endpoint_configurations/{id}/tls_termination" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointTLSTermination(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointTLSTermination: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-tls-termination-module-get - """ - path = "/endpoint_configurations/{id}/tls_termination" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointTLSTermination(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-tls-termination-module-delete - """ - path = "/endpoint_configurations/{id}/tls_termination" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointIPPolicyModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointIPPolicyMutate = None, - ) -> EndpointIPPolicy: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-ip-policy-module-replace - """ - path = "/endpoint_configurations/{id}/ip_policy" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointIPPolicy(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointIPPolicy: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-ip-policy-module-get - """ - path = "/endpoint_configurations/{id}/ip_policy" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointIPPolicy(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-ip-policy-module-delete - """ - path = "/endpoint_configurations/{id}/ip_policy" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointMutualTLSModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointMutualTLSMutate = None, - ) -> EndpointMutualTLS: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-mutual-tls-module-replace - """ - path = "/endpoint_configurations/{id}/mutual_tls" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointMutualTLS(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointMutualTLS: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-mutual-tls-module-get - """ - path = "/endpoint_configurations/{id}/mutual_tls" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointMutualTLS(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-mutual-tls-module-delete - """ - path = "/endpoint_configurations/{id}/mutual_tls" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointRequestHeadersModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointRequestHeaders = None, - ) -> EndpointRequestHeaders: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-request-headers-module-replace - """ - path = "/endpoint_configurations/{id}/request_headers" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointRequestHeaders(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointRequestHeaders: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-request-headers-module-get - """ - path = "/endpoint_configurations/{id}/request_headers" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointRequestHeaders(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-request-headers-module-delete - """ - path = "/endpoint_configurations/{id}/request_headers" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointResponseHeadersModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointResponseHeaders = None, - ) -> EndpointResponseHeaders: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-response-headers-module-replace - """ - path = "/endpoint_configurations/{id}/response_headers" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointResponseHeaders(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointResponseHeaders: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-response-headers-module-get - """ - path = "/endpoint_configurations/{id}/response_headers" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointResponseHeaders(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-response-headers-module-delete - """ - path = "/endpoint_configurations/{id}/response_headers" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointOAuthModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointOAuth = None, - ) -> EndpointOAuth: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-o-auth-module-replace - """ - path = "/endpoint_configurations/{id}/oauth" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointOAuth(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointOAuth: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-o-auth-module-get - """ - path = "/endpoint_configurations/{id}/oauth" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointOAuth(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-o-auth-module-delete - """ - path = "/endpoint_configurations/{id}/oauth" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointWebhookValidationModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointWebhookValidation = None, - ) -> EndpointWebhookValidation: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-webhook-validation-module-replace - """ - path = "/endpoint_configurations/{id}/webhook_validation" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointWebhookValidation(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointWebhookValidation: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-webhook-validation-module-get - """ - path = "/endpoint_configurations/{id}/webhook_validation" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointWebhookValidation(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-webhook-validation-module-delete - """ - path = "/endpoint_configurations/{id}/webhook_validation" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointSAMLModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointSAMLMutate = None, - ) -> EndpointSAML: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-saml-module-replace - """ - path = "/endpoint_configurations/{id}/saml" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointSAML(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointSAML: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-saml-module-get - """ - path = "/endpoint_configurations/{id}/saml" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointSAML(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-saml-module-delete - """ - path = "/endpoint_configurations/{id}/saml" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - - -
    [docs]class EndpointOIDCModuleClient(object): - def __init__(self, client): - self._client = client - -
    [docs] def replace( - self, - id: str, - module: EndpointOIDC = None, - ) -> EndpointOIDC: - """ - - :param id: - :param module: - - https://ngrok.com/docs/api#api-endpoint-oidc-module-replace - """ - path = "/endpoint_configurations/{id}/oidc" - path = path.format( - id=id, - ) - result = self._client.http_client.put( - path, - dict( - module=module, - ), - ) - return EndpointOIDC(self._client, result)
    - -
    [docs] def get( - self, - id: str, - ) -> EndpointOIDC: - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-oidc-module-get - """ - path = "/endpoint_configurations/{id}/oidc" - path = path.format( - id=id, - ) - result = self._client.http_client.get(path, dict()) - return EndpointOIDC(self._client, result)
    - -
    [docs] def delete( - self, - id: str, - ): - """ - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-endpoint-oidc-module-delete - """ - path = "/endpoint_configurations/{id}/oidc" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - -
    [docs]class ReservedAddrsClient(object): """Reserved Addresses are TCP addresses that can be used to listen for traffic. TCP address hostnames and ports are assigned by ngrok, they cannot be @@ -2475,14 +3809,12 @@ description: str = "", metadata: str = "", region: str = "", - endpoint_configuration_id: str = None, ) -> ReservedAddr: """Create a new reserved address. :param description: human-readable description of what this reserved address will be used for :param metadata: arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes. :param region: reserve the address in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) - :param endpoint_configuration_id: ID of an endpoint configuration of type tcp that will be used to handle inbound traffic to this address https://ngrok.com/docs/api#api-reserved-addrs-create """ @@ -2493,7 +3825,6 @@ description=description, metadata=metadata, region=region, - endpoint_configuration_id=endpoint_configuration_id, ), ) return ReservedAddr(self._client, result)
    @@ -2558,14 +3889,12 @@ id: str, description: str = None, metadata: str = None, - endpoint_configuration_id: str = None, ) -> ReservedAddr: """Update the attributes of a reserved address. :param id: :param description: human-readable description of what this reserved address will be used for :param metadata: arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes. - :param endpoint_configuration_id: ID of an endpoint configuration of type tcp that will be used to handle inbound traffic to this address https://ngrok.com/docs/api#api-reserved-addrs-update """ @@ -2578,26 +3907,9 @@ dict( description=description, metadata=metadata, - endpoint_configuration_id=endpoint_configuration_id, ), ) - return ReservedAddr(self._client, result) - -
    [docs] def delete_endpoint_config( - self, - id: str, - ): - """Detach the endpoint configuration attached to a reserved address. - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-reserved-addrs-delete-endpoint-config - """ - path = "/reserved_addrs/{id}/endpoint_configuration" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    + return ReservedAddr(self._client, result)
    [docs]class ReservedDomainsClient(object): @@ -2615,8 +3927,6 @@ region: str = "", description: str = "", metadata: str = "", - http_endpoint_configuration_id: str = None, - https_endpoint_configuration_id: str = None, certificate_id: str = None, certificate_management_policy: ReservedDomainCertPolicy = None, ) -> ReservedDomain: @@ -2626,8 +3936,6 @@ :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 :param metadata: arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes. - :param http_endpoint_configuration_id: ID of an endpoint configuration of type http that will be used to handle inbound http traffic to this domain - :param https_endpoint_configuration_id: ID of an endpoint configuration of type https that will be used to handle inbound https traffic to this domain :param certificate_id: ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with ``certificate_management_policy``. :param certificate_management_policy: configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with ``certificate_id``. @@ -2641,8 +3949,6 @@ region=region, description=description, metadata=metadata, - http_endpoint_configuration_id=http_endpoint_configuration_id, - https_endpoint_configuration_id=https_endpoint_configuration_id, certificate_id=certificate_id, certificate_management_policy=certificate_management_policy, ), @@ -2709,8 +4015,6 @@ id: str, description: str = None, metadata: str = None, - http_endpoint_configuration_id: str = None, - https_endpoint_configuration_id: str = None, certificate_id: str = None, certificate_management_policy: ReservedDomainCertPolicy = None, ) -> ReservedDomain: @@ -2719,8 +4023,6 @@ :param id: :param description: human-readable description of what this reserved domain will be used for :param metadata: arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes. - :param http_endpoint_configuration_id: ID of an endpoint configuration of type http that will be used to handle inbound http traffic to this domain - :param https_endpoint_configuration_id: ID of an endpoint configuration of type https that will be used to handle inbound https traffic to this domain :param certificate_id: ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with ``certificate_management_policy``. :param certificate_management_policy: configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with ``certificate_id``. @@ -2735,8 +4037,6 @@ dict( description=description, metadata=metadata, - http_endpoint_configuration_id=http_endpoint_configuration_id, - https_endpoint_configuration_id=https_endpoint_configuration_id, certificate_id=certificate_id, certificate_management_policy=certificate_management_policy, ), @@ -2773,38 +4073,6 @@ path = path.format( id=id, ) - self._client.http_client.delete(path, dict())
    - -
    [docs] def delete_http_endpoint_config( - self, - id: str, - ): - """Detach the http endpoint configuration attached to a reserved domain. - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-reserved-domains-delete-http-endpoint-config - """ - path = "/reserved_domains/{id}/http_endpoint_configuration" - path = path.format( - id=id, - ) - self._client.http_client.delete(path, dict())
    - -
    [docs] def delete_https_endpoint_config( - self, - id: str, - ): - """Detach the https endpoint configuration attached to a reserved domain. - - :param id: a resource identifier - - https://ngrok.com/docs/api#api-reserved-domains-delete-https-endpoint-config - """ - path = "/reserved_domains/{id}/https_endpoint_configuration" - path = path.format( - id=id, - ) self._client.http_client.delete(path, dict())
    @@ -3556,7 +4824,24 @@ limit=limit, ), ) - return TunnelList(self._client, result) + return TunnelList(self._client, result) + +
    [docs] def get( + self, + id: str, + ) -> Tunnel: + """Get the status of a tunnel by ID + + :param id: a resource identifier + + https://ngrok.com/docs/api#api-tunnels-get + """ + path = "/tunnels/{id}" + path = path.format( + id=id, + ) + result = self._client.http_client.get(path, dict()) + return Tunnel(self._client, result)