From 2a9264ef8a253ffc2d2d706a6cccd8a6cc9eaa69 Mon Sep 17 00:00:00 2001 From: ngrok release bot Date: Wed, 16 Aug 2023 16:39:20 +0000 Subject: [PATCH] Update generated files --- .gitignore | 2 + .tox/dist/ngrok-api-0.0.0.zip | Bin 50513 -> 51329 bytes .tox/log/GLOB-0.log | 25 +- README.md | 2 + doc/Makefile | 2 + doc/make.bat | 72 ++--- doc/source/abuse_reports.rst | 3 + doc/source/agent_ingresses.rst | 3 + doc/source/api_keys.rst | 3 + doc/source/application_sessions.rst | 3 + doc/source/application_users.rst | 3 + doc/source/certificate_authorities.rst | 3 + doc/source/client.rst | 5 +- doc/source/conf.py | 2 + doc/source/credentials.rst | 3 + doc/source/datatypes.rst | 3 + doc/source/edge_route_backend_module.rst | 3 + .../edge_route_circuit_breaker_module.rst | 3 + doc/source/edge_route_compression_module.rst | 3 + .../edge_route_ip_restriction_module.rst | 3 + doc/source/edge_route_o_auth_module.rst | 3 + doc/source/edge_route_oidc_module.rst | 3 + .../edge_route_request_headers_module.rst | 3 + .../edge_route_response_headers_module.rst | 3 + doc/source/edge_route_saml_module.rst | 3 + ...edge_route_webhook_verification_module.rst | 3 + ...e_route_websocket_tcp_converter_module.rst | 3 + doc/source/edges_https.rst | 3 + doc/source/edges_https_routes.rst | 3 + doc/source/edges_tcp.rst | 3 + doc/source/edges_tls.rst | 3 + doc/source/endpoints.rst | 3 + doc/source/errors.rst | 3 + doc/source/event_destinations.rst | 3 + doc/source/event_sources.rst | 3 + doc/source/event_subscriptions.rst | 3 + doc/source/failover_backends.rst | 3 + doc/source/http_response_backends.rst | 3 + doc/source/https_edge_mutual_tls_module.rst | 3 + .../https_edge_tls_termination_module.rst | 3 + doc/source/index.rst | 5 +- doc/source/ip_policies.rst | 3 + doc/source/ip_policy_rules.rst | 3 + doc/source/ip_restrictions.rst | 3 + doc/source/reserved_addrs.rst | 3 + doc/source/reserved_domains.rst | 3 + doc/source/ssh_certificate_authorities.rst | 3 + doc/source/ssh_credentials.rst | 3 + doc/source/ssh_host_certificates.rst | 3 + doc/source/ssh_user_certificates.rst | 3 + doc/source/tcp_edge_backend_module.rst | 3 + doc/source/tcp_edge_ip_restriction_module.rst | 3 + doc/source/tls_certificates.rst | 3 + doc/source/tls_edge_backend_module.rst | 3 + doc/source/tls_edge_ip_restriction_module.rst | 3 + doc/source/tls_edge_mutual_tls_module.rst | 3 + .../tls_edge_tls_termination_module.rst | 3 + doc/source/tunnel_group_backends.rst | 3 + doc/source/tunnel_sessions.rst | 3 + doc/source/tunnels.rst | 3 + doc/source/weighted_backends.rst | 3 + docs/_modules/index.html | 2 +- docs/_modules/ngrok/client.html | 21 +- docs/_modules/ngrok/datatypes.html | 274 ++++++++++-------- docs/_modules/ngrok/error.html | 6 +- docs/_modules/ngrok/services.html | 210 +++++++------- docs/_sources/abuse_reports.rst.txt | 3 + docs/_sources/agent_ingresses.rst.txt | 3 + docs/_sources/api_keys.rst.txt | 3 + docs/_sources/application_sessions.rst.txt | 3 + docs/_sources/application_users.rst.txt | 3 + docs/_sources/certificate_authorities.rst.txt | 3 + docs/_sources/client.rst.txt | 5 +- docs/_sources/credentials.rst.txt | 3 + docs/_sources/datatypes.rst.txt | 3 + .../edge_route_backend_module.rst.txt | 3 + .../edge_route_circuit_breaker_module.rst.txt | 3 + .../edge_route_compression_module.rst.txt | 3 + .../edge_route_ip_restriction_module.rst.txt | 3 + .../_sources/edge_route_o_auth_module.rst.txt | 3 + docs/_sources/edge_route_oidc_module.rst.txt | 3 + .../edge_route_request_headers_module.rst.txt | 3 + ...edge_route_response_headers_module.rst.txt | 3 + docs/_sources/edge_route_saml_module.rst.txt | 3 + ..._route_webhook_verification_module.rst.txt | 3 + ...ute_websocket_tcp_converter_module.rst.txt | 3 + docs/_sources/edges_https.rst.txt | 3 + docs/_sources/edges_https_routes.rst.txt | 3 + docs/_sources/edges_tcp.rst.txt | 3 + docs/_sources/edges_tls.rst.txt | 3 + docs/_sources/endpoints.rst.txt | 3 + docs/_sources/errors.rst.txt | 3 + docs/_sources/event_destinations.rst.txt | 3 + docs/_sources/event_sources.rst.txt | 3 + docs/_sources/event_subscriptions.rst.txt | 3 + docs/_sources/failover_backends.rst.txt | 3 + docs/_sources/http_response_backends.rst.txt | 3 + .../https_edge_mutual_tls_module.rst.txt | 3 + .../https_edge_tls_termination_module.rst.txt | 3 + docs/_sources/index.rst.txt | 5 +- docs/_sources/ip_policies.rst.txt | 3 + docs/_sources/ip_policy_rules.rst.txt | 3 + docs/_sources/ip_restrictions.rst.txt | 3 + docs/_sources/reserved_addrs.rst.txt | 3 + docs/_sources/reserved_domains.rst.txt | 3 + .../ssh_certificate_authorities.rst.txt | 3 + docs/_sources/ssh_credentials.rst.txt | 3 + docs/_sources/ssh_host_certificates.rst.txt | 3 + docs/_sources/ssh_user_certificates.rst.txt | 3 + docs/_sources/tcp_edge_backend_module.rst.txt | 3 + .../tcp_edge_ip_restriction_module.rst.txt | 3 + docs/_sources/tls_certificates.rst.txt | 3 + docs/_sources/tls_edge_backend_module.rst.txt | 3 + .../tls_edge_ip_restriction_module.rst.txt | 3 + .../tls_edge_mutual_tls_module.rst.txt | 3 + .../tls_edge_tls_termination_module.rst.txt | 3 + docs/_sources/tunnel_group_backends.rst.txt | 3 + docs/_sources/tunnel_sessions.rst.txt | 3 + docs/_sources/tunnels.rst.txt | 3 + docs/_sources/weighted_backends.rst.txt | 3 + docs/_static/pygments.css | 7 +- docs/abuse_reports.html | 2 +- docs/agent_ingresses.html | 2 +- docs/api_keys.html | 2 +- docs/application_sessions.html | 2 +- docs/application_users.html | 8 +- docs/certificate_authorities.html | 2 +- docs/client.html | 2 +- docs/credentials.html | 2 +- docs/datatypes.html | 74 ++++- docs/edge_route_backend_module.html | 2 +- docs/edge_route_circuit_breaker_module.html | 2 +- docs/edge_route_compression_module.html | 2 +- docs/edge_route_ip_restriction_module.html | 2 +- docs/edge_route_o_auth_module.html | 2 +- docs/edge_route_oidc_module.html | 2 +- docs/edge_route_request_headers_module.html | 2 +- docs/edge_route_response_headers_module.html | 2 +- docs/edge_route_saml_module.html | 2 +- ...dge_route_webhook_verification_module.html | 2 +- ..._route_websocket_tcp_converter_module.html | 2 +- docs/edges_https.html | 2 +- docs/edges_https_routes.html | 2 +- docs/edges_tcp.html | 2 +- docs/edges_tls.html | 2 +- docs/endpoints.html | 2 +- docs/errors.html | 2 +- docs/event_destinations.html | 2 +- docs/event_sources.html | 2 +- docs/event_subscriptions.html | 2 +- docs/failover_backends.html | 8 +- docs/genindex.html | 18 +- docs/http_response_backends.html | 2 +- docs/https_edge_mutual_tls_module.html | 2 +- docs/https_edge_tls_termination_module.html | 2 +- docs/index.html | 32 +- docs/ip_policies.html | 2 +- docs/ip_policy_rules.html | 2 +- docs/ip_restrictions.html | 2 +- docs/objects.inv | Bin 6758 -> 6797 bytes docs/py-modindex.html | 2 +- docs/reserved_addrs.html | 2 +- docs/reserved_domains.html | 5 +- docs/search.html | 2 +- docs/searchindex.js | 2 +- docs/ssh_certificate_authorities.html | 2 +- docs/ssh_credentials.html | 2 +- docs/ssh_host_certificates.html | 2 +- docs/ssh_user_certificates.html | 2 +- docs/tcp_edge_backend_module.html | 2 +- docs/tcp_edge_ip_restriction_module.html | 2 +- docs/tls_certificates.html | 12 +- docs/tls_edge_backend_module.html | 2 +- docs/tls_edge_ip_restriction_module.html | 2 +- docs/tls_edge_mutual_tls_module.html | 2 +- docs/tls_edge_tls_termination_module.html | 2 +- docs/tunnel_group_backends.html | 2 +- docs/tunnel_sessions.html | 12 +- docs/tunnels.html | 8 +- docs/weighted_backends.html | 2 +- mypy.ini | 2 + ngrok/__init__.py | 2 + ngrok/client.py | 17 +- ngrok/datatypes.py | 268 ++++++++++------- ngrok/error.py | 2 + ngrok/http_client.py | 2 + ngrok/iterator.py | 3 + ngrok/services.py | 206 ++++++------- ngrok/utils.py | 2 + pyproject.toml | 2 + setup.py | 12 +- tests/__init__.py | 1 + tests/test_ngrok.py | 2 + tox.ini | 2 + 194 files changed, 1154 insertions(+), 601 deletions(-) diff --git a/.gitignore b/.gitignore index 08951f1..fe5708d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +# Code generated for API Clients. DO NOT EDIT. + doc/build .pyc .swp diff --git a/.tox/dist/ngrok-api-0.0.0.zip b/.tox/dist/ngrok-api-0.0.0.zip index 13be2b0f3aa07058e0df078dde93f1b66b6d1234..aa085645fdc969d53531d619e250f60d7aae7079 100644 GIT binary patch delta 47911 zcmZ5{V~{4W((ZV6Z0y*!ZQHhO>mA#+ZSL6Cj&0la-E&c=zMHC`x{_4?=%>@^Cz*=` z4M+fmSC9q;Lk0RzSqnx~Pk^Ta``>*79mM~YG!P^az(M@~^BlMle*w+>TY<-m38)1D z0@49bxIs^{2ZILa+OIR9`p(qV&tt?#5*ltnCYBZanNMF2P}`Ak*X~m*U#Z)m0L#R<^;WHt1Gxr8c5tR|3M=(e^39WdS`;*js{3RK@ zdk=xcnLdIbHMYGM0(FqlO+(RC4T$A(MdXJ(W9?K^ zpwu)Qty}?I9_X(uRBc%6G`0QkaZaYV7%)3?!y$2fUxu=>#>w!GFZ0=Miv32Gr>2_Q z8o8zA7i7{?R!m3-`KASnc2;do76yz-wt9VX)?tl|^LjM@9jW?;;x%4Wyl<4}&&~hP zxT%keAFkr}HZ$%!8sW4hA2fu@v0UE1Vvq>cErA4hK{DbgAu+X0%Wcxg4!$_(DO!sX z=F=YbSle_lRI)VJhS1ExrI>;$v1H_nGF;`2)O-o_B5|g%F&w)yvn;Kb)5`F6?fgwG z4~au_zQP#H>fO*Bz34`rCOKfRg#{JXh%@8pm{J z-m?t|F6QX&8?Vqj?JjsGAfd10D$5nd*p=&3Vc zV)q{yfJOmf1o}h|W_+2LsYk=#HWD>P#l$V4l$)nJga6}2Oak_XMDFp)$Kl_gig?$D zfQs|#M6$hl%J0)F@1lDbu;HL#Oc3|8ms=na5`POfzX;f`)O{W4X3njVblBm84{4cA zGGvnKB`LcG{CX2m*1w&Tq_aITM0%go|9=qpKL$MyxDBxQXVBG2`H)nAKhMJuHkEK* z6oDK9@nA7?g^Eb}kp#aeA`}0lN~9tbzkkqCio4;bP52W!;xltMb$K-D4Yt&huqa7R zc30;wqt`~#>bO&+xWn3A?@fNe+u8r&hPZe#O`R5GRl8Bnl(3vNv~0&!a%Fr~tD@Ox zIW6srIvNSEC*_G9cJI^$AaV21YTd+e&pf#N4ZePmf=P1@lD@_A>PhqGOWG`Gz7w%H z5|R%)_a6>l!1*)bx$U}npnv*kCA3yxZ7Ec<+kgqpLzLA|u<&O*W@)G7mN(p>(g7_|rn6>=I6XT~sz zx00VLv;&pzRJc(i;FK#XR42BpM~#W!k)WEBvEKH7pXHgo2bi ztuP@uZa?N~m2kwu^efN}5k9U#V(V-1VO^@D+lG3m3HJB17cO> z?T|?q15=XdC&G(rqo+8>Q$|d}DRSPWA@>NT#>V86ozrb@e?b4kpxuADwf6YrLh>#? zy0;d3y~_H$KGchb!(6`}Z4X<8=70pZJ~dB3vQPg%tq-vRdBfnJ^tQ7$~tVqko$E2aPE z$#znf-K1~Yt~FrT49=5Sfy-iOTOoa`935qv+DetX?22ZRYR{@y-WjlD*1(3%h`iOV zCHd#}(b%lsqAl3g_7*9u2~3+V^S48!Po!%Bf;QWxmLha#*edU*ofd_(Uo zK0WMuaad0O(x>n{Oea7r3%dXpDuX7)B{}nwOZJ?@$L%+z7sXUZR*Jf>6Rp(V?LmWRT6pd=YzavJ+GFK_XVwMTZM7gaetn&l6x^|@# zHSsXAp{aig-#2>ciz52U%5bzVX>UES3JFioeqiMRV^BPgsSsep%;Y5nDmaPoYk=`E zRRxZ`J#o3!g#xlVnIk8mcKNP!Pq2mk)TQdH2kB2K)c97IY%7wu$(CgTm9pvKnfuh1 z<5J^UG-G}odgd)r-*_YBYR!t)Zwy4FXA9iZ&=bsXwbQ<5!&^3*K<~kcC9$_kJ~T7w zB}k_d+iuj_4|;&FjYLLiJzaq^o)jU>Zevh)-6eQ`k_x7Zlh|c9u^KMLdYgcM&=C2n zZX0$lImogx{dUWQq|zD06S{zR2EK(}p`PbDIS2tF1uqn0G`mKjpk$B}O7$4Fetg^E z_&Cj16xKtOvcK|~uoxmUTy5Dw{6g+Z9x>bq+kwF{do5t}ZO8T?^1cwUz@OcJri*mg zX8nU^{Zwu0M*i>EKM=llh4I+=!XnW3b=_#wQPF67(1$P_X!9Y5Zk(GrS+JPQXbo zX$K1{#B=Ppo%SQ_qqPMqJUVo{>4cGM)$KpN;Idk%i};^zWI#y;kpBs~Ad;qF z8Ib-Hj!_CBmm~ZJ0`jy00wPXofI~^T?SV+58-`1|Ed~d4%zyu_b8zIBQA(;$&#CNE zr7?r~NR8)IPHqTc^oYVpl{xC|)v~GYw-NqZ<9w4drD9aAR`ujk)k*sMOaOJrB=5DI`J3k!Y{>P^d*}o%2JK1Fc4tHWtFYs!kyMgO~oB5$A+~Ju&Zg`&_MMSrFcU^$Q5r(Of%M~-JA~r*r%z<2` zbblvTG%Zw&DSGH&R>D#YW>WO=EQu;&qlj?>_H0MWz2z!?MI&1J)Fow)U6kkX2fFZ} z3jPe7?Si63&u_@{cjxdE4rsKJINTJ7x$`6<7S^zoe~~|41gtBDf1-Ec3b=vk+Q=Xkj__NfU!@j$$ahS>4K46X~iH7PF{`YvzqF& zz4N2i3Ba)E%}>^(*e`?RwJ7M4ide;qPuiM{~W0o=UU;+XK-%y0iVBP3}0#@ekd`d3wNO2 zZg4^&2V?D6hs4?;P9YeZiyybdOK)-^5fYaRit&6EnC^!VNk8hRi`JaXuHc$t?UUUF z)nsNjj(yq%6z4Eo?P_%LaUTZ+m`MuSf>KkXq6RmXVU^>H%@z=!*LQya62x%L2Vz+X z_!IcY@PB91?f>3M+R7J)<31+Dpq!78mGu&AL`2;!$jGQ3D1gm!PY*w42gSguhW-2E zHMy_i9>3KVywQZmP9|@c8{0;5jhiwIRiK@r&=z>_^MRHPoW54baUxQ`d%_+zQR}MY zz`gHf;vS;jS@X5Mn$2rSwm`;PNH=%Zp{#lscOfOPeQ6bgn}5iF)1-`Y>UKwJwK?ul zeBhmQSAhy})A3s|AjOxPIM2*~ABZ`2z=^88ZH^sYfF5`$BPPBRE6ZNKd$yJTWB$Zu zoUW^YiRzA0+Ou{f!B-)p%qm@3atlc*YmzqW6C{FK`tC+o@pdHlT#MIXFbzDdDS9sf zu~*txOU(94&`b}t2Cr?5W(Un;ukJH;NUrSo+eX%gb7`d3Ue`L z|HF<>k7fv23q%-1tma>I$L6pVeR;%pAK=ob3;WqPR1~q7l8waiT;}VNy|F!X>*Cc| zbC3jpO;jD&Fd*iU(7p|H88`Ex3*y%O4Gc{GEJ)Bgc0U6$O@6Z6^*DkNsx9PGNh*O|n&;f-8b5N2z#7(ZE)pa* zP`JXQy8@9l;yg{jFV`1TiJTAITAYHinv?+CK4AWpD~paGj=F+PD=))z&GWOj-Aw6j zuf?}HD+nUQ;CC!EkA#kj+{;Ev^}vO-wC5jn_I-q4$i~Lm_mHaEK!-==Hf#r1c-@&N zi}fCh5c)B(K*SPQyNm_0ON%w+B}%)12;E2s6~PF*&>SMC>h%=rC3vlUJ?(hjy|MzZ z23rv}&+Qnqcq{&Wx&uOLe3TVzYH5b)X8@;1FWn6Ztj94M1=Sa3;C^B>wXDk34QS&#~LCH zgd11}iFPr7z|{$@ngt^hW;6HG{O#lkNFyuk&(j|CycasnamB~xb~`ArffcuT*JuOXrpIUy%;GNa>;-;~DD?&OF6{=4lykH21P z^2xqldq+m1gx(qv(Van)+$X)S`*v#PW7E3LZQq%gGrDfjZtLDUeE3IqlEqv)K=wwK z-;PCZ{=Mf8&vLTvxMbPd*l7UZg-l)BUUJNsLTVJi9p*emv zy^pH64IIt!(Y2Ae>6ZrAcrdW~1Fm?y_yd)zEgLssZ<8b38nZhpqt&cnhjdvCR9I9d z@LYaA`?*!;cG1Fcfrp$49=^GfPikseFlEHXm8KD<7*T}5{X!bUoRT%DC| zGzgSnx58b^Vr?vaB^fk6iVbGkX53JS3iqd#oFG9LPiZdBW_W)x#5hS=NK1^0X{<(~ zg(2V7J<>!pYoLeKLBR9&!I|5^Pg|YyTRN|On6%Fqt|M#@-c9nPqwMALXU?Rlg5aY} z;)Z=+27ku&s^}?b*Gb0qE^8OiT7f`tzrilj*I|ZJizHgQU9VOpx|1)&4jfD6644Gl zsuMEpq1uv0_?=VuZ!-na%w{3Zm?)%- z-!g>@dXQ^-p7%7&v>{*F^Y2i0G8bDmO4b&3E;^aygz>qlOv+=e;E~glq83vF0j;W?SheY5`)5GXq)J9w^(0x3VsE ziu=nUaXK*!xPT|;D6NV)-D;^SMaR`M9_9-lQ>DM*0dtcbGd;IzE!p`Ob<>(fS=wme zGAib3KK4T9M5?73_AW81?Ljw#f2`Y>DzW=gq+3e1Qc?&QjEFHPF}!Y$^jwjt-O_z( zna7UymwX&kgpX!8(E_(98%3jhVW!#-dGOx8d35Pki~wDP4LdDXq*GnkuAXBqUKuX! zTQQSepAFx;{L5xfZ{CfRv5D0^3C{MHN-)*z3EO0r4qsBWh0nw@F=8eh_`wH^Ju8@p zkUCUa&C4MwG@FTDmNm%{X~u(Qy|Z4rEd29Pk?7$)r_RErv^4 z!6$0g?G;B^wsh+k%y)u~*;)Z+UnRNtw#Yu4S_>D=^#(Co1_I>V_>o8l7xR@_21EVQ z2jKPNEjF|QP+Al{ zlE|yT=(PIVy8Q%W|f{cqx(J8Fu~H?yp#1YHY!~Sc3I{CAAa>ISE@ZRKB4fC zztVg=Xh6J1ow)C=MN&ClGy^`5-c}r+31_~CnVyDseA?khQ&fov0=Q{T?P|dAi8?Bl z)Bt5NVev{A4pjg~+JoO&`zub)pOsK0jkC#EScr<~@Aq0a@23bA4?ABlwujT|8TQE# z$%79n&Fr|sAW5y2G%x)OSEZ=7ci(2zVMVHxDfdw65*-b(eSDp=zbO--l!Occ8XcS| znL&G{8`IP=bThp!p~IGDs}{Bs|B}5K>i`?%qOo8)&X$CY zfX(3FnK@{6vM5^JT^jyA_rltBE5y`KT@}DZs3m#olbWVvqdO}lb6WckksMg3JNj(* z7yd_}!zV97g=DVAbs?CzxTa$HA9(nFT_&k_GB%2qhe;7{0yB@0d$GBPrN5n_paFGv zD|%(zdB2h%P|8^#lxs5eQ@w_@WL8yRnpP*X9;rezJg?ecN{5~0<%dcbr}qnlgW%~+ z(q|2c09N*@Yks%t@gxMZoMKN;UgZ}HY8B6^EFylOW(MgXE>&yd@(5ZT;lFaez|*zX zCD~zP_K3Ne_a1DnWV0BpiLP0)eE@u7$Z<#=_z~tP88kV5!YX!QdAvQoU%TrfAtvek z&+n%TP-#Ca`V%#B_>FB#SHkG6Tz-oQ*t+~Cj#Up~GM%X<#{?;=6EqaamJ`bGk!@^ z!mrPtV}-p@NSjvph{8CRb?IiHtcDOg=)R^Xf=D7`P&RRpAdy){W$`8U-6<&!HO(%Nt% zu{zKKU_RWt7K|7<^;R|>5NsehTR;i6{dXOXPICHOkJ`x7r%Q({4I($Tsh-U&dYDcc zOqb;sGm3MmmLF}L^I%K$+3>?K<#)oTk?nxWF*mgV=O85k2m_Cp$dE4ucjTU@1g1z} zkZ2`6aWR`p4Nn-2j&XOoUaupZcyQ(o&7C0S-*OT%7_;YZL+axA+OxBmajngIppn;2 zm2Q+{_i#yo(kbTUyk07sEJi3pZxT*h! zE6Abfi4$8Lh7?Z6m`#Fc>+~W|(brP`qiRXVH0jd>7-lU}thbgMiVMi-7+WhO)OR(D z&cpj_aX<>YfuK(?($C@MR@b{;AIlqd>l*4>9nw2kucU9G@f}B-T~9Mk@P%u6Lrd2l z*_Etj)U4~9l-clV{mwR-NV{M}Y6A4}Sgx5qHs*G^PTw;`LQ3ot@cB(9=>|g|H|N5i zIW=+$u%Yp-s^r<)v@$d+)T4Q~qW;RAoWr(cp;X1lQY~5iuz-tpR($99Yr?!`Oq3hY zf^C0o1qQ8nLW6W%f|v;YmlHwKO?$;+=sG4yp8kr`1ck)gb>XJqg0{J}tWM+x$T=Nr z&@0G9GMwZ>jsC4mLZw-coyo#=GU`;XTlrZY(Cp9lhVOs=3)Wzri9l!mtj?Z z*2wDu`)64VUa)H0_tOcZS$7%#FHC~Q#tI6Jjyn23c~>3bsTyH_FrZr5q@Dx0-lR1 zYy$s^F|Vuz`GTpB8T_bubKIi&V~d9f5*FGZ8@Ur>!}Kh~n7yV~xRu`A59bc_3Z?@K zJTFWrK0^{am=|89Czu@E$yw+8Dm;5dqzj$CF}<$^BSVAOW&+i zlq7vkdlNhK*P0Stt{R%8NNiuC2ITGfw5Yp5-O$YLtMWjlLnv_g7G>Buvg+y(sabe# zjH9~z`YyThO9_e-yY0CghUcT`g1I;Pt4*l0%Y5He#FHs0Ix8kXa&C2)sTiy67|OMH z)H`!jHtePAiz1~)NEzo+z%9#yorXX%*=9)a#%6o+^;~_xRod^*-MfzK0C3iI3%S5O zRy$=|erjkkm8)eP#xJ__V@Zk`qKgJnuSmdMs0bPBYED`hVo8#tCCUmIYRT|u{ABy$ zZi#4s&a?b!Rgr4mRV@Fo8H-Y}Qs-DK0j;&)UAUby8+NOD>pJYDpPbHTt()c}k<6M( zt^&n}buIgi_gYv{S*MW`24J>bGDK*XrW%#9K%>rzE!G_o3ua4+3g$Bco-MgvcUto| zlg-}|KZ)-6$dDT%$^c6%Aodv=Wq!{>;gerIpGMNHV9C6aEwXGekC+54Eh8lM39TurpuYUw9#(H0if6p-2e{d>9UtWtXTpv$ zF=mtM(HjgETMTb+5z(TXxSG%oEhTR73ao(wXQ)A(2W94nNxE3=yyg7<&cWFzi?s8e z;JSc&9?#SG<>G{U-F9)=(NsUX=5da!F%}V`92;eQ2DV~A?IfoSyP{RLT3NwX@h9(0 z2lzZK(BdO#M>W}(2w?E4QzuVxF*|*o@*yIDpOffsak1noas}Rxe9o3Co2_xR;~pqy zzcd#nXMHsQ)BEmG^(TpWGG0Fke1R&o{(Vz%dwTl>QCQ?T%Npb58|eG1deXK?#h)k437~b;IsL9|_qNH|_{}$~ zf&tXTrRbhL4>8kzDo%usT^!wLHgy~_ybFSV&UMY^BgTWEa;@z0BN=}MKlycHbi$`{ z+2})&5+mLSMUKCo%jAZcoK0kIyVOK}BPTyDH27@5bTdmd+k}G49niW|i7#Kf4&$kn zX$PAkxzw`f1DNMEtK+`Dva9NQ^r{bdFz}Mog3(`Q<07+*>c3mqSLp46cEHzl%Yc|a zC3H7u-rh0bty;IkHUmeJ*EptEbBU*PU2u`P(BAr{p@n&;VB>};Hd?i2sg)BGhOq|0 z^Bg9?7#U#*z+p<&2~VQ&s0q8>q&zgSd~888T2Twv2k01D8<;G+)HfN=gb1Y~4V(<> z@|>)4N74D9J6gcoc@v1Y>Y71Wyr;(GHG^qimC1W{_HE!-am%q*Qx?IHk}iSn%h;8r z{?=?aiC;5c44KIhIKiXM6@`wg>otivoqr+(kj&J===P8u20is3eo3zc_%LqbRbNG> zGhsS21JVOPz{!}!*|cLXKXtk;obO_18n$v5yrRvE?xK8)UPK&_=jpUwx?QH-Teo3i zd=fk=CeMb*8oe-z8dl77b2J)O&eE_$tSeqrs$w<33nIA?${ZzDnX6LCn5)4QxP5KyD5l%g z64w=@KN~#?XOLci`PiW+B@Enrn(=y;{GGSmC;y!w2mC-Ml!%CWJh78LPb;$l z0VT+TB=wnLCqWOw0Iqy5oHsZcZ(iQ071j_QC?s=zbGWja);sXbpQCTaZIm3J?Q$|R z8z~YS+X^IT@!gu0A9{DLAp`;mCtx6(=gudjE!`0*5=OSB&C*ptXR;gFX5ZxdD$hoY&C54#4%C06(gi?^RF-O$6`Z0RGn}8M(hYJTp}r2{1SBl?pzI zUnydKpIk+g@{Y(~+5DSr5g|?Qnf))bk5%fQYb!SI7_RU4Jp!Zlr@jo@G!A*`qRg0z zjL*%_m#p6RK6$ivlj1YJg-}L@SPdSK3oXF4&W&1k=o-@@Zw+kB&yH8aLnF7;u%Eb1 zc(gOEfYhF-$NG5_T(Rxm0^Z3#gUPR-WU$DSavt74VWr+?#BrgCIvT4n2lS0dUE5j- zEl3YWj5|S00>6pMW2S)_{ksoXwn3`ey6U!zq!AqVTSD(Sn+r?QMAVv%XEQ9Io9{r% z;}8lG7{JX2kSdwkjBoz5ZPEY+*p|(o!|Z<^0r(8M4Bbs#qit;aE9&ZNx3$@`v31oo zFW9f_CC{Z@-5wL|f+gzDp4Oz+B==}bZ5XWgCzG>lTiSD=$&NhSS(wTy1kqu4j(39tFzx_P%H{Q#u0Te!g^)c)IjJVibOKhGq<>_ zG<2x%r^D|W10auI*KvU4v9j(4Bt!Pp?ob3Nenh93?MzTR%k02yFyP0GNjDV)fC8@n zxbFO|fY6YNmF2MJT;F>9Vj>ro%nfL_+U)ef7SixWKCfDymlI|B9`ADd%sD1ekI+>6 z{Tk-agDCS!uNNxZgpySvT)tb!Q&krQ9`xiroGRE;$(SO}&xb!CX1?p7hGMG~wVX6F z-6Y2b68e-YpGL}pE`z#aAI8SkBz5ubPORJ0dsG6ChrjkZw8Sa#mB&Tam(|e0;Y5R zlKssOYp2Zwj+`ICIA7BwUPo2!u2)j5jMgr?Qu)jv6QKDm_hq1#D6-825JmZeYtV%$ zd#X@-66|M(da0LWSyHPJ(R~e~R&w<4{S4UDt@%0sq8%LVLlDA1%SA>tXLI8IjG1aB zKvrU{emL<>o~{}s`7(9nH~xX)x)~wTD_S0tOfnd)5cL>kgU0X1Y{%W=u1EF%OLKu+ z&9<1;3ziSBvpwE50Piadpr!{Q34>nTC3hcft3&F{Wo;T3YpUf|>(UEVJDj=~6!@vj zcY^IUE3~v?c!51?34Q3twIJO`m}n?hvU92?zFsxv9a!x5ap+`x!HB9Wd1{MuYy*Zu zi){qUn{|>>WRQODU$L&cM1+j0CnxV;e4HfzavR=v=>)e5N=YLCWJoH4F~?HG5)4R> zTH9xF@)>S#&<0A1-%}4uGyFBoaBl6^LsmrY<6?6>ETZ zuf-*niiH;CpJiwOqD?ib8_-m-9*sz)h*+}1Ko#?`QTi+r9!-(vCtp?rv&#pu0}_`Z zmi4)R;fAfH$$qTD_S{?5u|8p~e7sR{)~v0LWnUn)$o0o=zy!?)3V$VFE4v%q7&?f` zV{2TQm{e$!dP2dBOh^kxsZ`4wW^~(7>6wvmw5m5gTK<{=%ugZY+w$=fPA|^xS$Nh{ zt*2=z8%24cl?7(<&`B=2Oe9|^EL9NHN316$y%ekDNzJDp@U0&jgZf@7qwE)TFv3dh zX2CY(M&@G89@rp6-wUJ6pzc5x?1cB@YWBmfS(fI)EORPOGvrLcu~LZC%UJ)RDT;z^|W5Pidr8&ynt-T4;~X|ok|*qMLujgXLE55{>K%Nex|Se2a=|SFXq)YDYOC%9?CIQdW@Fx?#ZHoD zt)NLPi0FJ0G!h5{U>>_-4wB`5_tDrR-XaPWEy_7uk!fMl41X+Sy{eJ_sQI8pbz6~i z!u9#XwdLu4RMjDY{^?2CJ%mmlzT%5Me@1pBAl%$9rF4S(3^*}O{e}ljCiYq0UgGQR z2Fu?8qQ8u;bXk|!miEhgi>APg>Y_w9|x@ti1ngygANn|dnG^uXR~js(NAH^ z{rg3xSD&aHL;l8i1lZcoS%n);FIX0;o_}-#BrAN|e{Sx=z3yslQP)xJU1e(oC-1mq ze8YG(fuR3Esck(ULa4_lZZzhh$U=%5b$O<Zcu96D;xU@dK8kJk`R%Xtv<9iavrtOPm%56b94R`RGHx2K-7?V2+s(fb=S_*QIuEgj|><;zl3G#Ylw86RCk9+AR7?{y6Lkr2A)W%^G6%9J|D7aj==WVSW~o227J)#Qi9{L=0Qo{BNejXE0=q5yxblda1h zpMAiU@?jOWpFK{eLOOpJdC<>gDDjPEfdvxeXTFwaz_~2;Yzn@Xm}cU$Lr(^%-ACAL zc{&B|E#eBWNzE~f-b8aiVMrCeia@{pR4}Pg%Z>R&j53wfk=%2?7X|69XVh|NCK(d8 zLRczXimayg@Q%;nNPH%xAv+8qZLW9Ai7?qBab(xVYfZ*iEQH{!_Nl!D0kwGaX;kG! z3y>%FmzV2ygTRpbdTcUUvCsi1;?I>i4?CVT83>7Tze%ce_Y()jVsFft|DwF+YzY3B zXedzQ5lj6=Toy7yvNEp1W{A2)2BSZI4jS4%?mlxA_C2u45_+-4t{d94t+Qa-k=0fz z?Sfwu)sZr2f?uCMN#dO50gR6}?66?@#FYsr)F`$xzWaDSxO_H+mkSn^W55nB39 zu-skx#VI>UGk3|xi`pr^$5BHt;Q?}Gks7ORDx#CiS*z2G{qSUHLzyUrggd zRa)T>XKpY)OS1p7*((O?9R~OJw0IkoSTTHx*hezRIVYc zW|vCO5)Vo&KoNcQZ&^snQJG6htXa$hR}p?kH=89yM=x!?6}*LMPX&$x-m*66C(Cu{l9B@hNT#;0uu|P%`97O;4iMA8w-+o~0ok9?*SJJ$#iU3*A9Ib&14fddom=RIUqP3dG8^{VBTXV5w0?hTd5Q zBXxye=f*InO|EE-6oxHBho_-EI)r9aP$?>WiOG0_4f;+2(y>Io2NGju&d|!9>tt_l z56+8|-=fh~un!W7j0{$kX^3ZF{*Mp$lV{&0yv5roCl8DEOp`}SJI|wsVUJSSe7JT1bAn;xrnoU`=uAt zU9;ZehC3H1ti@)EW?_io3Ua5o;i4*{sSdiXICLz4;dH9usPF-&=%Kms*lTFs(OQOV zIh)W8M)`UqM&Xyy#H6*Kv;My7&Sr=dKrfxLgz{wkgx~Lj-0TEA*@c41o^#!fN0W_J zqmt2hMKaJVd$@ADIjL;dPbO*cer>eX-3EoLVrC5jkFNuX?D((Tgb~ycxQvPCo?9-d z4ILMNKoXKT#Fp|pqFB_~nYZc^CYB2ydn+(pE)K5eZtk8p%$nlUOT-b2UbD;t#0%Rq zZWWab_oxEeBscAnBWF<&qM5?>!tcV4tBb8Bu;FpD&d-8#Ah5dlWzNjRv?@sV!0^%S ziA?h9DUl@MX=oepQzUW_T45!iXUZv4lbr#Gv5_me?pAUam`su%&;B`|Ij`Q|`j(Y% zVs+?3Qyv8&J2r=d$qqwW|D_p|N+B1QpZ^4lYSS#17vYnGi5EsQkqf&}S-YrRw$w3Y zfNq7`#IjK_y7xsPA;KHL^I=P%wVnr9 zQGQl2?s;3lkWLnIzxdP6Ce=$BiYmI3 zJw_)Q4=)oRiwx=*-6F1w%aLl~8B_7s2p`IIpoh#Gj$eSLtWj>o-rHeLsapbG{w_L@ z(IpuXPPVxCKBS6P&?hF92)b=-i2S482Cz=JcHgLoG!vZZ#&^ajiR|$54%z$VDeCH@+ci6(r6c6_a!&9% zyndivT=})r29Nch|c+j*FhIPB3hrestd#zyJ_fi=!gYCq21tJwDZ zo1L3K;)bWRi2_F;#JvD*y>A&G+oepMqA**81}`$@CTCj?EY|~UMm=NS_PIv*MedpB zS?@jygcJnWPqP|AZ=9Y+5YCYU!ofVL!MQ1p>Q3W(g4N!1%}XOQ-KpxR3|1%R3&ei2 z!|Q9+(cfdKXWKVh<&seLFE4+Cu#HQDIuQsX3(Y0@PlU*?r9l9h%Y(j+8y%_$9Z;}D zPEi`t&)sbY0z(yF>0}h8uKhQP18|gB_gbwtJ7M)eZmdfbmi$u$xPp555ryWHQt z?Rstf1PyJswOOB&O5l#%gTAQ?B5Ln__@4wy*~u4ygGTfyf~O*ZHx9S-%wmotceXN7V0+PcxdG%J2)tc%SoB6`bL-2A<;rhXT?q z)5#le*fTxRa?xS4%dlIhI{)n3V#*XNikyN$@6E=M3QEt`l3vhxd*8`pc&nEtjD@XW zlbb{szD|<6@xmbQ*i}1(`+@!8xZISGSy=$Z1hNL%1}@T*h$e+ntm}m~s>Ksst$!5t z?ml!|8wg!3P!VkrBV{KBM*py=gCi17e8$#h?goCGPy8|%OCgyup}8Zo#OJ4T1CFZk0JFb{oJC%gN;tCAQb2wa?Ca)i&T1*w{!p?2N5v1 zf}Ievkw2OPixszD*K6~yL8SYTIQj6{PkZOp3yEbhs7)F6;>>Y_G!&ZDO$IjpY2wT> z&ue~P>m&Z4^i`yu) ziWHi)KFZ}ts^3(Wn$_sSw&elvwfQY>Akml2WlkAfiWF&j&7s~*_aQh8sV6uJQzkT$ z<4XO@?(UK5e>&os$d=RZ!8t>~*^X*thCMbK##MXjJC88o_{yVdmVMUC0h=kuy~;2( zysq4B@ExgbHMY&$zc#wtmosCHJLS4lt-^p_7=pR62BSiU$^$m1jw|SRNs5UNC?@6| z+iETK$YHKUogM>kX(_jH4Hgl*c$Z(KF28|#ac#vT-&sX?e!Yhk9WZJ;H>Xe;tLGuT z%7Xf`Ix671Y72x^!thzS17f`qVTW{@BdG1WICKb9Y@sKs7$G)s@Dyw?w}lq_&w_(q zO<@xtmZn@k1%u5Es=q~4$kWDJVhuP2d(KD{j@mU(EGj%czJ>7=+yfgOXVwxyR>z%; z<72noDn%IGXh@<66Hh3qNf{wgQ?FjlMatEuZE$~0n;SQOo0L)N1G)wFG^fS3#%3KI z=I08VJtA+xOwV$SeFEB3H-^Soxs$ZS=52tabQqcR8pI$bpl3er)!iC!bTM` zLSUKFbbKPe%8R-3 zLanQ5yCjubwQ@U`n1~H3icM{1YN$;7I0qZP`hKhjkETJx4Vp!x94obgZj2?hS50kt zK?G@7P0C26(v9m{Zc8dP1uaZTb&1gBL~rI*im=3K+x5EP78$5QBXLIWkHx?MMio znP3%<;_JvfcqGxEjv)e98Duh!_e)RjFkTCj%`H0>E`+0aoANXfp(tfifi$u=Fguq& z&$#^ygX%@q=|X&;n`9iz{`~Jq%g!I7){RkJ+}%6F1eoCJ)y=l#K>pjI`ri(gN53D& z!uzC6%jsmg3^OXkVP^c@_42Eg*Gh;Vu77iuM#+xePluCJe8Sp$Y-;s-xwUA=VT>)ng}w-LHo`GzBnruEqJ7m0r3^H}WF%2%K&9ndV%{#74}; zChRc+?v?qS-rwkN&VPvP2Q1TtvL_}kI&Swgx0aUn6Ssxy;>X6sifY>Vg^1NAeZIip zM_OG3<DnmVUYmb$6yo)g;O^1FF<;w!qkuS+o;Gl)kiYWI{V917DMc#FmWGqqduK&MV8%TYbf7e1(D4;z2p6WlRe zCm&;Jg*p8m;k1P-wT??afYz4_$XW@eekIWcqOg;3=$#_`O2XQNyHrdYy@gCtl^XyeIjzKuEEv;}#kyL&qY zu-yFa#K|P^G_lwcTz~dzV=J{+r*Kd)dJ>f2eik{K0oxfZWx~&O8@;mb?(V#_j)<_o zIV`MwcF*$-5x%m0!~5_-xVqXhMX&`*i|3oq27VM5-`@D99F9Av+8)d(Hq89${8v+$_C*e~a6U>|d!H z?QqkSwp&F}#@pcgb5Co}UNgR#D0VH=AaH#KwP`cYi}|i)67r2eAfnuB;@gMs0)KzU z0F=DP{1woNI1X(O)O6eehPkwqc7=0`S&=Ka({*MU&vYQJdJ096b6tu>!7nKMq%;j7 z-&^lL2t~fpBnU;8J*6NNb?$o+Mx~H3q+1MzW*Sp)QIM~n-gfXZA~wq+S@a|#$mAT? z5l&*=BYgeF#V`+o<4VlyJurJ;X3VhMVUmfHexKF$! zQ;N>mtrE6lZMQy!&sf1OStI@f_;@~s_IMT09EkSr(q%Tha=c7FFV}}eqEvL*I4q?w z?LX`dyunr5_^SGF8%e>B&`g*npf8KB*e*=jQ<(Y=z}+WTh(pivy?+DV;|qUd1{@xO z40Qu|6gVVyL+p?j3Hs02O&Uc|7O8`8;G)xZw@3_%fz z0e{L#U4_0MKH;E*`Y>U>YdwETIy#@1Rg`K<9xV z()=gwR8HbPk53~6hs;E)6YMb-lS4tuKnG!r$HsxV6KK?oCHN~GWQY`>Yb6B zpcawoD1H@f`u2YY6e(or4j7a?-I;rB7FwSU0kt319sz!Sm)recR>6AQyEmZ77^d!k zL&U&%`~f;)#^n$&)f!99?$;ZeIJDAjU@k@)Jq5)kv=%P9=Zn=n&CT$>#nFq?T#b!( z6Ny@|+WAnP#a>srq}$k4yk=+$|Q=re*VJ5@6OHv!UqHRk=+$D8th^y4g_yc2h_!dHbH)<4GmN zIZvfo%a6m%RYTo^p(qJzVtg6;mZH!Xjs|KEN{O-1>cFPr#EP;*P_Y}wR2{=ZpngCh zBou$6LT9Y-YsZS$%g~CtJ;KyW@^}KQ$~-8A(*-aqTPjk2ssNU^wOV<$I9PzOKH0GX zDv}itJ2yyQ^$blhZz%8$k|HNq*~!`>`6iv*;jg`YA7=qo%CH8?zFGT5HFV1qAieE$ zD;B4bL&4kL%kl$dMeo`X(0dY@e79I-dCq@8**7R5^$_$BN<=cGOv>DC8o{V|h@s?u zg{8B^x`0y&(a(W3!#w?Uk-M=xfShHTur(C;w;P2l!i1`QY>%p3Wn#E1Ty-8B)|GJB z9M7K9tGAtNl{Aee=zw(TL~A!)+dXYi%h%UOs!IZUL*|lKN#1PWwMY0->_Mw@Kc0Vt z^7UX)7elT=fJuUqixQ(SxQUI|FRVSY3S?s4HQ{8@wA+0^J)yz6+c7Fd79LkU9{<2K z@W=lk`z{7G9e7<>MO1xbeZm_81l#jw2DEo<&xy39E;(aYcGFmP1_0ffOdlw_kgQT` zHj%bguyYI3){kiukwrW-CRDz5&%u8bPDnl-!stW$yLcM~`4~XQmM27!Khe@A21Tx2 zg8of$DPaU!bm=8U*0_BmCob=G#UL`>T%nuZuw*Qr(t~@|!rU$ z*mbt?sJ%b)+%{bT4X1xA%f`t2Y*%(b z3ttPZAkryjf_|XmXuBSN#EgS9S%#qx5C3ZUaS{C$hTUuUD}+7Hyca;O?1T=8=X+ke z2ha0qOd^a%$&77v(MaoB7M@|b70ox#>hNSmc$^4Rl`bHw{KE zNuJSEEPdIsEG}aO$ee$dR=;#N&e#eOfpSc6UzweyqR7M!=5ENA9M9JPGDdvBHHRN@ z(JdC)q7tDI%9u1pCjf90F*dmgnHd@i)>T1AB_}q^L=~A#T?}fS0bLA|h34`@V=NB- z6ehXgg6Q$!a{)kx@igp1qE3w00;d={8q_-H;%KN74Mv`ZVX1#);$j$*L><|bE!I|V zJ_e-^dz}mg&2LC2LxB;DoD2uR`beA%8ZpM@WhiNzrAxIXyz<2kXgc80ww9<^=rq8>YOFA48uZh91Bb3n9s+CQ^5|!N7d&}b;@Eo#cqk+>+5{Pr0=8ccESmcp0YKw>vi-voWNaIt^U%_B4Rm6cAI3;(R`1iqNC zf5LAsn6TLT+8Fud$fnpQGXqyvxu+@v+P8cv=loZHwyDb5y_=>6E97{yM}sV8Gp?LxgRs?)o?=iOt@EsYVH&C!EEcof#C zPL1&xqx*kBLOHjpS&?Q?arTPOfxK>FYxRzMClK�HOS^d_VeQ%yFKC`L9+ZrhM` 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 bs)HxPP?Q0O_$MFh>!k|`1hmuh&#(UjScyxx diff --git a/.tox/log/GLOB-0.log b/.tox/log/GLOB-0.log index 5a03432..c0ef3af 100644 --- a/.tox/log/GLOB-0.log +++ b/.tox/log/GLOB-0.log @@ -1,6 +1,6 @@ action: GLOB, msg: packaging -cwd: /var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python -cmd: /var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/venv/bin/python setup.py sdist --formats=zip --dist-dir /var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/.tox/dist +cwd: /var/lib/buildkite-agent-2/builds/ip-172-31-40-132-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python +cmd: /var/lib/buildkite-agent-2/builds/ip-172-31-40-132-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/venv/bin/python setup.py sdist --formats=zip --dist-dir .tox/dist running sdist running egg_info writing ngrok_api.egg-info/PKG-INFO @@ -35,30 +35,29 @@ copying ngrok_api.egg-info/requires.txt -> ngrok-api-0.0.0/ngrok_api.egg-info copying ngrok_api.egg-info/top_level.txt -> ngrok-api-0.0.0/ngrok_api.egg-info copying tests/test_ngrok.py -> ngrok-api-0.0.0/tests Writing ngrok-api-0.0.0/setup.cfg -creating /var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/.tox/dist -creating '/var/lib/buildkite-agent-2/builds/ip-172-31-8-201-us-west-2-compute-internal-2-1/ngrok/api-client-prs/.cache/ngrok-api-python/.tox/dist/ngrok-api-0.0.0.zip' and adding 'ngrok-api-0.0.0' to it +creating '.tox/dist/ngrok-api-0.0.0.zip' and adding 'ngrok-api-0.0.0' to it adding 'ngrok-api-0.0.0' +adding 'ngrok-api-0.0.0/tests' adding 'ngrok-api-0.0.0/ngrok' adding 'ngrok-api-0.0.0/ngrok_api.egg-info' -adding 'ngrok-api-0.0.0/tests' -adding 'ngrok-api-0.0.0/PKG-INFO' adding 'ngrok-api-0.0.0/setup.py' -adding 'ngrok-api-0.0.0/pyproject.toml' adding 'ngrok-api-0.0.0/README.md' adding 'ngrok-api-0.0.0/LICENSE' +adding 'ngrok-api-0.0.0/PKG-INFO' +adding 'ngrok-api-0.0.0/pyproject.toml' adding 'ngrok-api-0.0.0/setup.cfg' +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/services.py' +adding 'ngrok-api-0.0.0/ngrok/iterator.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/error.py' adding 'ngrok-api-0.0.0/ngrok/__init__.py' adding 'ngrok-api-0.0.0/ngrok/client.py' -adding 'ngrok-api-0.0.0/ngrok/datatypes.py' -adding 'ngrok-api-0.0.0/ngrok/http_client.py' -adding 'ngrok-api-0.0.0/ngrok/iterator.py' -adding 'ngrok-api-0.0.0/ngrok/services.py' adding 'ngrok-api-0.0.0/ngrok_api.egg-info/SOURCES.txt' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info/dependency_links.txt' adding 'ngrok-api-0.0.0/ngrok_api.egg-info/requires.txt' adding 'ngrok-api-0.0.0/ngrok_api.egg-info/PKG-INFO' adding 'ngrok-api-0.0.0/ngrok_api.egg-info/top_level.txt' -adding 'ngrok-api-0.0.0/ngrok_api.egg-info/dependency_links.txt' -adding 'ngrok-api-0.0.0/tests/test_ngrok.py' removing 'ngrok-api-0.0.0' (and everything under it) diff --git a/README.md b/README.md index 582f828..a783645 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ + + # ngrok API client library for Python This library wraps the [ngrok HTTP API](https://ngrok.com/docs/api) to make it diff --git a/doc/Makefile b/doc/Makefile index 18e0af5..3f18cc2 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,3 +1,5 @@ +# Code generated for API Clients. DO NOT EDIT. + # Minimal makefile for Sphinx documentation # diff --git a/doc/make.bat b/doc/make.bat index 6247f7e..074a495 100644 --- a/doc/make.bat +++ b/doc/make.bat @@ -1,35 +1,37 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=source -set BUILDDIR=build - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd +REM Code generated for API Clients. DO NOT EDIT. + +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/doc/source/abuse_reports.rst b/doc/source/abuse_reports.rst index 7791dd6..1d01296 100644 --- a/doc/source/abuse_reports.rst +++ b/doc/source/abuse_reports.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Abuse Reports ===================================== diff --git a/doc/source/agent_ingresses.rst b/doc/source/agent_ingresses.rst index b6cee12..982a6b4 100644 --- a/doc/source/agent_ingresses.rst +++ b/doc/source/agent_ingresses.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Agent Ingresses ===================================== diff --git a/doc/source/api_keys.rst b/doc/source/api_keys.rst index 69593f6..3938dc8 100644 --- a/doc/source/api_keys.rst +++ b/doc/source/api_keys.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + API Keys ===================================== diff --git a/doc/source/application_sessions.rst b/doc/source/application_sessions.rst index fd3ac2d..2ed6b4d 100644 --- a/doc/source/application_sessions.rst +++ b/doc/source/application_sessions.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Application Sessions ===================================== diff --git a/doc/source/application_users.rst b/doc/source/application_users.rst index 7aa4ca6..19f801f 100644 --- a/doc/source/application_users.rst +++ b/doc/source/application_users.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Application Users ===================================== diff --git a/doc/source/certificate_authorities.rst b/doc/source/certificate_authorities.rst index 441b9e4..55ae4ee 100644 --- a/doc/source/certificate_authorities.rst +++ b/doc/source/certificate_authorities.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Certificate Authorities ===================================== diff --git a/doc/source/client.rst b/doc/source/client.rst index e10ab95..18c30c5 100644 --- a/doc/source/client.rst +++ b/doc/source/client.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Client ===================================== @@ -15,7 +18,7 @@ Client object: # list all ip policies for policy in client.ip_policies.list(): print(policy) - + # create an ngrok agent authtoken cred = client.credentials.create() print(cred) diff --git a/doc/source/conf.py b/doc/source/conf.py index f6d5852..d096775 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -1,3 +1,5 @@ +# Code generated for API Clients. DO NOT EDIT. + # Configuration file for the Sphinx documentation builder. # # This file only contains a selection of the most common options. For a full diff --git a/doc/source/credentials.rst b/doc/source/credentials.rst index 4af64a3..a2bb3f4 100644 --- a/doc/source/credentials.rst +++ b/doc/source/credentials.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Credentials ===================================== diff --git a/doc/source/datatypes.rst b/doc/source/datatypes.rst index 7db4f9d..1b4d803 100644 --- a/doc/source/datatypes.rst +++ b/doc/source/datatypes.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Datatypes ===================================== diff --git a/doc/source/edge_route_backend_module.rst b/doc/source/edge_route_backend_module.rst index 7e3dbe3..59ac3be 100644 --- a/doc/source/edge_route_backend_module.rst +++ b/doc/source/edge_route_backend_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Backend Module ===================================== diff --git a/doc/source/edge_route_circuit_breaker_module.rst b/doc/source/edge_route_circuit_breaker_module.rst index fea725c..a94dc50 100644 --- a/doc/source/edge_route_circuit_breaker_module.rst +++ b/doc/source/edge_route_circuit_breaker_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Circuit Breaker Module ===================================== diff --git a/doc/source/edge_route_compression_module.rst b/doc/source/edge_route_compression_module.rst index 4bbd06a..9e36972 100644 --- a/doc/source/edge_route_compression_module.rst +++ b/doc/source/edge_route_compression_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Compression Module ===================================== diff --git a/doc/source/edge_route_ip_restriction_module.rst b/doc/source/edge_route_ip_restriction_module.rst index 243888f..23332bb 100644 --- a/doc/source/edge_route_ip_restriction_module.rst +++ b/doc/source/edge_route_ip_restriction_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route IP Restriction Module ===================================== diff --git a/doc/source/edge_route_o_auth_module.rst b/doc/source/edge_route_o_auth_module.rst index 9e7f81a..3fd3c7b 100644 --- a/doc/source/edge_route_o_auth_module.rst +++ b/doc/source/edge_route_o_auth_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route OAuth Module ===================================== diff --git a/doc/source/edge_route_oidc_module.rst b/doc/source/edge_route_oidc_module.rst index abef39e..1b3997b 100644 --- a/doc/source/edge_route_oidc_module.rst +++ b/doc/source/edge_route_oidc_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route OIDC Module ===================================== diff --git a/doc/source/edge_route_request_headers_module.rst b/doc/source/edge_route_request_headers_module.rst index 5d5e26a..5e28e7e 100644 --- a/doc/source/edge_route_request_headers_module.rst +++ b/doc/source/edge_route_request_headers_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Request Headers Module ===================================== diff --git a/doc/source/edge_route_response_headers_module.rst b/doc/source/edge_route_response_headers_module.rst index 479644b..97156e9 100644 --- a/doc/source/edge_route_response_headers_module.rst +++ b/doc/source/edge_route_response_headers_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Response Headers Module ===================================== diff --git a/doc/source/edge_route_saml_module.rst b/doc/source/edge_route_saml_module.rst index aba3e12..4bd60c6 100644 --- a/doc/source/edge_route_saml_module.rst +++ b/doc/source/edge_route_saml_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route SAML Module ===================================== diff --git a/doc/source/edge_route_webhook_verification_module.rst b/doc/source/edge_route_webhook_verification_module.rst index 0cfc3fa..f42c30e 100644 --- a/doc/source/edge_route_webhook_verification_module.rst +++ b/doc/source/edge_route_webhook_verification_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Webhook Verification Module ===================================== diff --git a/doc/source/edge_route_websocket_tcp_converter_module.rst b/doc/source/edge_route_websocket_tcp_converter_module.rst index 4436c86..a586b27 100644 --- a/doc/source/edge_route_websocket_tcp_converter_module.rst +++ b/doc/source/edge_route_websocket_tcp_converter_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Route Websocket TCP Converter Module ===================================== diff --git a/doc/source/edges_https.rst b/doc/source/edges_https.rst index c8bbe29..1e09836 100644 --- a/doc/source/edges_https.rst +++ b/doc/source/edges_https.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edges ===================================== diff --git a/doc/source/edges_https_routes.rst b/doc/source/edges_https_routes.rst index afb0ce7..c2ecc23 100644 --- a/doc/source/edges_https_routes.rst +++ b/doc/source/edges_https_routes.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Routes ===================================== diff --git a/doc/source/edges_tcp.rst b/doc/source/edges_tcp.rst index b10e177..4361561 100644 --- a/doc/source/edges_tcp.rst +++ b/doc/source/edges_tcp.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edges ===================================== diff --git a/doc/source/edges_tls.rst b/doc/source/edges_tls.rst index 4b163d1..cbf751a 100644 --- a/doc/source/edges_tls.rst +++ b/doc/source/edges_tls.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edges ===================================== diff --git a/doc/source/endpoints.rst b/doc/source/endpoints.rst index 227a642..f15e5e4 100644 --- a/doc/source/endpoints.rst +++ b/doc/source/endpoints.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Endpoints ===================================== diff --git a/doc/source/errors.rst b/doc/source/errors.rst index 301a65e..5b03e51 100644 --- a/doc/source/errors.rst +++ b/doc/source/errors.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + .. _errors: Errors diff --git a/doc/source/event_destinations.rst b/doc/source/event_destinations.rst index b05b317..c674b45 100644 --- a/doc/source/event_destinations.rst +++ b/doc/source/event_destinations.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Destinations ===================================== diff --git a/doc/source/event_sources.rst b/doc/source/event_sources.rst index f096cc0..82541e8 100644 --- a/doc/source/event_sources.rst +++ b/doc/source/event_sources.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Sources ===================================== diff --git a/doc/source/event_subscriptions.rst b/doc/source/event_subscriptions.rst index 89bc463..1fab08b 100644 --- a/doc/source/event_subscriptions.rst +++ b/doc/source/event_subscriptions.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Event Subscriptions ===================================== diff --git a/doc/source/failover_backends.rst b/doc/source/failover_backends.rst index 9f8905c..9437ab7 100644 --- a/doc/source/failover_backends.rst +++ b/doc/source/failover_backends.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Failover Backends ===================================== diff --git a/doc/source/http_response_backends.rst b/doc/source/http_response_backends.rst index 006e269..23e36d3 100644 --- a/doc/source/http_response_backends.rst +++ b/doc/source/http_response_backends.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTP Response Backends ===================================== diff --git a/doc/source/https_edge_mutual_tls_module.rst b/doc/source/https_edge_mutual_tls_module.rst index 96a49a1..b64666d 100644 --- a/doc/source/https_edge_mutual_tls_module.rst +++ b/doc/source/https_edge_mutual_tls_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge Mutual TLS Module ===================================== diff --git a/doc/source/https_edge_tls_termination_module.rst b/doc/source/https_edge_tls_termination_module.rst index 48c8b98..8aa2e66 100644 --- a/doc/source/https_edge_tls_termination_module.rst +++ b/doc/source/https_edge_tls_termination_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + HTTPS Edge TLS Termination Module ===================================== diff --git a/doc/source/index.rst b/doc/source/index.rst index 35697fc..1fce46a 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + ngrok-api ######### @@ -125,6 +128,7 @@ API Reference api_keys application_sessions application_users + tunnel_sessions failover_backends http_response_backends tunnel_group_backends @@ -168,5 +172,4 @@ API Reference ssh_host_certificates ssh_user_certificates tls_certificates - tunnel_sessions tunnels diff --git a/doc/source/ip_policies.rst b/doc/source/ip_policies.rst index 1799260..1b3cde8 100644 --- a/doc/source/ip_policies.rst +++ b/doc/source/ip_policies.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Policies ===================================== diff --git a/doc/source/ip_policy_rules.rst b/doc/source/ip_policy_rules.rst index c109f93..52b22a4 100644 --- a/doc/source/ip_policy_rules.rst +++ b/doc/source/ip_policy_rules.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Policy Rules ===================================== diff --git a/doc/source/ip_restrictions.rst b/doc/source/ip_restrictions.rst index 6593c97..5d5f3bc 100644 --- a/doc/source/ip_restrictions.rst +++ b/doc/source/ip_restrictions.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + IP Restrictions ===================================== diff --git a/doc/source/reserved_addrs.rst b/doc/source/reserved_addrs.rst index aaf4f40..e00b300 100644 --- a/doc/source/reserved_addrs.rst +++ b/doc/source/reserved_addrs.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Reserved Addresses ===================================== diff --git a/doc/source/reserved_domains.rst b/doc/source/reserved_domains.rst index c1630b5..86758eb 100644 --- a/doc/source/reserved_domains.rst +++ b/doc/source/reserved_domains.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Reserved Domains ===================================== diff --git a/doc/source/ssh_certificate_authorities.rst b/doc/source/ssh_certificate_authorities.rst index 4bf9cd9..24dbf76 100644 --- a/doc/source/ssh_certificate_authorities.rst +++ b/doc/source/ssh_certificate_authorities.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Certificate Authorities ===================================== diff --git a/doc/source/ssh_credentials.rst b/doc/source/ssh_credentials.rst index 06044bf..c73991a 100644 --- a/doc/source/ssh_credentials.rst +++ b/doc/source/ssh_credentials.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Credentials ===================================== diff --git a/doc/source/ssh_host_certificates.rst b/doc/source/ssh_host_certificates.rst index 9e0b6db..e3387c1 100644 --- a/doc/source/ssh_host_certificates.rst +++ b/doc/source/ssh_host_certificates.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH Host Certificates ===================================== diff --git a/doc/source/ssh_user_certificates.rst b/doc/source/ssh_user_certificates.rst index 4cb5fee..e63abae 100644 --- a/doc/source/ssh_user_certificates.rst +++ b/doc/source/ssh_user_certificates.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + SSH User Certificates ===================================== diff --git a/doc/source/tcp_edge_backend_module.rst b/doc/source/tcp_edge_backend_module.rst index 636003c..98b2a5f 100644 --- a/doc/source/tcp_edge_backend_module.rst +++ b/doc/source/tcp_edge_backend_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edge Backend Module ===================================== diff --git a/doc/source/tcp_edge_ip_restriction_module.rst b/doc/source/tcp_edge_ip_restriction_module.rst index f847cc5..24810b1 100644 --- a/doc/source/tcp_edge_ip_restriction_module.rst +++ b/doc/source/tcp_edge_ip_restriction_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TCP Edge IP Restriction Module ===================================== diff --git a/doc/source/tls_certificates.rst b/doc/source/tls_certificates.rst index a664ecc..eb06183 100644 --- a/doc/source/tls_certificates.rst +++ b/doc/source/tls_certificates.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Certificates ===================================== diff --git a/doc/source/tls_edge_backend_module.rst b/doc/source/tls_edge_backend_module.rst index 1aa9ef6..8abf12f 100644 --- a/doc/source/tls_edge_backend_module.rst +++ b/doc/source/tls_edge_backend_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge Backend Module ===================================== diff --git a/doc/source/tls_edge_ip_restriction_module.rst b/doc/source/tls_edge_ip_restriction_module.rst index ed49b58..b9d14c9 100644 --- a/doc/source/tls_edge_ip_restriction_module.rst +++ b/doc/source/tls_edge_ip_restriction_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge IP Restriction Module ===================================== diff --git a/doc/source/tls_edge_mutual_tls_module.rst b/doc/source/tls_edge_mutual_tls_module.rst index bee4644..f8ff76d 100644 --- a/doc/source/tls_edge_mutual_tls_module.rst +++ b/doc/source/tls_edge_mutual_tls_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge Mutual TLS Module ===================================== diff --git a/doc/source/tls_edge_tls_termination_module.rst b/doc/source/tls_edge_tls_termination_module.rst index 55c4d52..60189de 100644 --- a/doc/source/tls_edge_tls_termination_module.rst +++ b/doc/source/tls_edge_tls_termination_module.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + TLS Edge TLS Termination Module ===================================== diff --git a/doc/source/tunnel_group_backends.rst b/doc/source/tunnel_group_backends.rst index 0f0acac..6b997cf 100644 --- a/doc/source/tunnel_group_backends.rst +++ b/doc/source/tunnel_group_backends.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Group Backends ===================================== diff --git a/doc/source/tunnel_sessions.rst b/doc/source/tunnel_sessions.rst index d03189a..5d5b640 100644 --- a/doc/source/tunnel_sessions.rst +++ b/doc/source/tunnel_sessions.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnel Sessions ===================================== diff --git a/doc/source/tunnels.rst b/doc/source/tunnels.rst index 347285b..e3cad8a 100644 --- a/doc/source/tunnels.rst +++ b/doc/source/tunnels.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Tunnels ===================================== diff --git a/doc/source/weighted_backends.rst b/doc/source/weighted_backends.rst index f9781bd..496f0c8 100644 --- a/doc/source/weighted_backends.rst +++ b/doc/source/weighted_backends.rst @@ -1,3 +1,6 @@ +.. + Code generated for API Clients. DO NOT EDIT. + Weighted Backends ===================================== diff --git a/docs/_modules/index.html b/docs/_modules/index.html index 69bc3de..55c1940 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -166,6 +166,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -209,7 +210,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • diff --git a/docs/_modules/ngrok/client.html b/docs/_modules/ngrok/client.html index 5548197..5af2cb5 100644 --- a/docs/_modules/ngrok/client.html +++ b/docs/_modules/ngrok/client.html @@ -166,6 +166,7 @@
  • API Keys
  • Application Sessions
  • Application Users
  • +
  • Tunnel Sessions
  • Failover Backends
  • HTTP Response Backends
  • Tunnel Group Backends
  • @@ -209,7 +210,6 @@
  • SSH Host Certificates
  • SSH User Certificates
  • TLS Certificates
  • -
  • Tunnel Sessions
  • Tunnels
  • @@ -245,7 +245,10 @@

    Source code for ngrok.client

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

    Source code for ngrok.datatypes

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

    Source code for ngrok.error

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

    Source code for ngrok.services

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