mirror of
https://github.com/ngrok/ngrok-api-python.git
synced 2026-05-17 16:50:36 +00:00
329 lines
21 KiB
HTML
329 lines
21 KiB
HTML
<!doctype html>
|
||
<html class="no-js">
|
||
<head><meta charset="utf-8"/>
|
||
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Abuse Reports" href="abuse_reports.html" /><link rel="prev" title="Datatypes" href="datatypes.html" />
|
||
|
||
<meta name="generator" content="sphinx-3.5.4, furo 2021.04.11.beta34"/>
|
||
<title>Errors - ngrok-api documentation</title>
|
||
<link rel="stylesheet" href="_static/styles/furo.css?digest=59ab60ac09ea94ccfe6deddff6d715cce948a6fc">
|
||
<link rel="stylesheet" href="_static/pygments.css">
|
||
<link media="(prefers-color-scheme: dark)" rel="stylesheet" href="_static/pygments_dark.css">
|
||
|
||
|
||
|
||
<style>
|
||
:root {
|
||
--color-code-background: #f8f8f8;
|
||
--color-code-foreground: black;
|
||
|
||
}
|
||
@media (prefers-color-scheme: dark) {
|
||
:root {
|
||
--color-code-background: #202020;
|
||
--color-code-foreground: #d0d0d0;
|
||
|
||
}
|
||
}
|
||
|
||
/* For allowing end-user-specific overrides */
|
||
.override-light {
|
||
--color-code-background: #f8f8f8;
|
||
--color-code-foreground: black;
|
||
|
||
}
|
||
.override-dark {
|
||
--color-code-background: #202020;
|
||
--color-code-foreground: #d0d0d0;
|
||
|
||
}
|
||
</style><link rel="stylesheet" href="_static/styles/furo-extensions.css?digest=d391b54134226e4196576da3bdb6dddb7e05ba2b"></head>
|
||
<body dir="">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
||
<symbol id="svg-toc" viewBox="0 0 24 24">
|
||
<title>Contents</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||
stroke-width="1.5" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
|
||
<path stroke="none" d="M0 0h24v24H0z"/>
|
||
<line x1="4" y1="6" x2="20" y2="6" />
|
||
<line x1="10" y1="12" x2="20" y2="12" />
|
||
<line x1="6" y1="18" x2="20" y2="18" />
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-menu" viewBox="0 0 24 24">
|
||
<title>Menu</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
||
class="feather feather-menu">
|
||
<line x1="3" y1="12" x2="21" y2="12"></line>
|
||
<line x1="3" y1="6" x2="21" y2="6"></line>
|
||
<line x1="3" y1="18" x2="21" y2="18"></line>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
|
||
<title>Expand</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
||
class="feather feather-chevron-right">
|
||
<polyline points="9 18 15 12 9 6"></polyline>
|
||
</svg>
|
||
</symbol>
|
||
</svg>
|
||
|
||
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
|
||
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
|
||
<label class="overlay sidebar-overlay" for="__navigation"></label>
|
||
<label class="overlay toc-overlay" for="__toc"></label>
|
||
|
||
|
||
|
||
<div class="page">
|
||
<header class="mobile-header">
|
||
<div class="header-left">
|
||
<label class="nav-overlay-icon" for="__navigation">
|
||
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
|
||
</label>
|
||
</div>
|
||
<div class="header-center">
|
||
<a href="index.html"><div class="brand">ngrok-api documentation</div></a>
|
||
</div>
|
||
<div class="header-right">
|
||
<label class="toc-overlay-icon toc-header-icon" for="__toc">
|
||
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
|
||
</label>
|
||
</div>
|
||
</header>
|
||
<aside class="sidebar-drawer">
|
||
<div class="sidebar-container">
|
||
|
||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||
|
||
|
||
<span class="sidebar-brand-text">ngrok-api documentation</span>
|
||
|
||
</a><form class="sidebar-search-container" method="get" action="search.html">
|
||
<input class="sidebar-search" placeholder=Search name="q">
|
||
<input type="hidden" name="check_keywords" value="yes">
|
||
<input type="hidden" name="area" value="default">
|
||
</form><div class="sidebar-scroll"><div class="sidebar-tree">
|
||
<p class="caption"><span class="caption-text">API</span></p>
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="client.html">Client</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="datatypes.html">Datatypes</a></li>
|
||
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Errors</a></li>
|
||
</ul>
|
||
<p class="caption"><span class="caption-text">Services</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="abuse_reports.html">Abuse Reports</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="agent_ingresses.html">Agent Ingresses</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="api_keys.html">API Keys</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="failover_backends.html">Failover Backends</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="http_response_backends.html">HTTP Response Backends</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tunnel_group_backends.html">Tunnel Group Backends</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="weighted_backends.html">Weighted Backends</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="certificate_authorities.html">Certificate Authorities</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="credentials.html">Tunnel Credentials</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edges_https_routes.html">HTTPS Edge Routes</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edges_https.html">HTTPS Edges</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="https_edge_mutual_tls_module.html">HTTPS Edge Mutual TLS Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="https_edge_tls_termination_module.html">HTTPS Edge TLS Termination Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_backend_module.html">HTTPS Edge Route Backend Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_ip_restriction_module.html">HTTPS Edge Route IP Restriction Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_request_headers_module.html">HTTPS Edge Route Request Headers Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_response_headers_module.html">HTTPS Edge Route Response Headers Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_compression_module.html">HTTPS Edge Route Compression Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_circuit_breaker_module.html">HTTPS Edge Route Circuit Breaker Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_webhook_verification_module.html">HTTPS Edge Route Webhook Verification Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_o_auth_module.html">HTTPS Edge Route OAuth Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_saml_module.html">HTTPS Edge Route SAML Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_oidc_module.html">HTTPS Edge Route OIDC Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edge_route_websocket_tcp_converter_module.html">HTTPS Edge Route Websocket TCP Converter Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edges_tcp.html">TCP Edges</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tcp_edge_backend_module.html">TCP Edge Backend Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tcp_edge_ip_restriction_module.html">TCP Edge IP Restriction Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="edges_tls.html">TLS Edges</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tls_edge_backend_module.html">TLS Edge Backend Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tls_edge_ip_restriction_module.html">TLS Edge IP Restriction Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tls_edge_mutual_tls_module.html">TLS Edge Mutual TLS Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tls_edge_tls_termination_module.html">TLS Edge TLS Termination Module</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="endpoints.html">Endpoints</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="event_destinations.html">Event Destinations</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="event_subscriptions.html">Event Subscriptions</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="event_sources.html">Event Sources</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ip_policies.html">IP Policies</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ip_policy_rules.html">IP Policy Rules</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ip_restrictions.html">IP Restrictions</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="reserved_addrs.html">Reserved Addresses</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="reserved_domains.html">Reserved Domains</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ssh_certificate_authorities.html">SSH Certificate Authorities</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ssh_credentials.html">SSH Credentials</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ssh_host_certificates.html">SSH Host Certificates</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ssh_user_certificates.html">SSH User Certificates</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tls_certificates.html">TLS Certificates</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tunnel_sessions.html">Tunnel Sessions</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="tunnels.html">Tunnels</a></li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</aside>
|
||
<main class="main">
|
||
<div class="content">
|
||
<article role="main">
|
||
<label class="toc-overlay-icon toc-content-icon" for="__toc">
|
||
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
|
||
</label>
|
||
<div class="section" id="errors">
|
||
<span id="id1"></span><h1>Errors<a class="headerlink" href="#errors" title="Permalink to this headline">¶</a></h1>
|
||
<p>When any method invoked against the ngrok API returns an error, a Exception of
|
||
<a class="reference internal" href="#ngrok.Error" title="ngrok.Error"><code class="xref py py-class docutils literal notranslate"><span class="pre">ngrok.Error</span></code></a> will be raised.</p>
|
||
<p>The exception includes details that will allow you to robustly handle any error
|
||
returned by the API. The <code class="xref py py-attr docutils literal notranslate"><span class="pre">ngrok.Error.error_code</span></code> field allows you to
|
||
handle any error in the ngrok system. Consult our <a class="reference external" href="https://ngrok.com/docs/errors">API Errors Documentation</a> for the list of error codes the API may
|
||
return.</p>
|
||
<div class="section" id="handling-errors">
|
||
<h2>Handling Errors<a class="headerlink" href="#handling-errors" title="Permalink to this headline">¶</a></h2>
|
||
<p>If the API returns an unexpected 404, a <a class="reference internal" href="#ngrok.NotFoundError" title="ngrok.NotFoundError"><code class="xref py py-class docutils literal notranslate"><span class="pre">ngrok.NotFoundError</span></code></a> will be
|
||
raised. Ensure that you check for it first because it is a subclass of <a class="reference internal" href="#ngrok.Error" title="ngrok.Error"><code class="xref py py-class docutils literal notranslate"><span class="pre">ngrok.Error</span></code></a>.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">try</span><span class="p">:</span>
|
||
<span class="n">client</span><span class="o">.</span><span class="n">ip_policies</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="nb">id</span><span class="p">)</span>
|
||
<span class="k">except</span> <span class="n">ngrok</span><span class="o">.</span><span class="n">NotFoundError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||
<span class="n">client</span><span class="o">.</span><span class="n">ip_policies</span><span class="o">.</span><span class="n">create</span><span class="p">()</span>
|
||
<span class="k">except</span> <span class="n">ngrok</span><span class="o">.</span><span class="n">Error</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||
<span class="c1"># something else happened</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Other validation errors are best distinguished by their error code. Consult our
|
||
documentation for the <a class="reference external" href="https://ngrok.com/docs/errors">list of all ngrok error codes</a>.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">try</span><span class="p">:</span>
|
||
<span class="n">client</span><span class="o">.</span><span class="n">edges</span><span class="o">.</span><span class="n">https</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">hostports</span><span class="o">=</span><span class="p">[</span><span class="s2">"url-without-port.ngrok.io"</span><span class="p">])</span>
|
||
<span class="k">except</span> <span class="n">ngrok</span><span class="o">.</span><span class="n">Error</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||
<span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">error_code</span> <span class="o">==</span> <span class="s2">"ERR_NGROK_7104"</span><span class="p">:</span>
|
||
<span class="c1"># handle a specific condition</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="k">raise</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If the ngrok API fails with an undefined response or there is some kind of
|
||
network error, there are no guarantees about the type of exception thrown
|
||
at that point it is best to use a naked <code class="docutils literal notranslate"><span class="pre">except</span></code> block or to catch a <code class="docutils literal notranslate"><span class="pre">RuntimeError</span></code>.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">try</span><span class="p">:</span>
|
||
<span class="n">client</span><span class="o">.</span><span class="n">ip_policies</span><span class="o">.</span><span class="n">create</span><span class="p">()</span>
|
||
<span class="k">except</span> <span class="ne">RuntimeError</span><span class="p">:</span>
|
||
<span class="c1"># an unexpected network error that you could retry</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="module-ngrok">
|
||
<span id="exception-classes"></span><h2>Exception Classes<a class="headerlink" href="#module-ngrok" title="Permalink to this headline">¶</a></h2>
|
||
<dl class="py exception">
|
||
<dt id="ngrok.Error">
|
||
<em class="property"><span class="pre">exception</span> </em><code class="sig-prename descclassname"><span class="pre">ngrok.</span></code><code class="sig-name descname"><span class="pre">Error</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error_code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">http_status_code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">details</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ngrok/error.html#Error"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ngrok.Error" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Raised by failed ngrok API operations.</p>
|
||
<p>This class encapsulates details about the error to make it simple for callers
|
||
to introspect the error and take action on it.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>error_code</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Optional</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>]) – The unique ngrok error code indicating why the operation failed.</p></li>
|
||
<li><p><strong>message</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – Human-readable string explaining the error.</p></li>
|
||
<li><p><strong>http_status_code</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – HTTP status code returned by the server.</p></li>
|
||
<li><p><strong>details</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code>) – Arbitrary additional details about the error.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="py method">
|
||
<dt id="ngrok.Error.operation_id">
|
||
<em class="property"><span class="pre">property</span> </em><code class="sig-name descname"><span class="pre">operation_id</span></code><a class="headerlink" href="#ngrok.Error.operation_id" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>OperationID returns the unique trace ID assigned by ngrok to this API
|
||
request.</p>
|
||
</dd></dl>
|
||
</dd></dl>
|
||
<dl class="py exception">
|
||
<dt id="ngrok.NotFoundError">
|
||
<em class="property"><span class="pre">exception</span> </em><code class="sig-prename descclassname"><span class="pre">ngrok.</span></code><code class="sig-name descname"><span class="pre">NotFoundError</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error_code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">http_status_code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">details</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ngrok/error.html#NotFoundError"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ngrok.NotFoundError" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Raised if the http_status_code of an API operation is 404.
|
||
This is a separate class to make this common condition easier to handle.</p>
|
||
</dd></dl>
|
||
</div>
|
||
</div>
|
||
|
||
</article>
|
||
<footer>
|
||
|
||
<div class="related-pages">
|
||
<a class="next-page" href="abuse_reports.html">
|
||
<div class="page-info">
|
||
<div class="context">
|
||
<span>Next</span>
|
||
</div>
|
||
<div class="title">Abuse Reports</div>
|
||
</div>
|
||
<svg><use href="#svg-arrow-right"></use></svg>
|
||
</a>
|
||
<a class="prev-page" href="datatypes.html">
|
||
<svg><use href="#svg-arrow-right"></use></svg>
|
||
<div class="page-info">
|
||
<div class="context">
|
||
<span>Previous</span>
|
||
</div>
|
||
|
||
<div class="title">Datatypes</div>
|
||
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
<div class="related-information">
|
||
Copyright © 1980, ngrok Inc.
|
||
|
|
||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a>
|
||
and
|
||
<a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
|
||
<a href="https://github.com/pradyunsg/furo">Furo theme</a>.
|
||
|
|
||
<a class="muted-link" href="_sources/errors.rst.txt"
|
||
rel="nofollow">
|
||
Show Source
|
||
</a>
|
||
</div>
|
||
|
||
</footer>
|
||
</div>
|
||
<aside class="toc-drawer">
|
||
|
||
|
||
<div class="toc-sticky toc-scroll">
|
||
<div class="toc-title-container">
|
||
<span class="toc-title">
|
||
Contents
|
||
</span>
|
||
</div>
|
||
<div class="toc-tree-container">
|
||
<div class="toc-tree">
|
||
<ul>
|
||
<li><a class="reference internal" href="#">Errors</a><ul>
|
||
<li><a class="reference internal" href="#handling-errors">Handling Errors</a></li>
|
||
<li><a class="reference internal" href="#module-ngrok">Exception Classes</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</aside>
|
||
</main>
|
||
</div>
|
||
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||
<script src="_static/jquery.js"></script>
|
||
<script src="_static/underscore.js"></script>
|
||
<script src="_static/doctools.js"></script>
|
||
<script src="_static/scripts/main.js?digest=e931d09b2a40c1bb82b542effe772014573baf67"></script></body>
|
||
</html> |