ngrok-api 0.9.0 → 0.16.0

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