ngrok-api 0.9.0 → 0.12.0

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