diff --git a/.tox/dist/ngrok-api-0.0.0.zip b/.tox/dist/ngrok-api-0.0.0.zip
index 06f8e54..015964e 100644
Binary files a/.tox/dist/ngrok-api-0.0.0.zip and b/.tox/dist/ngrok-api-0.0.0.zip differ
diff --git a/.tox/log/GLOB-0.log b/.tox/log/GLOB-0.log
index 70db7ca..0ed6eec 100644
--- a/.tox/log/GLOB-0.log
+++ b/.tox/log/GLOB-0.log
@@ -1,6 +1,6 @@
action: GLOB, msg: packaging
-cwd: /var/lib/buildkite-agent-4/builds/ip-172-31-53-232-us-west-2-compute-internal-4-1/ngrok/api-client-prs/.cache/ngrok-api-python
-cmd: /var/lib/buildkite-agent-4/builds/ip-172-31-53-232-us-west-2-compute-internal-4-1/ngrok/api-client-prs/.cache/ngrok-api-python/venv/bin/python setup.py sdist --formats=zip --dist-dir .tox/dist
+cwd: /var/lib/buildkite-agent-9/builds/ip-172-31-29-111-us-west-2-compute-internal-9-1/ngrok/api-client-prs/.cache/ngrok-api-python
+cmd: /var/lib/buildkite-agent-9/builds/ip-172-31-29-111-us-west-2-compute-internal-9-1/ngrok/api-client-prs/.cache/ngrok-api-python/venv/bin/python setup.py sdist --formats=zip --dist-dir .tox/dist
running sdist
running egg_info
writing ngrok_api.egg-info/PKG-INFO
@@ -37,27 +37,27 @@ copying tests/test_ngrok.py -> ngrok-api-0.0.0/tests
Writing ngrok-api-0.0.0/setup.cfg
creating '.tox/dist/ngrok-api-0.0.0.zip' and adding 'ngrok-api-0.0.0' to it
adding 'ngrok-api-0.0.0'
-adding 'ngrok-api-0.0.0/tests'
-adding 'ngrok-api-0.0.0/ngrok'
adding 'ngrok-api-0.0.0/ngrok_api.egg-info'
-adding 'ngrok-api-0.0.0/README.md'
-adding 'ngrok-api-0.0.0/pyproject.toml'
-adding 'ngrok-api-0.0.0/setup.py'
+adding 'ngrok-api-0.0.0/ngrok'
+adding 'ngrok-api-0.0.0/tests'
adding 'ngrok-api-0.0.0/setup.cfg'
-adding 'ngrok-api-0.0.0/LICENSE'
adding 'ngrok-api-0.0.0/PKG-INFO'
-adding 'ngrok-api-0.0.0/tests/test_ngrok.py'
-adding 'ngrok-api-0.0.0/ngrok/utils.py'
-adding 'ngrok-api-0.0.0/ngrok/client.py'
-adding 'ngrok-api-0.0.0/ngrok/http_client.py'
-adding 'ngrok-api-0.0.0/ngrok/datatypes.py'
-adding 'ngrok-api-0.0.0/ngrok/iterator.py'
-adding 'ngrok-api-0.0.0/ngrok/__init__.py'
-adding 'ngrok-api-0.0.0/ngrok/services.py'
-adding 'ngrok-api-0.0.0/ngrok/error.py'
-adding 'ngrok-api-0.0.0/ngrok_api.egg-info/SOURCES.txt'
-adding 'ngrok-api-0.0.0/ngrok_api.egg-info/requires.txt'
+adding 'ngrok-api-0.0.0/pyproject.toml'
+adding 'ngrok-api-0.0.0/README.md'
+adding 'ngrok-api-0.0.0/LICENSE'
+adding 'ngrok-api-0.0.0/setup.py'
adding 'ngrok-api-0.0.0/ngrok_api.egg-info/dependency_links.txt'
-adding 'ngrok-api-0.0.0/ngrok_api.egg-info/top_level.txt'
adding 'ngrok-api-0.0.0/ngrok_api.egg-info/PKG-INFO'
+adding 'ngrok-api-0.0.0/ngrok_api.egg-info/top_level.txt'
+adding 'ngrok-api-0.0.0/ngrok_api.egg-info/requires.txt'
+adding 'ngrok-api-0.0.0/ngrok_api.egg-info/SOURCES.txt'
+adding 'ngrok-api-0.0.0/ngrok/client.py'
+adding 'ngrok-api-0.0.0/ngrok/utils.py'
+adding 'ngrok-api-0.0.0/ngrok/datatypes.py'
+adding 'ngrok-api-0.0.0/ngrok/http_client.py'
+adding 'ngrok-api-0.0.0/ngrok/services.py'
+adding 'ngrok-api-0.0.0/ngrok/__init__.py'
+adding 'ngrok-api-0.0.0/ngrok/iterator.py'
+adding 'ngrok-api-0.0.0/ngrok/error.py'
+adding 'ngrok-api-0.0.0/tests/test_ngrok.py'
removing 'ngrok-api-0.0.0' (and everything under it)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index caf55e1..5779dbf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,9 +1,12 @@
+## 0.11.0
+
+* Added support for the Bot User API. The Bot User API allows you to manage the bots that are registered to your ngrok account. You can automate the creation, management, and deletion of bot users in your account.
+
## 0.10.0
ENHANCEMENTS:
* Added `owner_id` field to the `api_key`, `credential`, and `ssh_credential` resources. If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot.
* Added `failover_backend`, `http_response_backend`, and `tunnel_group_backend` resources. 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.
-
diff --git a/doc/source/bot_users.rst b/doc/source/bot_users.rst
new file mode 100644
index 0000000..85ee653
--- /dev/null
+++ b/doc/source/bot_users.rst
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+Bot Users
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.bot_users` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: BotUsersClient
+ :undoc-members: BotUsersClient
diff --git a/doc/source/edge_route_policy_module.rst b/doc/source/edge_route_policy_module.rst
new file mode 100644
index 0000000..5b8222f
--- /dev/null
+++ b/doc/source/edge_route_policy_module.rst
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+HTTPS Edge Route Policies Module
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.edge_route_policy_module` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: EdgeRoutePolicyModuleClient
+ :undoc-members: EdgeRoutePolicyModuleClient
diff --git a/doc/source/edge_route_user_agent_filter_module.rst b/doc/source/edge_route_user_agent_filter_module.rst
new file mode 100644
index 0000000..af22ce2
--- /dev/null
+++ b/doc/source/edge_route_user_agent_filter_module.rst
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+HTTPS Edge Route User Agent Filter Module
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.edge_route_user_agent_filter_module` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: EdgeRouteUserAgentFilterModuleClient
+ :undoc-members: EdgeRouteUserAgentFilterModuleClient
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 1fce46a..e53f0af 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -131,8 +131,10 @@ API Reference
tunnel_sessions
failover_backends
http_response_backends
+ static_backends
tunnel_group_backends
weighted_backends
+ bot_users
certificate_authorities
credentials
edges_https_routes
@@ -150,14 +152,18 @@ API Reference
edge_route_saml_module
edge_route_oidc_module
edge_route_websocket_tcp_converter_module
+ edge_route_user_agent_filter_module
+ edge_route_policy_module
edges_tcp
tcp_edge_backend_module
tcp_edge_ip_restriction_module
+ tcp_edge_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_policy_module
endpoints
event_destinations
event_subscriptions
diff --git a/doc/source/static_backends.rst b/doc/source/static_backends.rst
new file mode 100644
index 0000000..dfddbd5
--- /dev/null
+++ b/doc/source/static_backends.rst
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+Static Backends
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.static_backends` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: StaticBackendsClient
+ :undoc-members: StaticBackendsClient
diff --git a/doc/source/tcp_edge_policy_module.rst b/doc/source/tcp_edge_policy_module.rst
new file mode 100644
index 0000000..6a6a6c6
--- /dev/null
+++ b/doc/source/tcp_edge_policy_module.rst
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+TCP Edge Policy Module
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.tcp_edge_policy_module` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: TCPEdgePolicyModuleClient
+ :undoc-members: TCPEdgePolicyModuleClient
diff --git a/doc/source/tls_edge_policy_module.rst b/doc/source/tls_edge_policy_module.rst
new file mode 100644
index 0000000..5f19264
--- /dev/null
+++ b/doc/source/tls_edge_policy_module.rst
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+TLS Edge Policy Module
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.tls_edge_policy_module` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: TLSEdgePolicyModuleClient
+ :undoc-members: TLSEdgePolicyModuleClient
diff --git a/docs/_modules/index.html b/docs/_modules/index.html
index 55c1940..e961ad4 100644
--- a/docs/_modules/index.html
+++ b/docs/_modules/index.html
@@ -169,8 +169,10 @@
+
+ @property
+ defid(self)->str:
+"""unique API key resource identifier"""
+ returnself._props["id"]
+
+ @property
+ defuri(self)->str:
+"""URI to the API resource of this bot user"""
+ returnself._props["uri"]
+
+ @property
+ defname(self)->str:
+"""human-readable name used to identify the bot"""
+ returnself._props["name"]
+
+ @property
+ defactive(self)->bool:
+"""whether or not the bot is active"""
+ returnself._props["active"]
+
+ @property
+ defcreated_at(self)->datetime:
+"""timestamp when the api key was created, RFC 3339 format"""
+ returnself._props["created_at"]
+
+
+
[docs]classBotUserList(object):
+ def__init__(self,client,props):
+ self._client=client
+ self._props=props
+ self._props["bot_users"]=(
+ [BotUser(client,x)forxinprops["bot_users"]]
+ ifprops.get("bot_users")isnotNone
+ else[]
+ )
+
+ def__eq__(self,other):
+ returnself._props==other._props
+
+ def__str__(self):
+ if"id"inself._props:
+ return"<BotUserList {}{}>".format(self.id,repr(self._props))
+ else:
+ return"<BotUserList {}>".format(repr(self._props))
+
+ def__iter__(self):
+ returnPagedIterator(self._client,self,"bot_users")
+
+ @property
+ defbot_users(self)->Sequence[BotUser]:
+"""the list of all bot users on this account"""
+ returnself._props["bot_users"]
+
+ @property
+ defuri(self)->str:
+"""URI of the bot users list API resource"""
+ returnself._props["uri"]
+
+ @property
+ defnext_page_uri(self)->str:
+"""URI of the next page, or null if there is no next page"""
+ returnself._props["next_page_uri"]
+
+
[docs]classCertificateAuthority(object):def__init__(self,client,props):self._client=client
@@ -1886,7 +2123,7 @@
@propertydefprovider(self)->str:
-"""a string indicating which webhook provider will be sending webhooks to this endpoint. Value must be one of the supported providers defined at `https://ngrok.com/docs/cloud-edge/modules/webhook <https://ngrok.com/docs/cloud-edge/modules/webhook>`_"""
+"""a string indicating which webhook provider will be sending webhooks to this endpoint. Value must be one of the supported providers defined at `https://ngrok.com/docs/cloud-edge/modules/webhook-verification <https://ngrok.com/docs/cloud-edge/modules/webhook-verification>`_"""returnself._props["provider"]@property
@@ -2937,6 +3174,133 @@
returnself._props["enabled"]
+ returnself._props["tls_termination"]
+
+ @property
+ defpolicy(self)->EndpointPolicy:
+"""the traffic policy associated with this edge or null"""
+ returnself._props["policy"]
[docs]classEndpoint(object):
@@ -4706,12 +5117,12 @@
@propertydefregion(self)->str:
-"""reserve the domain in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa)"""
+"""deprecated: With the launch of the ngrok Global Network domains traffic is now handled globally. This field applied only to endpoints. Note that agents may still connect to specific regions. Optional, null by default. (au, eu, ap, us, jp, in, sa)"""returnself._props["region"]@propertydefcname_target(self)->str:
-"""DNS CNAME target for a custom hostname, or null if the reserved domain is a subdomain of *.ngrok.io"""
+"""DNS CNAME target for a custom hostname, or null if the reserved domain is a subdomain of an ngrok owned domain (e.g. *.ngrok.app)"""returnself._props["cname_target"]@property
diff --git a/docs/_modules/ngrok/error.html b/docs/_modules/ngrok/error.html
index c63d798..ac58a95 100644
--- a/docs/_modules/ngrok/error.html
+++ b/docs/_modules/ngrok/error.html
@@ -169,8 +169,10 @@
[docs]classStaticBackendsClient(object):
+"""A static backend sends traffic to a TCP address (hostname and port) that
+ is reachable on the public internet."""
+
+ def__init__(self,client):
+ self._client=client
+
+
[docs]defcreate(
+ self,
+ description:str="",
+ metadata:str="",
+ address:str="",
+ tls:StaticBackendTLS=None,
+ )->StaticBackend:
+"""Create a new static backend
+
+ :param description: human-readable description of this backend. Optional
+ :param metadata: arbitrary user-defined machine-readable data of this backend. Optional
+ :param address: the address to forward to
+ :param tls: tls configuration to use
+
+ https://ngrok.com/docs/api#api-static-backends-create
+ """
+ path="/backends/static"
+ body_arg=dict(
+ description=description,
+ metadata=metadata,
+ address=address,
+ tls=extract_props(tls),
+ )
+ result=self._client.http_client.post(path,body_arg)
+ returnStaticBackend(self._client,result)
[docs]defupdate(
+ self,
+ id:str,
+ description:str=None,
+ metadata:str=None,
+ address:str="",
+ tls:StaticBackendTLS=None,
+ )->StaticBackend:
+"""Update static 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 address: the address to forward to
+ :param tls: tls configuration to use
+
+ https://ngrok.com/docs/api#api-static-backends-update
+ """
+ path="/backends/static/{id}"
+ path=path.format(
+ id=id,
+ )
+ body_arg=dict(
+ description=description,
+ metadata=metadata,
+ address=address,
+ tls=extract_props(tls),
+ )
+ result=self._client.http_client.patch(path,body_arg)
+ returnStaticBackend(self._client,result)
+
+
[docs]classTunnelGroupBackendsClient(object):"""A Tunnel Group Backend balances traffic among all online tunnels that match a label selector."""
@@ -1219,6 +1345,111 @@
returnWeightedBackend(self._client,result)
[docs]defcreate(
+ self,
+ name:str="",
+ active:bool=None,
+ )->BotUser:
+"""Create a new bot user
+
+ :param name: human-readable name used to identify the bot
+ :param active: whether or not the bot is active
+
+ https://ngrok.com/docs/api#api-bot-users-create
+ """
+ path="/bot_users"
+ body_arg=dict(
+ name=name,
+ active=active,
+ )
+ result=self._client.http_client.post(path,body_arg)
+ returnBotUser(self._client,result)
+
+
[docs]defdelete(
+ self,
+ id:str,
+ ):
+"""Delete a bot user by ID
+
+ :param id: a resource identifier
+
+ https://ngrok.com/docs/api#api-bot-users-delete
+ """
+ path="/bot_users/{id}"
+ path=path.format(
+ id=id,
+ )
+ body_arg=None
+ self._client.http_client.delete(path,body_arg)
+
+
[docs]defget(
+ self,
+ id:str,
+ )->BotUser:
+"""Get the details of a Bot User by ID.
+
+ :param id: a resource identifier
+
+ https://ngrok.com/docs/api#api-bot-users-get
+ """
+ path="/bot_users/{id}"
+ path=path.format(
+ id=id,
+ )
+ body_arg=None
+ result=self._client.http_client.get(path,body_arg)
+ returnBotUser(self._client,result)
[docs]defupdate(
+ self,
+ id:str,
+ name:str=None,
+ active:bool=None,
+ )->BotUser:
+"""Update attributes of a bot user by ID.
+
+ :param id:
+ :param name: human-readable name used to identify the bot
+ :param active: whether or not the bot is active
+
+ https://ngrok.com/docs/api#api-bot-users-update
+ """
+ path="/bot_users/{id}"
+ path=path.format(
+ id=id,
+ )
+ body_arg=dict(
+ name=name,
+ active=active,
+ )
+ result=self._client.http_client.patch(path,body_arg)
+ returnBotUser(self._client,result)
+
+
[docs]classCertificateAuthoritiesClient(object):"""Certificate Authorities are x509 certificates that are used to sign other x509 certificates. Attach a Certificate Authority to the Mutual TLS module
@@ -1474,6 +1705,8 @@
saml:EndpointSAMLMutate=None,oidc:EndpointOIDC=None,websocket_tcp_converter:EndpointWebsocketTCPConverter=None,
+ user_agent_filter:EndpointUserAgentFilter=None,
+ policy:EndpointPolicy=None,)->HTTPSEdgeRoute:"""Create an HTTPS Edge Route
@@ -1493,6 +1726,8 @@
: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``
+ :param user_agent_filter:
+ :param policy: the traffic policy associated with this edge or null https://ngrok.com/docs/api#api-edges-https-routes-create """
@@ -1516,6 +1751,8 @@
saml=extract_props(saml),oidc=extract_props(oidc),websocket_tcp_converter=extract_props(websocket_tcp_converter),
+ user_agent_filter=extract_props(user_agent_filter),
+ policy=extract_props(policy),)result=self._client.http_client.post(path,body_arg)returnHTTPSEdgeRoute(self._client,result)
@@ -1560,6 +1797,8 @@
saml:EndpointSAMLMutate=None,oidc:EndpointOIDC=None,websocket_tcp_converter:EndpointWebsocketTCPConverter=None,
+ user_agent_filter:EndpointUserAgentFilter=None,
+ policy:EndpointPolicy=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.
@@ -1580,6 +1819,8 @@
: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``
+ :param user_agent_filter:
+ :param policy: the traffic policy associated with this edge or null https://ngrok.com/docs/api#api-edges-https-routes-update """
@@ -1604,6 +1845,8 @@
saml=extract_props(saml),oidc=extract_props(oidc),websocket_tcp_converter=extract_props(websocket_tcp_converter),
+ user_agent_filter=extract_props(user_agent_filter),
+ policy=extract_props(policy),)result=self._client.http_client.patch(path,body_arg)returnHTTPSEdgeRoute(self._client,result)
@@ -2631,6 +2874,144 @@
self._client.http_client.delete(path,body_arg)
+
[docs]classEdgesTCPClient(object):def__init__(self,client):self._client=client
@@ -2642,6 +3023,7 @@
hostports:Sequence[str]=None,backend:EndpointBackendMutate=None,ip_restriction:EndpointIPPolicyMutate=None,
+ policy:EndpointPolicy=None,)->TCPEdge:"""Create a TCP Edge
@@ -2650,6 +3032,7 @@
:param hostports: hostports served by this edge :param backend: edge modules :param ip_restriction:
+ :param policy: the traffic policy associated with this edge or null https://ngrok.com/docs/api#api-edges-tcp-create """
@@ -2660,6 +3043,7 @@
hostports=hostports,backend=extract_props(backend),ip_restriction=extract_props(ip_restriction),
+ policy=extract_props(policy),)result=self._client.http_client.post(path,body_arg)returnTCPEdge(self._client,result)
@@ -2710,6 +3094,7 @@
hostports:Sequence[str]=None,backend:EndpointBackendMutate=None,ip_restriction:EndpointIPPolicyMutate=None,
+ policy:EndpointPolicy=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.
@@ -2719,6 +3104,7 @@
:param hostports: hostports served by this edge :param backend: edge modules :param ip_restriction:
+ :param policy: the traffic policy associated with this edge or null https://ngrok.com/docs/api#api-edges-tcp-update """
@@ -2732,6 +3118,7 @@
hostports=hostports,backend=extract_props(backend),ip_restriction=extract_props(ip_restriction),
+ policy=extract_props(policy),)result=self._client.http_client.patch(path,body_arg)returnTCPEdge(self._client,result)
@@ -2874,6 +3261,66 @@
self._client.http_client.delete(path,body_arg)
+
[docs]classEdgesTLSClient(object):def__init__(self,client):self._client=client
@@ -2887,6 +3334,7 @@
ip_restriction:EndpointIPPolicyMutate=None,mutual_tls:EndpointMutualTLSMutate=None,tls_termination:EndpointTLSTermination=None,
+ policy:EndpointPolicy=None,)->TLSEdge:"""Create a TLS Edge
@@ -2897,6 +3345,7 @@
:param ip_restriction: :param mutual_tls: :param tls_termination:
+ :param policy: the traffic policy associated with this edge or null https://ngrok.com/docs/api#api-edges-tls-create """
@@ -2909,6 +3358,7 @@
ip_restriction=extract_props(ip_restriction),mutual_tls=extract_props(mutual_tls),tls_termination=extract_props(tls_termination),
+ policy=extract_props(policy),)result=self._client.http_client.post(path,body_arg)returnTLSEdge(self._client,result)
@@ -2961,6 +3411,7 @@
ip_restriction:EndpointIPPolicyMutate=None,mutual_tls:EndpointMutualTLSMutate=None,tls_termination:EndpointTLSTermination=None,
+ policy:EndpointPolicy=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.
@@ -2972,6 +3423,7 @@
:param ip_restriction: :param mutual_tls: :param tls_termination:
+ :param policy: the traffic policy associated with this edge or null https://ngrok.com/docs/api#api-edges-tls-update """
@@ -2987,6 +3439,7 @@
ip_restriction=extract_props(ip_restriction),mutual_tls=extract_props(mutual_tls),tls_termination=extract_props(tls_termination),
+ policy=extract_props(policy),)result=self._client.http_client.patch(path,body_arg)returnTLSEdge(self._client,result)
@@ -3249,6 +3702,66 @@
self._client.http_client.delete(path,body_arg)
+
[docs]classEndpointsClient(object):"""Endpoints provides an API for querying the endpoint objects which define what tunnel or edge is used to serve a hostport.
@@ -4127,7 +4640,7 @@
"""Create a new reserved domain. :param domain: hostname of the reserved domain
- :param region: reserve the domain in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa)
+ :param region: deprecated: With the launch of the ngrok Global Network domains traffic is now handled globally. This field applied only to endpoints. Note that agents may still connect to specific regions. Optional, null by default. (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 certificate_id: ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with ``certificate_management_policy``.
diff --git a/docs/_sources/bot_users.rst.txt b/docs/_sources/bot_users.rst.txt
new file mode 100644
index 0000000..85ee653
--- /dev/null
+++ b/docs/_sources/bot_users.rst.txt
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+Bot Users
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.bot_users` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: BotUsersClient
+ :undoc-members: BotUsersClient
diff --git a/docs/_sources/edge_route_policy_module.rst.txt b/docs/_sources/edge_route_policy_module.rst.txt
new file mode 100644
index 0000000..5b8222f
--- /dev/null
+++ b/docs/_sources/edge_route_policy_module.rst.txt
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+HTTPS Edge Route Policies Module
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.edge_route_policy_module` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: EdgeRoutePolicyModuleClient
+ :undoc-members: EdgeRoutePolicyModuleClient
diff --git a/docs/_sources/edge_route_user_agent_filter_module.rst.txt b/docs/_sources/edge_route_user_agent_filter_module.rst.txt
new file mode 100644
index 0000000..af22ce2
--- /dev/null
+++ b/docs/_sources/edge_route_user_agent_filter_module.rst.txt
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+HTTPS Edge Route User Agent Filter Module
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.edge_route_user_agent_filter_module` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: EdgeRouteUserAgentFilterModuleClient
+ :undoc-members: EdgeRouteUserAgentFilterModuleClient
diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt
index 1fce46a..e53f0af 100644
--- a/docs/_sources/index.rst.txt
+++ b/docs/_sources/index.rst.txt
@@ -131,8 +131,10 @@ API Reference
tunnel_sessions
failover_backends
http_response_backends
+ static_backends
tunnel_group_backends
weighted_backends
+ bot_users
certificate_authorities
credentials
edges_https_routes
@@ -150,14 +152,18 @@ API Reference
edge_route_saml_module
edge_route_oidc_module
edge_route_websocket_tcp_converter_module
+ edge_route_user_agent_filter_module
+ edge_route_policy_module
edges_tcp
tcp_edge_backend_module
tcp_edge_ip_restriction_module
+ tcp_edge_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_policy_module
endpoints
event_destinations
event_subscriptions
diff --git a/docs/_sources/static_backends.rst.txt b/docs/_sources/static_backends.rst.txt
new file mode 100644
index 0000000..dfddbd5
--- /dev/null
+++ b/docs/_sources/static_backends.rst.txt
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+Static Backends
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.static_backends` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: StaticBackendsClient
+ :undoc-members: StaticBackendsClient
diff --git a/docs/_sources/tcp_edge_policy_module.rst.txt b/docs/_sources/tcp_edge_policy_module.rst.txt
new file mode 100644
index 0000000..6a6a6c6
--- /dev/null
+++ b/docs/_sources/tcp_edge_policy_module.rst.txt
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+TCP Edge Policy Module
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.tcp_edge_policy_module` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: TCPEdgePolicyModuleClient
+ :undoc-members: TCPEdgePolicyModuleClient
diff --git a/docs/_sources/tls_edge_policy_module.rst.txt b/docs/_sources/tls_edge_policy_module.rst.txt
new file mode 100644
index 0000000..5f19264
--- /dev/null
+++ b/docs/_sources/tls_edge_policy_module.rst.txt
@@ -0,0 +1,12 @@
+..
+ Code generated for API Clients. DO NOT EDIT.
+
+TLS Edge Policy Module
+=====================================
+
+Do not construct this object directly, instead access the
+:attr:`~ngrok.Client.tls_edge_policy_module` property of an :class:`ngrok.Client` object.
+
+.. automodule:: ngrok.services
+ :members: TLSEdgePolicyModuleClient
+ :undoc-members: TLSEdgePolicyModuleClient
diff --git a/docs/abuse_reports.html b/docs/abuse_reports.html
index 9012b5a..7aa1221 100644
--- a/docs/abuse_reports.html
+++ b/docs/abuse_reports.html
@@ -170,8 +170,10 @@
description (str) – human-readable description of the use of this Agent Ingress. optional, max 255 bytes.
metadata (str) – arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes
domain (str) – the domain that you own to be used as the base domain name to generate regional agent ingress domains.
-
certificate_management_policy (Optional[AgentIngressCertPolicy, None]) – configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional.
+
certificate_management_policy (AgentIngressCertPolicy) – configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional.
@@ -311,8 +317,8 @@
Parameters:
-
before_id (Optional[str, None]) –
-
limit (Optional[str, None]) –
+
before_id (str) –
+
limit (str) –
@@ -332,9 +338,9 @@
Parameters:
id (str) –
-
description (Optional[str, None]) – human-readable description of the use of this Agent Ingress. optional, max 255 bytes.
-
metadata (Optional[str, None]) – arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes
-
certificate_management_policy (Optional[AgentIngressCertPolicy, None]) – configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional.
+
description (str) – human-readable description of the use of this Agent Ingress. optional, max 255 bytes.
+
metadata (str) – arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes
+
certificate_management_policy (AgentIngressCertPolicy) – configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional.
description (str) – human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
metadata (str) – arbitrary user-defined data of this API key. optional, max 4096 bytes
-
owner_id (Optional[str, None]) – If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot.
+
owner_id (str) – If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot.
@@ -315,8 +321,8 @@ ngrok.com dashboard.
Parameters:
-
before_id (Optional[str, None]) –
-
limit (Optional[str, None]) –
+
before_id (str) –
+
limit (str) –
@@ -336,8 +342,8 @@ ngrok.com dashboard.
Parameters:
id (str) –
-
description (Optional[str, None]) – human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
-
metadata (Optional[str, None]) – arbitrary user-defined data of this API key. optional, max 4096 bytes
+
description (str) – human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
+
metadata (str) – arbitrary user-defined data of this API key. optional, max 4096 bytes
description (str) – human-readable description of who or what will use the credential to authenticate. Optional, max 255 bytes.
metadata (str) – arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes.
acl (Sequence[str]) – optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the bind rule. The bind rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of bind:*.example.com which will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of bind:*=example which will allow x=example, y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly permit all actions.
-
owner_id (Optional[str, None]) – If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot.
+
owner_id (str) – If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot.
@@ -315,8 +321,8 @@ configuration file with the
Parameters:
-
before_id (Optional[str, None]) –
-
limit (Optional[str, None]) –
+
before_id (str) –
+
limit (str) –
@@ -336,9 +342,9 @@ configuration file with the Parameters:
id (str) –
-
description (Optional[str, None]) – human-readable description of who or what will use the credential to authenticate. Optional, max 255 bytes.
-
metadata (Optional[str, None]) – arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes.
-
acl (Optional[Sequence[str], None]) – optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the bind rule. The bind rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of bind:*.example.com which will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of bind:*=example which will allow x=example, y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly permit all actions.
+
description (str) – human-readable description of who or what will use the credential to authenticate. Optional, max 255 bytes.
+
metadata (str) – arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes.
+
acl (Sequence[str]) – optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the bind rule. The bind rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of bind:*.example.com which will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of bind:*=example which will allow x=example, y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly permit all actions.
reserve the domain in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa)
+
deprecated: With the launch of the ngrok Global Network domains traffic is now handled globally. This field applied only to endpoints. Note that agents may still connect to specific regions. Optional, null by default. (au, eu, ap, us, jp, in, sa)