From c98464e311b8b82e94c36809bc9684f8a0f83551 Mon Sep 17 00:00:00 2001 From: ngrok release bot Date: Thu, 27 Jul 2023 18:27:19 +0000 Subject: [PATCH] Update generated files --- .gitignore | 2 + .tox/dist/ngrok-api-0.0.0.zip | Bin 50513 -> 51391 bytes .tox/log/GLOB-0.log | 33 ++- 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 | 270 +++++++++++------- docs/_modules/ngrok/error.html | 6 +- docs/_modules/ngrok/services.html | 203 ++++++------- 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 | 4 +- 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 | 70 ++++- 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 | 2 +- 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 | 8 +- 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 | 264 ++++++++++------- ngrok/error.py | 2 + ngrok/http_client.py | 2 + ngrok/iterator.py | 3 + ngrok/services.py | 199 ++++++------- 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, 1142 insertions(+), 585 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..e3c43058c6e4298634d3f2364fdfffb8f63a6e01 100644 GIT binary patch delta 47953 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 delta 47140 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

- zEh?|%s7F6maPR%sT76!*Jqs2y>@F3)42u?Ek?kz+Q26d$OTjekj_)4A@8|=U?dxaH zNb~E&wZWZuuG8D|xmvrc{w2H~-x;WnFR>B{P!(;(h$`^LU}~aMs)^TJtg?dM`GFfT zzcD57OOu(n!`}x{Qf?nT&J0$H*t(1UjCX%pM<8JCey(|%dWY?_)c7qR{E&x`bfiaC z?P$TXXsD(kZf9@z)c%EcbD?bj3d^zbu&S7CMu=B&igVa?Y1tN^7@ynHxNX9bvJu~y zAFtk^Kt#I#e-_-jK!|v-{|K4{NklDF)PEHijAX$1KX6C=7jS zK-q7o)362g=>~A?hFw*VfN^%nFfwLjh;UUo*@#<`JWmwY=Ggv^+dI{k{}1~Agi?S9 zwuko*`gI71|0LVLSQ32oFaSl^X^oyyP9}h|&9YIE`o}WcmfF;mZfdq-wx)ZK(ocW%B0BUFY*t7alL`NHZTwz;PhAn1merW9S>pOEAAlN73> ziNgk6kZL{YE4YP$pB(t*o8!exWJFp)K_Ruylc0_)!rvlPAI&P=8XCxF{qxwfyLP_x z?-x2haYR}WZD~LriY8;Yy*_MAacgV(CxZq-`eAY6{*oOlEE(K*S(A16QoF#N9N*wV z?g5!773A{eEi5Bz6!e8=$%{M;GW>eO3`bO|AyWmRBqXuqECsNVvKV~0?ThAgnk1SM z=Nc!a?D_7Cdy&6c!Qbsi2j)CL454{69>Gu6edwwNyglMS>Yu3q?w*hpDTdp^Kdfa{OR7Jcdb*fp&6yDk4U!T0@z2 z8eEi;@qeKiPo8&e3B-=!*&`OxLy_DeCn97#;|xDDNs zOqlrD9O`h?Um<1Y9DEtE85*2jf=2`{AsIT8=9y%^)xSpiTwf-W^d0M0Yv|Y58)wMI zQr8z`^#;pibsP%+j{h+l)zArVZz>pHftsp{oc8(yKS%WSv9h9L=wiC;Mk8TvRQdpX zZJ(e0vPAgAFaaksr?gM*V9i_CXEq!=*CE(sF@1p4b0x2pOu0`osJ*LbXz+M?WQeW! zOI4Aj)v}uD_466Jr975)OooKu_4(TAtkCPy|K^O1_oYdY!lVCObd&y7Fu`0mbi)xtOXrdAzbI?utgz+{{7q++Oh*J-Djmm8>mu0e$w=9I0w zx)Q`~)EEp8s6Zx^V~ty3XtHC{7^!fQGs3k9-o!2992e^ZyV>Aj=#J13)w3KanNbo3 z`*fe}#X(Jv!sohpoxax84X~2Ta+RV#emu;sjtzKx4B5fj(`9BZ6IS*xZ4w5kUB#g~ z`?wyZVceu{){WMxPec#xb6o;e?%Tp3#qXD5R>D8<`5X736GaK)g6m66hcM0jIlQd5 z5%#4)?=f?Rco~+WB&Gn3KymAi?w=slG3V`q+VQzTvMwK2g zk!u9Nf0 zlg5GxM2yffrGur8gx^EEkuuE&yNr6UIp<3F9|Wd2(+3TRgYdI!P>!aCA^d8{l4V}t zD9e(7tn^+EP!Qbr{Ru#p8tts3UTatSIXi&Mtl{Hu2iqV`xh|+Tn!~A@o73OZ_?<|s z+C$K(lW57rT}TSD7-Bf`b`TMN_h{-Hg*FTTVQv^E)zA4QTxv)9M4%aJ@bbKT^Yb0= zg1FDoI{}(_;B0diduj!kb%0V)l zYkt(pa=RU60SQbBrna>8K0h*nI4B1pSi_i&6GroINf5iGvgom27&pug7lG8ugE&cY z4jo(DX4@TyJl$HcUWD3YI=9e|Q`=2LGaydYwJv+c5EPdkF^!U^moOV>JZ8!a#Kek*QgiS`J#_N#3wMU(6lm`DvO{bex`cmn zhAq1>l{q@_WfdIsaHWQEP*jS3CV~|ZrT&1P$t`Tte~t$%8fgFAi437rcNolP#S$j6 zY?y2FB~M!|CP^$PxHj|iAR*=&9d?Kn^$eOK6J0ua^!|pH#Mqafzd8K*CG`X4{ms%P zAM_X$$I)rX1iA@!asGHYdLf9XhNuqfWEitXq9#JsmA4d)aFBJ#3*K$S)#lc$jIAo& zm71SsmA4Xb7fEE_vF-F{R7mK$;=YdBqly4k5}16NX`C~72w>3!m%@bE6=U!$T#eQI zL<^dTgi_SkEJM{Snn-HQh=5xazw|y4#a5K;k@by``g&w_?~#2FznFux#V)`W?9QhF z4TIj|a_F$0e$~NO`&HMOZ1YzN37D4IWWIB~zUG3m#7U4@1hG2&=X^;_ME#)@u zcZ;giq@oQnh?gq!F_u9nUTq9wsAdI~!z`joKG*wk69)EGhrcEC)T&6|xOj*F`1E{O zlCuET!KQsGo23jpl_$rw1b9xcGY%d|KmIy@XUFS1D9LaVb|2?sQ~uh8*HYB>spkd0`>q-swsFQDMG zQYIENmaE|}+<3$Dt=z@j^YCv&2^R7aN6}!&SmvPC6s9k-ZG2c4amw{zqHjYC^<=;X zPOH{Wf+6x${<~fUAqbf>VIeSgyljtomb4+2A*n3L67m%gHv#v<<2|qewqArDLWzzi z#TLxi%?lYJ2XtG&SjxC5_DQ>l^b4$DE>)f!(f&KceyGwD8^|8tBuk_6(Q%Q>`(-f4 zC}_hT=a%GmLA~2+a{|ZI%aOllrh&i{-B+ysPH8lyd}Qs9Ku|=)nT61|pQktv@;#Tw zj%?pwZHT?{LP(KYhlKp}67Oa5212lIIMF9bH8@0IcN);+=LJ5bA@I0#l22 z`6QN`+Oy4yK_a)lK214L-sgSiDtXLLMu^F1DeVkS=G%tuXomJ{>OlUoOHUxj-|sMj z`NgvenYcsq99+=9h(~q&8Cw*@D2IqIIHBZ>K!zUuk;(rSrq}tr^{D8$D5@sqhW>O8yPCiCr60&HrYXK{nvo@|`o<(GXir)V<@JSV zWQ6P-Ab&E`_-gRE0Xz@pqm!>#ZmGSY0gdf?6F?>#`OAnT_# zRQ{9Wo@Z;ZnK7YyJ=?n+f6 zJB29sd6G4@{S|HZ4`kjhH4s)z<65qOxV|_4tNY3nPJVM(s$#e49Qt0dKI4=+`bWI{L5Z?X=I^HWrWkdR^{M!<=#JJ(G^UsgC0lj6)oEKaHNx3dv^ z(pFqo>Q`11RP#wKwUjvkV>7-(Syb9ymb0XFRX6l0=KZ6xMeJ{MMR;#k8R&wtyx9^J zEOgWjX2yocLZ}Mf`Qa^zk2b|iz z!a2XDgjFCBz`FV(UPdI1oe}sis{{ewKaj~2(oyM8OGaSke{&wEe?V|Y)~|ITO?@}- zgjl3@{Qffr<05%XhDV_MG)1{aQH9drT947FNLD>bAbWtrquiiAGI?ol$+GMJQ>Fjr za7dayWEWFBk{}=<^nwR6pZpG2KJZES6c=P$lfkB}vnnVxU z5=QAksQtm|=hM;#h%^X6-^tiI7)AJyp5<&(LG*;;(^w>b{Zk)<-`tg-B=-G{iRx~|@<=ytltsel2{JqAnP$y=upGdz(qjoStl*2g_Q zw6}yCQ5n-t0;iKf>`}(9W1ffm8Q2v)_^x%O&d%mrD0of&@uW10aGrheEYoRR%IYu* zVo)R4P2))UsR=!Ls~%Z^fC?CTRrRjWG0lgR`f3$O#e|=mm9P`Sg_$u~A z^{$|@>lRiek#4rr3>m8oW{_+4=}6{Ae_?-_Sa&imp-(=mw(oU$RM*%@gru54Q(V{J>wfb_%N>wr#k(g8mPtRdqv6(S-H zSSk7l(b5l^whS5K>0>@9#|%G^5RGitp3=dNl=3!gVW&Rudj|yK)qTph8vOlUOGd0F zZ~ac zUk+~9IkSKLbnc{qUjZzURiOd^PAqpSl6{pNkpLsJmM(ozW?#clYIBkJ$#y=W1XD6n z{mx%ArRY!~KR| z!J!?}juio`njZXGK^4b?BoXB*VPqgw>1s;o!-tipSBO!l>&?mSVMpK-77eA7r|sRv z_wi;Ah)UX81(FB+9SqfJC>g{};>Mt6`m?f&KJj`|z+u@zu~e~8zaPOewBldU^=|x( zPCDw7)5@af#=SICwpcz4iuGC@=anX=1f|j6D;{PYJ{A5RphT-1kS(nZ+G`V^Lzihk zb(!0HNwWI^0vQA5eYwTF9m5kg6PXR-GWjj}Yv+893Yh#CD^vF0uCTYMug{aagHQz= zLzgK6>UV-|uoqWjd`MiMy9mJ_eEHjH-7aQ4UKQVO!#-_N%;$M zN>*7zLT-Ofl%Hv`k4Ihah53?2beJgNuxToLEybUthb!& z@!C|uDeD8$1Zus!B?q_{-SbnUML(iN(X}CYfvjugj5#oVBT9mq_C8JJwnL5n749cB z<~FW+4tJ`n#TYnlDNthy@*1KW%KFzIl;?$!-k@-@6eQ0Enm=3M^TR042vVXKWz)nB zUB>D=neho1?QN?T7u$WKH*18CEV!K<5x3lgAUj%9N3S5JW?XJ!;)VTOUQ*&+&<1^x8%w`&^LW`&t3orM;11nkV}=3!S?gWRny45e3tT;n+!(+2p~v4z zN4X1BMK<UGZx$shQ{W|*goLaFs0d*7#i8e1LuOoRUkKe zmD9$^$X>B4nAlG7LHF=svL+dSCC++s6)Q(`BksP8&jM*At&Y<@4srtj7?nAB_bn>* zU&eO};s(Ow5QA(osYUeNFH2(a{28vIC6y2d-S!1F0*Rl-Zm1eecF=QP4z2%71mp#S z&7s)5%?VvFAC4f}vb+}|V0MZYu&;s$ z`wvWGj=VXEfpD7c`+Pj4jQ;RLmLaGR_*z6J&lA7byfq7@(0nn2{0V+XeF2Ip84>a# zwQ0%EekuCQGJY~2WcuU&VaZ-QA8_L&N5D+_agM-c7?@PA>wgVi#x3P1?d@kz`JHb! z-z>suV4|M}PeO+~rc4+zq)mB$yxqtzLsYORM~W<`NbWq4Bk(A4A$Dgqx-V!)z+e%+0dR*3k!#Tj zv=ZRs)O;>tXQBJFVN-!o4R!9Ff;u@qafo#y^Q>kdD+XXKVBkjm3U)EI4NKDaYhnHr zjSz=dbfJGjidcpsqROTmE)0hezR*bO|(VK+!^d~@X0Y~SmR+i z-rTWfP2t$Ji9`(5>T?`{W-zaCj33N1!WcfX@8jLO2>Ijwy`0jvfTbFGbCF-wHe_7> z+A18za(upGK;&PwWJ(cfi$Q}_rd8o`VsWw5C5V%2kC>d@ebe!g7IS1jRH>V1YQ65# z?r8+-HlyHfPy9XA%evz(NcV+tq+ z0C5c6;c+)34TT#_?QfE(&y`CJ*e&ueeRNsblx-s_cl1S^08XP{sC`*MD_Wbo>GkZP z_I*b+GCMt!iyL~HMtZAC@^(k!=h-LUPsUQJW(YL>D5hNmWoi!#T$6_fGZ*#Z+-Xc`JAF<{2`RsM9)i2A+iR0NT&2+< z`>Ovol$7&e1{yS)9^ZWU)2q3HqkG9kSO?t zg@7eHcD=Y-3X3ag3HICLR6BPXwlG5WR3&c6MnU3S>HJKfD$`U>#3evIC^uKC7U&Ah ztf=p`+3>YZ*S=U^VM!1Z}cnfW>e10rhKL~W8RpXIQ1(NG1(=*^ey z#j$kYPCN-H*q}4BjC_(A1ngE$MbsqSUZ!uEndUvJ^81(EAi24YO1pIZWKfd`R|!q? zGWWKlkMJiMyy~;pYjbUPOzk)oKXkOs_R`HEC9SCCjK?uciOU5xHPhJf>_p-V>X;w- z_Bj`dfkrR8>jF(}5 zYSyw8Sm|5xpFKWK6ujmK{xn_AGn3O+H{Qm3KuiiG(ITI-Vg}M?{@mKuNIjN51-1)i z`IOhS@&x7XjOkD+D$lIa@O>RdF(A&ef(SfPFF*!`y$t&e3o#G9kP<`OMrDXQ7N^P< zC5#KuL?vk%>!T%z!FfaVTI5*DqdX0aIKjHj?IA+DLakqElf4Ba6X1y0E9B#p54s-* zE|PbeoPRXC;oi2v;{CO4SVw$(qWB|qv8mdWHpk&w0UI_#HuarqvlCMu85-7~159H4 zZS!Vt>)W2@v_w`q$vv?MSAW@u&~p!Bge6nfB%=4d{Nck)Xl-7xcZl5&hNAVdwxZ{l zplfj^C(sMuH=ntNi(8w&aBrpW(=q6IK&@U`8C|^Deny*HN*M8O`b)~qV={2zoa1+a<2Oe`|2fXK<7v(Q zwc#vQHFtM%*^E=c2G&|Vq2*tF14Xk0k=VtzEPkMK{9_5sCiL51mx5%(CSeFBa&{(A z-ZZINrM+%_wAZvl}o_z=(bHM9K2YHfWbRGzJSlqN=JjK47*HYz)3IIaoRn4 z?lQ9!?L|#Eb%W^T>TAU!xUG@n8BXy92#LU%6-&?rHJMW+T$HDRAeFbb4<(qu{x<=(*V{^0lS#k2$4o8?mfDW_D7+=l&YvqKDol58*DKZug@es-n+e z+MebY=jKMndp`ctcb1Rrz_9+C=4n#3gf)VFgEaCk$}ZT&XNtQ`I(~u?5%S-jlV)#^ z>@jIu$>15j8P3h$)9ojjk9_|HdA3@*_KubaO<*7=K(fl-gWQeHm`hwL4h zk^`t?hs!U?wuD_emk}!EN4YxkLg(9Y zp+pcee|BI{*qBs)j65ynsljs-0tcM7Wmd?#F208m79ej-6&}wgTtTpKH$bNwMy*dD z&GSdT&zWM3RhsoOZn5aPW*RIV&4`qP#9yVQOG zB2LM1Pvp!LZO|)dJ%^;2#^8m>-jK^t0!HBko>`HrF=3*T-*+oSaAtY0;>mhtV@1@* zxozjjo`HD9ao>cI;Wtpz` z<{kwpue`Yv=_*PCtbXtrf&#_Q@9r!v2qVNls#!0H8S{ciYRb%|ii;@(fBkF*CH`wsv9@|V&C}NQY9hNDG|>P^OfO4V;aD%O~Xd_?vMyG z3AlZ2Vlec3+YfXuWm~>k|l^L~0Zem9g@J zb25hKD1NiQrpw>f3v-C`hqlUFl;|W{R&iI{*vb1$AAzY$SNen3Abaz{vt^hB&F!$9 zmV(pjdfU^;D9!KtszW7@wc z1{`(#>{4Cys>DF@sJ2NRo9y!C}O@2mJt#=+YPj1Ry zcWyP0{TmxO`zv*~Fo$tqdfLGaJ^E%XIu7PxEuerEy1mA40*h#ywaxwT$7Oz(0G!;p zpfMdvLzkh4R(55H7YyqpHhTSFlt)>sx>pLl*2&~n{<@<_(RP7l=73;dM4T$r#fScW zFtN{z`@=D>@6)xN9ATgs`=adCfg*Ch(&;l(Ncy?l3DH4?0Y~Ta^&QK5ys_d?8=HVd zT8g04063je-M_`K`-^tIy{sS_AR%;VJbl;8i6t7{6%pJ3cA7Yh81@QOWapbd7%_9= z5ANx5cic4CF&(6GZSwU8?sLsq?N-nDi-oZ%$8=j=xUa^7q8DxHXf4@YzDU2B zQa+1_u{OvcwM!(nI%8NMHk*QMOcif?U+9$j7Q!b6 z>&PA+B7V7tS`Fr{FEMfT^Q7lz>CzWR?#AH4qtTa2LUM@%v}7#@+(jpNXxTwacF1yG zT;@Xv4L`F?lvi7GV5MGqYirT+mP{tq1Q@^5A1qu&;irC6fpCq!>UB?E*RbWxcDFIK z9~Ps3&OnDDV4fi7DH(!30J9vq#=;~CO-_GH-Ewmx5grrxsd8H96tG)y_pNo<-iEE)DSh+WnX*8X%8PJMJ&Qq+=t zu3KM|nbX#7okOy;p&j8-2$ro@c61vlon&@}*}pqDzKFu#-dqQ;+N05ojLx9X50X0C z|E8e*%&2{ju33H?7U9&p^eYZHy&FimnnCZr!n}Dd%u#6VE@2zg0*oGZjeJy|_}>CFBXgI4uKuy~`Yq|UQ!)`k^QI9*1o7+X z*IkGoV>qZmQd$C6vYVZDU6F=ciQg(JfcX$29k2Azm%P-*69)kKE<3!mv}L4|u|uJL zMc%ef)bj!wL9sfWQyajzkhd!PWON_X6cBDl2xK3LKWj(a&o&oBw=jpmp4O-%%E_V{ z;Ww$k5UH@iAbsVf31~V2RjsD=kLznjT#T8&~}cr=D-VH3{s&ZIHkLk>CjbImLN;5{(bwL{UWz6^k=g%7o~k`CBd}M%G{t)$|1c_ zGLN=DSN3&hPjz^gpS{m$tQU~L-O#2>{Asvq6R(LV~1E=j|@*ISc7yw>28D$iZOiV!#|7?0-Xfhv0-xq)d! zH*i!hoE#c6aWkZ?z$4{Wofiwz=u6Y}Tv9~oM~llS<`p=)Z&XMr8f7PK^3Cl-UB2N{lG*0AY1F`O zJe))j1M?p-f_Y^KWC(w78d ze-WL=2tvw?KGWKIB%8Seo*O5MJrn0X#T*1Ak* zx*sByly!Q!|CdcK1LxLc(>cn!V`(QW%H2SsfbQPJOD$HL_i-4&*Yxdk?k6YVCN&yL zU%X|VA4eV42Rn%wbIDHMN#)gQ5WS(hk2DVv`qA3h{K}l@zwD_E7Y*vW#w%exWv@w7 z79hBYH}GDmSNG}Cmjt^O;z>JDErNDSnM}$<^-d;UeJJ;kEYBPMq0P?{@GhDVIj@sg z(iBT(WUj*UC94jkJ$~vuqgF-gu-e8?(zw13o94g3q=I*H4>E1;Uf)}@T6ZnM#d7x= zpRC992_5^bAZ5c8BBlr6aR;yxim^k%!MZ($AX@e2bt|tB?+XlB*>Wpn*2{d*`Q$@G zP6s5BY6zQ02co$vgCWaqi@@?z`!gB9))UTX&|f=Au1y21`=k|$F5HF4#rHdjf*G@+ zYOhYRdb`y8Bp%#(w%oYv(PWm~1e2kCFHYRVNJo7;-rN~yp{{?fJh-zMv~h3!G!Joh z!-%fcaSh3?M9D6c>Fug`@6Hdw9T%Ngo#4>2ce+!cJL_)?hYy6V&HrI|YtGZ>&xGu4 zeIV!TdH{5%aQqW1DF+D9o&48@BPm*zLI6K=K|rKGw+g~XuUsmDji-BP8qvRds;fwf zTQ4ew{>f4h@z6bZ4==mn86Y8;vcz_x%`JWq7z<$6KR8bMV!GehQ#ww?CerTIU)J2c zK)^cjS|Y7-W0AYurM_Wt{quD{b};n#p_$_btVc<>MBT--qEAW;B6Q;tf*Aht(7oB8S(yrxftmm z=zLHt7%Si4(ULuxOB0)JW~O5+0YfRI`4fTH`c9QXwwm=$T4x)6z_LqqRb{=LW{*k8 zb!FMGzcAWkh%?FDZqUgSqfBup(Ur0uNb9dAe%%0jcn!X7ZEDuWRAix!`XHHgN`Pwb5!^Z_WK0}PcfOG?~kJ@P~|U4brmtUXmNHKyet00Bd#Ba zDP>^{-xYU<$r&4B1;t5o#*LDnnhNiC0;lEMvtme05u{`pJgSys5rUZrx+sM04>AbC zI^U~}m6L$62<YqHCp~ zWjw$KX_r=h4J@JPNRHO+gb?24eN15vXjCWV37)3_O$$WC7|XLZPe#bD$SC`OWH;A| zRvjWK>RZuvhSt{lGAu3sZICGEd<&K97qijFc%(C;lJ|~(&S4>$G#dh=fKUsC5f}4~ zyxw|6!`J%drq~M2bD1qlNf%8Bz7E}U<$wZNF}7LhlmGQFi0L>L+^x2kYTH=ML|#+{ zej(7_zb@~S97p<)Z<;?xbC4R|=fK~1m-tUAIb5h_(JyGY1*eVe3SNF>6<2!1SN0&z zo*uw0!6**0Ffvs1EEM8od0@L_r8MF?T_LFrfVh8ld$T~JuHf;upJ4|>r=any zKHyL%`#hyF$=ipvQ{$e#9n(s>(FJoFCb>JMQ*s)JL1m0cR;bM#rt zFYK#$00$%S{aW(jN%1_DAP-Tca&DAWcP{F=7&acePb$D+CZO|`IlWGf+2toqFGE+$ zJ+<17?R;syA>ln;h0hUobnk+8>E5p2)BA3~W-S*eC$v+Kef&S+a)i#@@`IQp53%$BEZgN471AZ{R3z_n~25l9M+Jp5tcM*@#u*FFQVi>UBy zyVtyE%z0@}xI+7zZPA*v-Fi=UJZ@c%Mfa&XneV?deQgD2*YYE+&37Rdn;}A>!SM6F z7ESYunZD7IdZjg2yKm2V3GjxS1<)XD04~pV{+JJxdwT>tugwhfW3SG(C=ryh{5qh5 zO?6r=AtXNbkm^iS&RmmX%j(eDU{&I_+JL+!+PSDWwUa4mpme%YQiix$8NAyXzJM^{ z5XBrl+LiOG8t3Q?lTSnq=6Gj;Zcl3snJw-fG;e5CslamC7yWhN_l5vSlyh;}VXLmI zs@fmCR$QBYnZUoQS6Z3dRGbSri#-50qY_@UnVisv9j`Snn5}^Q?N`A|cj*I_hj(7Y zgDyEn1XZ&9{Hqm7o+3MoCHV5-4VA<9e8f3p@kpF%G0xs@El$NahT1rptA34X1bSzp zVibVjgjM$4%Gc;-$ogSsHt6f`R}S+?>FvrfgZ6>C?=*n5?n3)%3sP}2SPFa=Z_aOr zs_i-EJ4;*@j~~ zUwwMwQe|u|sL7U?0(=goaqVVniM( zLY;S=|J)m0;TQ#r!g{dbbV2k7G32YzU1Z5674lBK!qmA@%$&E!cCjPksrT368*d_l zhA%nAYSp)xzKNh;kLi?@#thwDeG?jZ&wn62z^MAln&zngboI6?LjXuuSkc003!Nwv zyduj8`u|)mIQK1)B6CIA1{o3I*>!!10W07*6mB~CQo zF{ept`L~^nc>B*G0#to1qTWBwZ|h2rPm5RFfb2vr=w#VI4oP4%2zeI;4dGGb{`6e( zPk^g}GHAX{R78fFz31YTRW$G_0WY&%!5hx2qIwm?IZXRi!}Ipn<$3{B^WGOxSKCa%Oa`^%jA7TWj3CCrG`pSuwoW)2yaKP?UFUBd|u=iWHJ+C?8 zbDBb-KhxkeV~3zS?9V1+(_V_d?QYE@^>fAt2W`Y~8BVVpMd1E<2GAk1IU3s4D}f?A zNS%`Heh!Wz@HnNsnmH?daiW|2(77vi&~z0G_TLjW-QmL_py-gJ+c5FQkx4n*h^vS| z-f=A2ythYh*8s<=<|y&U_<_I|Jy_e5%634E_gaAW#?JJ;a!o0%P1SyRH}Aay&+>{e zu{lQUg=%1VV?9BbSJ>vk{P%aJ>jnQif+{`=7lf7yg2GoMj+^Y+;rL?hfJ#fc(KV(- zJ@~&I9Cy{3!!3hoG$OGW7bhfm9Rl-6rQ6%v4;JzL=K#?}H_zhhF%;b6b@dP`903Lw znHT7|tV!}evjQQ8n@jq+hh0k@{cUf|pvOL(@uz%Lr*}JRAf=6?mbbX|lGr|U2=37{ zuk<=rDMW0SI-ImLU5?E1S&A{OAHiHa8%2YLKv?$IEHQ0RP*N| z)e%!TMDe0JaYco!UHxDcisy5?+S`_~&j<|=q8i)$<_ZUBJ`BS37tT-4Tt+V+$|p|9 zuSQL@9*g2A&HtSjfyvouA{XIJqkFh%%co3|n3%k|>^y4BYtD++_Z($0SW+)7T*Z;p z0JblJ8B^#|g8Rvsc6Iym3-5*0t}~(f1u)E(>dTOTX4{yx?-qXg#^`T_48HDTP_$Mj z%(MHtZNlA*gY^A2uulZ!j)DLQk)T0`x4U!jJu2KW#{T@8Yo;xUD9L_eG=KN)u{U26 zhPg64ru$c5uFb`Ks(G29`X^cRpNh^%MBbUj{@7<q*5e!H3#va6qGX zz1GSIx}wCpw7^@WU^am$53kVfaz0$%KJqt_=O0<+;5>>f)69cMJy+MK!l}>_1T+E( z72#GKQ4Nx^d}!tYVLd+`|7nD8fWYj>V1eqVJ}nH#L7pkktPL-;v~@hy#Psx(2pWe! zb9~I8{I}FrzCQ%Nm2kgcdhvv&I{Crf8>{Kdae~xtXOXh;jPBB544J8mNUUsSVyQ%*J zYCx60-&a6-l0@1aUZE$ss?WG#C0f}WQtZ_gNUluPH1>T6fXXFU1E8g8;fR1L1Gplf zRkNob0af>JAZ2pLF;Hc9nu|+|CKgYBg@oE21f{2JDyG>u7OGI%gPk}f3@;!U`r#I~ z`aMWB>4ahmG9&2xxpnOoMkl&KHjP10-;KftNRvudt^ z0|~#>0tuxGM633cWp{W7_91%f**0$ZI*@zeqyJL3WNVN*UG(h_L3J>^JH>L7;*BZ+ zACnD^8Gm<0nnK%%zu-yFvEplXt6V$CnMC*ZAf$U-rm@?)1@9WD0*)E=b}WjW8-T2y0ay zn7vN$eN#jdpE^78BIc9EFJ9)&>FhlLbll)uuYaNNC|rYu3^qCAe+5xe%2z#jRQs+BWeQ5>5tsCrxNm4s9thR}%)wpaF%ZN^6rQZG-SS^;V9$2r~ zwH0I8wnlTN*4Ad%80)FOG^pA)HO8!2IIYZSBh=pIg~jOUDmCno3~KeXKP>GsdxSOd z$bS+|o+56W=SR`Xw0)}HF6*ak)kC0C9D#0d|ARL&p)LEmfR&BiH9&Ir>TDwYIa%L0Mg3zr%i#Z<(bAKz8B}X<|fjTK$fz>%@YnW-6U#WCBj?>|J zV1p%X;=L4{k1XaJUN<`X^~(0Hk$Bd~5G(bUjGm_akb5$m98qT2MxN;PY{ecq=o)Pb zVU((`mvcLuEL0eyRP?+Lx)C~=q)CMFQ?eI>l+D0;^s)un_|q!ak;R#mg&_*6m|gK z!B0qVepGim@Lo=512uULE(Sp zi;gK<_|bI(W7VZgdws>o;Z`7e&_Gt`OP7Gv_nrj~+&m06;zL|aSzH#*V}IPxyAZI7 z>D|Y8`GmrU!0tC}-NAI{WUa~w;=lc@VwTzDL$_*sY`%fZNF`V z-XPe1Li9Rdj~b)jS$tlT6OSz4IGP#yN{;JcK`GGFjb|>D1P2^kCtqePp9|O7GrsAyna~aT%EK z-E9?}6266qZ`4@mXMbH+;ooI4iCKDY@$PI!EOxgD@x67rlSm|%X(WagsB`_}pw_!Y%DC+v#a{rI7@F7KY#Y3M*a6)uLOnkPywc7Lcg)JQl29(p;053>*c zpFOsZ_MXEA^XI6eZ^LO@s45L^6`{c3o&zJ+)!+xKC695rKxfFZ`teIYJ0v1{CTV5Z zp$z75HD2KyA=}tc9<lKwRQGEj`67lMT5Dd9Q>^#BSAUu_{u6|=baS0ru4dP-NFcPQ z_^%zP+a4})M>@AMNXs*6k&lee?B5^~l>NyGxuVF58O~whs1JIaC)LOg4T#c9`7R0d=KEvd7B3YLyDS zp~Ei2Rdln>I2UehpOwVevxe{@47E$;RhvDLQ-2Nqp_XjH7wZ~QcCdGOq>nwI@uobB zwDX7DRGUP7o@qBWi8ABf*d!`UPr@dtZQheLL>z1A)evEri5M`2QKm@}>9mm|pI8Z1 zX3NP@M%eD!2T^jw%edb8DW(Wkd39ly6>Qdec|nY~?du{kBM~ubB9k!8_aPH6CZ_)N zb$=L?Fv{kzPjs!6tcN^@ErV~$AScj%k@E7i8ChLHS;e+Ay|7H{%+D6n#7}3uG^@V~ z#Rq)E1V5tbHkp)_-rFq=ck++hTVBhFBtxF%0#l`robE~Ds$`igu_a|0+OE=3cb?ny zjXklA)T7648>u>yTLaO@YSBWp#?MR>8Gpn&s*k@z^GM$<2NS9dt>%%kj8^+d9c&Bx zNT=eBqwHrgDeCbMg`l`=261y@> z4UWAqHfm5k0du2zZMzP=@$&XQ8yhC@gTCXTzYJ%4q_BK~u#sR%HAVUW!5q$Ufs-qj z3@LZx+FlzK0D0;=cA+?u=Pa40{%Qf%1TQjz=m>znK@=-^g=zdEq6ZI?V3!#MXkqnK zsgr(}K!5L+KC+w&0AZkoVWGutDPmd&XHh(*VIL0(RKtxyKLNZh@ov2%yG=#&JLqjB z*mfJY;|eWZhg&mfk$GV|Q|fEJqNW|!EXUnq&7$jbNC(uBIM9Jp4nDZ8$6qeqv9(vd zxBRHao&aONY&`+g(=_!Y@K4dw#8q*_u*F)m}llmpO%BK3=K)OSZ#uBryxh${sw(C&>H@{t@^wMJjoQpU?TGSVf7C zwSQNXF^_1XCEyEY4|qV2M=h}!cY;-00xY#%VUkYZyRgGMJetbb0Y7zRO2wF6t<%sL z)ar^?YpBM?T{bYARp}5MjT+%t2f?OchGM5RzT2W|ZipGKa=9?Wl|KzLypt3^)q+&& zQWp0J*pNzSbJ8m?Td)9omc?LOJwQqz27gdMcw-#%xEyoD?&0K)*eFPrN8-&>I)hVm7WgTg|8Wu@bFpg-3NrR*d^{C+nD9;|uA#B) zDw|O_T@?70Qmp+zbKtVkVBIU{npmjIy(Y};E)KSGv`#KI+4}i7*{Tg5)arRGM}J$n zVXdw<(bC~;<16XtZj(H^t+TD9%f1bx7w2tL+(3tLwjD8pvc5LWwr|QLX_z~TfUBxZ z*&I({JdyDwas3=llO-P7;sN$Dhpl>nJz{wVyq~UD?d6Bd`I@<8m4>&d@?h!nmUKRm z$|rhY<#JpGR_-USf>;k43F?wY-hX>;q>)LGX8w_31;AIxZY-E(e(Q=%aGk6ryp4~n z9l(EX!wfWkz|8m`$+VNB^xu=I=_Rd?<8qAFT0cKuXtl+I3yE@?t)9zZF~c_ow(!!? zc|-mENXd*PM%%(sS3=^F2Rhxj3_2iEhc%}PK6O+NMy)wOWaE%t*vjIs(0|6j#$`{C zfl117(QeGudBq_nkk<~!uLUcEvlX9X8=himnxx|(nK=$D5{N9LeZyjp*u}#xfRY)~ zCDPa3Vy#mrNXctIjNs$QJI}qPzt%ifIa|VsOa+A#7==7Kug^by`EdE^?Bn>u<>lwg zH$>gO2M{m)m^?c%cXFb;%YR#<0Uac1imtWS?>}9MUhR(wlxuc4t+TnqU+sZ_$v`PJ zFA0mJc~3HM%8}LTfX?QwM=1St+u(#LF63Yv3%m*lmzO$EL$;lKt^r!fXdJXvPE~U& z66)&er+1a?JS$bqmoB3k@Y1uCYMy1N*l3n5#;W&GYVA*@=%5S!r+-|85GcV@NWm*< zVHZK;#>w|1eB2GZrw~y4ZO+y+)f?#WV^7_mgO;e<#|J|KQ=gR!!OrSO?#R za#d0FZ#*16i=(39gxQBkhC`Iwf*RUi_)nASQiVHeU20XoT_9+^on^rtqdffxiGzZ6 z`b4)Ij$K7moO|79o_{oVvcy>$7U~YT*gU^mRK9dG!~@j~&H1bX`2u1wxT)o1r3dRu z#l`?Ol{)sImQ?lr>|R+<_>Uh%CzViv7Qc5lu#{!(x&kGDeG32Y$I^nuc-3MaD<{{0 zVlQke1EwcnJKZf3kKWV4yMXBVqG!D8OTlt~aJJxIc+%M3Q-9lkqe@@Xpn1DpEGb0u z#fP7dL6jtzJgHb!iVFe$T=`)tu4}4k(#D?jVP}Diu;@-G=Jc#mfw)pxI(zq#7o8h< z=fJ{oS!a`HfvP-#D_Hoq3>5&aOjQ*#r>c>#Ksl->v&NC-PrZ9^^SnP?=Uq}nSd}!0ikYYmgNxuxIx+iACL`|$ z_(4?qLkmpi1Yx*?qaP6IMZgFYB$4TT02N4|VBsx`D1Q%E5i2`VjUL|%lI0R0&5G;m z@ZMM@Kx>RoKmq{>IKNg?9bqH*J6*Kr96giCz1{>%_^j(+eQkcl@}Rb4u}wNe3o2V7kMh$HY~9EnHH!1Nvk+h2K?&luV55>);cqp`?F4uTLYF=$p~yNfMTuDpmZbN53vHd=O=AV?Nnn)%%DqjY%r_63^(y?p!E_M)_E zwAl`CQ#5JqwBAaM$bOjtQA}5`xuu54t$b#5r!nX*=3Edu?=i$dxU%b^H5ZhseO5iC z17*gqp))J^)s;$h5P7pZlTL&43#F`4S+lR776N~LzsPgYE#JPKhxwwIVhYn+Oa%k7 zlK(x%qA)0U-%g`s`gZAOV86Y+xcvO(^SjRsa{boRH&m^=Dr{GvLnZ3e+W-aX{(K@y1KXML)DI)sMT`h*}(Zn)RhUbO6Uq!#dk}p3FK|%$`sP;sz_H! z#&duFGA8><+7<~?m>I`nK88OHBT>3XX69idUWXKV;A0PkSP zi*M*GPXqe)e}HHuO%^eT8&I&~8I~W7i{*b56QHPyf~5Xx%bp%hSFj(v*at6m7ccgY zFV2f?_!aiWi(ND08@$-2E2_ndZ5g)Bi(T*XEWFs3eIMLu^$1>U%kH^Mo?3Ie7u#4@ zyBFKE4z}`QTZp$0FLoWa7vRPI^6~0%JlK}sV0R0ef9yv&+J`96$7Cj2q@E7>)!Bci z+UqKg(Od-to4Y-SN`gAtdKPuH!H4qA=TY|b-10S`pRz~ZDA>OXXT16P!e02{O`x8N z*WG~oX*%3n7SXG(UG=f9*s^&g!9u)TqFz!}`Thv67hZ!+lV-VaCa6;Lha#TgRlV=u z22oPXj@fL^-m-YMO2RnL{zVz-n5KV1&%h>6e<1V@hqpNW_~UuMLgU@P}hB?FE}w@h{imP>+*b_(wJs!j@$j&ZiCKa0P#g8{AIb zvJIdueN9`y+u|m}NLPUsP&>tYGRCbo`JxdO{H%(DHPFB2O78F&Sp`#zlN|_byx9U| zH*Ys9u|U~p;rWhGV@QYEQ>}T5h!Pu%aOhSg<{e@w?RG}+w*4Owbr>8c1WQ9d8gs|K z<2a*civRz?5?`IS{QyhSxgURrfB0_YP99cj>wXU?b>z*UhQ)%-;CKMa20Wk~I}Nu6 z0ag1_q67{<=c5)9e%Z2LpyjCTkgl-)GKju*NM*}@A(f+cQ6!5vPdlJgH0)b}q(K`! zUi;wZH~j)O7r)`BbGY~Gqq#i$wboDHsbAmVLA_i%cIMYNtcd~5mKJ}#NneTEeP4T_ zaYN62oi2O!2faXlJ$b!fde(UzC4=(2m|&Z?J7#faIwsm}FeTkXRGfOvGi22IRM{K5 z9TR5NwZ~RRo`lY!_pdeq-M9&A2hWePq&tiNfXWP1Anb}!a?oR+;#JKQ>pNH1W^_tz z?+QmL?Vd&aN!_!)8P$Ind#i`-=J@#SElV?}5hfaxlAm6DrM@E9g}=YT$)5iz%GqTc zyw<8?Djd$xg)CZC!fHNdU1r#8^6 zA(n^7Q2awlN@)N@p(puheN|*oyjxA_!mYPGy1Xz2WEy9f-s(nb*{n*Q zE$>DMSz|6?Y4!aqR( zjm2W@?g>p3b9pDsv7F8cqwzEFO_+N-qz1HW&xE;KjZ#5xX!A>`%g}8L)g_^G+2$Sz zlNN`U1mvQ4hF%F;y8{9g78qj4rU9$8<J1}~Ua~vREzv9sK z?lOe~mG?b3^uTJx%9E!!zrV{Li}2?dtH|}m$d(<~z~^gTft=T3LBLM@ZsSS=VE!&U z_j7*&fSZ9=sW?plid)dx*d;HD6@0_|W$9Bi9b9shvRGzv%TkSq@jE z$qq>zVUZCr$aao}9x@!{{LeVC;r|0rO9L1L6aWAK2mleSgjS4(s^Z)P004Rs001PD zfg~A|u^t(J^b#9W)U4=U47fnH?owcDi?n?T0)du}Y}OR1k(3iH@PFSSsT*xAUV%KU zQvzEg&-LTExlpnsXo$<~<4k|$0`E(sz? zY7NAHY?&rr1Id}fFOI-4LvWi310sjq3AYP{m^dyec!SrFqZlV}Q&UBe05qWrNJ(=b zbS-Ox@_}eW*NijM5LuvTO|Cz@)txspZxIxD(M&LtrgIIvh^@8h4w@yhBT8$kA*~g6 z%N7g!SlXl|C994pJnne$yn7wAZosq(D{8iXt+oo?DfO}okXyHjA9o9K`PxN`-@+)m z8*EX4aVosdFItK>avq`h$cv5%hJ|WUFMH*`7K0&`)DxEE)X*b4tkSQx!%FWBsc6F` z%~w|V*n;{i3^=2%KCg|MZ2N5btgv$$bKqcLr1EKa-$?;SftI5xFXf!B*06v*?pGy$ zUHI*bcBrVAf#f=1pps@0`wqR|lg*Omi zUtYa(!mtfMv^b6zdlIDmXB2h4!Q%OU(I~{q#l&G-MxZ3wzLfaJFDrqxq3$EZHih)>Uh$Q*?=y z^3qFr@pyH3@%a5AN^F;-W`1O7JW{;~@5duMh#%$Je>(QN27enS!6*xSy9nEV$9K-m zhm)%HRw* zrcj8KeYSu-TA|Kh*FKTWi%XXn(b6L@kt~b&l+g!P8!5;ey^JQPXpM*{_Lm#rEY**I zGlL=#;ydoP7!h{h#Om8hCPreb_T zVKg>mOZT`SMa{X(KRaONQd}4!09jFRhNa!88fVop0u#OH8ItlF&XDH`*QdfLVDqtL z>6QcVH*F)H7^SA7{q>6caCLRI{hxyM(a!?~WgKI~{pfi-xX@WkjH!#q!$sfNPPo0B zp();z#K40&p$~I;@kFzKM`TJT5SmCS9 zqIopzMH4Axf5@gI-Inh*8f`>(r%WYijq{18E%j!KCI^GSYERQHj_F31cv^IwzyB9M z{{~P?0|XQR000O846TG#a1wGt4FLcEy8-|JApigXZfA0DYb{}u-6IcwX>?_BVRUbD zE^v8uQaew?Fbv-NE3BJZQB|-a-N);rNwcmp&KPCuEDsh8b)bZ7}5rbuPMok z$2JO%aG$#}ybEV`4vmd}940Dx(06ws{}d~x3g;Ws6&a@Mui-^9e!1+WQWGfHw=KnU z^r>@}pQgJz!b9dKe z@}WGxZTYm*09_7T6+ci*0|XQR000O860L+*kpjm}fHnXC7El6{(IXp^nj{T>Yj5L5 zvgr5xipHD|lL;g_`#QKgceS{VCpqywlg(ge_AU;Bz@o{v#T|-N_^?L_^51V&bvM~; zl2TJ5X-bv>+Y;IDs;+le-^J02-Q3(|X%_RF8|JUpQJgX-45QRZ{U}VnxWgiD6a?I* z2Q%l^RpqWz9y@6ii$dvU?T7b&>fL3ynXn(6H9niL5B!&mhb|W-JtyUb$B*x>=!q-?)g9=ZC#u9(@Vf%fo=FWkUM5_Wl; zCHy_dr-^9j%jovsFuzx?zhLn5;>8Op!ekld1VQx3Hc`gXh$Y$W%1>E;>U`o;FM14F zjB`t%*j*H}f4+a4uw|5_++(*JYA(EwqfabdIw^bbqX6bA9=%K$tluhO(H%>8{NTHM z23>zal{|h2fbl~=y}9`^;lbU6iB*te#2j6E)WcgY_8 zAYixn@WJPgv_LG%VwP-RxmJL6US2C%1FCUYA7?dVAD2D=?cFtle^D50nDgNHfpZ&h zgol%*%P97Lh4viRjj}LJX6z~oQ^!q3d;f=)d*&jJMhaY5m?z197x@fcubtRg$#rp9 z;6oXJ3<1=|<^ULg-bt3M0adsdtN+01B`&O=AR zRsIR!oCS!wIwtE|ezu04^d*jOl8-{K4rD9T@$pN&p^0q&Rk0=RdD^ree2Jl+$qFsBw!z4*=d zeylV4u_~B<@fOT8rBK6GOs1(y%SO|S^;U$ zkVjNY+}NirY|>Et*-l@zIn@wYNnfcHlf{rmO0L2jdf_@Dl3Jimcm6#vcMnM)d<$V^ z@S`aE;5&qW%GhASiQYM$Cl(V(Exi*kfdVLO@ZNC6a0F9rl6E;zps5 zeqzogDv`cF{^c)<@)6E5#Pbt~cKi{Z%PZKyqeR-gK6E7;L{taFpsv84DKFz4E5 zYx-Yonz{JbBWuvM(k|WrVkd9jtI!loMz-C|>*B;5qmTMl#LHxjmTsKx8R2UV;3 zssjCgx6nli1MmT=ZDpV%Q+o`B;vqzCp)gdipct00+K1f+qT1t?exrpuX9g%NA zAf#$o=Wp8}TU3Wd`upN$#{LIn-jzeRMy-*NCdGkMi_ph9jvo93u^r7juoVE#EFT^0 zHk6xR0-+AM7-UglgSMeNKL$z;6{x{ae8YsT5r>{Pv&KgAp?glUyp5dLn-!CQ@n1lH z(jK=Vj!+<> z!aK7*uBwZhjg$^_S7QSs(!_yU*EALTdx7ypyj0qW)c)ZjU$L75fP=6 zrN7P%pRjNJ`%tVY&KE6-C|r8%pD;*&7RBtF2u*)vIA##kkb4Z5NZgI=^m1%%z|;Xn}RMg_3iBzRr)xXXJzFFkT#zlkal9|aIoB4 z6zxl_sh~x(h*JYi5tpP(I#tMjb|~u90N6(CDZqPFqE9Vo?CC!0~$?}NZ^#Kav@!H%-iN<9@>7eKY6=~VVe3AzHu4r>0L z;|I|LkH2x;PdxM*9Wr@Ab}LFUp{@ZO^A~*SJoo_BM<3uCYC)(mzvD4~#_4+0o@@cb zzGCO@&UY~~HbFKZEx*ERqB`&$)-32fjG!Tb*pcvwsbOrDv z1=ZG1mfV}DK(jREtFbc{q2;#gNr*H?(JVxo2q1%hyoYdtR8eBL2)Qrq z9)&1b1C;UjM`)D}7iFY7#h$L5r5pSGVdG{Qf@+RiHnMTYSW;=J(c$^h_woedHmz>d zY6>hx-SZ`2J*ecb)yZ7k@e?Mu{cpb)1;v@R8#nU!Ye43-%5-X$sYDx2K$D?G#J}R) zDB+R=3cLRq8gDp%_L;A+{7_UiOO}>co*~39S`Ay`fv>0P)a;)65$!6~#*j)9bTG$1 z<;QaQ=JJ2}rM7f)?Q?(XRSmNDregIVk2l~)D?O@&AE%*AwI*S`LBd`=8Waqj2*P{p zou2fhnvqm=rT#Ra2GF-qgZ3fOqtJyK7Jg*`CXV4y4&V zR)Y}(ddTW=q=kC82az9zc32OhaVdvg2}ROl){6FjoaLlLHc%_gt!FwrUMb5)^|Ghw zQuF#3_wSb}_jamXs^Bh_OXQNLU$=?STU-Q${uqDZ8I0 z?2$SbsSws27<`ywK8Z-?uqYxdT_rKZ8(64%k^W01MH`-r+@ewetx#5ZjW;D z_S67X_0tT0G*GaA_0L4*{&c@8+*|2=s`_c@eA`IPPKB=?W`lstUeg;2UY$tpEw^1y zDxNWlX8q1YfB}`eDoV6a>{`<9Q7CmaKpB^RM%R&mBNaM(+H#h84v~3UX>&c&(s4^n zHrkve?Ut(C6_1e#Vy2Qyap6Mh*C$*@p}#21w9=G}@bh23{ws5f0@7)w=P5+pP2@PE z1}imY>@rPJjdNICPaAa#?uRVRoPd3N`+=<@FAD_Pz{>|7V?H(N7z<(vtpm^+Ii99} z6MCK_buPAaU~_ODGO1h2>pf`GTwTs;$AYsi=0=xSpwVN6Jw7;r?+FP-+-f0DuUP8KmxC42E`jn;h=Ft%ftG+o7=cD5W&8L#_XGi+`0tuR( zk;2tq;DnaMU0yj^_sUF-51_^iQ}q^QB0J$wj`OQ5qaq)xi|pPP>0n9qr^`^&QYwDY zF^)oAc1gK=@Rl*UDgn>}EeYc4RvgZR-mNl_CKBg?V}XRb@DkcbOeI)<9+s;=LhPh$ zwv^Fc-TI)dP9>@BkHgS>9d^w(XBvGHmMON7=UTeFdduQ0Kr<7pcNXSJ`X}aOX%UvV z)*&7<08I4d9k~R0VbsB^WASDM*(!77ZJ*-)+eB{FTR-$*mtqM~x%5c1BFZA}VDkT> zM*$IeVcev+z;8lVZm5`lnu0Po<9e(Cek8~t&hs(K0#6yMgrN#2A*S@&thZRq*f;P(EIJ{zoJ;xg0~P?}ks!jd zd#)4H@F~_FkUmKLb-?qALSIC&+ls)I|fWCpnj88zxx1 zrpf7FX%?4SgD<~&39SHn0p0dtn39FU-hhpUcu#5ULQizTKVzmfKZQL4j0ta4rq^-< znOpVw-Mmpu%+lz8R+Jym&<2p5!*BWFfR}O_zs^Y8E@IS!XrttY(c|&Dw{tS(&?gm2n1t(q+20d+(H_q_z87@17@^ z>EOfr2wBmSq@Uw3h?@$7ru}e}Zq~f+MK^a28?$-WJ}b>xSsj8pp|OOZ{RjNhk( z8;Ug)wXWa2i(mt68mhT|>}Ifnx3ChQcwE%G5-+|H&#U#K6$XhVrM|9;hm{I3$|Om8 zljk&1mEMbg7vIYiC)Ikweq2{kylJZW$ZwZX^y!9z-DFPtqV~VU+y7U@pqcd}lrV}4 zKcc6mn(oF~1x1+;mp{C1Sm?<2T&=O|H&=B7P9lJDdXu`auc8n}p6W39mn!h_>fM!k zU7uj*1MVQ&JGBk~kw)YL?K4KjDneY2{aNS(gfy*xFqej~NJYTXw#P^Ki-iRX0UC{x zTz+dqjNQ%{K|rt@;jnrE#NSPCkd(Y2I{pGb-T-C+cYRTn=)|_8N#uz}USkw&5Z%8( zN%Dop7b_1$v4g}_C2HYv)mIR;Kn1nj|fElI`1MJ*|^Znf|nO z(~=C*zt)undBnf%`z3;jfA?99dP17NAUn0Y1|`N>BMohC+Ezfs?UzvUtYk`*&CY5~ z)hJ&U$cd8V{(d1Eu$LKS#ku_7T6!#q_PqFiIH?v9Z_6(_4EqPMAIKik{y17EU&^Pi z%4N%R$EZ?%Y1A}Gj8WBiYt}6Yh*__AW7IJShf&XXTd7;75tYj2*GBC+a$vMjSHx(A zw!Be|o*CtEdmF{@k=YvTWV11NR2_NU)~yb{uGFhK#P2TuZ6QkL8sa7|VNU{7+l^50?r?%UXEzk;o4CU2S zM{^CF!mY^e!Gijmreg+O(KT2ySt zzKvP-VF>TBQ4Og8Xzg@s4&~r@G^02Vbip%@h?pj-aMoEfE zCTlKIG(y)XAIVJ`XzH)XQS$NahX#cc3g4s{xDgtfFI4$hJikl{;hUAnoo>*>P6mxf z@Hac#BKT{7%RkcjK9TsP*~hEFktQspvcxQB!fr2`(9(-CVC;XsX7l`$Q9oZNgE2wJUeR7Vol ze5_(xE0aU-r#}Z5&{`V-Mt0g$yG)%RRB$ia!#yeak`Gw(b3st-cr0;$$x6Z2cX!Gz zTU|(*5Nb@thMd9%n~GMZa=z`*u9|JwtIE0H5|uwoq8kG_95KE0PbKKURESVO~~zZp8C>5l5|8IO;|dNt{alq(GvGE zIC`P*Eg{|=!Ds+@ds^RrE3o?``0ZdjQmWqo#Jx!WaBw`tHAk*g6}$R`gx@yM*I)#z4qLPF!{4#r_PT&MB;}#u(5!JRsY!yoIQP(+PXw%NQaJ>XGa4 zg9uN6SpBi6PA-va9l>&hc+*Ls%2T7x!CdkB-TNY-?g)9~ma`>)C1R(_je$G*>!}vS z*fEnVhe)0#uT;PskXg3FpAk{LdSvT>X+9aE^~XDH@#+~e&w4cKhKG&=lMZI3aoBcP z_6+%K13GoXXh(v7Q5|sF(y{xaWVOwS0}Sd|DmV^iD~8k?w=JK2J5_dDg6p9Cb`Oji z6@{!vzfL&rlc8RpEVmV=JxiWjk5OGQ-Ekn*!CY5Mt#gDNw<$4Di8gA5#=vQ{v*#T% zS*_*Mrt-@*7{^<*CTsvg=No? z!`7oyM_hIs7j#&Gi`w=BO-ETtm=Se4vkU$@klEKdWL+lj56JD!Y9R=gIOP4 z&2fC3ui-|K5>>-8W8i+6n7U)$hfSU)>qDRo$ocGlab!ePOh>2=*xta%)F0Qg!JTKw z^mKIThUGma#vHEfUB9_HLXKCt8mlb9!`m_NI=o(?YdsH|JWXDQKpRrav&NAT5icE~ zx=`_kMW!A#JPX`;hP+NkmyXoCC&ZX8oQ~C-5s#4hS>EutwfGp=V}6OyG4 zW4fcO|9eHdzMD(#kWRA#*X=sGmn+|LJ>U6%fH-6+wLsCMxRA>dPCZ@6C40BLj7vdz z@T<5G?zR_k*;9^DT*IY7;7BjwdP0_;U%O=xp!1zu&-%`-(-D~LZ`n3ovRH*s^<;c_2w=vQ72dVb-cmQA>NS8;G7Jesn?lu8@m-PAIH19dO z?3*BYWYoHYwC&C0+8VxHQGtUJs}BO&u_sD@BJzD`D)ZrCcbH%6?T52pOD=qSBNq*| zzx(WK3~Fzy_t+Ocw6`D5KC}T$Lgq|=3j{D<9e8^?-o@9#{iffr`W);*G|F+_@NVPm zduw&Qdpl=e4SA5xzPE#1@QxU3E93;d-|XIvv&RljeL4F?@3zi93FYCPeE@fBXP-5l z8i%v5fWX<=H)c6Vb1asK-Py5tb}T-3DYAu6vKO{|mO+P?L9INXcEU{u9?;=`Z9lUMH_SpkEIQc%<13EbD4kYG%$?(N_@ zN($cqz&*(Pa4_6EMp1$-siW*L#r!=3n(zRtnxM1v^4&GM8QCuxk2mOlG$nVdEXqV1 z!aw)8^xY*B&P3_8%)*cd3~G}z&rgKcGL3{I5P+zBO~QTnV;F205GDVi=mG|jB$4Zb zn2s)BSW8E1R~omN6LX23+?(Y%(*e8cDHKJmbtM)BA5i#7Wf>yjTkk&zMfGSCgrdqG zQxJ;2_PsEpO2`<(EdfP;GfODAC@l6*ZyvlHh`V`_DtZ(VWNM9@0Hwv;% zoN$vak^Tem@dFI)@oPwPDBJsx-R9G)#>*7za=A|=O3je1!%|9r%l`e=z#H7PJG*KQ zw^0!M2+c%U3i7gi#5PgJ9-}PqfZToJk{$X^;QtEr9y?4JV0Z*Pl!x#t^oZ?7I3Pck z@Sm}(ERLZpLI-;gtkdOd1O`PxA%GT(|NG&`e=HW2(J3st3?&a20arY9oi%JF3jTVe zASwsg>oR&2!-UU&F#1>ybB5LFBd(oVBDTtahq+OhIz9$l0Vjj80e-4Qy^De%dc;Xd z@nOOO?mQ^r0_~hE%!1%G4F40LLE!t-(q4`smoOvQ7s|*XC*!yttt)j z>{(zw3(Q9(Fk3~$55X2sLEN?pHMeEfx-~=>a*xg&B1Aa-be5PCJ$^5IYj{}er=Lqr zs`UYeS#z>W6)tGMzDBhsll|=*F6{AW1!OJ_aE ze!`P~e6k?&h@XD`xzdvkg}L#)XG?<)uE9(V!x#z5*ko@dDAhY5GeILorla_Eu<6?x zP==7DIbcxmbf@mM*=T(l1oUy#TLi@UU7`2CtRw45@791aV%VAk_F)6#u?Lud8J9u8 zR%)y?yIpSFg`u@(1A8{I(^61w!f4?vdp=u#+0$MP@0%SxJIU2rX}961C9PddEJS1i zVB==7pf(*>M3VrrZkP*2Z@G?b+CdqS&XMOw1=v+7vE=nTYELAUkmo$LW}P5^iE>j7 z4GX5CC8$ZTGqf$mQ6LQs)E<I&JJV~w5K2wkrZ$j&W?hYHEWMSG04g-kT7&&HYu?Ad?Ox3O^z!O5z~7;$t4o2j0-%WZ%!r-`vb zleQ-3Z*8)9FXLdg91@)mUbAccB8TFS{)0G0V4?R%t5SRnsELiM2>LY|yRC@g(3(zs zFEs;sq;O=7i?T$_8K>25q|&k+N!k>9TLuE{5Gpl)uo^whoslwFBqn9_YZ2uFa9wgO zadIj-*!5$75|dCz!gWTbSw_w7$4`R`-m6xn(mFI5cm*rwS7 zve@iY4vqW;TQ(jN=0(YHLK_55WZJTC3sICkKH0|Mjamak9E$@)65ti)+ zAZQ?amdPT0W=fViox#SWyt#*Cky&BQ@zN9zd~VTnbC8`_cEkcLs6@ww|3r~J&Z<=R zW8=EaJx;$>S82gpky4cY7C zPLKCO9@KIr=jo!r`2>4U>MkK)M5;1qq(sc1$Ae`b&w@S~CsbAkfLZX^W(Cun=v(K8}p>lu~+xzmYY7(o+=yu=R!WtAwp| z!mO&D?_vW@jS-|&j)rzG3+MC-zB0rFGqH`SU2Y_aId6I=@wOAmH}EU$XVAwlenVed zH4n06LM1GmS&(yJKokx)lF?W+*x0l+Bzdfu9XS;isFSKAglk#zB7nmAGrGPjI8i}@ z#o`PZL|%MPx+Fw{nz$`W1@g(us3n@XxOY6IMiv%E2n!(b|Aiz)U5(z7$1)lMd$)4lWY10ig9@ zz#JOEbvnE;&w}whvNwk>{8F@N`P^m=(dh#5=34LwntjsD8TeA5jOrpMK|5dfldC*c zk%QR9irea2B<~|%M_kT5s;Z-5>cF%f2y@(hu0a)|9Y=?!$w-e&1ML3QSrz5yfc-%D z^X@Q!dYr<3sKT1Hmwt|}t9BS#0Vvy!EYALyTEgG}DlqK$o+0F_mx+(=O37qY4!s~SKH=|(UMDW=2 znF&l?coSx(t8ul9@XNV8`^^<}TW6cSO1&kKuWUr65D-qkicyxhok}%epE8BmiLRmK zeiK6|ufSwxqa4c=skKxsa;QKHz`$OP2Mbf{z<4D*0U8`4%MVE0l<`|JTnc!RH3Fnd zPJ&%m76loAPnZ-J67?F0vB)pIZCs4zlga_2E)0vw&^C)cLze6(ssONKA(%H7l*jj3 zqhZkwKNQ5~)nZHkhnLKNY1TtA~}#;5iQ1Ts+lBr?SZ!y(N98u)%*tvSJs!{%UK2F(Sd7K!}(nOiH;Zi2}?U z!ipnhlaYUhD)Clv_k{SkBI+C2#Nz~KtDp^NM*E}TaXf$3yJYgyOUh1KVHIXHNI{>y zg-?^H@*buICSNW7bhP+DC!iOl^OzVqAMxj9WTiD$6qn-=EX8lHXGx@zx3FIIp9~pw z%bm)X*xf2d44aQSZS5it7mHa)X>oj2(SaS{Yovj@;Hq}mMYNwYB}$nGk`HeJNN^SO@Q4R|BU{f2M&3^V8HK8HAmnFu zEOC2rpY*1r@HM3u#C>%t`4Nze`rDaVOy-p!s`_|wGB5NtmRyoKwIQqvK3DwVr{K`5M=DsebTJKFSZ0>k~iDCZcTXDsGl zq~#G5P)suQ=7+IVv8JD<6eh^sEF9=(#-P01;5XuYQ`)@v51t)QaYsu;aDtY=1d7$o zoIk7ShZ0cmSQqm|<3+;zZ!$>B5JKT>su0fgd{M*4PAE;gHvb=YnF?y4FUF!F|Nk?W z!2h8xcbav2O#}dFr@T-Cl5Mldmr6&H$wdrL$LvQS19F1a1hqcT+ID%7?OzLD!xb-k z-VNanc;;XzYZ3rXDQwBnQ z){N8_xbbPVx`$fVIn?#zLGw(^A@LB!a&YLX+%@AKYJ31w>NO1>JWW7TSy2dCYjx`a z0bF=>SnU0Jon3|MSj%cj4)QMz#joavmsM{$DZPz1?sOB|Jzu8R0GpLftnq8}QT$$| za%!6Sz0l%Pjo<89#f_CVnFGYA3a04Lz&n)y{8feV4{Zeeq!Hh*4i&TZ&e>3Ch+G_H zgpIi``=wYN5tu_fM6H2bAj~nrZCbeIdr;n1)!h1Du@SS2zPOk{kRV#T*xh_z*qB9gyi+5h2*ih`L z+52pFl(lCUhEb=Y4At(0q03NF)HCojjT9W7aL@@t5Qm0w`9uJtdqrOV#4z9qCp5_( z-3J&xN*7}x>~P_cAEW=osGN2tSU}MCA}ty!z@HOivX zzQ(tPR?OR|#`pKbf;ZBLL6A8Dx@vpUv#YUn6-iCCURz)rr7`{%MbS!#!ciX{wwwCW zUO(t^N<`hE#Q9GL8-R&-w27K8YI$uKJGqAA@N`}mqc?7pRy&mHem(sYJowPOHC`zkZsa+?NO3)2{9 zjao8=Dh6ZAdn$Q)-{^|PiRF9hBLJED9>~_ZWNV<@EXHxXsEY19WpZkH6Gj2j75K4D z!V(ZK#UQ_c&8g5oHT?bS^{Ka@o>}Wq*{mRJpT?h3k2ok9D6Cdt7w>u})I2Dx%dJ08 z*Q1q$+tYQnfPg=*dlD-U{6EwD3^E9+yh36m0&YU+2<*NM*he{;AklZIpckS?UmDYV z-O)-kEH?cu0uEJH+vtH$K46&bz{;ZQwKxOJnGl@~bv}ch<1N@|*OVeVi$3{FT`2EjS*ql4WCfval)Xz33MivYjB&P9W?Ba-=&)uUv z8Hc`332#kuN%e# zIbb)(af|*unOpEiB{65@ef`Z>=GItw>)VWnJEBivQRR6@VUc7yJq10&{gItK85Q?) ztjt!b5ge!4J#u&xTcT2@f2mAw6^_z)VXLHP1*h402LZrKTllc!e>Nes>O}frzQ6(1 zuvw6rI-Xd{9EOq3F-Ar#; z$7TiedF>y_i{aL`jAz*H0)34M~Yo3rGje43Mi;p%a) zquznkia5qu)K9r#$pfjlN%wiwqDfeKeSrWArDgUs_HSyohn|sjzt%<1Crvk4EGSBF z<2lU0d!S42S=aEQS$>}^v&6CW_vy`5^SBq!55Ewk?=T1Rx_!LN5UgO(=x9+t}o4CxRto>>|SWTWB7)i&`wIx3=k2|w)H8n-g>wZ~4d z@uERcd9WcJRvEBGfK;?3OejCgo~$c#-uE6>%@Z}S^SM+gXRzP=V5D3X2Sd~trSUK- z6wmT-!iBrT?C6s9^n(++P|XMnRi?~T=)_-2D$yknYfRNm=!2S%rd_E6>U`!?wZ(}L z)_|FqbX=)t)cm%nqxN`oVtdjY>glfEl0YEv2M`26*+_n_beAm+7j)PK*eUxBD;cZ7 z;U*~Q_7TkvpTWtc!R_;hIE$0u`AlBhsWB+fssu$?Q3xiZ56ULYt*O-Oicb*C((r8f zV!c1QfD0G1D;K3?Wz87^M-Pb7(9Ss?eZF-`g^9D$Mh<`&>mNK{`misOAi4unvHMkH z`a+qNV(`@V%bpTpv-NDsbA&2ddk$;(Rxs;!=j5DHSrG41t;Znl>^z$Q$NR{VuE^(L z3}!wKMzSDjJDxGIDPkpJdDa~M!6O;bo>QmzN=hj@U|y)in0w_wpX41w>yuQ5S*QUb z68E;(L)s$Hvp#7@M>JQZ>&(E&H`S3HachR!mYdTS&Y&7P>wl&h@kg8|&OxtR9lF=rzn5FJQ z97C9C!c~StF=|mD(p5b0!P-Omk!a}oH>hA0hrmv=;#b5%)B;j*dXUf3=QnLCzeSY1f%S>9L+_gA|sAG^{e(M%2NL%DGQo>Ly-$>93pZE znKo#X+M&fG_$#sO77_$ra z;G@wpi>WvU#BEwMrKd}yFk3S@>UJa9H|0ESi>4Ha#FzZ?Fsi`{P~QCZhrq4sY@o3` zcKy;E^WL0S8)AuN2jpUeng2ZG04=!C_)iAZFZpeWeV6lW2K=>Jqb^3b< zAHTpgA$bE5{N$vA?B#)gE#4zfkEfCeMw%O6#MM@}lDF$(2`dmf$Bj|J;39bcseC<; z(p&U$-OncI9dil8-kq!3rM+1rQGBM6(x|>0EA49Szw`(Cf0NK=v3}!~rIN*kg}u)ktw41=bFn8kV%x zf{2BTfO0#3ECk+o8vrpv8R!W23#@M42esn<4%<^5hwCt+fv8WOajgK9LOfn&Am;*_?77;NOjX)EY4P}+ZH<{*^x0uJ*HF- z5;>w$6srKnzoS13EiGaL2LX|U0s*1@?{JZmmJpDE*kg>C28l5$c_GM<80f8-zsRh} z(5a${G!sOfXq?k{i1A5QF)MHfZD(MAwJW>s4%eDLu#u$C|&PkVITw-NJ7}m7) zv{qY+Xxfr0-~fp50+-&SrLBxNmsFC6FUdbU5vro=UqGXtJ{%i?h`m(LHZwAWpl&(0 zD~Qc?N|3k*SvPy|A82C*vQR6KUEg}X0#ONpGl!|s=EObWXOzUG?vaS8&);&CB< zs)1o1d4WIdbGuT$EGlg0VDMm(b{=S0wT*6?`QBQ(lMW4^Ogx4Pm0wVWAirjApnEjU zab2+wyvxe=>I?94!sar!{8*{yW(`s&KpBHijy;T^Y*%M!@+p(3O6Jz96Po@}lHm9T z)Hr#w7|18qXuPwTe{WfzgI#qARkp2+o_fY}2Cik;^dN&hv6x`jLUXOJ!F0lpSe%iP z41nf9&yRf}orU9XBL?(~OTN>p_q6b+-nTRH)(8w}x7sQmbpDwe9ZvRy%R=SB&m&Xw zSH=G#a#(|%TRc#f*y;k4tL2*K=}H0$goPvA<-BR#?Ss(m6YfIdF_%suT+{(&)bu;> z%<#hSV8-?r&I8a1v27VeU}7NA*fx>ai}dd`P?|RadfNngxuChy1kA*k=TE$N5V#3F z-kE2Sjd&4`ME0Sx|7^B=Q_@05hc^L#BGXZyEDrj)@L+fUJU9;N-9NG(j}%`DtiBxF zM>60}E;{?TcY0tbdH1_reqDWQpTfVk8+xCuARdNCO&%DzpOu=Bybg6c#g_FneJ8&p zicYH^+I(MdwpDsLL9l5ta1r$!B{PjHB=qd9qLZD-Z|Z;?{gc`i2OZ)kgb$zkv&^LD zUUJCk!1wsavlwIPfJEqH;~C*R|Hn6;S5G&{M$YB=^<}hK4g5}f4z|*o`el}_nw@0f zVJ8on@;0yx$)MCmKV;17Z-2d4NqA@~;Gds^Bu6wg6u{?aA@Wfu){j7axdLmrjmlyk$WGoktO zZdKn8m1R2C?)uwX!HkAky>ij3V{tPvnvR}bjkCNxpN2R>w=&e(lseH8Y!Cq3(NQ#6 zO+ig!n%2y&qKu*5Q<_;73irD_AMA2Ng*<}wvb?JSfg9+9uB3sLiTeV( z!iP)+o}S8K$Uffl`p$q=u!AJYzor&>&|@VgW&mb-&%aUeu=X>_=h*T_mmuu&w?jzr z1ie8H#hVHqfX9tqnF2Pspn!mft_NY_y}xKNmu-Fc*#1#9Bn82sHCo3V9U9x2@^#$c6E}t_l~_WFHB-;$$DWM%)Le z1cTT`b!puQ0!BE*E-=nn3(Ia_c8EzHVH}2MH1RVtyNV$UoLCQ{G;`C!@thoIG*Pgz z8>_8$iIKPru&a8y#dwRBp+m#dEn$3X3&Mf)FX`EF*OC? zeX9mTF=xe6`%FBSOqkmUbn^>eM2Lx6FAe3tGg%h5qNKZazi4~4K;0f0mDMwTZN{Jt zu1%Sl^9V-AHRB~wYg4sQ&U!=<5Q*&Jl_ONDi@I7;X6^a&aKb=WX2m5LQd&jOvz-F; z+1h+p>I7n0^yVjXQ|*;P^IPP1$w;qY;X2s#%}(|k-mxdH!{nlUz!kC6Pzg@`wT5CKDhh)DR8Ag$HDRhTm{5RLBtvAf`AUr z;!Ehwv*?=eowtzT#nG#Qx^I=p^I8Dy9k`Cmlo*DTY1LCbUJ06dXBbF#7RhP*5xFx~ zR!@M@)l&n9^4wA&7|ns9=2$$${QkqB+`A$*^-i%Xs~+)jabsH~V&sXq30mYnk7@|{ z*K#$)6~P-VdapGq&j~!K1Erms>ow}6eDR68cY3bFcZ=5WE)Z%n5*w2_!iy3q@FD@WP-3nHl3WUnc52!y-)lSRL~F8Ty~~ zFEz7&AvWNpIY2M%j~vWS&7-6Zbqi@_BX=ahhR{;|Y~9|)@z0=-be4yJ2l_deooiD< zwvyIJx@mYcuk)P8Os%4E*v^5tO3N?jRG<=8(V}=ZR+R~Ww z_Mxrr*mhjtLwVudCi2)0jM1~1^7Aq2dadgcktj`Fzbg9fN;q@HifedikM3DQ?!Nv= zNbo3Bk*96*T~ET-?4H6l!$OA|-V83cf8minOABQ<4$AM9Z{~4Y+bIf`#6%7PA+#XDYRm}o3>2KE9?iZJQ;wgOW}pGZx$14^zG|E4MtOOlCrFtP>VLZ z#J0&hwd)i}FfRi)tY%;)%G?Ok9{ed9zub*IE?hFvh+FpiSsg(%W8i-P23Aj#nO#ll zb9UkG(F=diU*^PgHgGQAchmE`Fdgh+$=}II8!9npvksuv1`%K2A9>WoZGnV32N{1+ zuykD>NH8j;YXyP(Be^!@h{UaQ@*RL60#22s2eRXK3b6zvb!xXWXv4RZa&c_S75AyQ zS(m(n54?^j2NYjf!{)>l$&64ZKSQ(7dFz%$D8*t*GVqk%QGYH zJ!`HJt{2V!fNnR|3}zzHTr)snj20TKL~g;!7lQ#F%P~dWGAQg6M`%7RPdgBFBYT-| z3LB5w@ikaOuc|7l_+k9aBF(+#3V+hfM@9?-4vrnI0EXUe0Z*>T<|SH{jlwP zrKbS4UTBwa>qOWb8N4_aUMDUg#c<})_hzPP*T#&)p1D>X&3Ks(ZhM)M_IZKtx@%p^ zzmT2{vvylwEMs6ezBj&%s=5sv&I&NJQMi383C{6gV)qAL@Vzhvs#IAvYyhs3BitIY zJAR>7FJOmvn)H=flqK_@d^`tfD9-MrNaz7k$Zm*UKX|mK*ZDoUvSU?JI+CtBJF)42 zjtYmAzE=mJmS4axmpbhj+uQHt!`*(3-jjWxlw&grG*ED65oHhz;#yBrDB=pQ1z#kN zIa^SfI~4_Y^^Y5IzAPP7E6{j9^9~U)R@4Y1qmB zO4XC*2-?(#bHT@p<~qoTnUU4V?_Cu*7Nrm)LhuKjMl?x}vhz&YT^Fdnoohy0lX96# z8)E0j|3bx?`7F+!9Eb2DM5}Q{55T!7{LxI*A`#NXLzU)fJh5OtFC*)1jJl_all4Vq zD_QoLBcB;6MAH`|bEMNKjlsTx@R?J2=1Vfx*2JKx+b|Y<@oyp|8f%`_9K&%wIZXISH&I^2t2$M*XO5N&7XoRVA!|*UDI)u6 zQ~tiY)umR6mR&7oQ~G{-sLV=*T}Q7f6taRTIw591KV>SP1Z+BEX$w1ub=#G{t?Fq- z8EIJ^om$oZ(Z3M;Ij)k~rKGa-?gOn+N2BuUwRn zVKaRQdr*x^-HsV?QvLnVm|<0#rg`%tZVLKOJ@fZmV3GD5*YK}((~lTE%lxU--}Wj{ zoMngBzx@5|I8JAMu)hvH`#Ec3JDqBduc6OhTj=~YZ<66qiiy(>GJ18L1-^{YS!q)} z6#PVRO~9SPia7PkPN=xK^F*n&sP{8^DPl{T6*sf)HX}D&xm-AdUCnm#VP`*4v+m~Z zg2S1p<8K_|9RHFrzeJ@pt6zjpDbTuJY1=*X%c1@wFB`k0;*{NjT^~2(nq!=@3ZZd4 z9Db=REL5)IH6Pothq%^z9N56-W7z}3(L9TFXj)I*!*5Qz_&EG_SY6f|Nf=~NScX*s z*}i}!OrBwDDxy_hPy#$z&rgkENGz7uw-J%8neKG9P<|G}(5CsOod!Sa+8Qm_&Ggef z-gdz&UVbcDG(@;3`EsdX3hZn6@Ne1t88lEi9a4TN0_7tQ75U~-50)I7F7DxE8b@y#HI|izr*GV!qF5|?&y<2rVeKX>cRtd-_{y=;^n0gP!hp7Be64cN2ZYu>(?D&1?+LR`!g751j7qIp;5XR!Mo+4%G$>y1YI z$L)*rpRck9goF{Yw5>9uhzLAg;f5k%5pU()YNoIK+lGn$LdV$ioLLDq@E0=g^rlj8 zn3H`}2zFL=B6Y&Y}`UnUe?)Ln~Semu+}8M0ogtRGvm;iI5QEt zELp}Z_Tdv3SI+(G%a1i*Ri#3ojcelsavYw4@5LLx?ub7pQUpvKEB7Vw+h^}ZFe0)fw)f}5Ku-f6FP4!JxN2^mZ9eYU)kz>YKG0wfoFX@h-06B@{dXr-Si-A?<=od3 zK3ZeiK5AkdIHnRbieiezn7rjkbrzLm9NTiv36XZ?3i^lWu11~Xns`Bk`Q7vEMK&@9x@fQi<1(pPMLWVM@acz9-^A+rtOzU6*Pg7 z8cs?jK@0-EEXCV3KfmuP2+m$PQ%WW#_$pg2sEou|>M2AYNC0!2X+q@q=O^B@WS@u= z3R92x=mL%*Qz{RGnJON_Dk<4Yw1?Fn~qEo)UC z<_F@S3^3pDS+K=npur^Q&b_L;wS6Jeue_>Q^Z4|u-7s2h#yXv~Wd02_4=qrA}`)$I?+HMj#z6a`!?OA*EL4syr1jo zZZ21ZL%KnO^BuHfOT^pzMdl6|%M@15T*WD;CdRW^_fmc=-cWMyeOI?x$zTM1FTW}{ z3$}J3Ia#>7|B7~;Vf|ASo`6MgaSs*au+Wdb0`=$f=5l{$$oG9vI;1<%!aC`(!GTf> zfE)GeW~*eW#u$70w5lt!7HCekw+@%?4|OD|K=1JuQbOc!fySa6Su-h%qm)$3|!d;?O>D{K>IX=B>N ztcaM6XjIk&PrDwOc}`U}9cI){wQ{Z7Xy4-fyfMx*sD_Tj9o_MM@Fe^4w+6WL->6@; z$K4GP@nu1nGnBo&D^7m_Wkf_Zl!wN3a|o#62g>}LcePr63NW35>i71OK4@w-xv(*7 z=|LPN*a)nHoI+DXrJ|>+#>zvK($;`gDY+o|Hrh}8LNU0QlhnWr>M;g89|cKBflahH z?de(ZYdIs)Hp1r-jIhmz`X1ffqe>fPSZVH*QtF}?#mKSI{w4_xEZC$q(BrD*ZaO}} zffZpWhDd)SSHCr#|0p-443ApK~^3R+_I(INOaiygL9 z&)0R&UjDPTSWB*h>DmYA4c#=oU9Zu0jE)#re3zEV@#c~tQ99;uQ)idA0T_oA+*Q~l zeW}AVc^N6VRXHzV`!JSeYD(or&fUueiV+&Gl6OI6>e)ca{NIhljLPMDyP9c;Z9M@B zgOXV(JQqv1z{tz)s+PfrE`is0Q(GRD8blwag&Z@FgD42KZ;d=i=4%y$1Wsvcu_?1O z>I|ahx+4<794S%3h;<+*%8$0~HbRXhGna+V5}WUnWcw~0s;Af zL-m2U2FIoJ{iDl;Mw-o&2|*K=`~9?56T_GDfXg^trNbL7o4Mk79M-~ifE16J>+drioBd8 zLx}0r){t5;!lWv;UhCcrS^ddJbMdN-6?Bm}L;v=4Kf10$$=(=!XkBr#DtZ0GqIUK^ z?Q9(n{KFuPN$OG9;z?d@y5h>fB3EPA&qKd(;Pe0U?$38P@UU7=WXL1oWwu}Uun)v_ z46QNBpf_J8EW0l`&lK7ZosY*}UWHWjKqh~QZAxq72^<>}j(hl|b5vw9XJKIt!uyn+ zwXL7vT=OZmE6l!A3bzQ-J${eMc~z|cag*=DAbgxCFVMtmdd@|~Ek3Lcg(GdK&|1P@; zv%AXHMQ#HzXlH&;v9}A(fl$va1B&H@*xj6UYukXoa?K9UOdM80^N3O1CcXNOMNSt_ zv%8721BWHr5(4^t}-+}mu^iv zR9hY2);2KRH&%6OVLqA*FHT1q_%p22W7^RHQ}2#$Z|2L!gHWtp=OpUP9eo;?C2Y%@ z!uK1ufL5dmUTIGH{HiDn@=fSDn^o!B2HC?zVYBZ_Sp4o_Io?eknAChdABpS*vdh4* zw*=ZkH+d-YxhTp9CLEI@WReZof36>t%J(9PMk3-5)Un%?sWY zYNK>xI@WLc5zcodd1E~@0(j6)d2B%Z>ek);x$I*QfX6VXrFd*2vz&hOq&M7%T7Tkr zeWz5|2?EI&6)^_gGTqpaXA?xu=wRj3JLl8FVaCKU5#f8ThyveA+9l>pE7R@LYH@#sH;frdn)nM=&YK`eV6tr7&|c+B@>Jyp!zGank`w(C`FWK{7wP9siqG=5r*uG4`~Y?mU;*0q# zf5&(ONK!(3$6^{KtPCSKtKrpWAS+|3UEgL*XR-r?k}T%8tO}O z@snEu1SGTx420w_BV@dPjTj6Nk~GHv|F+>T1@pha5r+SQ>j;qkdcr@Q@_&VY|6^Aa zP-^yHMx)q7|3}^S|1|p6{9j-O+24)+C;tCh1poqK`zbBV@E_No=c0gy+@$LvzJGi3 zueAYxf$G11dS?DB=D!E-Cp-U_L2%xu0eO 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/ngrok' adding 'ngrok-api-0.0.0/ngrok_api.egg-info' +adding 'ngrok-api-0.0.0/ngrok' 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/README.md' adding 'ngrok-api-0.0.0/setup.cfg' -adding 'ngrok-api-0.0.0/ngrok/utils.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/requires.txt' adding 'ngrok-api-0.0.0/ngrok_api.egg-info/PKG-INFO' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info/requires.txt' +adding 'ngrok-api-0.0.0/ngrok_api.egg-info/SOURCES.txt' adding 'ngrok-api-0.0.0/ngrok_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/ngrok/client.py' +adding 'ngrok-api-0.0.0/ngrok/http_client.py' +adding 'ngrok-api-0.0.0/ngrok/__init__.py' +adding 'ngrok-api-0.0.0/ngrok/services.py' +adding 'ngrok-api-0.0.0/ngrok/error.py' +adding 'ngrok-api-0.0.0/ngrok/iterator.py' +adding 'ngrok-api-0.0.0/ngrok/utils.py' +adding 'ngrok-api-0.0.0/ngrok/datatypes.py' adding 'ngrok-api-0.0.0/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..3c7bb80 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 @@ -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 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..b16deed 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 @@ -4772,104 +4873,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..d9a83a7 100644 --- a/docs/_static/pygments.css +++ b/docs/_static/pygments.css @@ -101,7 +101,7 @@ 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 */ @@ -186,7 +186,7 @@ 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 */ 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 @@