ngrok-api 0.9.0 → 0.16.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 (424) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -2
  3. data/.yardopts +1 -0
  4. data/LICENSE +7 -0
  5. data/doc/NgrokAPI/Client.html +1469 -125
  6. data/doc/NgrokAPI/Error.html +3 -3
  7. data/doc/NgrokAPI/Errors/NotFoundError.html +3 -3
  8. data/doc/NgrokAPI/Errors.html +3 -3
  9. data/doc/NgrokAPI/HttpClient.html +66 -36
  10. data/doc/NgrokAPI/Models/{ApiKey.html → APIKey.html} +110 -179
  11. data/doc/NgrokAPI/Models/AWSAuth.html +617 -0
  12. data/doc/NgrokAPI/Models/AWSCredentials.html +617 -0
  13. data/doc/NgrokAPI/Models/AWSRole.html +543 -0
  14. data/doc/NgrokAPI/Models/AbuseReport.html +987 -0
  15. data/doc/NgrokAPI/Models/AbuseReportHostname.html +617 -0
  16. data/doc/NgrokAPI/Models/AgentIngress.html +1217 -0
  17. data/doc/NgrokAPI/Models/CertificateAuthority.html +1439 -0
  18. data/doc/NgrokAPI/Models/Credential.html +1149 -0
  19. data/doc/NgrokAPI/Models/EndpointCircuitBreaker.html +913 -0
  20. data/doc/NgrokAPI/Models/EndpointCompression.html +543 -0
  21. data/doc/NgrokAPI/Models/EndpointConfiguration.html +1323 -512
  22. data/doc/NgrokAPI/Models/EndpointIPPolicy.html +617 -0
  23. data/doc/NgrokAPI/Models/EndpointIPPolicyMutate.html +617 -0
  24. data/doc/NgrokAPI/Models/EndpointLogging.html +617 -0
  25. data/doc/NgrokAPI/Models/EndpointLoggingMutate.html +617 -0
  26. data/doc/NgrokAPI/Models/EndpointMutualTLS.html +617 -0
  27. data/doc/NgrokAPI/Models/EndpointMutualTLSMutate.html +617 -0
  28. data/doc/NgrokAPI/Models/EndpointOAuth.html +987 -0
  29. data/doc/NgrokAPI/Models/EndpointOAuthFacebook.html +839 -0
  30. data/doc/NgrokAPI/Models/EndpointOAuthGitHub.html +987 -0
  31. data/doc/NgrokAPI/Models/EndpointOAuthGoogle.html +839 -0
  32. data/doc/NgrokAPI/Models/EndpointOAuthMicrosoft.html +839 -0
  33. data/doc/NgrokAPI/Models/EndpointOAuthProvider.html +765 -0
  34. data/doc/NgrokAPI/Models/EndpointOIDC.html +1135 -0
  35. data/doc/NgrokAPI/Models/EndpointRequestHeaders.html +691 -0
  36. data/doc/NgrokAPI/Models/EndpointResponseHeaders.html +691 -0
  37. data/doc/NgrokAPI/Models/EndpointSAML.html +1653 -0
  38. data/doc/NgrokAPI/Models/EndpointSAMLMutate.html +1283 -0
  39. data/doc/NgrokAPI/Models/EndpointTLSTermination.html +691 -0
  40. data/doc/NgrokAPI/Models/EndpointWebhookValidation.html +691 -0
  41. data/doc/NgrokAPI/Models/EventDestination.html +1058 -0
  42. data/doc/NgrokAPI/Models/EventSource.html +765 -0
  43. data/doc/NgrokAPI/Models/EventSourceList.html +617 -0
  44. data/doc/NgrokAPI/Models/EventSourceReplace.html +691 -0
  45. data/doc/NgrokAPI/Models/EventStream.html +1309 -0
  46. data/doc/NgrokAPI/Models/EventSubscription.html +1058 -0
  47. data/doc/NgrokAPI/Models/EventTarget.html +765 -0
  48. data/doc/NgrokAPI/Models/EventTargetCloudwatchLogs.html +617 -0
  49. data/doc/NgrokAPI/Models/EventTargetFirehose.html +617 -0
  50. data/doc/NgrokAPI/Models/EventTargetKinesis.html +617 -0
  51. data/doc/NgrokAPI/Models/{TlsCertificate.html → IPPolicy.html} +172 -167
  52. data/doc/NgrokAPI/Models/IPPolicyRule.html +1149 -0
  53. data/doc/NgrokAPI/Models/IPRestriction.html +1132 -0
  54. data/doc/NgrokAPI/Models/Listable.html +120 -52
  55. data/doc/NgrokAPI/Models/Ref.html +617 -0
  56. data/doc/NgrokAPI/Models/ReservedAddr.html +1132 -0
  57. data/doc/NgrokAPI/Models/ReservedDomain.html +186 -1108
  58. data/doc/NgrokAPI/Models/ReservedDomainCertJob.html +765 -0
  59. data/doc/NgrokAPI/Models/ReservedDomainCertPolicy.html +617 -0
  60. data/doc/NgrokAPI/Models/ReservedDomainCertStatus.html +617 -0
  61. data/doc/NgrokAPI/Models/SSHCertificateAuthority.html +1143 -0
  62. data/doc/NgrokAPI/Models/SSHCredential.html +1149 -0
  63. data/doc/NgrokAPI/Models/SSHHostCertificate.html +1513 -0
  64. data/doc/NgrokAPI/Models/SSHUserCertificate.html +1661 -0
  65. data/doc/NgrokAPI/Models/TLSCertificate.html +2179 -0
  66. data/doc/NgrokAPI/Models/TLSCertificateSANs.html +617 -0
  67. data/doc/NgrokAPI/Models/Tunnel.html +987 -0
  68. data/doc/NgrokAPI/Models/TunnelSession.html +1209 -0
  69. data/doc/NgrokAPI/Models.html +6 -6
  70. data/doc/NgrokAPI/PagedIterator.html +16 -12
  71. data/{docs/NgrokAPI/Services/ApiKeysClient.html → doc/NgrokAPI/Services/APIKeysClient.html} +404 -153
  72. data/doc/NgrokAPI/Services/AbuseReportsClient.html +706 -0
  73. data/doc/NgrokAPI/Services/AgentIngressesClient.html +1600 -0
  74. data/doc/NgrokAPI/Services/CertificateAuthoritiesClient.html +1602 -0
  75. data/doc/NgrokAPI/Services/CredentialsClient.html +1644 -0
  76. data/doc/NgrokAPI/Services/EndpointCircuitBreakerModuleClient.html +1043 -0
  77. data/doc/NgrokAPI/Services/EndpointCompressionModuleClient.html +1043 -0
  78. data/doc/NgrokAPI/Services/EndpointConfigurationsClient.html +503 -370
  79. data/doc/NgrokAPI/Services/EndpointIPPolicyModuleClient.html +1043 -0
  80. data/doc/NgrokAPI/Services/EndpointLoggingModuleClient.html +1043 -0
  81. data/doc/NgrokAPI/Services/EndpointMutualTLSModuleClient.html +1043 -0
  82. data/doc/NgrokAPI/Services/EndpointOAuthModuleClient.html +1043 -0
  83. data/doc/NgrokAPI/Services/EndpointOIDCModuleClient.html +1043 -0
  84. data/doc/NgrokAPI/Services/EndpointRequestHeadersModuleClient.html +1043 -0
  85. data/doc/NgrokAPI/Services/EndpointResponseHeadersModuleClient.html +1043 -0
  86. data/doc/NgrokAPI/Services/EndpointSAMLModuleClient.html +1043 -0
  87. data/doc/NgrokAPI/Services/EndpointTLSTerminationModuleClient.html +1043 -0
  88. data/doc/NgrokAPI/Services/EndpointWebhookValidationModuleClient.html +1043 -0
  89. data/doc/NgrokAPI/Services/EventDestinationsClient.html +1712 -0
  90. data/doc/NgrokAPI/Services/EventSourcesClient.html +1532 -0
  91. data/doc/NgrokAPI/Services/EventStreamsClient.html +1792 -0
  92. data/doc/NgrokAPI/Services/EventSubscriptionsClient.html +1712 -0
  93. data/doc/NgrokAPI/Services/IPPoliciesClient.html +1602 -0
  94. data/doc/NgrokAPI/Services/IPPolicyRulesClient.html +1660 -0
  95. data/doc/NgrokAPI/Services/IPRestrictionsClient.html +1720 -0
  96. data/doc/NgrokAPI/Services/ReservedAddrsClient.html +1894 -0
  97. data/doc/NgrokAPI/Services/ReservedDomainsClient.html +585 -344
  98. data/doc/NgrokAPI/Services/SSHCertificateAuthoritiesClient.html +1644 -0
  99. data/doc/NgrokAPI/Services/SSHCredentialsClient.html +1662 -0
  100. data/doc/NgrokAPI/Services/SSHHostCertificatesClient.html +1680 -0
  101. data/doc/NgrokAPI/Services/SSHUserCertificatesClient.html +1720 -0
  102. data/{docs/NgrokAPI/Services/TlsCertificatesClient.html → doc/NgrokAPI/Services/TLSCertificatesClient.html} +404 -201
  103. data/doc/NgrokAPI/Services/TunnelSessionsClient.html +1587 -0
  104. data/doc/NgrokAPI/Services/TunnelsClient.html +669 -0
  105. data/doc/NgrokAPI/Services.html +6 -6
  106. data/doc/NgrokAPI.html +5 -5
  107. data/doc/README +94 -0
  108. data/doc/_index.html +621 -25
  109. data/doc/class_list.html +1 -1
  110. data/doc/file.README.html +55 -28
  111. data/doc/frames.html +1 -1
  112. data/doc/index.html +55 -28
  113. data/doc/method_list.html +7526 -286
  114. data/doc/top-level-namespace.html +3 -3
  115. data/docs/.gitkeep +0 -0
  116. data/docs/CNAME +1 -0
  117. data/docs/NgrokAPI/Client.html +1469 -125
  118. data/docs/NgrokAPI/Error.html +3 -3
  119. data/docs/NgrokAPI/Errors/NotFoundError.html +3 -3
  120. data/docs/NgrokAPI/Errors.html +3 -3
  121. data/docs/NgrokAPI/HttpClient.html +66 -36
  122. data/docs/NgrokAPI/Models/{ApiKey.html → APIKey.html} +110 -179
  123. data/docs/NgrokAPI/Models/AWSAuth.html +617 -0
  124. data/docs/NgrokAPI/Models/AWSCredentials.html +617 -0
  125. data/docs/NgrokAPI/Models/AWSRole.html +543 -0
  126. data/docs/NgrokAPI/Models/AbuseReport.html +987 -0
  127. data/docs/NgrokAPI/Models/AbuseReportHostname.html +617 -0
  128. data/docs/NgrokAPI/Models/AgentIngress.html +1217 -0
  129. data/docs/NgrokAPI/Models/CertificateAuthority.html +1439 -0
  130. data/docs/NgrokAPI/Models/Credential.html +1149 -0
  131. data/docs/NgrokAPI/Models/EndpointCircuitBreaker.html +913 -0
  132. data/docs/NgrokAPI/Models/EndpointCompression.html +543 -0
  133. data/docs/NgrokAPI/Models/EndpointConfiguration.html +1323 -512
  134. data/docs/NgrokAPI/Models/EndpointIPPolicy.html +617 -0
  135. data/docs/NgrokAPI/Models/EndpointIPPolicyMutate.html +617 -0
  136. data/docs/NgrokAPI/Models/EndpointLogging.html +617 -0
  137. data/docs/NgrokAPI/Models/EndpointLoggingMutate.html +617 -0
  138. data/docs/NgrokAPI/Models/EndpointMutualTLS.html +617 -0
  139. data/docs/NgrokAPI/Models/EndpointMutualTLSMutate.html +617 -0
  140. data/docs/NgrokAPI/Models/EndpointOAuth.html +987 -0
  141. data/docs/NgrokAPI/Models/EndpointOAuthFacebook.html +839 -0
  142. data/docs/NgrokAPI/Models/EndpointOAuthGitHub.html +987 -0
  143. data/docs/NgrokAPI/Models/EndpointOAuthGoogle.html +839 -0
  144. data/docs/NgrokAPI/Models/EndpointOAuthMicrosoft.html +839 -0
  145. data/docs/NgrokAPI/Models/EndpointOAuthProvider.html +765 -0
  146. data/docs/NgrokAPI/Models/EndpointOIDC.html +1135 -0
  147. data/docs/NgrokAPI/Models/EndpointRequestHeaders.html +691 -0
  148. data/docs/NgrokAPI/Models/EndpointResponseHeaders.html +691 -0
  149. data/docs/NgrokAPI/Models/EndpointSAML.html +1653 -0
  150. data/docs/NgrokAPI/Models/EndpointSAMLMutate.html +1283 -0
  151. data/docs/NgrokAPI/Models/EndpointTLSTermination.html +691 -0
  152. data/docs/NgrokAPI/Models/EndpointWebhookValidation.html +691 -0
  153. data/docs/NgrokAPI/Models/EventDestination.html +1058 -0
  154. data/docs/NgrokAPI/Models/EventSource.html +765 -0
  155. data/docs/NgrokAPI/Models/EventSourceList.html +617 -0
  156. data/docs/NgrokAPI/Models/EventSourceReplace.html +691 -0
  157. data/docs/NgrokAPI/Models/EventStream.html +1309 -0
  158. data/docs/NgrokAPI/Models/EventSubscription.html +1058 -0
  159. data/docs/NgrokAPI/Models/EventTarget.html +765 -0
  160. data/docs/NgrokAPI/Models/EventTargetCloudwatchLogs.html +617 -0
  161. data/docs/NgrokAPI/Models/EventTargetFirehose.html +617 -0
  162. data/docs/NgrokAPI/Models/EventTargetKinesis.html +617 -0
  163. data/docs/NgrokAPI/Models/{TlsCertificate.html → IPPolicy.html} +172 -167
  164. data/docs/NgrokAPI/Models/IPPolicyRule.html +1149 -0
  165. data/docs/NgrokAPI/Models/IPRestriction.html +1132 -0
  166. data/docs/NgrokAPI/Models/Listable.html +120 -52
  167. data/docs/NgrokAPI/Models/Ref.html +617 -0
  168. data/docs/NgrokAPI/Models/ReservedAddr.html +1132 -0
  169. data/docs/NgrokAPI/Models/ReservedDomain.html +186 -1108
  170. data/docs/NgrokAPI/Models/ReservedDomainCertJob.html +765 -0
  171. data/docs/NgrokAPI/Models/ReservedDomainCertPolicy.html +617 -0
  172. data/docs/NgrokAPI/Models/ReservedDomainCertStatus.html +617 -0
  173. data/docs/NgrokAPI/Models/SSHCertificateAuthority.html +1143 -0
  174. data/docs/NgrokAPI/Models/SSHCredential.html +1149 -0
  175. data/docs/NgrokAPI/Models/SSHHostCertificate.html +1513 -0
  176. data/docs/NgrokAPI/Models/SSHUserCertificate.html +1661 -0
  177. data/docs/NgrokAPI/Models/TLSCertificate.html +2179 -0
  178. data/docs/NgrokAPI/Models/TLSCertificateSANs.html +617 -0
  179. data/docs/NgrokAPI/Models/Tunnel.html +987 -0
  180. data/docs/NgrokAPI/Models/TunnelSession.html +1209 -0
  181. data/docs/NgrokAPI/Models.html +6 -6
  182. data/docs/NgrokAPI/PagedIterator.html +16 -12
  183. data/{doc/NgrokAPI/Services/ApiKeysClient.html → docs/NgrokAPI/Services/APIKeysClient.html} +404 -153
  184. data/docs/NgrokAPI/Services/AbuseReportsClient.html +706 -0
  185. data/docs/NgrokAPI/Services/AgentIngressesClient.html +1600 -0
  186. data/docs/NgrokAPI/Services/CertificateAuthoritiesClient.html +1602 -0
  187. data/docs/NgrokAPI/Services/CredentialsClient.html +1644 -0
  188. data/docs/NgrokAPI/Services/EndpointCircuitBreakerModuleClient.html +1043 -0
  189. data/docs/NgrokAPI/Services/EndpointCompressionModuleClient.html +1043 -0
  190. data/docs/NgrokAPI/Services/EndpointConfigurationsClient.html +503 -370
  191. data/docs/NgrokAPI/Services/EndpointIPPolicyModuleClient.html +1043 -0
  192. data/docs/NgrokAPI/Services/EndpointLoggingModuleClient.html +1043 -0
  193. data/docs/NgrokAPI/Services/EndpointMutualTLSModuleClient.html +1043 -0
  194. data/docs/NgrokAPI/Services/EndpointOAuthModuleClient.html +1043 -0
  195. data/docs/NgrokAPI/Services/EndpointOIDCModuleClient.html +1043 -0
  196. data/docs/NgrokAPI/Services/EndpointRequestHeadersModuleClient.html +1043 -0
  197. data/docs/NgrokAPI/Services/EndpointResponseHeadersModuleClient.html +1043 -0
  198. data/docs/NgrokAPI/Services/EndpointSAMLModuleClient.html +1043 -0
  199. data/docs/NgrokAPI/Services/EndpointTLSTerminationModuleClient.html +1043 -0
  200. data/docs/NgrokAPI/Services/EndpointWebhookValidationModuleClient.html +1043 -0
  201. data/docs/NgrokAPI/Services/EventDestinationsClient.html +1712 -0
  202. data/docs/NgrokAPI/Services/EventSourcesClient.html +1532 -0
  203. data/docs/NgrokAPI/Services/EventStreamsClient.html +1792 -0
  204. data/docs/NgrokAPI/Services/EventSubscriptionsClient.html +1712 -0
  205. data/docs/NgrokAPI/Services/IPPoliciesClient.html +1602 -0
  206. data/docs/NgrokAPI/Services/IPPolicyRulesClient.html +1660 -0
  207. data/docs/NgrokAPI/Services/IPRestrictionsClient.html +1720 -0
  208. data/docs/NgrokAPI/Services/ReservedAddrsClient.html +1894 -0
  209. data/docs/NgrokAPI/Services/ReservedDomainsClient.html +585 -344
  210. data/docs/NgrokAPI/Services/SSHCertificateAuthoritiesClient.html +1644 -0
  211. data/docs/NgrokAPI/Services/SSHCredentialsClient.html +1662 -0
  212. data/docs/NgrokAPI/Services/SSHHostCertificatesClient.html +1680 -0
  213. data/docs/NgrokAPI/Services/SSHUserCertificatesClient.html +1720 -0
  214. data/{doc/NgrokAPI/Services/TlsCertificatesClient.html → docs/NgrokAPI/Services/TLSCertificatesClient.html} +404 -201
  215. data/docs/NgrokAPI/Services/TunnelSessionsClient.html +1587 -0
  216. data/docs/NgrokAPI/Services/TunnelsClient.html +669 -0
  217. data/docs/NgrokAPI/Services.html +6 -6
  218. data/docs/NgrokAPI.html +5 -5
  219. data/docs/README +94 -0
  220. data/docs/_index.html +621 -25
  221. data/docs/class_list.html +1 -1
  222. data/docs/file.README.html +55 -28
  223. data/docs/frames.html +1 -1
  224. data/docs/index.html +55 -28
  225. data/docs/method_list.html +7526 -286
  226. data/docs/top-level-namespace.html +3 -3
  227. data/lib/ngrokapi/client.rb +229 -49
  228. data/lib/ngrokapi/http_client.rb +6 -7
  229. data/lib/ngrokapi/models/abuse_report.rb +37 -0
  230. data/lib/ngrokapi/models/abuse_report_hostname.rb +27 -0
  231. data/lib/ngrokapi/models/agent_ingress.rb +66 -0
  232. data/lib/ngrokapi/models/api_key.rb +62 -64
  233. data/lib/ngrokapi/models/aws_auth.rb +27 -0
  234. data/lib/ngrokapi/models/aws_credentials.rb +27 -0
  235. data/lib/ngrokapi/models/aws_role.rb +25 -0
  236. data/lib/ngrokapi/models/certificate_authority.rb +72 -0
  237. data/lib/ngrokapi/models/credential.rb +67 -0
  238. data/lib/ngrokapi/models/endpoint_circuit_breaker.rb +35 -0
  239. data/lib/ngrokapi/models/endpoint_compression.rb +25 -0
  240. data/lib/ngrokapi/models/endpoint_configuration.rb +130 -119
  241. data/lib/ngrokapi/models/endpoint_ip_policy.rb +27 -0
  242. data/lib/ngrokapi/models/endpoint_ip_policy_mutate.rb +27 -0
  243. data/lib/ngrokapi/models/endpoint_logging.rb +27 -0
  244. data/lib/ngrokapi/models/endpoint_logging_mutate.rb +27 -0
  245. data/lib/ngrokapi/models/endpoint_mutual_tls.rb +27 -0
  246. data/lib/ngrokapi/models/endpoint_mutual_tls_mutate.rb +27 -0
  247. data/lib/ngrokapi/models/endpoint_o_auth.rb +37 -0
  248. data/lib/ngrokapi/models/endpoint_o_auth_facebook.rb +33 -0
  249. data/lib/ngrokapi/models/endpoint_o_auth_git_hub.rb +37 -0
  250. data/lib/ngrokapi/models/endpoint_o_auth_google.rb +33 -0
  251. data/lib/ngrokapi/models/endpoint_o_auth_microsoft.rb +33 -0
  252. data/lib/ngrokapi/models/endpoint_o_auth_provider.rb +31 -0
  253. data/lib/ngrokapi/models/endpoint_oidc.rb +41 -0
  254. data/lib/ngrokapi/models/endpoint_request_headers.rb +29 -0
  255. data/lib/ngrokapi/models/endpoint_response_headers.rb +29 -0
  256. data/lib/ngrokapi/models/endpoint_saml.rb +55 -0
  257. data/lib/ngrokapi/models/endpoint_saml_mutate.rb +45 -0
  258. data/lib/ngrokapi/models/endpoint_tls_termination.rb +29 -0
  259. data/lib/ngrokapi/models/endpoint_webhook_validation.rb +29 -0
  260. data/lib/ngrokapi/models/event_destination.rb +49 -0
  261. data/lib/ngrokapi/models/event_source.rb +31 -0
  262. data/lib/ngrokapi/models/event_source_list.rb +27 -0
  263. data/lib/ngrokapi/models/event_source_replace.rb +29 -0
  264. data/lib/ngrokapi/models/event_stream.rb +77 -0
  265. data/lib/ngrokapi/models/event_subscription.rb +47 -0
  266. data/lib/ngrokapi/models/event_target.rb +31 -0
  267. data/lib/ngrokapi/models/event_target_cloudwatch_logs.rb +27 -0
  268. data/lib/ngrokapi/models/event_target_firehose.rb +27 -0
  269. data/lib/ngrokapi/models/event_target_kinesis.rb +27 -0
  270. data/lib/ngrokapi/models/ip_policy.rb +64 -0
  271. data/lib/ngrokapi/models/ip_policy_rule.rb +67 -0
  272. data/lib/ngrokapi/models/ip_restriction.rb +49 -0
  273. data/lib/ngrokapi/models/listable.rb +13 -2
  274. data/lib/ngrokapi/models/ref.rb +27 -0
  275. data/lib/ngrokapi/models/reserved_addr.rb +49 -0
  276. data/lib/ngrokapi/models/reserved_domain.rb +61 -211
  277. data/lib/ngrokapi/models/reserved_domain_cert_job.rb +31 -0
  278. data/lib/ngrokapi/models/reserved_domain_cert_policy.rb +27 -0
  279. data/lib/ngrokapi/models/reserved_domain_cert_status.rb +27 -0
  280. data/lib/ngrokapi/models/ssh_certificate_authority.rb +64 -0
  281. data/lib/ngrokapi/models/ssh_credential.rb +67 -0
  282. data/lib/ngrokapi/models/ssh_host_certificate.rb +74 -0
  283. data/lib/ngrokapi/models/ssh_user_certificate.rb +78 -0
  284. data/lib/ngrokapi/models/tls_certificate.rb +92 -62
  285. data/lib/ngrokapi/models/tls_certificate_sa_ns.rb +27 -0
  286. data/lib/ngrokapi/models/tunnel.rb +37 -0
  287. data/lib/ngrokapi/models/tunnel_session.rb +43 -0
  288. data/lib/ngrokapi/paged_iterator.rb +4 -2
  289. data/lib/ngrokapi/services/.gitkeep +0 -0
  290. data/lib/ngrokapi/services/abuse_reports_client.rb +77 -0
  291. data/lib/ngrokapi/services/agent_ingresses_client.rb +206 -0
  292. data/lib/ngrokapi/services/api_keys_client.rb +210 -144
  293. data/lib/ngrokapi/services/certificate_authorities_client.rb +211 -0
  294. data/lib/ngrokapi/services/credentials_client.rb +217 -0
  295. data/lib/ngrokapi/services/endpoint_circuit_breaker_module_client.rb +108 -0
  296. data/lib/ngrokapi/services/endpoint_compression_module_client.rb +108 -0
  297. data/lib/ngrokapi/services/endpoint_configurations_client.rb +289 -313
  298. data/lib/ngrokapi/services/endpoint_ip_policy_module_client.rb +108 -0
  299. data/lib/ngrokapi/services/endpoint_logging_module_client.rb +108 -0
  300. data/lib/ngrokapi/services/endpoint_mutual_tls_module_client.rb +108 -0
  301. data/lib/ngrokapi/services/endpoint_o_auth_module_client.rb +108 -0
  302. data/lib/ngrokapi/services/endpoint_oidc_module_client.rb +108 -0
  303. data/lib/ngrokapi/services/endpoint_request_headers_module_client.rb +108 -0
  304. data/lib/ngrokapi/services/endpoint_response_headers_module_client.rb +108 -0
  305. data/lib/ngrokapi/services/endpoint_saml_module_client.rb +108 -0
  306. data/lib/ngrokapi/services/endpoint_tls_termination_module_client.rb +108 -0
  307. data/lib/ngrokapi/services/endpoint_webhook_validation_module_client.rb +108 -0
  308. data/lib/ngrokapi/services/event_destinations_client.rb +221 -0
  309. data/lib/ngrokapi/services/event_sources_client.rb +185 -0
  310. data/lib/ngrokapi/services/event_streams_client.rb +224 -0
  311. data/lib/ngrokapi/services/event_subscriptions_client.rb +215 -0
  312. data/lib/ngrokapi/services/ip_policies_client.rb +215 -0
  313. data/lib/ngrokapi/services/ip_policy_rules_client.rb +214 -0
  314. data/lib/ngrokapi/services/ip_restrictions_client.rb +224 -0
  315. data/lib/ngrokapi/services/reserved_addrs_client.rb +246 -0
  316. data/lib/ngrokapi/services/reserved_domains_client.rb +360 -313
  317. data/lib/ngrokapi/services/ssh_certificate_authorities_client.rb +212 -0
  318. data/lib/ngrokapi/services/ssh_credentials_client.rb +215 -0
  319. data/lib/ngrokapi/services/ssh_host_certificates_client.rb +217 -0
  320. data/lib/ngrokapi/services/ssh_user_certificates_client.rb +221 -0
  321. data/lib/ngrokapi/services/tls_certificates_client.rb +213 -161
  322. data/lib/ngrokapi/services/tunnel_sessions_client.rb +237 -0
  323. data/lib/ngrokapi/services/tunnels_client.rb +78 -0
  324. data/lib/ngrokapi/version.rb +1 -1
  325. data/lib/ngrokapi.rb +1 -1
  326. data/ngrok-api.gemspec +1 -1
  327. data/spec/ngrokapi/client_spec.rb +158 -33
  328. data/spec/ngrokapi/models/abuse_report_hostname_spec.rb +21 -0
  329. data/spec/ngrokapi/models/abuse_report_spec.rb +21 -0
  330. data/spec/ngrokapi/models/agent_ingress_spec.rb +42 -0
  331. data/spec/ngrokapi/models/api_key_spec.rb +42 -43
  332. data/spec/ngrokapi/models/aws_auth_spec.rb +21 -0
  333. data/spec/ngrokapi/models/aws_credentials_spec.rb +21 -0
  334. data/spec/ngrokapi/models/aws_role_spec.rb +21 -0
  335. data/spec/ngrokapi/models/certificate_authority_spec.rb +42 -0
  336. data/spec/ngrokapi/models/credential_spec.rb +45 -0
  337. data/spec/ngrokapi/models/endpoint_circuit_breaker_spec.rb +21 -0
  338. data/spec/ngrokapi/models/endpoint_compression_spec.rb +21 -0
  339. data/spec/ngrokapi/models/endpoint_configuration_spec.rb +78 -0
  340. data/spec/ngrokapi/models/endpoint_ip_policy_mutate_spec.rb +21 -0
  341. data/spec/ngrokapi/models/endpoint_ip_policy_spec.rb +21 -0
  342. data/spec/ngrokapi/models/endpoint_logging_mutate_spec.rb +21 -0
  343. data/spec/ngrokapi/models/endpoint_logging_spec.rb +21 -0
  344. data/spec/ngrokapi/models/endpoint_mutual_tls_mutate_spec.rb +21 -0
  345. data/spec/ngrokapi/models/endpoint_mutual_tls_spec.rb +21 -0
  346. data/spec/ngrokapi/models/endpoint_o_auth_facebook_spec.rb +21 -0
  347. data/spec/ngrokapi/models/endpoint_o_auth_git_hub_spec.rb +21 -0
  348. data/spec/ngrokapi/models/endpoint_o_auth_google_spec.rb +21 -0
  349. data/spec/ngrokapi/models/endpoint_o_auth_microsoft_spec.rb +21 -0
  350. data/spec/ngrokapi/models/endpoint_o_auth_provider_spec.rb +21 -0
  351. data/spec/ngrokapi/models/endpoint_o_auth_spec.rb +21 -0
  352. data/spec/ngrokapi/models/endpoint_oidc_spec.rb +21 -0
  353. data/spec/ngrokapi/models/endpoint_request_headers_spec.rb +21 -0
  354. data/spec/ngrokapi/models/endpoint_response_headers_spec.rb +21 -0
  355. data/spec/ngrokapi/models/endpoint_saml_mutate_spec.rb +21 -0
  356. data/spec/ngrokapi/models/endpoint_saml_spec.rb +21 -0
  357. data/spec/ngrokapi/models/endpoint_tls_termination_spec.rb +21 -0
  358. data/spec/ngrokapi/models/endpoint_webhook_validation_spec.rb +21 -0
  359. data/spec/ngrokapi/models/event_destination_spec.rb +28 -0
  360. data/spec/ngrokapi/models/event_source_list_spec.rb +21 -0
  361. data/spec/ngrokapi/models/event_source_replace_spec.rb +21 -0
  362. data/spec/ngrokapi/models/event_source_spec.rb +21 -0
  363. data/spec/ngrokapi/models/event_stream_spec.rb +51 -0
  364. data/spec/ngrokapi/models/event_subscription_spec.rb +28 -0
  365. data/spec/ngrokapi/models/event_target_cloudwatch_logs_spec.rb +21 -0
  366. data/spec/ngrokapi/models/event_target_firehose_spec.rb +21 -0
  367. data/spec/ngrokapi/models/event_target_kinesis_spec.rb +21 -0
  368. data/spec/ngrokapi/models/event_target_spec.rb +21 -0
  369. data/spec/ngrokapi/models/ip_policy_rule_spec.rb +45 -0
  370. data/spec/ngrokapi/models/ip_policy_spec.rb +42 -0
  371. data/spec/ngrokapi/models/ip_restriction_spec.rb +28 -0
  372. data/spec/ngrokapi/models/listable_spec.rb +4 -4
  373. data/spec/ngrokapi/models/ref_spec.rb +21 -0
  374. data/spec/ngrokapi/models/reserved_addr_spec.rb +28 -0
  375. data/spec/ngrokapi/models/reserved_domain_cert_job_spec.rb +21 -0
  376. data/spec/ngrokapi/models/reserved_domain_cert_policy_spec.rb +21 -0
  377. data/spec/ngrokapi/models/reserved_domain_cert_status_spec.rb +21 -0
  378. data/spec/ngrokapi/models/reserved_domain_spec.rb +28 -100
  379. data/spec/ngrokapi/models/ssh_certificate_authority_spec.rb +42 -0
  380. data/spec/ngrokapi/models/ssh_credential_spec.rb +45 -0
  381. data/spec/ngrokapi/models/ssh_host_certificate_spec.rb +42 -0
  382. data/spec/ngrokapi/models/ssh_user_certificate_spec.rb +42 -0
  383. data/spec/ngrokapi/models/tls_certificate_sa_ns_spec.rb +21 -0
  384. data/spec/ngrokapi/models/tls_certificate_spec.rb +42 -0
  385. data/spec/ngrokapi/models/tunnel_session_spec.rb +21 -0
  386. data/spec/ngrokapi/models/tunnel_spec.rb +21 -0
  387. data/spec/ngrokapi/paged_iterator_spec.rb +7 -7
  388. data/spec/ngrokapi/services/.gitkeep +0 -0
  389. data/spec/ngrokapi/services/abuse_reports_client_spec.rb +65 -0
  390. data/spec/ngrokapi/services/agent_ingresses_client_spec.rb +159 -0
  391. data/spec/ngrokapi/services/api_keys_client_spec.rb +157 -127
  392. data/spec/ngrokapi/services/certificate_authorities_client_spec.rb +159 -0
  393. data/spec/ngrokapi/services/credentials_client_spec.rb +163 -0
  394. data/spec/ngrokapi/services/endpoint_circuit_breaker_module_client_spec.rb +125 -0
  395. data/spec/ngrokapi/services/endpoint_compression_module_client_spec.rb +125 -0
  396. data/spec/ngrokapi/services/endpoint_configurations_client_spec.rb +237 -0
  397. data/spec/ngrokapi/services/endpoint_ip_policy_module_client_spec.rb +125 -0
  398. data/spec/ngrokapi/services/endpoint_logging_module_client_spec.rb +125 -0
  399. data/spec/ngrokapi/services/endpoint_mutual_tls_module_client_spec.rb +125 -0
  400. data/spec/ngrokapi/services/endpoint_o_auth_module_client_spec.rb +125 -0
  401. data/spec/ngrokapi/services/endpoint_oidc_module_client_spec.rb +125 -0
  402. data/spec/ngrokapi/services/endpoint_request_headers_module_client_spec.rb +125 -0
  403. data/spec/ngrokapi/services/endpoint_response_headers_module_client_spec.rb +125 -0
  404. data/spec/ngrokapi/services/endpoint_saml_module_client_spec.rb +125 -0
  405. data/spec/ngrokapi/services/endpoint_tls_termination_module_client_spec.rb +125 -0
  406. data/spec/ngrokapi/services/endpoint_webhook_validation_module_client_spec.rb +125 -0
  407. data/spec/ngrokapi/services/event_destinations_client_spec.rb +172 -0
  408. data/spec/ngrokapi/services/event_sources_client_spec.rb +192 -0
  409. data/spec/ngrokapi/services/event_streams_client_spec.rb +177 -0
  410. data/spec/ngrokapi/services/event_subscriptions_client_spec.rb +169 -0
  411. data/spec/ngrokapi/services/ip_policies_client_spec.rb +159 -0
  412. data/spec/ngrokapi/services/ip_policy_rules_client_spec.rb +165 -0
  413. data/spec/ngrokapi/services/ip_restrictions_client_spec.rb +171 -0
  414. data/spec/ngrokapi/services/reserved_addrs_client_spec.rb +206 -0
  415. data/spec/ngrokapi/services/reserved_domains_client_spec.rb +349 -0
  416. data/spec/ngrokapi/services/ssh_certificate_authorities_client_spec.rb +163 -0
  417. data/spec/ngrokapi/services/ssh_credentials_client_spec.rb +165 -0
  418. data/spec/ngrokapi/services/ssh_host_certificates_client_spec.rb +167 -0
  419. data/spec/ngrokapi/services/ssh_user_certificates_client_spec.rb +171 -0
  420. data/spec/ngrokapi/services/tls_certificates_client_spec.rb +161 -0
  421. data/spec/ngrokapi/services/tunnel_sessions_client_spec.rb +183 -0
  422. data/spec/ngrokapi/services/tunnels_client_spec.rb +21 -0
  423. data/spec/spec_helper.rb +1096 -80
  424. metadata +360 -11
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # Abuse Reports allow you to submit take-down requests for URLs hosted by
7
+ # ngrok that violate ngrok's terms of service.
8
+ #
9
+ # https://ngrok.com/docs/api#api-abuse-reports
10
+ class AbuseReportsClient
11
+ # The API path for the requests
12
+ PATH = '/abuse_reports'
13
+
14
+ attr_reader :client
15
+
16
+ def initialize(client:)
17
+ @client = client
18
+ end
19
+
20
+ ##
21
+ # Creates a new abuse report which will be reviewed by our system and abuse
22
+ # response team. This API is only available to authorized accounts. Contact
23
+ # abuse@ngrok.com to request access
24
+ #
25
+ # @param [List<uri (string)>] urls a list of URLs containing suspected abusive content
26
+ # @param [string] metadata arbitrary user-defined data about this abuse report. Optional, max 4096 bytes.
27
+ # @return [NgrokAPI::Models::AbuseReport] result from the API request
28
+ #
29
+ # https://ngrok.com/docs/api#api-abuse-reports-create
30
+ def create(urls:, metadata: "")
31
+ path = '/abuse_reports'
32
+ replacements = {
33
+ }
34
+ data = {}
35
+ data[:urls] = urls if urls
36
+ data[:metadata] = metadata if metadata
37
+ result = @client.post(path % replacements, data: data)
38
+ NgrokAPI::Models::AbuseReport.new(client: self, result: result)
39
+ end
40
+
41
+ ##
42
+ # Get the detailed status of abuse report by ID.
43
+ #
44
+ # @param [string] id a resource identifier
45
+ # @return [NgrokAPI::Models::AbuseReport] result from the API request
46
+ #
47
+ # https://ngrok.com/docs/api#api-abuse-reports-get
48
+ def get(id: "")
49
+ path = '/abuse_reports/%{id}'
50
+ replacements = {
51
+ id: id,
52
+ }
53
+ data = {}
54
+ result = @client.get(path % replacements, data: data)
55
+ NgrokAPI::Models::AbuseReport.new(client: self, result: result)
56
+ end
57
+
58
+ ##
59
+ # Get the detailed status of abuse report by ID.
60
+ # Throws an exception if API error.
61
+ #
62
+ # @param [string] id a resource identifier
63
+ # @return [NgrokAPI::Models::AbuseReport] result from the API request
64
+ #
65
+ # https://ngrok.com/docs/api#api-abuse-reports-get
66
+ def get!(id: "")
67
+ path = '/abuse_reports/%{id}'
68
+ replacements = {
69
+ id: id,
70
+ }
71
+ data = {}
72
+ result = @client.get(path % replacements, data: data, danger: true)
73
+ NgrokAPI::Models::AbuseReport.new(client: self, result: result)
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,206 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # https://ngrok.com/docs/api#api-agent-ingresses
7
+ class AgentIngressesClient
8
+ # The API path for the requests
9
+ PATH = '/agent_ingresses'
10
+ # The List Property from the resulting API for list calls
11
+ LIST_PROPERTY = 'ingresses'
12
+
13
+ attr_reader :client
14
+
15
+ def initialize(client:)
16
+ @client = client
17
+ end
18
+
19
+ ##
20
+ # Create a new Agent Ingress. The ngrok agent can be configured to connect to
21
+ # ngrok via the new set of addresses on the returned Agent Ingress.
22
+ #
23
+ # @param [string] description human-readable description of the use of this Agent Ingress. optional, max 255 bytes.
24
+ # @param [string] metadata arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes
25
+ # @param [string] domain the domain that you own to be used as the base domain name to generate regional agent ingress domains.
26
+ # @return [NgrokAPI::Models::AgentIngress] result from the API request
27
+ #
28
+ # https://ngrok.com/docs/api#api-agent-ingresses-create
29
+ def create(description: "", metadata: "", domain:)
30
+ path = '/agent_ingresses'
31
+ replacements = {
32
+ }
33
+ data = {}
34
+ data[:description] = description if description
35
+ data[:metadata] = metadata if metadata
36
+ data[:domain] = domain if domain
37
+ result = @client.post(path % replacements, data: data)
38
+ NgrokAPI::Models::AgentIngress.new(client: self, result: result)
39
+ end
40
+
41
+ ##
42
+ # Delete an Agent Ingress by ID
43
+ #
44
+ # @param [string] id a resource identifier
45
+ # @return [NgrokAPI::Models::Empty] result from the API request
46
+ #
47
+ # https://ngrok.com/docs/api#api-agent-ingresses-delete
48
+ def delete(id: "")
49
+ path = '/agent_ingresses/%{id}'
50
+ replacements = {
51
+ id: id,
52
+ }
53
+ @client.delete(path % replacements)
54
+ end
55
+
56
+ ##
57
+ # Delete an Agent Ingress by ID
58
+ # Throws an exception if API error.
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-agent-ingresses-delete
64
+ def delete!(id: "")
65
+ path = '/agent_ingresses/%{id}'
66
+ replacements = {
67
+ id: id,
68
+ }
69
+ @client.delete(path % replacements, danger: true)
70
+ end
71
+
72
+ ##
73
+ # Get the details of an Agent Ingress by ID.
74
+ #
75
+ # @param [string] id a resource identifier
76
+ # @return [NgrokAPI::Models::AgentIngress] result from the API request
77
+ #
78
+ # https://ngrok.com/docs/api#api-agent-ingresses-get
79
+ def get(id: "")
80
+ path = '/agent_ingresses/%{id}'
81
+ replacements = {
82
+ id: id,
83
+ }
84
+ data = {}
85
+ result = @client.get(path % replacements, data: data)
86
+ NgrokAPI::Models::AgentIngress.new(client: self, result: result)
87
+ end
88
+
89
+ ##
90
+ # Get the details of an Agent Ingress by ID.
91
+ # Throws an exception if API error.
92
+ #
93
+ # @param [string] id a resource identifier
94
+ # @return [NgrokAPI::Models::AgentIngress] result from the API request
95
+ #
96
+ # https://ngrok.com/docs/api#api-agent-ingresses-get
97
+ def get!(id: "")
98
+ path = '/agent_ingresses/%{id}'
99
+ replacements = {
100
+ id: id,
101
+ }
102
+ data = {}
103
+ result = @client.get(path % replacements, data: data, danger: true)
104
+ NgrokAPI::Models::AgentIngress.new(client: self, result: result)
105
+ end
106
+
107
+ ##
108
+ # List all Agent Ingresses owned by this account
109
+ #
110
+ # @param [string] before_id
111
+ # @param [string] limit
112
+ # @param [string] url optional and mutually exclusive from before_id and limit
113
+ # @return [NgrokAPI::Models::Listable] result from the API request
114
+ #
115
+ # https://ngrok.com/docs/api#api-agent-ingresses-list
116
+ def list(before_id: nil, limit: nil,
117
+ url: nil)
118
+ result = @client.list(
119
+ before_id: before_id,
120
+ limit: limit,
121
+ url: url,
122
+ path: PATH
123
+ )
124
+
125
+ NgrokAPI::Models::Listable.new(
126
+ client: self,
127
+ result: result,
128
+ list_property: LIST_PROPERTY,
129
+ klass: NgrokAPI::Models::AgentIngress
130
+ )
131
+ end
132
+
133
+ ##
134
+ # List all Agent Ingresses owned by this account
135
+ # Throws an exception if API error.
136
+ #
137
+ # @param [string] before_id
138
+ # @param [string] limit
139
+ # @param [string] url optional and mutually exclusive from before_id and limit
140
+ # @return [NgrokAPI::Models::Listable] result from the API request
141
+ #
142
+ # https://ngrok.com/docs/api#api-agent-ingresses-list
143
+ def list!(before_id: nil, limit: nil,
144
+ url: nil)
145
+ result = @client.list(
146
+ before_id: before_id,
147
+ limit: limit,
148
+ danger: true,
149
+ url: url,
150
+ path: PATH
151
+ )
152
+
153
+ NgrokAPI::Models::Listable.new(
154
+ client: self,
155
+ result: result,
156
+ list_property: LIST_PROPERTY,
157
+ klass: NgrokAPI::Models::AgentIngress,
158
+ danger: true
159
+ )
160
+ end
161
+
162
+ ##
163
+ # Update attributes of an Agent Ingress by ID.
164
+ #
165
+ # @param [string] id
166
+ # @param [string] description human-readable description of the use of this Agent Ingress. optional, max 255 bytes.
167
+ # @param [string] metadata arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes
168
+ # @return [NgrokAPI::Models::AgentIngress] result from the API request
169
+ #
170
+ # https://ngrok.com/docs/api#api-agent-ingresses-update
171
+ def update(id: "", description: nil, metadata: nil)
172
+ path = '/agent_ingresses/%{id}'
173
+ replacements = {
174
+ id: id,
175
+ }
176
+ data = {}
177
+ data[:description] = description if description
178
+ data[:metadata] = metadata if metadata
179
+ result = @client.patch(path % replacements, data: data)
180
+ NgrokAPI::Models::AgentIngress.new(client: self, result: result)
181
+ end
182
+
183
+ ##
184
+ # Update attributes of an Agent Ingress by ID.
185
+ # Throws an exception if API error.
186
+ #
187
+ # @param [string] id
188
+ # @param [string] description human-readable description of the use of this Agent Ingress. optional, max 255 bytes.
189
+ # @param [string] metadata arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes
190
+ # @return [NgrokAPI::Models::AgentIngress] result from the API request
191
+ #
192
+ # https://ngrok.com/docs/api#api-agent-ingresses-update
193
+ def update!(id: "", description: nil, metadata: nil)
194
+ path = '/agent_ingresses/%{id}'
195
+ replacements = {
196
+ id: id,
197
+ }
198
+ data = {}
199
+ data[:description] = description if description
200
+ data[:metadata] = metadata if metadata
201
+ result = @client.patch(path % replacements, data: data, danger: true)
202
+ NgrokAPI::Models::AgentIngress.new(client: self, result: result)
203
+ end
204
+ end
205
+ end
206
+ end
@@ -1,144 +1,210 @@
1
- # frozen_string_literal: true
2
-
3
- module NgrokAPI
4
- module Services
5
- ##
6
- # A client for interacting with the api_keys API
7
- #
8
- # https://ngrok.com/docs/api#api-api-keys
9
- class ApiKeysClient
10
- # The List Property from the resulting API for list calls
11
- LIST_PROPERTY = 'keys'
12
- # The API path for API keys
13
- PATH = '/api_keys'
14
-
15
- attr_reader :client
16
-
17
- def initialize(client:)
18
- @client = client
19
- end
20
-
21
- # rubocop:disable LineLength
22
-
23
- ##
24
- # Create a new API key. The generated API key can be used to authenticate to the ngrok API.
25
- #
26
- # @param [string] description human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
27
- # @param [string] metadata arbitrary user-defined data of this API key. optional, max 4096 bytes
28
- # @return [NgrokAPI::Models::ApiKey] result from create request
29
- #
30
- # https://ngrok.com/docs/api#api-api-keys-create
31
- def create(description: nil, metadata: nil)
32
- result = @client.post(PATH, data: build_data(description: description, metadata: metadata))
33
- NgrokAPI::Models::ApiKey.new(client: self, result: result)
34
- end
35
- # rubocop:enable LineLength
36
-
37
- ##
38
- # Delete an API key by ID.
39
- #
40
- # @param [string] id a resource identifier
41
- # @return [nil] result from delete request
42
- #
43
- # https://ngrok.com/docs/api#api-api-keys-delete
44
- def delete(id: nil)
45
- @client.delete("#{PATH}/#{id}")
46
- end
47
-
48
- ##
49
- # Delete an API key by ID. Throw an exception if 404.
50
- #
51
- # @param [string] id a resource identifier
52
- # @return [nil] result from delete request
53
- #
54
- # https://ngrok.com/docs/api#api-api-keys-delete
55
- def delete!(id: nil)
56
- @client.delete("#{PATH}/#{id}", danger: true)
57
- end
58
-
59
- ##
60
- # Get the details of an API key by ID.
61
- #
62
- # @param [string] id a resource identifier
63
- # @return [NgrokAPI::Models::ApiKey] result from get request
64
- #
65
- # https://ngrok.com/docs/api#api-api-keys-get
66
- def get(id: nil)
67
- result = @client.get("#{PATH}/#{id}")
68
- NgrokAPI::Models::ApiKey.new(client: self, result: result)
69
- end
70
-
71
- ##
72
- # Get the details of an API key by ID. Throw an exception if 404.
73
- #
74
- # @param [string] id a resource identifier
75
- # @return [NgrokAPI::Models::ApiKey] result from get request
76
- #
77
- # https://ngrok.com/docs/api#api-api-keys-get
78
- def get!(id: nil)
79
- result = @client.get("#{PATH}/#{id}", danger: true)
80
- NgrokAPI::Models::ApiKey.new(client: self, result: result)
81
- end
82
-
83
- ##
84
- # List all API keys owned by this account.
85
- #
86
- # @param [string] before_id
87
- # @param [integer] limit
88
- # @param [string] url optional and mutually exclusive from before_id and limit
89
- # @return [NgrokAPI::Models::Listable] the result listable
90
- #
91
- # https://ngrok.com/docs/api#api-api-keys-list
92
- def list(before_id: nil, limit: nil, url: nil)
93
- result = @client.list(before_id: before_id, limit: limit, url: url, path: PATH)
94
- NgrokAPI::Models::Listable.new(
95
- client: self,
96
- result: result,
97
- list_property: LIST_PROPERTY,
98
- klass: NgrokAPI::Models::ApiKey
99
- )
100
- end
101
-
102
- # rubocop:disable LineLength
103
-
104
- ##
105
- # Update attributes of an API key by ID.
106
- #
107
- # @param [string] id
108
- # @param [string] description human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
109
- # @param [string] metadata arbitrary user-defined data of this API key. optional, max 4096 bytes
110
- # @return [NgrokAPI::Models::ApiKey] result from update request
111
- #
112
- # https://ngrok.com/docs/api#api-api-keys-update
113
- def update(id: nil, description: nil, metadata: nil)
114
- result = @client.patch("#{PATH}/#{id}", data: build_data(description: description, metadata: metadata))
115
- NgrokAPI::Models::ApiKey.new(client: self, result: result)
116
- end
117
-
118
- ##
119
- # Update attributes of an API key by ID.
120
- #
121
- # @param [string] id
122
- # @param [string] description human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
123
- # @param [string] metadata arbitrary user-defined data of this API key. optional, max 4096 bytes
124
- # @return [NgrokAPI::Models::ApiKey] result from update request
125
- #
126
- # https://ngrok.com/docs/api#api-api-keys-update
127
- def update!(id: nil, description: nil, metadata: nil)
128
- data = build_data(description: description, metadata: metadata)
129
- result = @client.patch("#{PATH}/#{id}", danger: true, data: data)
130
- NgrokAPI::Models::ApiKey.new(client: self, result: result)
131
- end
132
- # rubocop:enable LineLength
133
-
134
- private
135
-
136
- def build_data(description: nil, metadata: nil)
137
- data = {}
138
- data[:description] = description if description
139
- data[:metadata] = metadata if metadata
140
- data
141
- end
142
- end
143
- end
144
- end
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # API Keys are used to authenticate to the [ngrok
7
+ # API](https://ngrok.com/docs/api#authentication). You may use the API itself
8
+ # to provision and manage API Keys but you'll need to provision your first API
9
+ # key from the [API Keys page](https://dashboard.ngrok.com/api/keys) on your
10
+ # ngrok.com dashboard.
11
+ #
12
+ # https://ngrok.com/docs/api#api-api-keys
13
+ class APIKeysClient
14
+ # The API path for the requests
15
+ PATH = '/api_keys'
16
+ # The List Property from the resulting API for list calls
17
+ LIST_PROPERTY = 'keys'
18
+
19
+ attr_reader :client
20
+
21
+ def initialize(client:)
22
+ @client = client
23
+ end
24
+
25
+ ##
26
+ # Create a new API key. The generated API key can be used to authenticate to the
27
+ # ngrok API.
28
+ #
29
+ # @param [string] description human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
30
+ # @param [string] metadata arbitrary user-defined data of this API key. optional, max 4096 bytes
31
+ # @return [NgrokAPI::Models::APIKey] result from the API request
32
+ #
33
+ # https://ngrok.com/docs/api#api-api-keys-create
34
+ def create(description: "", metadata: "")
35
+ path = '/api_keys'
36
+ replacements = {
37
+ }
38
+ data = {}
39
+ data[:description] = description if description
40
+ data[:metadata] = metadata if metadata
41
+ result = @client.post(path % replacements, data: data)
42
+ NgrokAPI::Models::APIKey.new(client: self, result: result)
43
+ end
44
+
45
+ ##
46
+ # Delete an API key by ID
47
+ #
48
+ # @param [string] id a resource identifier
49
+ # @return [NgrokAPI::Models::Empty] result from the API request
50
+ #
51
+ # https://ngrok.com/docs/api#api-api-keys-delete
52
+ def delete(id: "")
53
+ path = '/api_keys/%{id}'
54
+ replacements = {
55
+ id: id,
56
+ }
57
+ @client.delete(path % replacements)
58
+ end
59
+
60
+ ##
61
+ # Delete an API key by ID
62
+ # Throws an exception if API error.
63
+ #
64
+ # @param [string] id a resource identifier
65
+ # @return [NgrokAPI::Models::Empty] result from the API request
66
+ #
67
+ # https://ngrok.com/docs/api#api-api-keys-delete
68
+ def delete!(id: "")
69
+ path = '/api_keys/%{id}'
70
+ replacements = {
71
+ id: id,
72
+ }
73
+ @client.delete(path % replacements, danger: true)
74
+ end
75
+
76
+ ##
77
+ # Get the details of an API key by ID.
78
+ #
79
+ # @param [string] id a resource identifier
80
+ # @return [NgrokAPI::Models::APIKey] result from the API request
81
+ #
82
+ # https://ngrok.com/docs/api#api-api-keys-get
83
+ def get(id: "")
84
+ path = '/api_keys/%{id}'
85
+ replacements = {
86
+ id: id,
87
+ }
88
+ data = {}
89
+ result = @client.get(path % replacements, data: data)
90
+ NgrokAPI::Models::APIKey.new(client: self, result: result)
91
+ end
92
+
93
+ ##
94
+ # Get the details of an API key by ID.
95
+ # Throws an exception if API error.
96
+ #
97
+ # @param [string] id a resource identifier
98
+ # @return [NgrokAPI::Models::APIKey] result from the API request
99
+ #
100
+ # https://ngrok.com/docs/api#api-api-keys-get
101
+ def get!(id: "")
102
+ path = '/api_keys/%{id}'
103
+ replacements = {
104
+ id: id,
105
+ }
106
+ data = {}
107
+ result = @client.get(path % replacements, data: data, danger: true)
108
+ NgrokAPI::Models::APIKey.new(client: self, result: result)
109
+ end
110
+
111
+ ##
112
+ # List all API keys owned by this account
113
+ #
114
+ # @param [string] before_id
115
+ # @param [string] limit
116
+ # @param [string] url optional and mutually exclusive from before_id and limit
117
+ # @return [NgrokAPI::Models::Listable] result from the API request
118
+ #
119
+ # https://ngrok.com/docs/api#api-api-keys-list
120
+ def list(before_id: nil, limit: nil,
121
+ url: nil)
122
+ result = @client.list(
123
+ before_id: before_id,
124
+ limit: limit,
125
+ url: url,
126
+ path: PATH
127
+ )
128
+
129
+ NgrokAPI::Models::Listable.new(
130
+ client: self,
131
+ result: result,
132
+ list_property: LIST_PROPERTY,
133
+ klass: NgrokAPI::Models::APIKey
134
+ )
135
+ end
136
+
137
+ ##
138
+ # List all API keys owned by this account
139
+ # Throws an exception if API error.
140
+ #
141
+ # @param [string] before_id
142
+ # @param [string] limit
143
+ # @param [string] url optional and mutually exclusive from before_id and limit
144
+ # @return [NgrokAPI::Models::Listable] result from the API request
145
+ #
146
+ # https://ngrok.com/docs/api#api-api-keys-list
147
+ def list!(before_id: nil, limit: nil,
148
+ url: nil)
149
+ result = @client.list(
150
+ before_id: before_id,
151
+ limit: limit,
152
+ danger: true,
153
+ url: url,
154
+ path: PATH
155
+ )
156
+
157
+ NgrokAPI::Models::Listable.new(
158
+ client: self,
159
+ result: result,
160
+ list_property: LIST_PROPERTY,
161
+ klass: NgrokAPI::Models::APIKey,
162
+ danger: true
163
+ )
164
+ end
165
+
166
+ ##
167
+ # Update attributes of an API key by ID.
168
+ #
169
+ # @param [string] id
170
+ # @param [string] description human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
171
+ # @param [string] metadata arbitrary user-defined data of this API key. optional, max 4096 bytes
172
+ # @return [NgrokAPI::Models::APIKey] result from the API request
173
+ #
174
+ # https://ngrok.com/docs/api#api-api-keys-update
175
+ def update(id: "", description: nil, metadata: nil)
176
+ path = '/api_keys/%{id}'
177
+ replacements = {
178
+ id: id,
179
+ }
180
+ data = {}
181
+ data[:description] = description if description
182
+ data[:metadata] = metadata if metadata
183
+ result = @client.patch(path % replacements, data: data)
184
+ NgrokAPI::Models::APIKey.new(client: self, result: result)
185
+ end
186
+
187
+ ##
188
+ # Update attributes of an API key by ID.
189
+ # Throws an exception if API error.
190
+ #
191
+ # @param [string] id
192
+ # @param [string] description human-readable description of what uses the API key to authenticate. optional, max 255 bytes.
193
+ # @param [string] metadata arbitrary user-defined data of this API key. optional, max 4096 bytes
194
+ # @return [NgrokAPI::Models::APIKey] result from the API request
195
+ #
196
+ # https://ngrok.com/docs/api#api-api-keys-update
197
+ def update!(id: "", description: nil, metadata: nil)
198
+ path = '/api_keys/%{id}'
199
+ replacements = {
200
+ id: id,
201
+ }
202
+ data = {}
203
+ data[:description] = description if description
204
+ data[:metadata] = metadata if metadata
205
+ result = @client.patch(path % replacements, data: data, danger: true)
206
+ NgrokAPI::Models::APIKey.new(client: self, result: result)
207
+ end
208
+ end
209
+ end
210
+ end