ngrok-api 0.9.0 → 0.16.0

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