ngrok-api 0.9.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/doc/.gitkeep +0 -0
  4. data/doc/NgrokAPI/Client.html +1499 -125
  5. data/doc/NgrokAPI/Error.html +1 -1
  6. data/doc/NgrokAPI/Errors/NotFoundError.html +1 -1
  7. data/doc/NgrokAPI/Errors.html +1 -1
  8. data/doc/NgrokAPI/HttpClient.html +1 -1
  9. data/doc/NgrokAPI/Models/{ApiKey.html → APIKey.html} +108 -177
  10. data/doc/NgrokAPI/Models/AWSAuth.html +617 -0
  11. data/doc/NgrokAPI/Models/AWSCredentials.html +617 -0
  12. data/doc/NgrokAPI/Models/AWSRole.html +543 -0
  13. data/doc/NgrokAPI/Models/AbuseReport.html +987 -0
  14. data/doc/NgrokAPI/Models/AbuseReportHostname.html +617 -0
  15. data/doc/NgrokAPI/Models/CertificateAuthority.html +1439 -0
  16. data/doc/NgrokAPI/Models/Credential.html +1149 -0
  17. data/doc/NgrokAPI/Models/EndpointCircuitBreaker.html +913 -0
  18. data/doc/NgrokAPI/Models/EndpointCompression.html +543 -0
  19. data/doc/NgrokAPI/Models/EndpointConfiguration.html +1321 -510
  20. data/doc/NgrokAPI/Models/EndpointIPPolicy.html +617 -0
  21. data/doc/NgrokAPI/Models/EndpointIPPolicyMutate.html +617 -0
  22. data/doc/NgrokAPI/Models/EndpointLogging.html +617 -0
  23. data/doc/NgrokAPI/Models/EndpointLoggingMutate.html +617 -0
  24. data/doc/NgrokAPI/Models/EndpointMutualTLS.html +617 -0
  25. data/doc/NgrokAPI/Models/EndpointMutualTLSMutate.html +617 -0
  26. data/doc/NgrokAPI/Models/EndpointOAuth.html +987 -0
  27. data/doc/NgrokAPI/Models/EndpointOAuthFacebook.html +839 -0
  28. data/doc/NgrokAPI/Models/EndpointOAuthGitHub.html +987 -0
  29. data/doc/NgrokAPI/Models/EndpointOAuthGoogle.html +839 -0
  30. data/doc/NgrokAPI/Models/EndpointOAuthMicrosoft.html +839 -0
  31. data/doc/NgrokAPI/Models/EndpointOAuthProvider.html +765 -0
  32. data/doc/NgrokAPI/Models/EndpointOIDC.html +1135 -0
  33. data/doc/NgrokAPI/Models/EndpointRequestHeaders.html +691 -0
  34. data/doc/NgrokAPI/Models/EndpointResponseHeaders.html +691 -0
  35. data/doc/NgrokAPI/Models/EndpointSAML.html +1653 -0
  36. data/doc/NgrokAPI/Models/EndpointSAMLMutate.html +1283 -0
  37. data/doc/NgrokAPI/Models/EndpointTLSTermination.html +691 -0
  38. data/doc/NgrokAPI/Models/EndpointWebhookValidation.html +691 -0
  39. data/doc/NgrokAPI/Models/EventDestination.html +1058 -0
  40. data/doc/NgrokAPI/Models/EventSource.html +765 -0
  41. data/doc/NgrokAPI/Models/EventSourceReplace.html +691 -0
  42. data/doc/NgrokAPI/Models/EventStream.html +1309 -0
  43. data/doc/NgrokAPI/Models/EventSubscription.html +1058 -0
  44. data/doc/NgrokAPI/Models/EventTarget.html +765 -0
  45. data/doc/NgrokAPI/Models/EventTargetCloudwatchLogs.html +617 -0
  46. data/doc/NgrokAPI/Models/EventTargetFirehose.html +617 -0
  47. data/doc/NgrokAPI/Models/EventTargetKinesis.html +617 -0
  48. data/doc/NgrokAPI/Models/IPPolicy.html +1069 -0
  49. data/doc/NgrokAPI/Models/IPPolicyRule.html +1149 -0
  50. data/doc/NgrokAPI/Models/IPRestriction.html +1132 -0
  51. data/doc/NgrokAPI/Models/{TlsCertificate.html → IPWhitelistEntry.html} +168 -163
  52. data/doc/NgrokAPI/Models/Listable.html +1 -1
  53. data/doc/NgrokAPI/Models/Ref.html +617 -0
  54. data/doc/NgrokAPI/Models/ReservedAddr.html +1132 -0
  55. data/doc/NgrokAPI/Models/ReservedDomain.html +111 -1107
  56. data/doc/NgrokAPI/Models/ReservedDomainCertJob.html +839 -0
  57. data/doc/NgrokAPI/Models/ReservedDomainCertNSTarget.html +617 -0
  58. data/doc/NgrokAPI/Models/ReservedDomainCertPolicy.html +617 -0
  59. data/doc/NgrokAPI/Models/ReservedDomainCertStatus.html +617 -0
  60. data/doc/NgrokAPI/Models/SSHCertificateAuthority.html +1143 -0
  61. data/doc/NgrokAPI/Models/SSHCredential.html +1149 -0
  62. data/doc/NgrokAPI/Models/SSHHostCertificate.html +1513 -0
  63. data/doc/NgrokAPI/Models/SSHUserCertificate.html +1661 -0
  64. data/doc/NgrokAPI/Models/TLSCertificate.html +2179 -0
  65. data/doc/NgrokAPI/Models/TLSCertificateSANs.html +617 -0
  66. data/doc/NgrokAPI/Models/Tunnel.html +987 -0
  67. data/doc/NgrokAPI/Models/TunnelSession.html +1209 -0
  68. data/doc/NgrokAPI/Models.html +4 -4
  69. data/doc/NgrokAPI/PagedIterator.html +1 -1
  70. data/{docs/NgrokAPI/Services/ApiKeysClient.html → doc/NgrokAPI/Services/APIKeysClient.html} +287 -151
  71. data/doc/NgrokAPI/Services/AbuseReportsClient.html +723 -0
  72. data/doc/NgrokAPI/Services/CertificateAuthoritiesClient.html +1489 -0
  73. data/doc/NgrokAPI/Services/CredentialsClient.html +1534 -0
  74. data/doc/NgrokAPI/Services/EndpointCircuitBreakerModuleClient.html +1071 -0
  75. data/doc/NgrokAPI/Services/EndpointCompressionModuleClient.html +1071 -0
  76. data/doc/NgrokAPI/Services/EndpointConfigurationsClient.html +473 -371
  77. data/doc/NgrokAPI/Services/EndpointIPPolicyModuleClient.html +1071 -0
  78. data/doc/NgrokAPI/Services/EndpointLoggingModuleClient.html +1071 -0
  79. data/doc/NgrokAPI/Services/EndpointMutualTLSModuleClient.html +1071 -0
  80. data/doc/NgrokAPI/Services/EndpointOAuthModuleClient.html +1071 -0
  81. data/doc/NgrokAPI/Services/EndpointOIDCModuleClient.html +1071 -0
  82. data/doc/NgrokAPI/Services/EndpointRequestHeadersModuleClient.html +1071 -0
  83. data/doc/NgrokAPI/Services/EndpointResponseHeadersModuleClient.html +1071 -0
  84. data/doc/NgrokAPI/Services/EndpointSAMLModuleClient.html +1071 -0
  85. data/doc/NgrokAPI/Services/EndpointTLSTerminationModuleClient.html +1071 -0
  86. data/doc/NgrokAPI/Services/EndpointWebhookValidationModuleClient.html +1071 -0
  87. data/doc/NgrokAPI/Services/EventDestinationsClient.html +1609 -0
  88. data/doc/NgrokAPI/Services/EventSourcesClient.html +1348 -0
  89. data/doc/NgrokAPI/Services/EventStreamsClient.html +1691 -0
  90. data/doc/NgrokAPI/Services/EventSubscriptionsClient.html +1603 -0
  91. data/doc/NgrokAPI/Services/IPPoliciesClient.html +1488 -0
  92. data/doc/NgrokAPI/Services/IPPolicyRulesClient.html +1550 -0
  93. data/doc/NgrokAPI/Services/IPRestrictionsClient.html +1620 -0
  94. data/doc/NgrokAPI/Services/IPWhitelistClient.html +1488 -0
  95. data/doc/NgrokAPI/Services/ReservedAddrsClient.html +1793 -0
  96. data/doc/NgrokAPI/Services/ReservedDomainsClient.html +518 -333
  97. data/doc/NgrokAPI/Services/SSHCertificateAuthoritiesClient.html +1532 -0
  98. data/doc/NgrokAPI/Services/SSHCredentialsClient.html +1552 -0
  99. data/doc/NgrokAPI/Services/SSHHostCertificatesClient.html +1573 -0
  100. data/doc/NgrokAPI/Services/SSHUserCertificatesClient.html +1617 -0
  101. data/{docs/NgrokAPI/Services/TlsCertificatesClient.html → doc/NgrokAPI/Services/TLSCertificatesClient.html} +290 -198
  102. data/doc/NgrokAPI/Services/TunnelSessionsClient.html +1468 -0
  103. data/doc/NgrokAPI/Services/TunnelsClient.html +513 -0
  104. data/doc/NgrokAPI/Services.html +4 -4
  105. data/doc/NgrokAPI.html +3 -3
  106. data/doc/_index.html +624 -28
  107. data/doc/class_list.html +1 -1
  108. data/doc/file.README.html +1 -1
  109. data/doc/index.html +1 -1
  110. data/doc/method_list.html +7318 -286
  111. data/doc/top-level-namespace.html +1 -1
  112. data/docs/.gitkeep +0 -0
  113. data/docs/NgrokAPI/Client.html +1499 -125
  114. data/docs/NgrokAPI/Error.html +1 -1
  115. data/docs/NgrokAPI/Errors/NotFoundError.html +1 -1
  116. data/docs/NgrokAPI/Errors.html +1 -1
  117. data/docs/NgrokAPI/HttpClient.html +1 -1
  118. data/docs/NgrokAPI/Models/{ApiKey.html → APIKey.html} +108 -177
  119. data/docs/NgrokAPI/Models/AWSAuth.html +617 -0
  120. data/docs/NgrokAPI/Models/AWSCredentials.html +617 -0
  121. data/docs/NgrokAPI/Models/AWSRole.html +543 -0
  122. data/docs/NgrokAPI/Models/AbuseReport.html +987 -0
  123. data/docs/NgrokAPI/Models/AbuseReportHostname.html +617 -0
  124. data/docs/NgrokAPI/Models/CertificateAuthority.html +1439 -0
  125. data/docs/NgrokAPI/Models/Credential.html +1149 -0
  126. data/docs/NgrokAPI/Models/EndpointCircuitBreaker.html +913 -0
  127. data/docs/NgrokAPI/Models/EndpointCompression.html +543 -0
  128. data/docs/NgrokAPI/Models/EndpointConfiguration.html +1321 -510
  129. data/docs/NgrokAPI/Models/EndpointIPPolicy.html +617 -0
  130. data/docs/NgrokAPI/Models/EndpointIPPolicyMutate.html +617 -0
  131. data/docs/NgrokAPI/Models/EndpointLogging.html +617 -0
  132. data/docs/NgrokAPI/Models/EndpointLoggingMutate.html +617 -0
  133. data/docs/NgrokAPI/Models/EndpointMutualTLS.html +617 -0
  134. data/docs/NgrokAPI/Models/EndpointMutualTLSMutate.html +617 -0
  135. data/docs/NgrokAPI/Models/EndpointOAuth.html +987 -0
  136. data/docs/NgrokAPI/Models/EndpointOAuthFacebook.html +839 -0
  137. data/docs/NgrokAPI/Models/EndpointOAuthGitHub.html +987 -0
  138. data/docs/NgrokAPI/Models/EndpointOAuthGoogle.html +839 -0
  139. data/docs/NgrokAPI/Models/EndpointOAuthMicrosoft.html +839 -0
  140. data/docs/NgrokAPI/Models/EndpointOAuthProvider.html +765 -0
  141. data/docs/NgrokAPI/Models/EndpointOIDC.html +1135 -0
  142. data/docs/NgrokAPI/Models/EndpointRequestHeaders.html +691 -0
  143. data/docs/NgrokAPI/Models/EndpointResponseHeaders.html +691 -0
  144. data/docs/NgrokAPI/Models/EndpointSAML.html +1653 -0
  145. data/docs/NgrokAPI/Models/EndpointSAMLMutate.html +1283 -0
  146. data/docs/NgrokAPI/Models/EndpointTLSTermination.html +691 -0
  147. data/docs/NgrokAPI/Models/EndpointWebhookValidation.html +691 -0
  148. data/docs/NgrokAPI/Models/EventDestination.html +1058 -0
  149. data/docs/NgrokAPI/Models/EventSource.html +765 -0
  150. data/docs/NgrokAPI/Models/EventSourceReplace.html +691 -0
  151. data/docs/NgrokAPI/Models/EventStream.html +1309 -0
  152. data/docs/NgrokAPI/Models/EventSubscription.html +1058 -0
  153. data/docs/NgrokAPI/Models/EventTarget.html +765 -0
  154. data/docs/NgrokAPI/Models/EventTargetCloudwatchLogs.html +617 -0
  155. data/docs/NgrokAPI/Models/EventTargetFirehose.html +617 -0
  156. data/docs/NgrokAPI/Models/EventTargetKinesis.html +617 -0
  157. data/docs/NgrokAPI/Models/IPPolicy.html +1069 -0
  158. data/docs/NgrokAPI/Models/IPPolicyRule.html +1149 -0
  159. data/docs/NgrokAPI/Models/IPRestriction.html +1132 -0
  160. data/docs/NgrokAPI/Models/{TlsCertificate.html → IPWhitelistEntry.html} +168 -163
  161. data/docs/NgrokAPI/Models/Listable.html +1 -1
  162. data/docs/NgrokAPI/Models/Ref.html +617 -0
  163. data/docs/NgrokAPI/Models/ReservedAddr.html +1132 -0
  164. data/docs/NgrokAPI/Models/ReservedDomain.html +111 -1107
  165. data/docs/NgrokAPI/Models/ReservedDomainCertJob.html +839 -0
  166. data/docs/NgrokAPI/Models/ReservedDomainCertNSTarget.html +617 -0
  167. data/docs/NgrokAPI/Models/ReservedDomainCertPolicy.html +617 -0
  168. data/docs/NgrokAPI/Models/ReservedDomainCertStatus.html +617 -0
  169. data/docs/NgrokAPI/Models/SSHCertificateAuthority.html +1143 -0
  170. data/docs/NgrokAPI/Models/SSHCredential.html +1149 -0
  171. data/docs/NgrokAPI/Models/SSHHostCertificate.html +1513 -0
  172. data/docs/NgrokAPI/Models/SSHUserCertificate.html +1661 -0
  173. data/docs/NgrokAPI/Models/TLSCertificate.html +2179 -0
  174. data/docs/NgrokAPI/Models/TLSCertificateSANs.html +617 -0
  175. data/docs/NgrokAPI/Models/Tunnel.html +987 -0
  176. data/docs/NgrokAPI/Models/TunnelSession.html +1209 -0
  177. data/docs/NgrokAPI/Models.html +4 -4
  178. data/docs/NgrokAPI/PagedIterator.html +1 -1
  179. data/{doc/NgrokAPI/Services/ApiKeysClient.html → docs/NgrokAPI/Services/APIKeysClient.html} +287 -151
  180. data/docs/NgrokAPI/Services/AbuseReportsClient.html +723 -0
  181. data/docs/NgrokAPI/Services/CertificateAuthoritiesClient.html +1489 -0
  182. data/docs/NgrokAPI/Services/CredentialsClient.html +1534 -0
  183. data/docs/NgrokAPI/Services/EndpointCircuitBreakerModuleClient.html +1071 -0
  184. data/docs/NgrokAPI/Services/EndpointCompressionModuleClient.html +1071 -0
  185. data/docs/NgrokAPI/Services/EndpointConfigurationsClient.html +473 -371
  186. data/docs/NgrokAPI/Services/EndpointIPPolicyModuleClient.html +1071 -0
  187. data/docs/NgrokAPI/Services/EndpointLoggingModuleClient.html +1071 -0
  188. data/docs/NgrokAPI/Services/EndpointMutualTLSModuleClient.html +1071 -0
  189. data/docs/NgrokAPI/Services/EndpointOAuthModuleClient.html +1071 -0
  190. data/docs/NgrokAPI/Services/EndpointOIDCModuleClient.html +1071 -0
  191. data/docs/NgrokAPI/Services/EndpointRequestHeadersModuleClient.html +1071 -0
  192. data/docs/NgrokAPI/Services/EndpointResponseHeadersModuleClient.html +1071 -0
  193. data/docs/NgrokAPI/Services/EndpointSAMLModuleClient.html +1071 -0
  194. data/docs/NgrokAPI/Services/EndpointTLSTerminationModuleClient.html +1071 -0
  195. data/docs/NgrokAPI/Services/EndpointWebhookValidationModuleClient.html +1071 -0
  196. data/docs/NgrokAPI/Services/EventDestinationsClient.html +1609 -0
  197. data/docs/NgrokAPI/Services/EventSourcesClient.html +1348 -0
  198. data/docs/NgrokAPI/Services/EventStreamsClient.html +1691 -0
  199. data/docs/NgrokAPI/Services/EventSubscriptionsClient.html +1603 -0
  200. data/docs/NgrokAPI/Services/IPPoliciesClient.html +1488 -0
  201. data/docs/NgrokAPI/Services/IPPolicyRulesClient.html +1550 -0
  202. data/docs/NgrokAPI/Services/IPRestrictionsClient.html +1620 -0
  203. data/docs/NgrokAPI/Services/IPWhitelistClient.html +1488 -0
  204. data/docs/NgrokAPI/Services/ReservedAddrsClient.html +1793 -0
  205. data/docs/NgrokAPI/Services/ReservedDomainsClient.html +518 -333
  206. data/docs/NgrokAPI/Services/SSHCertificateAuthoritiesClient.html +1532 -0
  207. data/docs/NgrokAPI/Services/SSHCredentialsClient.html +1552 -0
  208. data/docs/NgrokAPI/Services/SSHHostCertificatesClient.html +1573 -0
  209. data/docs/NgrokAPI/Services/SSHUserCertificatesClient.html +1617 -0
  210. data/{doc/NgrokAPI/Services/TlsCertificatesClient.html → docs/NgrokAPI/Services/TLSCertificatesClient.html} +290 -198
  211. data/docs/NgrokAPI/Services/TunnelSessionsClient.html +1468 -0
  212. data/docs/NgrokAPI/Services/TunnelsClient.html +513 -0
  213. data/docs/NgrokAPI/Services.html +4 -4
  214. data/docs/NgrokAPI.html +3 -3
  215. data/docs/_index.html +624 -28
  216. data/docs/class_list.html +1 -1
  217. data/docs/file.README.html +1 -1
  218. data/docs/index.html +1 -1
  219. data/docs/method_list.html +7318 -286
  220. data/docs/top-level-namespace.html +1 -1
  221. data/lib/ngrokapi/client.rb +218 -49
  222. data/lib/ngrokapi/models/abuse_report.rb +37 -0
  223. data/lib/ngrokapi/models/abuse_report_hostname.rb +27 -0
  224. data/lib/ngrokapi/models/api_key.rb +62 -64
  225. data/lib/ngrokapi/models/aws_auth.rb +27 -0
  226. data/lib/ngrokapi/models/aws_credentials.rb +27 -0
  227. data/lib/ngrokapi/models/aws_role.rb +25 -0
  228. data/lib/ngrokapi/models/certificate_authority.rb +72 -0
  229. data/lib/ngrokapi/models/credential.rb +67 -0
  230. data/lib/ngrokapi/models/endpoint_circuit_breaker.rb +35 -0
  231. data/lib/ngrokapi/models/endpoint_compression.rb +25 -0
  232. data/lib/ngrokapi/models/endpoint_configuration.rb +130 -119
  233. data/lib/ngrokapi/models/endpoint_ip_policy.rb +27 -0
  234. data/lib/ngrokapi/models/endpoint_ip_policy_mutate.rb +27 -0
  235. data/lib/ngrokapi/models/endpoint_logging.rb +27 -0
  236. data/lib/ngrokapi/models/endpoint_logging_mutate.rb +27 -0
  237. data/lib/ngrokapi/models/endpoint_mutual_tls.rb +27 -0
  238. data/lib/ngrokapi/models/endpoint_mutual_tls_mutate.rb +27 -0
  239. data/lib/ngrokapi/models/endpoint_o_auth.rb +37 -0
  240. data/lib/ngrokapi/models/endpoint_o_auth_facebook.rb +33 -0
  241. data/lib/ngrokapi/models/endpoint_o_auth_git_hub.rb +37 -0
  242. data/lib/ngrokapi/models/endpoint_o_auth_google.rb +33 -0
  243. data/lib/ngrokapi/models/endpoint_o_auth_microsoft.rb +33 -0
  244. data/lib/ngrokapi/models/endpoint_o_auth_provider.rb +31 -0
  245. data/lib/ngrokapi/models/endpoint_oidc.rb +41 -0
  246. data/lib/ngrokapi/models/endpoint_request_headers.rb +29 -0
  247. data/lib/ngrokapi/models/endpoint_response_headers.rb +29 -0
  248. data/lib/ngrokapi/models/endpoint_saml.rb +55 -0
  249. data/lib/ngrokapi/models/endpoint_saml_mutate.rb +45 -0
  250. data/lib/ngrokapi/models/endpoint_tls_termination.rb +29 -0
  251. data/lib/ngrokapi/models/endpoint_webhook_validation.rb +29 -0
  252. data/lib/ngrokapi/models/event_destination.rb +49 -0
  253. data/lib/ngrokapi/models/event_source.rb +31 -0
  254. data/lib/ngrokapi/models/event_source_replace.rb +29 -0
  255. data/lib/ngrokapi/models/event_stream.rb +77 -0
  256. data/lib/ngrokapi/models/event_subscription.rb +47 -0
  257. data/lib/ngrokapi/models/event_target.rb +31 -0
  258. data/lib/ngrokapi/models/event_target_cloudwatch_logs.rb +27 -0
  259. data/lib/ngrokapi/models/event_target_firehose.rb +27 -0
  260. data/lib/ngrokapi/models/event_target_kinesis.rb +27 -0
  261. data/lib/ngrokapi/models/ip_policy.rb +64 -0
  262. data/lib/ngrokapi/models/ip_policy_rule.rb +67 -0
  263. data/lib/ngrokapi/models/ip_restriction.rb +49 -0
  264. data/lib/ngrokapi/models/ip_whitelist_entry.rb +62 -0
  265. data/lib/ngrokapi/models/ref.rb +27 -0
  266. data/lib/ngrokapi/models/reserved_addr.rb +49 -0
  267. data/lib/ngrokapi/models/reserved_domain.rb +59 -211
  268. data/lib/ngrokapi/models/reserved_domain_cert_job.rb +33 -0
  269. data/lib/ngrokapi/models/reserved_domain_cert_ns_target.rb +27 -0
  270. data/lib/ngrokapi/models/reserved_domain_cert_policy.rb +27 -0
  271. data/lib/ngrokapi/models/reserved_domain_cert_status.rb +27 -0
  272. data/lib/ngrokapi/models/ssh_certificate_authority.rb +64 -0
  273. data/lib/ngrokapi/models/ssh_credential.rb +67 -0
  274. data/lib/ngrokapi/models/ssh_host_certificate.rb +74 -0
  275. data/lib/ngrokapi/models/ssh_user_certificate.rb +78 -0
  276. data/lib/ngrokapi/models/tls_certificate.rb +92 -62
  277. data/lib/ngrokapi/models/tls_certificate_sa_ns.rb +27 -0
  278. data/lib/ngrokapi/models/tunnel.rb +37 -0
  279. data/lib/ngrokapi/models/tunnel_session.rb +43 -0
  280. data/lib/ngrokapi/services/.gitkeep +0 -0
  281. data/lib/ngrokapi/services/abuse_reports_client.rb +84 -0
  282. data/lib/ngrokapi/services/api_keys_client.rb +203 -144
  283. data/lib/ngrokapi/services/certificate_authorities_client.rb +204 -0
  284. data/lib/ngrokapi/services/credentials_client.rb +212 -0
  285. data/lib/ngrokapi/services/endpoint_circuit_breaker_module_client.rb +122 -0
  286. data/lib/ngrokapi/services/endpoint_compression_module_client.rb +122 -0
  287. data/lib/ngrokapi/services/endpoint_configurations_client.rb +324 -313
  288. data/lib/ngrokapi/services/endpoint_ip_policy_module_client.rb +122 -0
  289. data/lib/ngrokapi/services/endpoint_logging_module_client.rb +122 -0
  290. data/lib/ngrokapi/services/endpoint_mutual_tls_module_client.rb +122 -0
  291. data/lib/ngrokapi/services/endpoint_o_auth_module_client.rb +122 -0
  292. data/lib/ngrokapi/services/endpoint_oidc_module_client.rb +122 -0
  293. data/lib/ngrokapi/services/endpoint_request_headers_module_client.rb +122 -0
  294. data/lib/ngrokapi/services/endpoint_response_headers_module_client.rb +122 -0
  295. data/lib/ngrokapi/services/endpoint_saml_module_client.rb +122 -0
  296. data/lib/ngrokapi/services/endpoint_tls_termination_module_client.rb +122 -0
  297. data/lib/ngrokapi/services/endpoint_webhook_validation_module_client.rb +122 -0
  298. data/lib/ngrokapi/services/event_destinations_client.rb +222 -0
  299. data/lib/ngrokapi/services/event_sources_client.rb +177 -0
  300. data/lib/ngrokapi/services/event_streams_client.rb +226 -0
  301. data/lib/ngrokapi/services/event_subscriptions_client.rb +213 -0
  302. data/lib/ngrokapi/services/ip_policies_client.rb +208 -0
  303. data/lib/ngrokapi/services/ip_policy_rules_client.rb +210 -0
  304. data/lib/ngrokapi/services/ip_restrictions_client.rb +223 -0
  305. data/lib/ngrokapi/services/ip_whitelist_client.rb +202 -0
  306. data/lib/ngrokapi/services/reserved_addrs_client.rb +246 -0
  307. data/lib/ngrokapi/services/reserved_domains_client.rb +382 -313
  308. data/lib/ngrokapi/services/ssh_certificate_authorities_client.rb +207 -0
  309. data/lib/ngrokapi/services/ssh_credentials_client.rb +211 -0
  310. data/lib/ngrokapi/services/ssh_host_certificates_client.rb +214 -0
  311. data/lib/ngrokapi/services/ssh_user_certificates_client.rb +220 -0
  312. data/lib/ngrokapi/services/tls_certificates_client.rb +207 -161
  313. data/lib/ngrokapi/services/tunnel_sessions_client.rb +228 -0
  314. data/lib/ngrokapi/services/tunnels_client.rb +51 -0
  315. data/lib/ngrokapi/version.rb +1 -1
  316. data/spec/ngrokapi/client_spec.rb +139 -33
  317. data/spec/ngrokapi/models/abuse_report_hostname_spec.rb +21 -0
  318. data/spec/ngrokapi/models/abuse_report_spec.rb +21 -0
  319. data/spec/ngrokapi/models/api_key_spec.rb +42 -43
  320. data/spec/ngrokapi/models/aws_auth_spec.rb +21 -0
  321. data/spec/ngrokapi/models/aws_credentials_spec.rb +21 -0
  322. data/spec/ngrokapi/models/aws_role_spec.rb +21 -0
  323. data/spec/ngrokapi/models/certificate_authority_spec.rb +42 -0
  324. data/spec/ngrokapi/models/credential_spec.rb +45 -0
  325. data/spec/ngrokapi/models/endpoint_circuit_breaker_spec.rb +21 -0
  326. data/spec/ngrokapi/models/endpoint_compression_spec.rb +21 -0
  327. data/spec/ngrokapi/models/endpoint_configuration_spec.rb +78 -0
  328. data/spec/ngrokapi/models/endpoint_ip_policy_mutate_spec.rb +21 -0
  329. data/spec/ngrokapi/models/endpoint_ip_policy_spec.rb +21 -0
  330. data/spec/ngrokapi/models/endpoint_logging_mutate_spec.rb +21 -0
  331. data/spec/ngrokapi/models/endpoint_logging_spec.rb +21 -0
  332. data/spec/ngrokapi/models/endpoint_mutual_tls_mutate_spec.rb +21 -0
  333. data/spec/ngrokapi/models/endpoint_mutual_tls_spec.rb +21 -0
  334. data/spec/ngrokapi/models/endpoint_o_auth_facebook_spec.rb +21 -0
  335. data/spec/ngrokapi/models/endpoint_o_auth_git_hub_spec.rb +21 -0
  336. data/spec/ngrokapi/models/endpoint_o_auth_google_spec.rb +21 -0
  337. data/spec/ngrokapi/models/endpoint_o_auth_microsoft_spec.rb +21 -0
  338. data/spec/ngrokapi/models/endpoint_o_auth_provider_spec.rb +21 -0
  339. data/spec/ngrokapi/models/endpoint_o_auth_spec.rb +21 -0
  340. data/spec/ngrokapi/models/endpoint_oidc_spec.rb +21 -0
  341. data/spec/ngrokapi/models/endpoint_request_headers_spec.rb +21 -0
  342. data/spec/ngrokapi/models/endpoint_response_headers_spec.rb +21 -0
  343. data/spec/ngrokapi/models/endpoint_saml_mutate_spec.rb +21 -0
  344. data/spec/ngrokapi/models/endpoint_saml_spec.rb +21 -0
  345. data/spec/ngrokapi/models/endpoint_tls_termination_spec.rb +21 -0
  346. data/spec/ngrokapi/models/endpoint_webhook_validation_spec.rb +21 -0
  347. data/spec/ngrokapi/models/event_destination_spec.rb +28 -0
  348. data/spec/ngrokapi/models/event_source_replace_spec.rb +21 -0
  349. data/spec/ngrokapi/models/event_source_spec.rb +21 -0
  350. data/spec/ngrokapi/models/event_stream_spec.rb +51 -0
  351. data/spec/ngrokapi/models/event_subscription_spec.rb +28 -0
  352. data/spec/ngrokapi/models/event_target_cloudwatch_logs_spec.rb +21 -0
  353. data/spec/ngrokapi/models/event_target_firehose_spec.rb +21 -0
  354. data/spec/ngrokapi/models/event_target_kinesis_spec.rb +21 -0
  355. data/spec/ngrokapi/models/event_target_spec.rb +21 -0
  356. data/spec/ngrokapi/models/ip_policy_rule_spec.rb +45 -0
  357. data/spec/ngrokapi/models/ip_policy_spec.rb +42 -0
  358. data/spec/ngrokapi/models/ip_restriction_spec.rb +28 -0
  359. data/spec/ngrokapi/models/ip_whitelist_entry_spec.rb +42 -0
  360. data/spec/ngrokapi/models/listable_spec.rb +4 -4
  361. data/spec/ngrokapi/models/ref_spec.rb +21 -0
  362. data/spec/ngrokapi/models/reserved_addr_spec.rb +28 -0
  363. data/spec/ngrokapi/models/reserved_domain_cert_job_spec.rb +21 -0
  364. data/spec/ngrokapi/models/reserved_domain_cert_ns_target_spec.rb +21 -0
  365. data/spec/ngrokapi/models/reserved_domain_cert_policy_spec.rb +21 -0
  366. data/spec/ngrokapi/models/reserved_domain_cert_status_spec.rb +21 -0
  367. data/spec/ngrokapi/models/reserved_domain_spec.rb +28 -100
  368. data/spec/ngrokapi/models/ssh_certificate_authority_spec.rb +42 -0
  369. data/spec/ngrokapi/models/ssh_credential_spec.rb +45 -0
  370. data/spec/ngrokapi/models/ssh_host_certificate_spec.rb +42 -0
  371. data/spec/ngrokapi/models/ssh_user_certificate_spec.rb +42 -0
  372. data/spec/ngrokapi/models/tls_certificate_sa_ns_spec.rb +21 -0
  373. data/spec/ngrokapi/models/tls_certificate_spec.rb +42 -0
  374. data/spec/ngrokapi/models/tunnel_session_spec.rb +21 -0
  375. data/spec/ngrokapi/models/tunnel_spec.rb +21 -0
  376. data/spec/ngrokapi/paged_iterator_spec.rb +5 -5
  377. data/spec/ngrokapi/services/.gitkeep +0 -0
  378. data/spec/ngrokapi/services/abuse_reports_client_spec.rb +67 -0
  379. data/spec/ngrokapi/services/api_keys_client_spec.rb +160 -127
  380. data/spec/ngrokapi/services/certificate_authorities_client_spec.rb +162 -0
  381. data/spec/ngrokapi/services/credentials_client_spec.rb +166 -0
  382. data/spec/ngrokapi/services/endpoint_circuit_breaker_module_client_spec.rb +127 -0
  383. data/spec/ngrokapi/services/endpoint_compression_module_client_spec.rb +127 -0
  384. data/spec/ngrokapi/services/endpoint_configurations_client_spec.rb +240 -0
  385. data/spec/ngrokapi/services/endpoint_ip_policy_module_client_spec.rb +127 -0
  386. data/spec/ngrokapi/services/endpoint_logging_module_client_spec.rb +127 -0
  387. data/spec/ngrokapi/services/endpoint_mutual_tls_module_client_spec.rb +127 -0
  388. data/spec/ngrokapi/services/endpoint_o_auth_module_client_spec.rb +127 -0
  389. data/spec/ngrokapi/services/endpoint_oidc_module_client_spec.rb +127 -0
  390. data/spec/ngrokapi/services/endpoint_request_headers_module_client_spec.rb +127 -0
  391. data/spec/ngrokapi/services/endpoint_response_headers_module_client_spec.rb +127 -0
  392. data/spec/ngrokapi/services/endpoint_saml_module_client_spec.rb +127 -0
  393. data/spec/ngrokapi/services/endpoint_tls_termination_module_client_spec.rb +127 -0
  394. data/spec/ngrokapi/services/endpoint_webhook_validation_module_client_spec.rb +127 -0
  395. data/spec/ngrokapi/services/event_destinations_client_spec.rb +175 -0
  396. data/spec/ngrokapi/services/event_sources_client_spec.rb +162 -0
  397. data/spec/ngrokapi/services/event_streams_client_spec.rb +180 -0
  398. data/spec/ngrokapi/services/event_subscriptions_client_spec.rb +172 -0
  399. data/spec/ngrokapi/services/ip_policies_client_spec.rb +162 -0
  400. data/spec/ngrokapi/services/ip_policy_rules_client_spec.rb +168 -0
  401. data/spec/ngrokapi/services/ip_restrictions_client_spec.rb +174 -0
  402. data/spec/ngrokapi/services/ip_whitelist_client_spec.rb +162 -0
  403. data/spec/ngrokapi/services/reserved_addrs_client_spec.rb +209 -0
  404. data/spec/ngrokapi/services/reserved_domains_client_spec.rb +352 -0
  405. data/spec/ngrokapi/services/ssh_certificate_authorities_client_spec.rb +166 -0
  406. data/spec/ngrokapi/services/ssh_credentials_client_spec.rb +168 -0
  407. data/spec/ngrokapi/services/ssh_host_certificates_client_spec.rb +170 -0
  408. data/spec/ngrokapi/services/ssh_user_certificates_client_spec.rb +174 -0
  409. data/spec/ngrokapi/services/tls_certificates_client_spec.rb +164 -0
  410. data/spec/ngrokapi/services/tunnel_sessions_client_spec.rb +184 -0
  411. data/spec/ngrokapi/services/tunnels_client_spec.rb +21 -0
  412. data/spec/spec_helper.rb +958 -0
  413. metadata +355 -10
