ngrok-api 0.9.0 → 0.12.0

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