ngrok-api 0.9.0 → 0.12.0

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