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,212 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # An SSH Certificate Authority is a pair of an SSH Certificate and its private
7
+ # key that can be used to sign other SSH host and user certificates.
8
+ #
9
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities
10
+ class SSHCertificateAuthoritiesClient
11
+ # The API path for the requests
12
+ PATH = '/ssh_certificate_authorities'
13
+ # The List Property from the resulting API for list calls
14
+ LIST_PROPERTY = 'ssh_certificate_authorities'
15
+
16
+ attr_reader :client
17
+
18
+ def initialize(client:)
19
+ @client = client
20
+ end
21
+
22
+ ##
23
+ # Create a new SSH Certificate Authority
24
+ #
25
+ # @param [string] description human-readable description of this SSH Certificate Authority. optional, max 255 bytes.
26
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH Certificate Authority. optional, max 4096 bytes.
27
+ # @param [string] private_key_type the type of private key to generate. one of ``rsa``, ``ecdsa``, ``ed25519``
28
+ # @param [string] elliptic_curve the type of elliptic curve to use when creating an ECDSA key
29
+ # @param [int64] key_size the key size to use when creating an RSA key. one of ``2048`` or ``4096``
30
+ # @return [NgrokAPI::Models::SSHCertificateAuthority] result from the API request
31
+ #
32
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-create
33
+ def create(description: "", metadata: "", private_key_type: "", elliptic_curve: "", key_size: 0)
34
+ path = '/ssh_certificate_authorities'
35
+ replacements = {
36
+ }
37
+ data = {}
38
+ data[:description] = description if description
39
+ data[:metadata] = metadata if metadata
40
+ data[:private_key_type] = private_key_type if private_key_type
41
+ data[:elliptic_curve] = elliptic_curve if elliptic_curve
42
+ data[:key_size] = key_size if key_size
43
+ result = @client.post(path % replacements, data: data)
44
+ NgrokAPI::Models::SSHCertificateAuthority.new(client: self, result: result)
45
+ end
46
+
47
+ ##
48
+ # Delete an SSH Certificate Authority
49
+ #
50
+ # @param [string] id a resource identifier
51
+ # @return [NgrokAPI::Models::Empty] result from the API request
52
+ #
53
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-delete
54
+ def delete(id: "")
55
+ path = '/ssh_certificate_authorities/%{id}'
56
+ replacements = {
57
+ id: id,
58
+ }
59
+ @client.delete(path % replacements)
60
+ end
61
+
62
+ ##
63
+ # Delete an SSH Certificate Authority
64
+ # Throws an exception if API error.
65
+ #
66
+ # @param [string] id a resource identifier
67
+ # @return [NgrokAPI::Models::Empty] result from the API request
68
+ #
69
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-delete
70
+ def delete!(id: "")
71
+ path = '/ssh_certificate_authorities/%{id}'
72
+ replacements = {
73
+ id: id,
74
+ }
75
+ @client.delete(path % replacements, danger: true)
76
+ end
77
+
78
+ ##
79
+ # Get detailed information about an SSH Certficate Authority
80
+ #
81
+ # @param [string] id a resource identifier
82
+ # @return [NgrokAPI::Models::SSHCertificateAuthority] result from the API request
83
+ #
84
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-get
85
+ def get(id: "")
86
+ path = '/ssh_certificate_authorities/%{id}'
87
+ replacements = {
88
+ id: id,
89
+ }
90
+ data = {}
91
+ result = @client.get(path % replacements, data: data)
92
+ NgrokAPI::Models::SSHCertificateAuthority.new(client: self, result: result)
93
+ end
94
+
95
+ ##
96
+ # Get detailed information about an SSH Certficate Authority
97
+ # Throws an exception if API error.
98
+ #
99
+ # @param [string] id a resource identifier
100
+ # @return [NgrokAPI::Models::SSHCertificateAuthority] result from the API request
101
+ #
102
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-get
103
+ def get!(id: "")
104
+ path = '/ssh_certificate_authorities/%{id}'
105
+ replacements = {
106
+ id: id,
107
+ }
108
+ data = {}
109
+ result = @client.get(path % replacements, data: data, danger: true)
110
+ NgrokAPI::Models::SSHCertificateAuthority.new(client: self, result: result)
111
+ end
112
+
113
+ ##
114
+ # List all SSH Certificate Authorities on this account
115
+ #
116
+ # @param [string] before_id
117
+ # @param [string] limit
118
+ # @param [string] url optional and mutually exclusive from before_id and limit
119
+ # @return [NgrokAPI::Models::Listable] result from the API request
120
+ #
121
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-list
122
+ def list(before_id: nil, limit: nil,
123
+ url: nil)
124
+ result = @client.list(
125
+ before_id: before_id,
126
+ limit: limit,
127
+ url: url,
128
+ path: PATH
129
+ )
130
+
131
+ NgrokAPI::Models::Listable.new(
132
+ client: self,
133
+ result: result,
134
+ list_property: LIST_PROPERTY,
135
+ klass: NgrokAPI::Models::SSHCertificateAuthority
136
+ )
137
+ end
138
+
139
+ ##
140
+ # List all SSH Certificate Authorities on this account
141
+ # Throws an exception if API error.
142
+ #
143
+ # @param [string] before_id
144
+ # @param [string] limit
145
+ # @param [string] url optional and mutually exclusive from before_id and limit
146
+ # @return [NgrokAPI::Models::Listable] result from the API request
147
+ #
148
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-list
149
+ def list!(before_id: nil, limit: nil,
150
+ url: nil)
151
+ result = @client.list(
152
+ before_id: before_id,
153
+ limit: limit,
154
+ danger: true,
155
+ url: url,
156
+ path: PATH
157
+ )
158
+
159
+ NgrokAPI::Models::Listable.new(
160
+ client: self,
161
+ result: result,
162
+ list_property: LIST_PROPERTY,
163
+ klass: NgrokAPI::Models::SSHCertificateAuthority,
164
+ danger: true
165
+ )
166
+ end
167
+
168
+ ##
169
+ # Update an SSH Certificate Authority
170
+ #
171
+ # @param [string] id
172
+ # @param [string] description human-readable description of this SSH Certificate Authority. optional, max 255 bytes.
173
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH Certificate Authority. optional, max 4096 bytes.
174
+ # @return [NgrokAPI::Models::SSHCertificateAuthority] result from the API request
175
+ #
176
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-update
177
+ def update(id: "", description: nil, metadata: nil)
178
+ path = '/ssh_certificate_authorities/%{id}'
179
+ replacements = {
180
+ id: id,
181
+ }
182
+ data = {}
183
+ data[:description] = description if description
184
+ data[:metadata] = metadata if metadata
185
+ result = @client.patch(path % replacements, data: data)
186
+ NgrokAPI::Models::SSHCertificateAuthority.new(client: self, result: result)
187
+ end
188
+
189
+ ##
190
+ # Update an SSH Certificate Authority
191
+ # Throws an exception if API error.
192
+ #
193
+ # @param [string] id
194
+ # @param [string] description human-readable description of this SSH Certificate Authority. optional, max 255 bytes.
195
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH Certificate Authority. optional, max 4096 bytes.
196
+ # @return [NgrokAPI::Models::SSHCertificateAuthority] result from the API request
197
+ #
198
+ # https://ngrok.com/docs/api#api-ssh-certificate-authorities-update
199
+ def update!(id: "", description: nil, metadata: nil)
200
+ path = '/ssh_certificate_authorities/%{id}'
201
+ replacements = {
202
+ id: id,
203
+ }
204
+ data = {}
205
+ data[:description] = description if description
206
+ data[:metadata] = metadata if metadata
207
+ result = @client.patch(path % replacements, data: data, danger: true)
208
+ NgrokAPI::Models::SSHCertificateAuthority.new(client: self, result: result)
209
+ end
210
+ end
211
+ end
212
+ end
@@ -0,0 +1,215 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # SSH Credentials are SSH public keys that can be used to start SSH tunnels
7
+ # via the ngrok SSH tunnel gateway.
8
+ #
9
+ # https://ngrok.com/docs/api#api-ssh-credentials
10
+ class SSHCredentialsClient
11
+ # The API path for the requests
12
+ PATH = '/ssh_credentials'
13
+ # The List Property from the resulting API for list calls
14
+ LIST_PROPERTY = 'ssh_credentials'
15
+
16
+ attr_reader :client
17
+
18
+ def initialize(client:)
19
+ @client = client
20
+ end
21
+
22
+ ##
23
+ # Create a new ssh_credential from an uploaded public SSH key. This ssh credential
24
+ # can be used to start new tunnels via ngrok's SSH gateway.
25
+ #
26
+ # @param [string] description human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes.
27
+ # @param [string] metadata arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes.
28
+ # @param [List<string>] acl optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the ``bind`` rule. The ``bind`` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule ``bind:example.ngrok.io``. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of ``bind:*.example.com`` which will allow ``x.example.com``, ``y.example.com``, ``*.example.com``, etc. A rule of ``'*'`` is equivalent to no acl at all and will explicitly permit all actions.
29
+ # @param [string] public_key the PEM-encoded public key of the SSH keypair that will be used to authenticate
30
+ # @return [NgrokAPI::Models::SSHCredential] result from the API request
31
+ #
32
+ # https://ngrok.com/docs/api#api-ssh-credentials-create
33
+ def create(description: "", metadata: "", acl: [], public_key:)
34
+ path = '/ssh_credentials'
35
+ replacements = {
36
+ }
37
+ data = {}
38
+ data[:description] = description if description
39
+ data[:metadata] = metadata if metadata
40
+ data[:acl] = acl if acl
41
+ data[:public_key] = public_key if public_key
42
+ result = @client.post(path % replacements, data: data)
43
+ NgrokAPI::Models::SSHCredential.new(client: self, result: result)
44
+ end
45
+
46
+ ##
47
+ # Delete an ssh_credential by ID
48
+ #
49
+ # @param [string] id a resource identifier
50
+ # @return [NgrokAPI::Models::Empty] result from the API request
51
+ #
52
+ # https://ngrok.com/docs/api#api-ssh-credentials-delete
53
+ def delete(id: "")
54
+ path = '/ssh_credentials/%{id}'
55
+ replacements = {
56
+ id: id,
57
+ }
58
+ @client.delete(path % replacements)
59
+ end
60
+
61
+ ##
62
+ # Delete an ssh_credential by ID
63
+ # Throws an exception if API error.
64
+ #
65
+ # @param [string] id a resource identifier
66
+ # @return [NgrokAPI::Models::Empty] result from the API request
67
+ #
68
+ # https://ngrok.com/docs/api#api-ssh-credentials-delete
69
+ def delete!(id: "")
70
+ path = '/ssh_credentials/%{id}'
71
+ replacements = {
72
+ id: id,
73
+ }
74
+ @client.delete(path % replacements, danger: true)
75
+ end
76
+
77
+ ##
78
+ # Get detailed information about an ssh_credential
79
+ #
80
+ # @param [string] id a resource identifier
81
+ # @return [NgrokAPI::Models::SSHCredential] result from the API request
82
+ #
83
+ # https://ngrok.com/docs/api#api-ssh-credentials-get
84
+ def get(id: "")
85
+ path = '/ssh_credentials/%{id}'
86
+ replacements = {
87
+ id: id,
88
+ }
89
+ data = {}
90
+ result = @client.get(path % replacements, data: data)
91
+ NgrokAPI::Models::SSHCredential.new(client: self, result: result)
92
+ end
93
+
94
+ ##
95
+ # Get detailed information about an ssh_credential
96
+ # Throws an exception if API error.
97
+ #
98
+ # @param [string] id a resource identifier
99
+ # @return [NgrokAPI::Models::SSHCredential] result from the API request
100
+ #
101
+ # https://ngrok.com/docs/api#api-ssh-credentials-get
102
+ def get!(id: "")
103
+ path = '/ssh_credentials/%{id}'
104
+ replacements = {
105
+ id: id,
106
+ }
107
+ data = {}
108
+ result = @client.get(path % replacements, data: data, danger: true)
109
+ NgrokAPI::Models::SSHCredential.new(client: self, result: result)
110
+ end
111
+
112
+ ##
113
+ # List all ssh credentials on this account
114
+ #
115
+ # @param [string] before_id
116
+ # @param [string] limit
117
+ # @param [string] url optional and mutually exclusive from before_id and limit
118
+ # @return [NgrokAPI::Models::Listable] result from the API request
119
+ #
120
+ # https://ngrok.com/docs/api#api-ssh-credentials-list
121
+ def list(before_id: nil, limit: nil,
122
+ url: nil)
123
+ result = @client.list(
124
+ before_id: before_id,
125
+ limit: limit,
126
+ url: url,
127
+ path: PATH
128
+ )
129
+
130
+ NgrokAPI::Models::Listable.new(
131
+ client: self,
132
+ result: result,
133
+ list_property: LIST_PROPERTY,
134
+ klass: NgrokAPI::Models::SSHCredential
135
+ )
136
+ end
137
+
138
+ ##
139
+ # List all ssh credentials on this account
140
+ # Throws an exception if API error.
141
+ #
142
+ # @param [string] before_id
143
+ # @param [string] limit
144
+ # @param [string] url optional and mutually exclusive from before_id and limit
145
+ # @return [NgrokAPI::Models::Listable] result from the API request
146
+ #
147
+ # https://ngrok.com/docs/api#api-ssh-credentials-list
148
+ def list!(before_id: nil, limit: nil,
149
+ url: nil)
150
+ result = @client.list(
151
+ before_id: before_id,
152
+ limit: limit,
153
+ danger: true,
154
+ url: url,
155
+ path: PATH
156
+ )
157
+
158
+ NgrokAPI::Models::Listable.new(
159
+ client: self,
160
+ result: result,
161
+ list_property: LIST_PROPERTY,
162
+ klass: NgrokAPI::Models::SSHCredential,
163
+ danger: true
164
+ )
165
+ end
166
+
167
+ ##
168
+ # Update attributes of an ssh_credential by ID
169
+ #
170
+ # @param [string] id
171
+ # @param [string] description human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes.
172
+ # @param [string] metadata arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes.
173
+ # @param [List<string>] acl optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the ``bind`` rule. The ``bind`` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule ``bind:example.ngrok.io``. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of ``bind:*.example.com`` which will allow ``x.example.com``, ``y.example.com``, ``*.example.com``, etc. A rule of ``'*'`` is equivalent to no acl at all and will explicitly permit all actions.
174
+ # @return [NgrokAPI::Models::SSHCredential] result from the API request
175
+ #
176
+ # https://ngrok.com/docs/api#api-ssh-credentials-update
177
+ def update(id: "", description: nil, metadata: nil, acl: nil)
178
+ path = '/ssh_credentials/%{id}'
179
+ replacements = {
180
+ id: id,
181
+ }
182
+ data = {}
183
+ data[:description] = description if description
184
+ data[:metadata] = metadata if metadata
185
+ data[:acl] = acl if acl
186
+ result = @client.patch(path % replacements, data: data)
187
+ NgrokAPI::Models::SSHCredential.new(client: self, result: result)
188
+ end
189
+
190
+ ##
191
+ # Update attributes of an ssh_credential by ID
192
+ # Throws an exception if API error.
193
+ #
194
+ # @param [string] id
195
+ # @param [string] description human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes.
196
+ # @param [string] metadata arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes.
197
+ # @param [List<string>] acl optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the ``bind`` rule. The ``bind`` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule ``bind:example.ngrok.io``. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of ``bind:*.example.com`` which will allow ``x.example.com``, ``y.example.com``, ``*.example.com``, etc. A rule of ``'*'`` is equivalent to no acl at all and will explicitly permit all actions.
198
+ # @return [NgrokAPI::Models::SSHCredential] result from the API request
199
+ #
200
+ # https://ngrok.com/docs/api#api-ssh-credentials-update
201
+ def update!(id: "", description: nil, metadata: nil, acl: nil)
202
+ path = '/ssh_credentials/%{id}'
203
+ replacements = {
204
+ id: id,
205
+ }
206
+ data = {}
207
+ data[:description] = description if description
208
+ data[:metadata] = metadata if metadata
209
+ data[:acl] = acl if acl
210
+ result = @client.patch(path % replacements, data: data, danger: true)
211
+ NgrokAPI::Models::SSHCredential.new(client: self, result: result)
212
+ end
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,217 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # SSH Host Certificates along with the corresponding private key allows an SSH
7
+ # server to assert its authenticity to connecting SSH clients who trust the
8
+ # SSH Certificate Authority that was used to sign the certificate.
9
+ #
10
+ # https://ngrok.com/docs/api#api-ssh-host-certificates
11
+ class SSHHostCertificatesClient
12
+ # The API path for the requests
13
+ PATH = '/ssh_host_certificates'
14
+ # The List Property from the resulting API for list calls
15
+ LIST_PROPERTY = 'ssh_host_certificates'
16
+
17
+ attr_reader :client
18
+
19
+ def initialize(client:)
20
+ @client = client
21
+ end
22
+
23
+ ##
24
+ # Create a new SSH Host Certificate
25
+ #
26
+ # @param [string] ssh_certificate_authority_id the ssh certificate authority that is used to sign this ssh host certificate
27
+ # @param [string] public_key a public key in OpenSSH Authorized Keys format that this certificate signs
28
+ # @param [List<string>] principals the list of principals included in the ssh host certificate. This is the list of hostnames and/or IP addresses that are authorized to serve SSH traffic with this certificate. Dangerously, if no principals are specified, this certificate is considered valid for all hosts.
29
+ # @param [datetime (RFC3339 string)] valid_after The time when the host certificate becomes valid, in RFC 3339 format. Defaults to the current time if unspecified.
30
+ # @param [datetime (RFC3339 string)] valid_until The time when this host certificate becomes invalid, in RFC 3339 format. If unspecified, a default value of one year in the future will be used. The OpenSSH certificates RFC calls this ``valid_before``.
31
+ # @param [string] description human-readable description of this SSH Host Certificate. optional, max 255 bytes.
32
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH Host Certificate. optional, max 4096 bytes.
33
+ # @return [NgrokAPI::Models::SSHHostCertificate] result from the API request
34
+ #
35
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-create
36
+ def create(ssh_certificate_authority_id:, public_key:, principals: [], valid_after: "", valid_until: "", description: "", metadata: "")
37
+ path = '/ssh_host_certificates'
38
+ replacements = {
39
+ }
40
+ data = {}
41
+ data[:ssh_certificate_authority_id] = ssh_certificate_authority_id if ssh_certificate_authority_id
42
+ data[:public_key] = public_key if public_key
43
+ data[:principals] = principals if principals
44
+ data[:valid_after] = valid_after if valid_after
45
+ data[:valid_until] = valid_until if valid_until
46
+ data[:description] = description if description
47
+ data[:metadata] = metadata if metadata
48
+ result = @client.post(path % replacements, data: data)
49
+ NgrokAPI::Models::SSHHostCertificate.new(client: self, result: result)
50
+ end
51
+
52
+ ##
53
+ # Delete an SSH Host Certificate
54
+ #
55
+ # @param [string] id a resource identifier
56
+ # @return [NgrokAPI::Models::Empty] result from the API request
57
+ #
58
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-delete
59
+ def delete(id: "")
60
+ path = '/ssh_host_certificates/%{id}'
61
+ replacements = {
62
+ id: id,
63
+ }
64
+ @client.delete(path % replacements)
65
+ end
66
+
67
+ ##
68
+ # Delete an SSH Host Certificate
69
+ # Throws an exception if API error.
70
+ #
71
+ # @param [string] id a resource identifier
72
+ # @return [NgrokAPI::Models::Empty] result from the API request
73
+ #
74
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-delete
75
+ def delete!(id: "")
76
+ path = '/ssh_host_certificates/%{id}'
77
+ replacements = {
78
+ id: id,
79
+ }
80
+ @client.delete(path % replacements, danger: true)
81
+ end
82
+
83
+ ##
84
+ # Get detailed information about an SSH Host Certficate
85
+ #
86
+ # @param [string] id a resource identifier
87
+ # @return [NgrokAPI::Models::SSHHostCertificate] result from the API request
88
+ #
89
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-get
90
+ def get(id: "")
91
+ path = '/ssh_host_certificates/%{id}'
92
+ replacements = {
93
+ id: id,
94
+ }
95
+ data = {}
96
+ result = @client.get(path % replacements, data: data)
97
+ NgrokAPI::Models::SSHHostCertificate.new(client: self, result: result)
98
+ end
99
+
100
+ ##
101
+ # Get detailed information about an SSH Host Certficate
102
+ # Throws an exception if API error.
103
+ #
104
+ # @param [string] id a resource identifier
105
+ # @return [NgrokAPI::Models::SSHHostCertificate] result from the API request
106
+ #
107
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-get
108
+ def get!(id: "")
109
+ path = '/ssh_host_certificates/%{id}'
110
+ replacements = {
111
+ id: id,
112
+ }
113
+ data = {}
114
+ result = @client.get(path % replacements, data: data, danger: true)
115
+ NgrokAPI::Models::SSHHostCertificate.new(client: self, result: result)
116
+ end
117
+
118
+ ##
119
+ # List all SSH Host Certificates issued on this account
120
+ #
121
+ # @param [string] before_id
122
+ # @param [string] limit
123
+ # @param [string] url optional and mutually exclusive from before_id and limit
124
+ # @return [NgrokAPI::Models::Listable] result from the API request
125
+ #
126
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-list
127
+ def list(before_id: nil, limit: nil,
128
+ url: nil)
129
+ result = @client.list(
130
+ before_id: before_id,
131
+ limit: limit,
132
+ url: url,
133
+ path: PATH
134
+ )
135
+
136
+ NgrokAPI::Models::Listable.new(
137
+ client: self,
138
+ result: result,
139
+ list_property: LIST_PROPERTY,
140
+ klass: NgrokAPI::Models::SSHHostCertificate
141
+ )
142
+ end
143
+
144
+ ##
145
+ # List all SSH Host Certificates issued on this account
146
+ # Throws an exception if API error.
147
+ #
148
+ # @param [string] before_id
149
+ # @param [string] limit
150
+ # @param [string] url optional and mutually exclusive from before_id and limit
151
+ # @return [NgrokAPI::Models::Listable] result from the API request
152
+ #
153
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-list
154
+ def list!(before_id: nil, limit: nil,
155
+ url: nil)
156
+ result = @client.list(
157
+ before_id: before_id,
158
+ limit: limit,
159
+ danger: true,
160
+ url: url,
161
+ path: PATH
162
+ )
163
+
164
+ NgrokAPI::Models::Listable.new(
165
+ client: self,
166
+ result: result,
167
+ list_property: LIST_PROPERTY,
168
+ klass: NgrokAPI::Models::SSHHostCertificate,
169
+ danger: true
170
+ )
171
+ end
172
+
173
+ ##
174
+ # Update an SSH Host Certificate
175
+ #
176
+ # @param [string] id
177
+ # @param [string] description human-readable description of this SSH Host Certificate. optional, max 255 bytes.
178
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH Host Certificate. optional, max 4096 bytes.
179
+ # @return [NgrokAPI::Models::SSHHostCertificate] result from the API request
180
+ #
181
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-update
182
+ def update(id: "", description: nil, metadata: nil)
183
+ path = '/ssh_host_certificates/%{id}'
184
+ replacements = {
185
+ id: id,
186
+ }
187
+ data = {}
188
+ data[:description] = description if description
189
+ data[:metadata] = metadata if metadata
190
+ result = @client.patch(path % replacements, data: data)
191
+ NgrokAPI::Models::SSHHostCertificate.new(client: self, result: result)
192
+ end
193
+
194
+ ##
195
+ # Update an SSH Host Certificate
196
+ # Throws an exception if API error.
197
+ #
198
+ # @param [string] id
199
+ # @param [string] description human-readable description of this SSH Host Certificate. optional, max 255 bytes.
200
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH Host Certificate. optional, max 4096 bytes.
201
+ # @return [NgrokAPI::Models::SSHHostCertificate] result from the API request
202
+ #
203
+ # https://ngrok.com/docs/api#api-ssh-host-certificates-update
204
+ def update!(id: "", description: nil, metadata: nil)
205
+ path = '/ssh_host_certificates/%{id}'
206
+ replacements = {
207
+ id: id,
208
+ }
209
+ data = {}
210
+ data[:description] = description if description
211
+ data[:metadata] = metadata if metadata
212
+ result = @client.patch(path % replacements, data: data, danger: true)
213
+ NgrokAPI::Models::SSHHostCertificate.new(client: self, result: result)
214
+ end
215
+ end
216
+ end
217
+ end