ngrok-api 0.9.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
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,221 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # SSH User Certificates are presented by SSH clients when connecting to an SSH
7
+ # server to authenticate their connection. The SSH server must trust the SSH
8
+ # Certificate Authority used to sign the certificate.
9
+ #
10
+ # https://ngrok.com/docs/api#api-ssh-user-certificates
11
+ class SSHUserCertificatesClient
12
+ # The API path for the requests
13
+ PATH = '/ssh_user_certificates'
14
+ # The List Property from the resulting API for list calls
15
+ LIST_PROPERTY = 'ssh_user_certificates'
16
+
17
+ attr_reader :client
18
+
19
+ def initialize(client:)
20
+ @client = client
21
+ end
22
+
23
+ ##
24
+ # Create a new SSH User Certificate
25
+ #
26
+ # @param [string] ssh_certificate_authority_id the ssh certificate authority that is used to sign this ssh user 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 user certificate. This is the list of usernames that the certificate holder may sign in as on a machine authorizinig the signing certificate authority. Dangerously, if no principals are specified, this certificate may be used to log in as any user.
29
+ # @param [Map<string, string>] critical_options A map of critical options included in the certificate. Only two critical options are currently defined by OpenSSH: ``force-command`` and ``source-address``. See `the OpenSSH certificate protocol spec` <https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys>`_ for additional details.
30
+ # @param [Map<string, string>] extensions A map of extensions included in the certificate. Extensions are additional metadata that can be interpreted by the SSH server for any purpose. These can be used to permit or deny the ability to open a terminal, do port forwarding, x11 forwarding, and more. If unspecified, the certificate will include limited permissions with the following extension map: ``{"permit-pty": "", "permit-user-rc": ""}`` OpenSSH understands a number of predefined extensions. See `the OpenSSH certificate protocol spec` <https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys>`_ for additional details.
31
+ # @param [datetime (RFC3339 string)] valid_after The time when the user certificate becomes valid, in RFC 3339 format. Defaults to the current time if unspecified.
32
+ # @param [datetime (RFC3339 string)] valid_until The time when this host certificate becomes invalid, in RFC 3339 format. If unspecified, a default value of 24 hours will be used. The OpenSSH certificates RFC calls this ``valid_before``.
33
+ # @param [string] description human-readable description of this SSH User Certificate. optional, max 255 bytes.
34
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH User Certificate. optional, max 4096 bytes.
35
+ # @return [NgrokAPI::Models::SSHUserCertificate] result from the API request
36
+ #
37
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-create
38
+ def create(ssh_certificate_authority_id:, public_key:, principals: [], critical_options: {}, extensions: {}, valid_after: "", valid_until: "", description: "", metadata: "")
39
+ path = '/ssh_user_certificates'
40
+ replacements = {
41
+ }
42
+ data = {}
43
+ data[:ssh_certificate_authority_id] = ssh_certificate_authority_id if ssh_certificate_authority_id
44
+ data[:public_key] = public_key if public_key
45
+ data[:principals] = principals if principals
46
+ data[:critical_options] = critical_options if critical_options
47
+ data[:extensions] = extensions if extensions
48
+ data[:valid_after] = valid_after if valid_after
49
+ data[:valid_until] = valid_until if valid_until
50
+ data[:description] = description if description
51
+ data[:metadata] = metadata if metadata
52
+ result = @client.post(path % replacements, data: data)
53
+ NgrokAPI::Models::SSHUserCertificate.new(client: self, result: result)
54
+ end
55
+
56
+ ##
57
+ # Delete an SSH User Certificate
58
+ #
59
+ # @param [string] id a resource identifier
60
+ # @return [NgrokAPI::Models::Empty] result from the API request
61
+ #
62
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-delete
63
+ def delete(id: "")
64
+ path = '/ssh_user_certificates/%{id}'
65
+ replacements = {
66
+ id: id,
67
+ }
68
+ @client.delete(path % replacements)
69
+ end
70
+
71
+ ##
72
+ # Delete an SSH User Certificate
73
+ # Throws an exception if API error.
74
+ #
75
+ # @param [string] id a resource identifier
76
+ # @return [NgrokAPI::Models::Empty] result from the API request
77
+ #
78
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-delete
79
+ def delete!(id: "")
80
+ path = '/ssh_user_certificates/%{id}'
81
+ replacements = {
82
+ id: id,
83
+ }
84
+ @client.delete(path % replacements, danger: true)
85
+ end
86
+
87
+ ##
88
+ # Get detailed information about an SSH User Certficate
89
+ #
90
+ # @param [string] id a resource identifier
91
+ # @return [NgrokAPI::Models::SSHUserCertificate] result from the API request
92
+ #
93
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-get
94
+ def get(id: "")
95
+ path = '/ssh_user_certificates/%{id}'
96
+ replacements = {
97
+ id: id,
98
+ }
99
+ data = {}
100
+ result = @client.get(path % replacements, data: data)
101
+ NgrokAPI::Models::SSHUserCertificate.new(client: self, result: result)
102
+ end
103
+
104
+ ##
105
+ # Get detailed information about an SSH User Certficate
106
+ # Throws an exception if API error.
107
+ #
108
+ # @param [string] id a resource identifier
109
+ # @return [NgrokAPI::Models::SSHUserCertificate] result from the API request
110
+ #
111
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-get
112
+ def get!(id: "")
113
+ path = '/ssh_user_certificates/%{id}'
114
+ replacements = {
115
+ id: id,
116
+ }
117
+ data = {}
118
+ result = @client.get(path % replacements, data: data, danger: true)
119
+ NgrokAPI::Models::SSHUserCertificate.new(client: self, result: result)
120
+ end
121
+
122
+ ##
123
+ # List all SSH User Certificates issued on this account
124
+ #
125
+ # @param [string] before_id
126
+ # @param [string] limit
127
+ # @param [string] url optional and mutually exclusive from before_id and limit
128
+ # @return [NgrokAPI::Models::Listable] result from the API request
129
+ #
130
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-list
131
+ def list(before_id: nil, limit: nil,
132
+ url: nil)
133
+ result = @client.list(
134
+ before_id: before_id,
135
+ limit: limit,
136
+ url: url,
137
+ path: PATH
138
+ )
139
+
140
+ NgrokAPI::Models::Listable.new(
141
+ client: self,
142
+ result: result,
143
+ list_property: LIST_PROPERTY,
144
+ klass: NgrokAPI::Models::SSHUserCertificate
145
+ )
146
+ end
147
+
148
+ ##
149
+ # List all SSH User Certificates issued on this account
150
+ # Throws an exception if API error.
151
+ #
152
+ # @param [string] before_id
153
+ # @param [string] limit
154
+ # @param [string] url optional and mutually exclusive from before_id and limit
155
+ # @return [NgrokAPI::Models::Listable] result from the API request
156
+ #
157
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-list
158
+ def list!(before_id: nil, limit: nil,
159
+ url: nil)
160
+ result = @client.list(
161
+ before_id: before_id,
162
+ limit: limit,
163
+ danger: true,
164
+ url: url,
165
+ path: PATH
166
+ )
167
+
168
+ NgrokAPI::Models::Listable.new(
169
+ client: self,
170
+ result: result,
171
+ list_property: LIST_PROPERTY,
172
+ klass: NgrokAPI::Models::SSHUserCertificate,
173
+ danger: true
174
+ )
175
+ end
176
+
177
+ ##
178
+ # Update an SSH User Certificate
179
+ #
180
+ # @param [string] id
181
+ # @param [string] description human-readable description of this SSH User Certificate. optional, max 255 bytes.
182
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH User Certificate. optional, max 4096 bytes.
183
+ # @return [NgrokAPI::Models::SSHUserCertificate] result from the API request
184
+ #
185
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-update
186
+ def update(id: "", description: nil, metadata: nil)
187
+ path = '/ssh_user_certificates/%{id}'
188
+ replacements = {
189
+ id: id,
190
+ }
191
+ data = {}
192
+ data[:description] = description if description
193
+ data[:metadata] = metadata if metadata
194
+ result = @client.patch(path % replacements, data: data)
195
+ NgrokAPI::Models::SSHUserCertificate.new(client: self, result: result)
196
+ end
197
+
198
+ ##
199
+ # Update an SSH User Certificate
200
+ # Throws an exception if API error.
201
+ #
202
+ # @param [string] id
203
+ # @param [string] description human-readable description of this SSH User Certificate. optional, max 255 bytes.
204
+ # @param [string] metadata arbitrary user-defined machine-readable data of this SSH User Certificate. optional, max 4096 bytes.
205
+ # @return [NgrokAPI::Models::SSHUserCertificate] result from the API request
206
+ #
207
+ # https://ngrok.com/docs/api#api-ssh-user-certificates-update
208
+ def update!(id: "", description: nil, metadata: nil)
209
+ path = '/ssh_user_certificates/%{id}'
210
+ replacements = {
211
+ id: id,
212
+ }
213
+ data = {}
214
+ data[:description] = description if description
215
+ data[:metadata] = metadata if metadata
216
+ result = @client.patch(path % replacements, data: data, danger: true)
217
+ NgrokAPI::Models::SSHUserCertificate.new(client: self, result: result)
218
+ end
219
+ end
220
+ end
221
+ end
@@ -1,161 +1,213 @@
1
- # frozen_string_literal: true
2
-
3
- module NgrokAPI
4
- module Services
5
- ##
6
- # A client for interacting with the tls_certificates API
7
- #
8
- # https://ngrok.com/docs/api#api-tls-certificates
9
- class TlsCertificatesClient
10
- # The List Property from the resulting API for list calls
11
- LIST_PROPERTY = 'tls_certificates'
12
- # The API path for tls certificates
13
- PATH = '/tls_certificates'
14
-
15
- attr_reader :client
16
-
17
- def initialize(client:)
18
- @client = client
19
- end
20
-
21
- # rubocop:disable LineLength
22
-
23
- ##
24
- # Upload a new TLS certificate.
25
- #
26
- # @param [string] description human-readable description of this TLS certificate. optional, max 255 bytes.
27
- # @param [string] metadata arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes.
28
- # @param [string] certificate_pem chain of PEM-encoded certificates, leaf first. See `Certificate Bundles` <https://ngrok.com/docs/api#tls-certificates-pem>`_.
29
- # @param [string] private_key_pem private key for the TLS certificate, PEM-encoded. See `Private Keys` <https://ngrok.com/docs/ngrok-link#tls-certificates-key>`_.
30
- # @return [NgrokAPI::Models::TlsCertificate] result from create request
31
- #
32
- # https://ngrok.com/docs/api#api-tls-certificates-create
33
- def create(
34
- certificate_pem: '',
35
- description: '',
36
- metadata: '',
37
- private_key_pem: ''
38
- )
39
- data = {
40
- certificate_pem: certificate_pem,
41
- description: description,
42
- metadata: metadata,
43
- private_key_pem: private_key_pem,
44
- }
45
- result = @client.post(PATH, data: data)
46
- NgrokAPI::Models::TlsCertificate.new(client: self, result: result)
47
- end
48
- # rubocop:enable LineLength
49
-
50
- ##
51
- # Delete a TLS certificate by ID.
52
- #
53
- # @param [string] id a resource identifier
54
- # @return [nil] result from delete request
55
- #
56
- # https://ngrok.com/docs/api#api-tls-certificates-delete
57
- def delete(id: nil)
58
- @client.delete("#{PATH}/#{id}")
59
- end
60
-
61
- ##
62
- # Delete a TLS certificate by ID. Throw an exception if 404.
63
- #
64
- # @param [string] id a resource identifier
65
- # @return [nil] result from delete request
66
- #
67
- # https://ngrok.com/docs/api#api-tls-certificates-delete
68
- def delete!(id: nil)
69
- @client.delete("#{PATH}/#{id}", danger: true)
70
- end
71
-
72
- ##
73
- # Get detailed information about a TLS certificate by ID.
74
- #
75
- # @param [string] id a resource identifier
76
- # @return [NgrokAPI::Models::TlsCertificate] result from get request
77
- #
78
- # https://ngrok.com/docs/api#api-tls-certificates-get
79
- def get(id: nil)
80
- result = @client.get("#{PATH}/#{id}")
81
- NgrokAPI::Models::TlsCertificate.new(client: self, result: result)
82
- end
83
-
84
- ##
85
- # Get detailed information about a TLS certificate by ID. Throw an exception if 404.
86
- #
87
- # @param [string] id a resource identifier
88
- # @return [NgrokAPI::Models::TlsCertificate] result from get request
89
- #
90
- # https://ngrok.com/docs/api#api-tls-certificates-get
91
- def get!(id: nil)
92
- result = @client.get("#{PATH}/#{id}", danger: true)
93
- NgrokAPI::Models::TlsCertificate.new(client: self, result: result)
94
- end
95
-
96
- ##
97
- # List all TLS certificates on this account.
98
- #
99
- # @param [string] before_id
100
- # @param [integer] limit
101
- # @param [string] url optional and mutually exclusive from before_id and limit
102
- # @return [NgrokAPI::Models::Listable] the result listable
103
- #
104
- # https://ngrok.com/docs/api#api-tls-certificates-list
105
- def list(before_id: nil, limit: nil, url: nil)
106
- result = @client.list(before_id: before_id, limit: limit, url: url, path: PATH)
107
- NgrokAPI::Models::Listable.new(
108
- client: self,
109
- result: result,
110
- list_property: LIST_PROPERTY,
111
- klass: NgrokAPI::Models::TlsCertificate
112
- )
113
- end
114
-
115
- # rubocop:disable LineLength
116
-
117
- ##
118
- # Update attributes of a TLS Certificate by ID.
119
- #
120
- # @param [string] id
121
- # @param [string] description human-readable description of this TLS certificate. optional, max 255 bytes.
122
- # @param [string] metadata arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes.
123
- # @return [NgrokAPI::Models::TlsCertificate] result from update request
124
- #
125
- # https://ngrok.com/docs/api#api-tls-certificates-update
126
- def update(
127
- id: nil,
128
- description: nil,
129
- metadata: nil
130
- )
131
- data = {}
132
- data[:description] = description if description
133
- data[:metadata] = metadata if metadata
134
- result = @client.patch("#{PATH}/#{id}", data: data)
135
- NgrokAPI::Models::TlsCertificate.new(client: self, result: result)
136
- end
137
-
138
- ##
139
- # Update attributes of a TLS Certificate by ID. Throw an exception if 404.
140
- #
141
- # @param [string] id
142
- # @param [string] description human-readable description of this TLS certificate. optional, max 255 bytes.
143
- # @param [string] metadata arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes.
144
- # @return [NgrokAPI::Models::TlsCertificate] result from update request
145
- #
146
- # https://ngrok.com/docs/api#api-tls-certificates-update
147
- def update!(
148
- id: nil,
149
- description: nil,
150
- metadata: nil
151
- )
152
- data = {}
153
- data[:description] = description if description
154
- data[:metadata] = metadata if metadata
155
- result = @client.patch("#{PATH}/#{id}", danger: true, data: data)
156
- NgrokAPI::Models::TlsCertificate.new(client: self, result: result)
157
- end
158
- # rubocop:enable LineLength
159
- end
160
- end
161
- end
1
+ # frozen_string_literal: true
2
+
3
+ module NgrokAPI
4
+ module Services
5
+ ##
6
+ # TLS Certificates are pairs of x509 certificates and their matching private
7
+ # key that can be used to terminate TLS traffic. TLS certificates are unused
8
+ # until they are attached to a Domain. TLS Certificates may also be
9
+ # provisioned by ngrok automatically for domains on which you have enabled
10
+ # automated certificate provisioning.
11
+ #
12
+ # https://ngrok.com/docs/api#api-tls-certificates
13
+ class TLSCertificatesClient
14
+ # The API path for the requests
15
+ PATH = '/tls_certificates'
16
+ # The List Property from the resulting API for list calls
17
+ LIST_PROPERTY = 'tls_certificates'
18
+
19
+ attr_reader :client
20
+
21
+ def initialize(client:)
22
+ @client = client
23
+ end
24
+
25
+ ##
26
+ # Upload a new TLS certificate
27
+ #
28
+ # @param [string] description human-readable description of this TLS certificate. optional, max 255 bytes.
29
+ # @param [string] metadata arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes.
30
+ # @param [string] certificate_pem chain of PEM-encoded certificates, leaf first. See `Certificate Bundles` <https://ngrok.com/docs/api#tls-certificates-pem>`_.
31
+ # @param [string] private_key_pem private key for the TLS certificate, PEM-encoded. See `Private Keys` <https://ngrok.com/docs/ngrok-link#tls-certificates-key>`_.
32
+ # @return [NgrokAPI::Models::TLSCertificate] result from the API request
33
+ #
34
+ # https://ngrok.com/docs/api#api-tls-certificates-create
35
+ def create(description: "", metadata: "", certificate_pem:, private_key_pem:)
36
+ path = '/tls_certificates'
37
+ replacements = {
38
+ }
39
+ data = {}
40
+ data[:description] = description if description
41
+ data[:metadata] = metadata if metadata
42
+ data[:certificate_pem] = certificate_pem if certificate_pem
43
+ data[:private_key_pem] = private_key_pem if private_key_pem
44
+ result = @client.post(path % replacements, data: data)
45
+ NgrokAPI::Models::TLSCertificate.new(client: self, result: result)
46
+ end
47
+
48
+ ##
49
+ # Delete a TLS certificate
50
+ #
51
+ # @param [string] id a resource identifier
52
+ # @return [NgrokAPI::Models::Empty] result from the API request
53
+ #
54
+ # https://ngrok.com/docs/api#api-tls-certificates-delete
55
+ def delete(id: "")
56
+ path = '/tls_certificates/%{id}'
57
+ replacements = {
58
+ id: id,
59
+ }
60
+ @client.delete(path % replacements)
61
+ end
62
+
63
+ ##
64
+ # Delete a TLS certificate
65
+ # Throws an exception if API error.
66
+ #
67
+ # @param [string] id a resource identifier
68
+ # @return [NgrokAPI::Models::Empty] result from the API request
69
+ #
70
+ # https://ngrok.com/docs/api#api-tls-certificates-delete
71
+ def delete!(id: "")
72
+ path = '/tls_certificates/%{id}'
73
+ replacements = {
74
+ id: id,
75
+ }
76
+ @client.delete(path % replacements, danger: true)
77
+ end
78
+
79
+ ##
80
+ # Get detailed information about a TLS certificate
81
+ #
82
+ # @param [string] id a resource identifier
83
+ # @return [NgrokAPI::Models::TLSCertificate] result from the API request
84
+ #
85
+ # https://ngrok.com/docs/api#api-tls-certificates-get
86
+ def get(id: "")
87
+ path = '/tls_certificates/%{id}'
88
+ replacements = {
89
+ id: id,
90
+ }
91
+ data = {}
92
+ result = @client.get(path % replacements, data: data)
93
+ NgrokAPI::Models::TLSCertificate.new(client: self, result: result)
94
+ end
95
+
96
+ ##
97
+ # Get detailed information about a TLS certificate
98
+ # Throws an exception if API error.
99
+ #
100
+ # @param [string] id a resource identifier
101
+ # @return [NgrokAPI::Models::TLSCertificate] result from the API request
102
+ #
103
+ # https://ngrok.com/docs/api#api-tls-certificates-get
104
+ def get!(id: "")
105
+ path = '/tls_certificates/%{id}'
106
+ replacements = {
107
+ id: id,
108
+ }
109
+ data = {}
110
+ result = @client.get(path % replacements, data: data, danger: true)
111
+ NgrokAPI::Models::TLSCertificate.new(client: self, result: result)
112
+ end
113
+
114
+ ##
115
+ # List all TLS certificates on this account
116
+ #
117
+ # @param [string] before_id
118
+ # @param [string] limit
119
+ # @param [string] url optional and mutually exclusive from before_id and limit
120
+ # @return [NgrokAPI::Models::Listable] result from the API request
121
+ #
122
+ # https://ngrok.com/docs/api#api-tls-certificates-list
123
+ def list(before_id: nil, limit: nil,
124
+ url: nil)
125
+ result = @client.list(
126
+ before_id: before_id,
127
+ limit: limit,
128
+ url: url,
129
+ path: PATH
130
+ )
131
+
132
+ NgrokAPI::Models::Listable.new(
133
+ client: self,
134
+ result: result,
135
+ list_property: LIST_PROPERTY,
136
+ klass: NgrokAPI::Models::TLSCertificate
137
+ )
138
+ end
139
+
140
+ ##
141
+ # List all TLS certificates on this account
142
+ # Throws an exception if API error.
143
+ #
144
+ # @param [string] before_id
145
+ # @param [string] limit
146
+ # @param [string] url optional and mutually exclusive from before_id and limit
147
+ # @return [NgrokAPI::Models::Listable] result from the API request
148
+ #
149
+ # https://ngrok.com/docs/api#api-tls-certificates-list
150
+ def list!(before_id: nil, limit: nil,
151
+ url: nil)
152
+ result = @client.list(
153
+ before_id: before_id,
154
+ limit: limit,
155
+ danger: true,
156
+ url: url,
157
+ path: PATH
158
+ )
159
+
160
+ NgrokAPI::Models::Listable.new(
161
+ client: self,
162
+ result: result,
163
+ list_property: LIST_PROPERTY,
164
+ klass: NgrokAPI::Models::TLSCertificate,
165
+ danger: true
166
+ )
167
+ end
168
+
169
+ ##
170
+ # Update attributes of a TLS Certificate by ID
171
+ #
172
+ # @param [string] id
173
+ # @param [string] description human-readable description of this TLS certificate. optional, max 255 bytes.
174
+ # @param [string] metadata arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes.
175
+ # @return [NgrokAPI::Models::TLSCertificate] result from the API request
176
+ #
177
+ # https://ngrok.com/docs/api#api-tls-certificates-update
178
+ def update(id: "", description: nil, metadata: nil)
179
+ path = '/tls_certificates/%{id}'
180
+ replacements = {
181
+ id: id,
182
+ }
183
+ data = {}
184
+ data[:description] = description if description
185
+ data[:metadata] = metadata if metadata
186
+ result = @client.patch(path % replacements, data: data)
187
+ NgrokAPI::Models::TLSCertificate.new(client: self, result: result)
188
+ end
189
+
190
+ ##
191
+ # Update attributes of a TLS Certificate by ID
192
+ # Throws an exception if API error.
193
+ #
194
+ # @param [string] id
195
+ # @param [string] description human-readable description of this TLS certificate. optional, max 255 bytes.
196
+ # @param [string] metadata arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes.
197
+ # @return [NgrokAPI::Models::TLSCertificate] result from the API request
198
+ #
199
+ # https://ngrok.com/docs/api#api-tls-certificates-update
200
+ def update!(id: "", description: nil, metadata: nil)
201
+ path = '/tls_certificates/%{id}'
202
+ replacements = {
203
+ id: id,
204
+ }
205
+ data = {}
206
+ data[:description] = description if description
207
+ data[:metadata] = metadata if metadata
208
+ result = @client.patch(path % replacements, data: data, danger: true)
209
+ NgrokAPI::Models::TLSCertificate.new(client: self, result: result)
210
+ end
211
+ end
212
+ end
213
+ end