@@ -0,0 +1,223 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # An IP restriction is a restriction placed on the CIDRs that are allowed to
7
+ # initate traffic to a specific aspect of your ngrok account. An IP
8
+ # restriction has a type which defines the ingress it applies to. IP
9
+ # restrictions can be used to enforce the source IPs that can make API
10
+ # requests, log in to the dashboard, start ngrok agents, and connect to your
11
+ # public-facing endpoints.
12
+ #
13
+ # https://ngrok.com/docs/api#api-ip-restrictions
14
+ class IPRestrictionsClient
15
+ # The API path for the requests
16
+ PATH = '/ip_restrictions'
17
+ # The List Property from the resulting API for list calls
18
+ LIST_PROPERTY = 'ip_restrictions'
19
+
20
+ attr_reader :client
21
+
22
+ def initialize(client:)
23
+ @client = client
24
+ end
25
+
26
+ ##
27
+ # Create a new IP restriction
28
+ #
29
+ # @param [string] description human-readable description of this IP restriction. optional, max 255 bytes.
30
+ # @param [string] metadata arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes.
31
+ # @param [boolean] enforced true if the IP restriction will be enforced. if false, only warnings will be issued
32
+ # @param [string] type the type of IP restriction. this defines what traffic will be restricted with the attached policies. four values are currently supported: ``dashboard``, ``api``, ``agent``, and ``endpoints``
33
+ # @param [List<string>] ip_policy_ids the set of IP policy identifiers that are used to enforce the restriction
34
+ # @return [NgrokAPI::Models::IPRestriction] result from the API request
35
+ #
36
+ # https://ngrok.com/docs/api#api-ip-restrictions-create
37
+ def create(
38
+ description: "",
39
+ metadata: "",
40
+ enforced: False,
41
+ type:,
42
+ ip_policy_ids:
43
+ )
44
+ path = '/ip_restrictions'
45
+ replacements = {
46
+ }
47
+ data = {}
48
+ data[:description] = description if description
49
+ data[:metadata] = metadata if metadata
50
+ data[:enforced] = enforced if enforced
51
+ data[:type] = type if type
52
+ data[:ip_policy_ids] = ip_policy_ids if ip_policy_ids
53
+ result = @client.post(path % replacements, data: data)
54
+ NgrokAPI::Models::IPRestriction.new(client: self, result: result)
55
+ end
56
+
57
+ ##
58
+ # Delete an IP restriction
59
+ #
60
+ # @param [string] id a resource identifier
61
+ # @return [NgrokAPI::Models::Empty] result from the API request
62
+ #
63
+ # https://ngrok.com/docs/api#api-ip-restrictions-delete
64
+ def delete(
65
+ id: ""
66
+ )
67
+ path = '/ip_restrictions/%{id}'
68
+ replacements = {
69
+ id: id,
70
+ }
71
+ @client.delete(path % replacements)
72
+ end
73
+
74
+ ##
75
+ # Delete an IP restriction
76
+ # Throws an exception if API error.
77
+ #
78
+ # @param [string] id a resource identifier
79
+ # @return [NgrokAPI::Models::Empty] result from the API request
80
+ #
81
+ # https://ngrok.com/docs/api#api-ip-restrictions-delete
82
+ def delete!(
83
+ id: ""
84
+ )
85
+ path = '/ip_restrictions/%{id}'
86
+ replacements = {
87
+ id: id,
88
+ }
89
+ @client.delete(path % replacements, danger: true)
90
+ end
91
+
92
+ ##
93
+ # Get detailed information about an IP restriction
94
+ #
95
+ # @param [string] id a resource identifier
96
+ # @return [NgrokAPI::Models::IPRestriction] result from the API request
97
+ #
98
+ # https://ngrok.com/docs/api#api-ip-restrictions-get
99
+ def get(
100
+ id: ""
101
+ )
102
+ path = '/ip_restrictions/%{id}'
103
+ replacements = {
104
+ id: id,
105
+ }
106
+ data = {}
107
+ result = @client.get(path % replacements, data: data)
108
+ NgrokAPI::Models::IPRestriction.new(client: self, result: result)
109
+ end
110
+
111
+ ##
112
+ # Get detailed information about an IP restriction
113
+ # Throws an exception if API error.
114
+ #
115
+ # @param [string] id a resource identifier
116
+ # @return [NgrokAPI::Models::IPRestriction] result from the API request
117
+ #
118
+ # https://ngrok.com/docs/api#api-ip-restrictions-get
119
+ def get!(
120
+ id: ""
121
+ )
122
+ path = '/ip_restrictions/%{id}'
123
+ replacements = {
124
+ id: id,
125
+ }
126
+ data = {}
127
+ result = @client.get(path % replacements, data: data, danger: true)
128
+ NgrokAPI::Models::IPRestriction.new(client: self, result: result)
129
+ end
130
+
131
+ ##
132
+ # List all IP restrictions on this account
133
+ #
134
+ # @param [string] before_id
135
+ # @param [string] limit
136
+ # @param [string] url optional and mutually exclusive from before_id and limit
137
+ # @return [NgrokAPI::Models::Listable] result from the API request
138
+ #
139
+ # https://ngrok.com/docs/api#api-ip-restrictions-list
140
+ def list(
141
+ before_id: nil,
142
+ limit: nil,
143
+ url: nil
144
+ )
145
+ result = @client.list(
146
+ before_id: before_id,
147
+ limit: limit,
148
+ url: url,
149
+ path: PATH
150
+ )
151
+ NgrokAPI::Models::Listable.new(
152
+ client: self,
153
+ result: result,
154
+ list_property: LIST_PROPERTY,
155
+ klass: NgrokAPI::Models::IPRestriction
156
+ )
157
+ end
158
+
159
+ ##
160
+ # Update attributes of an IP restriction by ID
161
+ #
162
+ # @param [string] id
163
+ # @param [string] description human-readable description of this IP restriction. optional, max 255 bytes.
164
+ # @param [string] metadata arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes.
165
+ # @param [boolean] enforced true if the IP restriction will be enforced. if false, only warnings will be issued
166
+ # @param [List<string>] ip_policy_ids the set of IP policy identifiers that are used to enforce the restriction
167
+ # @return [NgrokAPI::Models::IPRestriction] result from the API request
168
+ #
169
+ # https://ngrok.com/docs/api#api-ip-restrictions-update
170
+ def update(
171
+ id: "",
172
+ description: nil,
173
+ metadata: nil,
174
+ enforced: nil,
175
+ ip_policy_ids: []
176
+ )
177
+ path = '/ip_restrictions/%{id}'
178
+ replacements = {
179
+ id: id,
180
+ }
181
+ data = {}
182
+ data[:description] = description if description
183
+ data[:metadata] = metadata if metadata
184
+ data[:enforced] = enforced if enforced
185
+ data[:ip_policy_ids] = ip_policy_ids if ip_policy_ids
186
+ result = @client.patch(path % replacements, data: data)
187
+ NgrokAPI::Models::IPRestriction.new(client: self, result: result)
188
+ end
189
+
190
+ ##
191
+ # Update attributes of an IP restriction by ID
192
+ # Throws an exception if API error.
193
+ #
194
+ # @param [string] id
195
+ # @param [string] description human-readable description of this IP restriction. optional, max 255 bytes.
196
+ # @param [string] metadata arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes.
197
+ # @param [boolean] enforced true if the IP restriction will be enforced. if false, only warnings will be issued
198
+ # @param [List<string>] ip_policy_ids the set of IP policy identifiers that are used to enforce the restriction
199
+ # @return [NgrokAPI::Models::IPRestriction] result from the API request
200
+ #
201
+ # https://ngrok.com/docs/api#api-ip-restrictions-update
202
+ def update!(
203
+ id: "",
204
+ description: nil,
205
+ metadata: nil,
206
+ enforced: nil,
207
+ ip_policy_ids: []
208
+ )
209
+ path = '/ip_restrictions/%{id}'
210
+ replacements = {
211
+ id: id,
212
+ }
213
+ data = {}
214
+ data[:description] = description if description
215
+ data[:metadata] = metadata if metadata
216
+ data[:enforced] = enforced if enforced
217
+ data[:ip_policy_ids] = ip_policy_ids if ip_policy_ids
218
+ result = @client.patch(path % replacements, data: data, danger: true)
219
+ NgrokAPI::Models::IPRestriction.new(client: self, result: result)
220
+ end
221
+ end
222
+ end
223
+ end
@@ -0,0 +1,202 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # The IP Whitelist is deprecated and will be removed. Use an IP Restriction
7
+ # with an endpoints type instead.
8
+ #
9
+ # https://ngrok.com/docs/api#api-ip-whitelist
10
+ class IPWhitelistClient
11
+ # The API path for the requests
12
+ PATH = '/ip_whitelist'
13
+ # The List Property from the resulting API for list calls
14
+ LIST_PROPERTY = 'whitelist'
15
+
16
+ attr_reader :client
17
+
18
+ def initialize(client:)
19
+ @client = client
20
+ end
21
+
22
+ ##
23
+ # Create a new IP whitelist entry that will restrict traffic to all tunnel
24
+ # endpoints on the account.
25
+ #
26
+ # @param [string] description human-readable description of the source IPs for this IP whitelist entry. optional, max 255 bytes.
27
+ # @param [string] metadata arbitrary user-defined machine-readable data of this IP whitelist entry. optional, max 4096 bytes.
28
+ # @param [string] ip_net an IP address or IP network range in CIDR notation (e.g. 10.1.1.1 or 10.1.0.0/16) of addresses that will be whitelisted to communicate with your tunnel endpoints
29
+ # @return [NgrokAPI::Models::IPWhitelistEntry] result from the API request
30
+ #
31
+ # https://ngrok.com/docs/api#api-ip-whitelist-create
32
+ def create(
33
+ description: "",
34
+ metadata: "",
35
+ ip_net: ""
36
+ )
37
+ path = '/ip_whitelist'
38
+ replacements = {
39
+ }
40
+ data = {}
41
+ data[:description] = description if description
42
+ data[:metadata] = metadata if metadata
43
+ data[:ip_net] = ip_net if ip_net
44
+ result = @client.post(path % replacements, data: data)
45
+ NgrokAPI::Models::IPWhitelistEntry.new(client: self, result: result)
46
+ end
47
+
48
+ ##
49
+ # Delete an IP whitelist entry.
50
+ #
51
+ # @param [string] id a resource identifier
52
+ # @return [NgrokAPI::Models::Empty] result from the API request
53
+ #
54
+ # https://ngrok.com/docs/api#api-ip-whitelist-delete
55
+ def delete(
56
+ id: ""
57
+ )
58
+ path = '/ip_whitelist/%{id}'
59
+ replacements = {
60
+ id: id,
61
+ }
62
+ @client.delete(path % replacements)
63
+ end
64
+
65
+ ##
66
+ # Delete an IP whitelist entry.
67
+ # Throws an exception if API error.
68
+ #
69
+ # @param [string] id a resource identifier
70
+ # @return [NgrokAPI::Models::Empty] result from the API request
71
+ #
72
+ # https://ngrok.com/docs/api#api-ip-whitelist-delete
73
+ def delete!(
74
+ id: ""
75
+ )
76
+ path = '/ip_whitelist/%{id}'
77
+ replacements = {
78
+ id: id,
79
+ }
80
+ @client.delete(path % replacements, danger: true)
81
+ end
82
+
83
+ ##
84
+ # Get detailed information about an IP whitelist entry by ID.
85
+ #
86
+ # @param [string] id a resource identifier
87
+ # @return [NgrokAPI::Models::IPWhitelistEntry] result from the API request
88
+ #
89
+ # https://ngrok.com/docs/api#api-ip-whitelist-get
90
+ def get(
91
+ id: ""
92
+ )
93
+ path = '/ip_whitelist/%{id}'
94
+ replacements = {
95
+ id: id,
96
+ }
97
+ data = {}
98
+ result = @client.get(path % replacements, data: data)
99
+ NgrokAPI::Models::IPWhitelistEntry.new(client: self, result: result)
100
+ end
101
+
102
+ ##
103
+ # Get detailed information about an IP whitelist entry by ID.
104
+ # Throws an exception if API error.
105
+ #
106
+ # @param [string] id a resource identifier
107
+ # @return [NgrokAPI::Models::IPWhitelistEntry] result from the API request
108
+ #
109
+ # https://ngrok.com/docs/api#api-ip-whitelist-get
110
+ def get!(
111
+ id: ""
112
+ )
113
+ path = '/ip_whitelist/%{id}'
114
+ replacements = {
115
+ id: id,
116
+ }
117
+ data = {}
118
+ result = @client.get(path % replacements, data: data, danger: true)
119
+ NgrokAPI::Models::IPWhitelistEntry.new(client: self, result: result)
120
+ end
121
+
122
+ ##
123
+ # List all IP whitelist entries on this account
124
+ #
125
+ # @param [string] before_id
126
+ # @param [string] limit
127
+ # @param [string] url optional and mutually exclusive from before_id and limit
128
+ # @return [NgrokAPI::Models::Listable] result from the API request
129
+ #
130
+ # https://ngrok.com/docs/api#api-ip-whitelist-list
131
+ def list(
132
+ before_id: nil,
133
+ limit: nil,
134
+ url: nil
135
+ )
136
+ result = @client.list(
137
+ before_id: before_id,
138
+ limit: limit,
139
+ url: url,
140
+ path: PATH
141
+ )
142
+ NgrokAPI::Models::Listable.new(
143
+ client: self,
144
+ result: result,
145
+ list_property: LIST_PROPERTY,
146
+ klass: NgrokAPI::Models::IPWhitelistEntry
147
+ )
148
+ end
149
+
150
+ ##
151
+ # Update attributes of an IP whitelist entry by ID
152
+ #
153
+ # @param [string] id
154
+ # @param [string] description human-readable description of the source IPs for this IP whitelist entry. optional, max 255 bytes.
155
+ # @param [string] metadata arbitrary user-defined machine-readable data of this IP whitelist entry. optional, max 4096 bytes.
156
+ # @return [NgrokAPI::Models::IPWhitelistEntry] result from the API request
157
+ #
158
+ # https://ngrok.com/docs/api#api-ip-whitelist-update
159
+ def update(
160
+ id: "",
161
+ description: nil,
162
+ metadata: nil
163
+ )
164
+ path = '/ip_whitelist/%{id}'
165
+ replacements = {
166
+ id: id,
167
+ }
168
+ data = {}
169
+ data[:description] = description if description
170
+ data[:metadata] = metadata if metadata
171
+ result = @client.patch(path % replacements, data: data)
172
+ NgrokAPI::Models::IPWhitelistEntry.new(client: self, result: result)
173
+ end
174
+
175
+ ##
176
+ # Update attributes of an IP whitelist entry by ID
177
+ # Throws an exception if API error.
178
+ #
179
+ # @param [string] id
180
+ # @param [string] description human-readable description of the source IPs for this IP whitelist entry. optional, max 255 bytes.
181
+ # @param [string] metadata arbitrary user-defined machine-readable data of this IP whitelist entry. optional, max 4096 bytes.
182
+ # @return [NgrokAPI::Models::IPWhitelistEntry] result from the API request
183
+ #
184
+ # https://ngrok.com/docs/api#api-ip-whitelist-update
185
+ def update!(
186
+ id: "",
187
+ description: nil,
188
+ metadata: nil
189
+ )
190
+ path = '/ip_whitelist/%{id}'
191
+ replacements = {
192
+ id: id,
193
+ }
194
+ data = {}
195
+ data[:description] = description if description
196
+ data[:metadata] = metadata if metadata
197
+ result = @client.patch(path % replacements, data: data, danger: true)
198
+ NgrokAPI::Models::IPWhitelistEntry.new(client: self, result: result)
199
+ end
200
+ end
201
+ end
202
+ end
@@ -0,0 +1,246 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # Reserved Addresses are TCP addresses that can be used to listen for traffic.
7
+ # TCP address hostnames and ports are assigned by ngrok, they cannot be
8
+ # chosen.
9
+ #
10
+ # https://ngrok.com/docs/api#api-reserved-addrs
11
+ class ReservedAddrsClient
12
+ # The API path for the requests
13
+ PATH = '/reserved_addrs'
14
+ # The List Property from the resulting API for list calls
15
+ LIST_PROPERTY = 'reserved_addrs'
16
+
17
+ attr_reader :client
18
+
19
+ def initialize(client:)
20
+ @client = client
21
+ end
22
+
23
+ ##
24
+ # Create a new reserved address.
25
+ #
26
+ # @param [string] description human-readable description of what this reserved address will be used for
27
+ # @param [string] metadata arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes.
28
+ # @param [string] region reserve the address in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa)
29
+ # @param [string] endpoint_configuration_id ID of an endpoint configuration of type tcp that will be used to handle inbound traffic to this address
30
+ # @return [NgrokAPI::Models::ReservedAddr] result from the API request
31
+ #
32
+ # https://ngrok.com/docs/api#api-reserved-addrs-create
33
+ def create(
34
+ description: "",
35
+ metadata: "",
36
+ region: "",
37
+ endpoint_configuration_id: ""
38
+ )
39
+ path = '/reserved_addrs'
40
+ replacements = {
41
+ }
42
+ data = {}
43
+ data[:description] = description if description
44
+ data[:metadata] = metadata if metadata
45
+ data[:region] = region if region
46
+ data[:endpoint_configuration_id] = endpoint_configuration_id if endpoint_configuration_id
47
+ result = @client.post(path % replacements, data: data)
48
+ NgrokAPI::Models::ReservedAddr.new(client: self, result: result)
49
+ end
50
+
51
+ ##
52
+ # Delete a reserved address.
53
+ #
54
+ # @param [string] id a resource identifier
55
+ # @return [NgrokAPI::Models::Empty] result from the API request
56
+ #
57
+ # https://ngrok.com/docs/api#api-reserved-addrs-delete
58
+ def delete(
59
+ id: ""
60
+ )
61
+ path = '/reserved_addrs/%{id}'
62
+ replacements = {
63
+ id: id,
64
+ }
65
+ @client.delete(path % replacements)
66
+ end
67
+
68
+ ##
69
+ # Delete a reserved address.
70
+ # Throws an exception if API error.
71
+ #
72
+ # @param [string] id a resource identifier
73
+ # @return [NgrokAPI::Models::Empty] result from the API request
74
+ #
75
+ # https://ngrok.com/docs/api#api-reserved-addrs-delete
76
+ def delete!(
77
+ id: ""
78
+ )
79
+ path = '/reserved_addrs/%{id}'
80
+ replacements = {
81
+ id: id,
82
+ }
83
+ @client.delete(path % replacements, danger: true)
84
+ end
85
+
86
+ ##
87
+ # Get the details of a reserved address.
88
+ #
89
+ # @param [string] id a resource identifier
90
+ # @return [NgrokAPI::Models::ReservedAddr] result from the API request
91
+ #
92
+ # https://ngrok.com/docs/api#api-reserved-addrs-get
93
+ def get(
94
+ id: ""
95
+ )
96
+ path = '/reserved_addrs/%{id}'
97
+ replacements = {
98
+ id: id,
99
+ }
100
+ data = {}
101
+ result = @client.get(path % replacements, data: data)
102
+ NgrokAPI::Models::ReservedAddr.new(client: self, result: result)
103
+ end
104
+
105
+ ##
106
+ # Get the details of a reserved address.
107
+ # Throws an exception if API error.
108
+ #
109
+ # @param [string] id a resource identifier
110
+ # @return [NgrokAPI::Models::ReservedAddr] result from the API request
111
+ #
112
+ # https://ngrok.com/docs/api#api-reserved-addrs-get
113
+ def get!(
114
+ id: ""
115
+ )
116
+ path = '/reserved_addrs/%{id}'
117
+ replacements = {
118
+ id: id,
119
+ }
120
+ data = {}
121
+ result = @client.get(path % replacements, data: data, danger: true)
122
+ NgrokAPI::Models::ReservedAddr.new(client: self, result: result)
123
+ end
124
+
125
+ ##
126
+ # List all reserved addresses on this account.
127
+ #
128
+ # @param [string] before_id
129
+ # @param [string] limit
130
+ # @param [string] url optional and mutually exclusive from before_id and limit
131
+ # @return [NgrokAPI::Models::Listable] result from the API request
132
+ #
133
+ # https://ngrok.com/docs/api#api-reserved-addrs-list
134
+ def list(
135
+ before_id: nil,
136
+ limit: nil,
137
+ url: nil
138
+ )
139
+ result = @client.list(
140
+ before_id: before_id,
141
+ limit: limit,
142
+ url: url,
143
+ path: PATH
144
+ )
145
+ NgrokAPI::Models::Listable.new(
146
+ client: self,
147
+ result: result,
148
+ list_property: LIST_PROPERTY,
149
+ klass: NgrokAPI::Models::ReservedAddr
150
+ )
151
+ end
152
+
153
+ ##
154
+ # Update the attributes of a reserved address.
155
+ #
156
+ # @param [string] id
157
+ # @param [string] description human-readable description of what this reserved address will be used for
158
+ # @param [string] metadata arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes.
159
+ # @param [string] endpoint_configuration_id ID of an endpoint configuration of type tcp that will be used to handle inbound traffic to this address
160
+ # @return [NgrokAPI::Models::ReservedAddr] result from the API request
161
+ #
162
+ # https://ngrok.com/docs/api#api-reserved-addrs-update
163
+ def update(
164
+ id: "",
165
+ description: nil,
166
+ metadata: nil,
167
+ endpoint_configuration_id: nil
168
+ )
169
+ path = '/reserved_addrs/%{id}'
170
+ replacements = {
171
+ id: id,
172
+ }
173
+ data = {}
174
+ data[:description] = description if description
175
+ data[:metadata] = metadata if metadata
176
+ data[:endpoint_configuration_id] = endpoint_configuration_id if endpoint_configuration_id
177
+ result = @client.patch(path % replacements, data: data)
178
+ NgrokAPI::Models::ReservedAddr.new(client: self, result: result)
179
+ end
180
+
181
+ ##
182
+ # Update the attributes of a reserved address.
183
+ # Throws an exception if API error.
184
+ #
185
+ # @param [string] id
186
+ # @param [string] description human-readable description of what this reserved address will be used for
187
+ # @param [string] metadata arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes.
188
+ # @param [string] endpoint_configuration_id ID of an endpoint configuration of type tcp that will be used to handle inbound traffic to this address
189
+ # @return [NgrokAPI::Models::ReservedAddr] result from the API request
190
+ #
191
+ # https://ngrok.com/docs/api#api-reserved-addrs-update
192
+ def update!(
193
+ id: "",
194
+ description: nil,
195
+ metadata: nil,
196
+ endpoint_configuration_id: nil
197
+ )
198
+ path = '/reserved_addrs/%{id}'
199
+ replacements = {
200
+ id: id,
201
+ }
202
+ data = {}
203
+ data[:description] = description if description
204
+ data[:metadata] = metadata if metadata
205
+ data[:endpoint_configuration_id] = endpoint_configuration_id if endpoint_configuration_id
206
+ result = @client.patch(path % replacements, data: data, danger: true)
207
+ NgrokAPI::Models::ReservedAddr.new(client: self, result: result)
208
+ end
209
+
210
+ ##
211
+ # Detach the endpoint configuration attached to a reserved address.
212
+ #
213
+ # @param [string] id a resource identifier
214
+ # @return [NgrokAPI::Models::Empty] result from the API request
215
+ #
216
+ # https://ngrok.com/docs/api#api-reserved-addrs-delete-endpoint-config
217
+ def delete_endpoint_config(
218
+ id: ""
219
+ )
220
+ path = '/reserved_addrs/%{id}/endpoint_configuration'
221
+ replacements = {
222
+ id: id,
223
+ }
224
+ @client.delete(path % replacements)
225
+ end
226
+
227
+ ##
228
+ # Detach the endpoint configuration attached to a reserved address.
229
+ # Throws an exception if API error.
230
+ #
231
+ # @param [string] id a resource identifier
232
+ # @return [NgrokAPI::Models::Empty] result from the API request
233
+ #
234
+ # https://ngrok.com/docs/api#api-reserved-addrs-delete-endpoint-config
235
+ def delete_endpoint_config!(
236
+ id: ""
237
+ )
238
+ path = '/reserved_addrs/%{id}/endpoint_configuration'
239
+ replacements = {
240
+ id: id,
241
+ }
242
+ @client.delete(path % replacements, danger: true)
243
+ end
244
+ end
245
+ end
246
+ end