mirror of
https://github.com/ngrok/ngrok-api-python.git
synced 2026-05-17 16:50:36 +00:00
185 lines
4.3 KiB
ReStructuredText
185 lines
4.3 KiB
ReStructuredText
..
|
|
Code generated for API Clients. DO NOT EDIT.
|
|
|
|
|
|
ngrok-api
|
|
#########
|
|
|
|
This is the official helper library for working with the `ngrok
|
|
HTTP API <https://ngrok.com/docs/api>`_ from Python.
|
|
|
|
Getting Started
|
|
===============
|
|
|
|
Installation
|
|
------------
|
|
|
|
::
|
|
|
|
pip install ngrok-api
|
|
|
|
|
|
Quickstart Example
|
|
------------------
|
|
|
|
After you've installed the package, you'll need an API key. Create one on the
|
|
`API Keys page of your ngrok dashboard <https://dashboard.ngrok.com/api/keys>`_.
|
|
|
|
In your application's code, construct an :class:`~ngrok.Client` object
|
|
with the API key. API services can be accessed as properties of the client
|
|
object. That's it!
|
|
|
|
::
|
|
|
|
import ngrok
|
|
|
|
# construct the api client
|
|
client = ngrok.Client("<API KEY>")
|
|
|
|
# list all online tunnels
|
|
for t in client.tunnels.list():
|
|
print(t)
|
|
|
|
# create an ip policy the allows traffic from some subnets
|
|
policy = client.ip_policies.create()
|
|
for cidr in ["24.0.0.0/8", "12.0.0.0/8"]:
|
|
client.ip_policy_rules.create(cidr=cidr, ip_policy_id=policy.id, action="allow")
|
|
|
|
|
|
Automatic Paging
|
|
----------------
|
|
|
|
The ngrok API pages all list resources but this library abstracts that away
|
|
from you. All response objects from any ``list()`` methods return an object that
|
|
implements an ``__iter__()`` method which will automatically fetch additional
|
|
pages for you.
|
|
|
|
::
|
|
|
|
import ngrok
|
|
|
|
client = ngrok.Client("<API KEY>")
|
|
|
|
# list all ip policies, transparently fetching additional
|
|
# pages for you if necessary
|
|
for p in client.ip_policies.list():
|
|
print(p)
|
|
|
|
|
|
Instance Methods
|
|
----------------
|
|
|
|
Instance methods like ``update`` and ``delete`` can be invoked on an instance of an
|
|
API object itself as well as directly without needing to first fetch the object.
|
|
|
|
::
|
|
import ngrok
|
|
|
|
client = ngrok.Client("<API KEY>")
|
|
|
|
# update the metadata of a credential
|
|
cred = client.credentials.get("cr_1kYyunEyn6XHHlqyMBLrj5nxkoz")
|
|
cred.update(metadata=json.dumps({
|
|
"server_name": "giraffe-1",
|
|
}))
|
|
|
|
# or do it in single call
|
|
cred = client.credentials.update("cr_1kYyunEyn6XHHlqyMBLrj5nxkoz", metadata=json.dumps({
|
|
"server_name": "giraffe-1",
|
|
}))
|
|
|
|
|
|
Error Handling
|
|
--------------
|
|
|
|
The ngrok API returns detailed information when an API call fails. Consult the
|
|
section on :ref:`errors <errors>` for additional details.
|
|
|
|
::
|
|
|
|
import ngrok
|
|
|
|
client = ngrok.Client("<API KEY>")
|
|
|
|
try:
|
|
policy = client.ip_policies.create()
|
|
client.ip_policy_rules.create(cidr="24.0.0.0/8", ip_policy_id=policy.id, action="not a valid action")
|
|
except ngrok.Error as e:
|
|
print("http status code", e.http_status_code)
|
|
print("ngrok error code", e.error_code)
|
|
print("ngrok error message", e.message)
|
|
print("optional additional error-specific details", e.details)
|
|
|
|
API Reference
|
|
=============
|
|
|
|
.. toctree::
|
|
:caption: API
|
|
|
|
client
|
|
datatypes
|
|
errors
|
|
|
|
.. toctree::
|
|
:caption: Services
|
|
|
|
abuse_reports
|
|
agent_ingresses
|
|
api_keys
|
|
application_sessions
|
|
application_users
|
|
tunnel_sessions
|
|
failover_backends
|
|
http_response_backends
|
|
static_backends
|
|
tunnel_group_backends
|
|
weighted_backends
|
|
bot_users
|
|
certificate_authorities
|
|
credentials
|
|
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
|
|
edge_route_user_agent_filter_module
|
|
edge_route_traffic_policy_module
|
|
edges_tcp
|
|
tcp_edge_backend_module
|
|
tcp_edge_ip_restriction_module
|
|
tcp_edge_traffic_policy_module
|
|
edges_tls
|
|
tls_edge_backend_module
|
|
tls_edge_ip_restriction_module
|
|
tls_edge_mutual_tls_module
|
|
tls_edge_tls_termination_module
|
|
tls_edge_traffic_policy_module
|
|
endpoints
|
|
event_destinations
|
|
event_subscriptions
|
|
event_sources
|
|
ip_policies
|
|
ip_policy_rules
|
|
ip_restrictions
|
|
reserved_addrs
|
|
reserved_domains
|
|
secrets
|
|
service_users
|
|
ssh_certificate_authorities
|
|
ssh_credentials
|
|
ssh_host_certificates
|
|
ssh_user_certificates
|
|
tls_certificates
|
|
tunnels
|
|
vaults
|