@ngrok/ngrok-api 0.9.0 → 0.10.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 (271) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.js +2 -0
  3. package/.prettierrc.js +2 -0
  4. package/CHANGELOG.md +12 -3
  5. package/CODE_OF_CONDUCT.md +45 -0
  6. package/README.md +9 -3
  7. package/docs/assets/js/search.js +1 -1
  8. package/docs/classes/client.Ngrok.html +54 -26
  9. package/docs/classes/services.APIKeys.html +20 -11
  10. package/docs/classes/services.AbuseReports.html +5 -5
  11. package/docs/classes/services.AgentIngresses.html +20 -11
  12. package/docs/classes/services.ApplicationSessions.html +288 -0
  13. package/docs/classes/services.ApplicationUsers.html +288 -0
  14. package/docs/classes/services.CertificateAuthorities.html +20 -11
  15. package/docs/classes/services.Credentials.html +21 -12
  16. package/docs/classes/services.EdgeRouteBackendModule.html +4 -4
  17. package/docs/classes/services.EdgeRouteCircuitBreakerModule.html +4 -4
  18. package/docs/classes/services.EdgeRouteCompressionModule.html +4 -4
  19. package/docs/classes/services.EdgeRouteIPRestrictionModule.html +4 -4
  20. package/docs/classes/services.EdgeRouteOAuthModule.html +4 -4
  21. package/docs/classes/services.EdgeRouteOIDCModule.html +4 -4
  22. package/docs/classes/services.EdgeRouteRequestHeadersModule.html +4 -4
  23. package/docs/classes/services.EdgeRouteResponseHeadersModule.html +4 -4
  24. package/docs/classes/services.EdgeRouteSAMLModule.html +4 -4
  25. package/docs/classes/services.EdgeRouteWebhookVerificationModule.html +4 -4
  26. package/docs/classes/services.EdgeRouteWebsocketTCPConverterModule.html +4 -4
  27. package/docs/classes/services.EdgesHTTPS.html +20 -11
  28. package/docs/classes/services.EdgesHTTPSRoutes.html +5 -5
  29. package/docs/classes/services.EdgesTCP.html +20 -11
  30. package/docs/classes/services.EdgesTLS.html +20 -11
  31. package/docs/classes/services.Endpoints.html +15 -6
  32. package/docs/classes/services.EventDestinations.html +21 -12
  33. package/docs/classes/services.EventSources.html +6 -6
  34. package/docs/classes/services.EventSubscriptions.html +20 -11
  35. package/docs/classes/services.FailoverBackends.html +20 -11
  36. package/docs/classes/services.HTTPResponseBackends.html +20 -11
  37. package/docs/classes/services.HTTPSEdgeMutualTLSModule.html +8 -8
  38. package/docs/classes/services.HTTPSEdgeTLSTerminationModule.html +8 -8
  39. package/docs/classes/services.IPPolicies.html +20 -11
  40. package/docs/classes/services.IPPolicyRules.html +20 -11
  41. package/docs/classes/services.IPRestrictions.html +20 -11
  42. package/docs/classes/services.ReservedAddrs.html +20 -11
  43. package/docs/classes/services.ReservedDomains.html +26 -17
  44. package/docs/classes/services.SSHCertificateAuthorities.html +20 -11
  45. package/docs/classes/services.SSHCredentials.html +20 -11
  46. package/docs/classes/services.SSHHostCertificates.html +20 -11
  47. package/docs/classes/services.SSHUserCertificates.html +20 -11
  48. package/docs/classes/services.TCPEdgeBackendModule.html +8 -8
  49. package/docs/classes/services.TCPEdgeIPRestrictionModule.html +8 -8
  50. package/docs/classes/services.TLSCertificates.html +20 -11
  51. package/docs/classes/services.TLSEdgeBackendModule.html +8 -8
  52. package/docs/classes/services.TLSEdgeIPRestrictionModule.html +8 -8
  53. package/docs/classes/services.TLSEdgeMutualTLSModule.html +8 -8
  54. package/docs/classes/services.TLSEdgeTLSTerminationModule.html +8 -8
  55. package/docs/classes/services.TunnelGroupBackends.html +20 -11
  56. package/docs/classes/services.TunnelSessions.html +22 -13
  57. package/docs/classes/services.Tunnels.html +15 -6
  58. package/docs/classes/services.WeightedBackends.html +20 -11
  59. package/docs/index.html +8 -3
  60. package/docs/interfaces/client.NgrokConfig.html +2 -2
  61. package/docs/interfaces/datatypes.APIKey.html +28 -9
  62. package/docs/interfaces/datatypes.APIKeyCreate.html +23 -4
  63. package/docs/interfaces/datatypes.APIKeyList.html +3 -3
  64. package/docs/interfaces/datatypes.APIKeyUpdate.html +3 -3
  65. package/docs/interfaces/datatypes.AWSAuth.html +2 -2
  66. package/docs/interfaces/datatypes.AWSCredentials.html +2 -2
  67. package/docs/interfaces/datatypes.AWSRole.html +1 -1
  68. package/docs/interfaces/datatypes.AbuseReport.html +9 -9
  69. package/docs/interfaces/datatypes.AbuseReportCreate.html +3 -3
  70. package/docs/interfaces/datatypes.AbuseReportHostname.html +2 -2
  71. package/docs/interfaces/datatypes.AgentIngress.html +49 -11
  72. package/docs/interfaces/datatypes.AgentIngressCertJob.html +224 -0
  73. package/docs/interfaces/datatypes.AgentIngressCertPolicy.html +186 -0
  74. package/docs/interfaces/datatypes.AgentIngressCertStatus.html +186 -0
  75. package/docs/interfaces/datatypes.AgentIngressCreate.html +24 -5
  76. package/docs/interfaces/datatypes.AgentIngressList.html +3 -3
  77. package/docs/interfaces/datatypes.AgentIngressUpdate.html +22 -3
  78. package/docs/interfaces/datatypes.ApplicationSession.html +357 -0
  79. package/docs/interfaces/datatypes.ApplicationSessionList.html +205 -0
  80. package/docs/interfaces/datatypes.ApplicationUser.html +338 -0
  81. package/docs/interfaces/datatypes.ApplicationUserList.html +205 -0
  82. package/docs/interfaces/datatypes.BrowserSession.html +205 -0
  83. package/docs/interfaces/datatypes.CertificateAuthority.html +16 -16
  84. package/docs/interfaces/datatypes.CertificateAuthorityCreate.html +5 -5
  85. package/docs/interfaces/datatypes.CertificateAuthorityList.html +3 -3
  86. package/docs/interfaces/datatypes.CertificateAuthorityUpdate.html +3 -3
  87. package/docs/interfaces/datatypes.Credential.html +30 -11
  88. package/docs/interfaces/datatypes.CredentialCreate.html +25 -6
  89. package/docs/interfaces/datatypes.CredentialList.html +3 -3
  90. package/docs/interfaces/datatypes.CredentialUpdate.html +5 -5
  91. package/docs/interfaces/datatypes.EdgeBackendReplace.html +2 -2
  92. package/docs/interfaces/datatypes.EdgeIPRestrictionReplace.html +2 -2
  93. package/docs/interfaces/datatypes.EdgeMutualTLSReplace.html +2 -2
  94. package/docs/interfaces/datatypes.EdgeRouteBackendReplace.html +3 -3
  95. package/docs/interfaces/datatypes.EdgeRouteCircuitBreakerReplace.html +3 -3
  96. package/docs/interfaces/datatypes.EdgeRouteCompressionReplace.html +3 -3
  97. package/docs/interfaces/datatypes.EdgeRouteIPRestrictionReplace.html +3 -3
  98. package/docs/interfaces/datatypes.EdgeRouteItem.html +2 -2
  99. package/docs/interfaces/datatypes.EdgeRouteOAuthReplace.html +3 -3
  100. package/docs/interfaces/datatypes.EdgeRouteOIDCReplace.html +3 -3
  101. package/docs/interfaces/datatypes.EdgeRouteRequestHeadersReplace.html +3 -3
  102. package/docs/interfaces/datatypes.EdgeRouteResponseHeadersReplace.html +3 -3
  103. package/docs/interfaces/datatypes.EdgeRouteSAMLReplace.html +3 -3
  104. package/docs/interfaces/datatypes.EdgeRouteWebhookVerificationReplace.html +3 -3
  105. package/docs/interfaces/datatypes.EdgeRouteWebsocketTCPConverterReplace.html +3 -3
  106. package/docs/interfaces/datatypes.EdgeTLSTerminationAtEdgeReplace.html +2 -2
  107. package/docs/interfaces/datatypes.EdgeTLSTerminationReplace.html +2 -2
  108. package/docs/interfaces/datatypes.Endpoint.html +19 -19
  109. package/docs/interfaces/datatypes.EndpointBackend.html +2 -2
  110. package/docs/interfaces/datatypes.EndpointBackendMutate.html +2 -2
  111. package/docs/interfaces/datatypes.EndpointCircuitBreaker.html +6 -6
  112. package/docs/interfaces/datatypes.EndpointCompression.html +1 -1
  113. package/docs/interfaces/datatypes.EndpointIPPolicy.html +7 -2
  114. package/docs/interfaces/datatypes.EndpointIPPolicyMutate.html +2 -2
  115. package/docs/interfaces/datatypes.EndpointList.html +3 -3
  116. package/docs/interfaces/datatypes.EndpointMutualTLS.html +2 -2
  117. package/docs/interfaces/datatypes.EndpointMutualTLSMutate.html +2 -2
  118. package/docs/interfaces/datatypes.EndpointOAuth.html +7 -7
  119. package/docs/interfaces/datatypes.EndpointOAuthAmazon.html +218 -0
  120. package/docs/interfaces/datatypes.EndpointOAuthFacebook.html +5 -5
  121. package/docs/interfaces/datatypes.EndpointOAuthGitHub.html +12 -12
  122. package/docs/interfaces/datatypes.EndpointOAuthGitLab.html +218 -0
  123. package/docs/interfaces/datatypes.EndpointOAuthGoogle.html +5 -5
  124. package/docs/interfaces/datatypes.EndpointOAuthLinkedIn.html +218 -0
  125. package/docs/interfaces/datatypes.EndpointOAuthMicrosoft.html +5 -5
  126. package/docs/interfaces/datatypes.EndpointOAuthProvider.html +80 -4
  127. package/docs/interfaces/datatypes.EndpointOAuthTwitch.html +218 -0
  128. package/docs/interfaces/datatypes.EndpointOIDC.html +9 -9
  129. package/docs/interfaces/datatypes.EndpointRequestHeaders.html +3 -3
  130. package/docs/interfaces/datatypes.EndpointResponseHeaders.html +3 -3
  131. package/docs/interfaces/datatypes.EndpointSAML.html +15 -15
  132. package/docs/interfaces/datatypes.EndpointSAMLMutate.html +10 -10
  133. package/docs/interfaces/datatypes.EndpointTLSTermination.html +3 -3
  134. package/docs/interfaces/datatypes.EndpointTLSTerminationAtEdge.html +2 -2
  135. package/docs/interfaces/datatypes.EndpointWebhookValidation.html +4 -4
  136. package/docs/interfaces/datatypes.EndpointWebsocketTCPConverter.html +1 -1
  137. package/docs/interfaces/datatypes.Error.html +4 -4
  138. package/docs/interfaces/datatypes.EventDestination.html +10 -10
  139. package/docs/interfaces/datatypes.EventDestinationCreate.html +6 -6
  140. package/docs/interfaces/datatypes.EventDestinationList.html +3 -3
  141. package/docs/interfaces/datatypes.EventDestinationUpdate.html +5 -5
  142. package/docs/interfaces/datatypes.EventSource.html +2 -2
  143. package/docs/interfaces/datatypes.EventSourceCreate.html +2 -2
  144. package/docs/interfaces/datatypes.EventSourceItem.html +2 -2
  145. package/docs/interfaces/datatypes.EventSourceList.html +2 -2
  146. package/docs/interfaces/datatypes.EventSourcePaging.html +1 -1
  147. package/docs/interfaces/datatypes.EventSourceReplace.html +1 -1
  148. package/docs/interfaces/datatypes.EventSourceUpdate.html +2 -2
  149. package/docs/interfaces/datatypes.EventSubscription.html +10 -10
  150. package/docs/interfaces/datatypes.EventSubscriptionCreate.html +6 -6
  151. package/docs/interfaces/datatypes.EventSubscriptionList.html +3 -3
  152. package/docs/interfaces/datatypes.EventSubscriptionUpdate.html +5 -5
  153. package/docs/interfaces/datatypes.EventTarget.html +22 -3
  154. package/docs/interfaces/datatypes.EventTargetCloudwatchLogs.html +2 -2
  155. package/docs/interfaces/datatypes.EventTargetDatadog.html +224 -0
  156. package/docs/interfaces/datatypes.EventTargetFirehose.html +2 -2
  157. package/docs/interfaces/datatypes.EventTargetKinesis.html +2 -2
  158. package/docs/interfaces/datatypes.FailoverBackend.html +9 -9
  159. package/docs/interfaces/datatypes.FailoverBackendCreate.html +5 -5
  160. package/docs/interfaces/datatypes.FailoverBackendList.html +3 -3
  161. package/docs/interfaces/datatypes.FailoverBackendUpdate.html +4 -4
  162. package/docs/interfaces/datatypes.HTTPResponseBackend.html +11 -11
  163. package/docs/interfaces/datatypes.HTTPResponseBackendCreate.html +7 -7
  164. package/docs/interfaces/datatypes.HTTPResponseBackendList.html +3 -3
  165. package/docs/interfaces/datatypes.HTTPResponseBackendUpdate.html +6 -6
  166. package/docs/interfaces/datatypes.HTTPSEdge.html +12 -12
  167. package/docs/interfaces/datatypes.HTTPSEdgeCreate.html +7 -7
  168. package/docs/interfaces/datatypes.HTTPSEdgeList.html +3 -3
  169. package/docs/interfaces/datatypes.HTTPSEdgeRoute.html +22 -22
  170. package/docs/interfaces/datatypes.HTTPSEdgeRouteCreate.html +18 -18
  171. package/docs/interfaces/datatypes.HTTPSEdgeRouteUpdate.html +19 -19
  172. package/docs/interfaces/datatypes.HTTPSEdgeUpdate.html +6 -6
  173. package/docs/interfaces/datatypes.IPPolicy.html +8 -8
  174. package/docs/interfaces/datatypes.IPPolicyCreate.html +4 -4
  175. package/docs/interfaces/datatypes.IPPolicyList.html +3 -3
  176. package/docs/interfaces/datatypes.IPPolicyRule.html +11 -11
  177. package/docs/interfaces/datatypes.IPPolicyRuleCreate.html +7 -7
  178. package/docs/interfaces/datatypes.IPPolicyRuleList.html +3 -3
  179. package/docs/interfaces/datatypes.IPPolicyRuleUpdate.html +4 -4
  180. package/docs/interfaces/datatypes.IPPolicyUpdate.html +3 -3
  181. package/docs/interfaces/datatypes.IPRestriction.html +11 -11
  182. package/docs/interfaces/datatypes.IPRestrictionCreate.html +7 -7
  183. package/docs/interfaces/datatypes.IPRestrictionList.html +3 -3
  184. package/docs/interfaces/datatypes.IPRestrictionUpdate.html +5 -5
  185. package/docs/interfaces/datatypes.IdentityProvider.html +186 -0
  186. package/docs/interfaces/datatypes.Item.html +1 -1
  187. package/docs/interfaces/datatypes.Location.html +224 -0
  188. package/docs/interfaces/datatypes.Paging.html +2 -2
  189. package/docs/interfaces/datatypes.Ref.html +2 -2
  190. package/docs/interfaces/datatypes.ReservedAddr.html +10 -10
  191. package/docs/interfaces/datatypes.ReservedAddrCreate.html +5 -5
  192. package/docs/interfaces/datatypes.ReservedAddrList.html +3 -3
  193. package/docs/interfaces/datatypes.ReservedAddrUpdate.html +3 -3
  194. package/docs/interfaces/datatypes.ReservedDomain.html +15 -15
  195. package/docs/interfaces/datatypes.ReservedDomainCertJob.html +6 -6
  196. package/docs/interfaces/datatypes.ReservedDomainCertPolicy.html +2 -2
  197. package/docs/interfaces/datatypes.ReservedDomainCertStatus.html +3 -3
  198. package/docs/interfaces/datatypes.ReservedDomainCreate.html +18 -18
  199. package/docs/interfaces/datatypes.ReservedDomainList.html +3 -3
  200. package/docs/interfaces/datatypes.ReservedDomainUpdate.html +5 -5
  201. package/docs/interfaces/datatypes.SSHCertificateAuthority.html +10 -10
  202. package/docs/interfaces/datatypes.SSHCertificateAuthorityCreate.html +7 -7
  203. package/docs/interfaces/datatypes.SSHCertificateAuthorityList.html +3 -3
  204. package/docs/interfaces/datatypes.SSHCertificateAuthorityUpdate.html +3 -3
  205. package/docs/interfaces/datatypes.SSHCredential.html +30 -11
  206. package/docs/interfaces/datatypes.SSHCredentialCreate.html +26 -7
  207. package/docs/interfaces/datatypes.SSHCredentialList.html +3 -3
  208. package/docs/interfaces/datatypes.SSHCredentialUpdate.html +5 -5
  209. package/docs/interfaces/datatypes.SSHHostCertificate.html +17 -17
  210. package/docs/interfaces/datatypes.SSHHostCertificateCreate.html +11 -11
  211. package/docs/interfaces/datatypes.SSHHostCertificateList.html +3 -3
  212. package/docs/interfaces/datatypes.SSHHostCertificateUpdate.html +3 -3
  213. package/docs/interfaces/datatypes.SSHUserCertificate.html +19 -19
  214. package/docs/interfaces/datatypes.SSHUserCertificateCreate.html +13 -13
  215. package/docs/interfaces/datatypes.SSHUserCertificateList.html +3 -3
  216. package/docs/interfaces/datatypes.SSHUserCertificateUpdate.html +3 -3
  217. package/docs/interfaces/datatypes.TCPEdge.html +11 -11
  218. package/docs/interfaces/datatypes.TCPEdgeCreate.html +7 -7
  219. package/docs/interfaces/datatypes.TCPEdgeList.html +3 -3
  220. package/docs/interfaces/datatypes.TCPEdgeUpdate.html +6 -6
  221. package/docs/interfaces/datatypes.TLSCertificate.html +28 -28
  222. package/docs/interfaces/datatypes.TLSCertificateCreate.html +8 -8
  223. package/docs/interfaces/datatypes.TLSCertificateList.html +3 -3
  224. package/docs/interfaces/datatypes.TLSCertificateSANs.html +2 -2
  225. package/docs/interfaces/datatypes.TLSCertificateUpdate.html +3 -3
  226. package/docs/interfaces/datatypes.TLSEdge.html +13 -13
  227. package/docs/interfaces/datatypes.TLSEdgeCreate.html +9 -9
  228. package/docs/interfaces/datatypes.TLSEdgeList.html +3 -3
  229. package/docs/interfaces/datatypes.TLSEdgeUpdate.html +8 -8
  230. package/docs/interfaces/datatypes.Tunnel.html +17 -17
  231. package/docs/interfaces/datatypes.TunnelGroupBackend.html +10 -10
  232. package/docs/interfaces/datatypes.TunnelGroupBackendCreate.html +5 -5
  233. package/docs/interfaces/datatypes.TunnelGroupBackendList.html +3 -3
  234. package/docs/interfaces/datatypes.TunnelGroupBackendUpdate.html +4 -4
  235. package/docs/interfaces/datatypes.TunnelList.html +3 -3
  236. package/docs/interfaces/datatypes.TunnelSession.html +12 -12
  237. package/docs/interfaces/datatypes.TunnelSessionList.html +3 -3
  238. package/docs/interfaces/datatypes.TunnelSessionsUpdate.html +1 -1
  239. package/docs/interfaces/datatypes.UserAgent.html +262 -0
  240. package/docs/interfaces/datatypes.WeightedBackend.html +9 -9
  241. package/docs/interfaces/datatypes.WeightedBackendCreate.html +5 -5
  242. package/docs/interfaces/datatypes.WeightedBackendList.html +3 -3
  243. package/docs/interfaces/datatypes.WeightedBackendUpdate.html +4 -4
  244. package/docs/modules/datatypes.html +64 -0
  245. package/docs/modules/services.html +8 -0
  246. package/jest.config.js +2 -0
  247. package/lib/client.d.ts +9 -7
  248. package/lib/client.d.ts.map +1 -1
  249. package/lib/client.js +89 -119
  250. package/lib/client.js.map +1 -1
  251. package/lib/datatypes.d.ts +392 -201
  252. package/lib/datatypes.d.ts.map +1 -1
  253. package/lib/datatypes.js +4 -3
  254. package/lib/datatypes.js.map +1 -1
  255. package/lib/index.d.ts.map +1 -1
  256. package/lib/index.js +16 -28
  257. package/lib/index.js.map +1 -1
  258. package/lib/services.d.ts +164 -126
  259. package/lib/services.d.ts.map +1 -1
  260. package/lib/services.js +3294 -3356
  261. package/lib/services.js.map +1 -1
  262. package/lib/util.d.ts.map +1 -1
  263. package/lib/util.js +35 -34
  264. package/lib/util.js.map +1 -1
  265. package/package.json +3 -3
  266. package/src/client.ts +16 -32
  267. package/src/datatypes.ts +413 -204
  268. package/src/index.ts +2 -0
  269. package/src/services.ts +768 -519
  270. package/src/util.ts +2 -0
  271. package/test/apikey.test.js +62 -63
package/src/datatypes.ts CHANGED
@@ -1,3 +1,5 @@
1
+ // Code generated for API Clients. DO NOT EDIT.
2
+
1
3
  export interface Empty {}
2
4
 
3
5
  export interface Item {
@@ -30,11 +32,11 @@ export interface AbuseReport {
30
32
  /** URI of the abuse report API resource */
31
33
  uri: string;
32
34
  /** timestamp that the abuse report record was created in RFC 3339 format */
33
- createdAt: string;
35
+ createdAt: Date;
34
36
  /** a list of URLs containing suspected abusive content */
35
37
  urls: Array<string>;
36
38
  /** arbitrary user-defined data about this abuse report. Optional, max 4096 bytes. */
37
- metadata: string;
39
+ metadata?: string;
38
40
  /** Indicates whether ngrok has processed the abuse report. one of `PENDING`, `PROCESSED`, or `PARTIALLY_PROCESSED` */
39
41
  status: string;
40
42
  /** an array of hostname statuses related to the report */
@@ -52,16 +54,18 @@ export interface AbuseReportCreate {
52
54
  /** a list of URLs containing suspected abusive content */
53
55
  urls: Array<string>;
54
56
  /** arbitrary user-defined data about this abuse report. Optional, max 4096 bytes. */
55
- metadata: string;
57
+ metadata?: string;
56
58
  }
57
59
 
58
60
  export interface AgentIngressCreate {
59
61
  /** human-readable description of the use of this Agent Ingress. optional, max 255 bytes. */
60
- description: string;
62
+ description?: string;
61
63
  /** arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes */
62
- metadata: string;
64
+ metadata?: string;
63
65
  /** the domain that you own to be used as the base domain name to generate regional agent ingress domains. */
64
66
  domain: string;
67
+ /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional. */
68
+ certificateManagementPolicy?: AgentIngressCertPolicy;
65
69
  }
66
70
 
67
71
  export interface AgentIngressUpdate {
@@ -70,6 +74,8 @@ export interface AgentIngressUpdate {
70
74
  description?: string;
71
75
  /** arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes */
72
76
  metadata?: string;
77
+ /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional. */
78
+ certificateManagementPolicy?: AgentIngressCertPolicy;
73
79
  }
74
80
 
75
81
  export interface AgentIngress {
@@ -78,9 +84,9 @@ export interface AgentIngress {
78
84
  /** URI to the API resource of this Agent ingress */
79
85
  uri: string;
80
86
  /** human-readable description of the use of this Agent Ingress. optional, max 255 bytes. */
81
- description: string;
87
+ description?: string;
82
88
  /** arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes */
83
- metadata: string;
89
+ metadata?: string;
84
90
  /** the domain that you own to be used as the base domain name to generate regional agent ingress domains. */
85
91
  domain: string;
86
92
  /** a list of target values to use as the values of NS records for the domain property these values will delegate control over the domain to ngrok */
@@ -88,7 +94,11 @@ export interface AgentIngress {
88
94
  /** a list of regional agent ingress domains that are subdomains of the value of domain this value may increase over time as ngrok adds more regions */
89
95
  regionDomains: Array<string>;
90
96
  /** timestamp when the Agent Ingress was created, RFC 3339 format */
91
- createdAt: string;
97
+ createdAt: Date;
98
+ /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled */
99
+ certificateManagementPolicy?: AgentIngressCertPolicy;
100
+ /** status of the automatic certificate management for this domain, or null if automatic management is disabled */
101
+ certificateManagementStatus?: AgentIngressCertStatus;
92
102
  }
93
103
 
94
104
  export interface AgentIngressList {
@@ -100,11 +110,38 @@ export interface AgentIngressList {
100
110
  nextPageUri?: string;
101
111
  }
102
112
 
113
+ export interface AgentIngressCertPolicy {
114
+ /** certificate authority to request certificates from. The only supported value is letsencrypt. */
115
+ authority: string;
116
+ /** type of private key to use when requesting certificates. Defaults to rsa, can be either rsa or ecdsa. */
117
+ privateKeyType: string;
118
+ }
119
+
120
+ export interface AgentIngressCertStatus {
121
+ /** timestamp when the next renewal will be requested, RFC 3339 format */
122
+ renewsAt?: Date;
123
+ /** status of the certificate provisioning job, or null if the certificiate isn't being provisioned or renewed */
124
+ provisioningJob?: AgentIngressCertJob;
125
+ }
126
+
127
+ export interface AgentIngressCertJob {
128
+ /** if present, an error code indicating why provisioning is failing. It may be either a temporary condition (INTERNAL_ERROR), or a permanent one the user must correct (DNS_ERROR). */
129
+ errorCode?: string;
130
+ /** a message describing the current status or error */
131
+ msg: string;
132
+ /** timestamp when the provisioning job started, RFC 3339 format */
133
+ startedAt: Date;
134
+ /** timestamp when the provisioning job will be retried */
135
+ retriesAt?: Date;
136
+ }
137
+
103
138
  export interface APIKeyCreate {
104
139
  /** human-readable description of what uses the API key to authenticate. optional, max 255 bytes. */
105
- description: string;
140
+ description?: string;
106
141
  /** arbitrary user-defined data of this API key. optional, max 4096 bytes */
107
- metadata: string;
142
+ metadata?: string;
143
+ /** If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot. */
144
+ ownerId?: string;
108
145
  }
109
146
 
110
147
  export interface APIKeyUpdate {
@@ -121,13 +158,15 @@ export interface APIKey {
121
158
  /** URI to the API resource of this API key */
122
159
  uri: string;
123
160
  /** human-readable description of what uses the API key to authenticate. optional, max 255 bytes. */
124
- description: string;
161
+ description?: string;
125
162
  /** arbitrary user-defined data of this API key. optional, max 4096 bytes */
126
- metadata: string;
163
+ metadata?: string;
127
164
  /** timestamp when the api key was created, RFC 3339 format */
128
- createdAt: string;
165
+ createdAt: Date;
129
166
  /** the bearer token that can be placed into the Authorization header to authenticate request to the ngrok API. **This value is only available one time, on the API response from key creation. Otherwise it is null.** */
130
167
  token?: string;
168
+ /** If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot. */
169
+ ownerId?: string;
131
170
  }
132
171
 
133
172
  export interface APIKeyList {
@@ -139,26 +178,170 @@ export interface APIKeyList {
139
178
  nextPageUri?: string;
140
179
  }
141
180
 
181
+ export interface ApplicationSession {
182
+ /** unique application session resource identifier */
183
+ id: string;
184
+ /** URI of the application session API resource */
185
+ uri: string;
186
+ /** URL of the hostport served by this endpoint */
187
+ publicUrl: string;
188
+ /** browser session details of the application session */
189
+ browserSession: BrowserSession;
190
+ /** application user this session is associated with */
191
+ applicationUser?: Ref;
192
+ /** timestamp when the user was created in RFC 3339 format */
193
+ createdAt?: Date;
194
+ /** timestamp when the user was last active in RFC 3339 format */
195
+ lastActive?: Date;
196
+ /** timestamp when session expires in RFC 3339 format */
197
+ expiresAt?: Date;
198
+ /** ephemeral endpoint this session is associated with */
199
+ endpoint?: Ref;
200
+ /** edge this session is associated with, null if the endpoint is agent-initiated */
201
+ edge?: Ref;
202
+ /** route this session is associated with, null if the endpoint is agent-initiated */
203
+ route?: Ref;
204
+ }
205
+
206
+ export interface ApplicationSessionList {
207
+ /** list of all application sessions on this account */
208
+ applicationSessions: Array<ApplicationSession>;
209
+ /** URI of the application session list API resource */
210
+ uri: string;
211
+ /** URI of the next page, or null if there is no next page */
212
+ nextPageUri?: string;
213
+ }
214
+
215
+ export interface BrowserSession {
216
+ /** HTTP User-Agent data */
217
+ userAgent: UserAgent;
218
+ /** IP address */
219
+ ipAddress: string;
220
+ /** IP geolocation data */
221
+ location?: Location;
222
+ }
223
+
224
+ export interface UserAgent {
225
+ /** raw User-Agent request header */
226
+ raw: string;
227
+ /** browser name (e.g. Chrome) */
228
+ browserName?: string;
229
+ /** browser version (e.g. 102) */
230
+ browserVersion?: string;
231
+ /** type of device (e.g. Desktop) */
232
+ deviceType?: string;
233
+ /** operating system name (e.g. MacOS) */
234
+ osName?: string;
235
+ /** operating system version (e.g. 10.15.7) */
236
+ osVersion?: string;
237
+ }
238
+
239
+ export interface Location {
240
+ /** ISO country code */
241
+ countryCode?: string;
242
+ /** geographical latitude */
243
+ latitude?: number;
244
+ /** geographical longitude */
245
+ longitude?: number;
246
+ /** accuracy radius of the geographical coordinates */
247
+ latLongRadiusKm?: number;
248
+ }
249
+
250
+ export interface ApplicationUser {
251
+ /** unique application user resource identifier */
252
+ id: string;
253
+ /** URI of the application user API resource */
254
+ uri: string;
255
+ /** identity provider that the user authenticated with */
256
+ identityProvider: IdentityProvider;
257
+ /** unique user identifier */
258
+ providerUserId: string;
259
+ /** user username */
260
+ username?: string;
261
+ /** user email */
262
+ email?: string;
263
+ /** user common name */
264
+ name?: string;
265
+ /** timestamp when the user was created in RFC 3339 format */
266
+ createdAt?: Date;
267
+ /** timestamp when the user was last active in RFC 3339 format */
268
+ lastActive?: Date;
269
+ /** timestamp when the user last signed-in in RFC 3339 format */
270
+ lastLogin?: Date;
271
+ }
272
+
273
+ export interface ApplicationUserList {
274
+ /** list of all application users on this account */
275
+ applicationUsers: Array<ApplicationUser>;
276
+ /** URI of the application user list API resource */
277
+ uri: string;
278
+ /** URI of the next page, or null if there is no next page */
279
+ nextPageUri?: string;
280
+ }
281
+
282
+ export interface IdentityProvider {
283
+ /** name of the identity provider (e.g. Google) */
284
+ name: string;
285
+ /** URL of the identity provider (e.g. https://accounts.google.com) */
286
+ url: string;
287
+ }
288
+
289
+ export interface TunnelSession {
290
+ /** version of the ngrok agent that started this ngrok tunnel session */
291
+ agentVersion: string;
292
+ /** reference to the tunnel credential or ssh credential used by the ngrok agent to start this tunnel session */
293
+ credential: Ref;
294
+ /** unique tunnel session resource identifier */
295
+ id: string;
296
+ /** source ip address of the tunnel session */
297
+ ip: string;
298
+ /** arbitrary user-defined data specified in the metadata property in the ngrok configuration file. See the metadata configuration option */
299
+ metadata?: string;
300
+ /** operating system of the host the ngrok agent is running on */
301
+ os: string;
302
+ /** the ngrok region identifier in which this tunnel session was started */
303
+ region: string;
304
+ /** time when the tunnel session first connected to the ngrok servers */
305
+ startedAt: Date;
306
+ /** the transport protocol used to start the tunnel session. Either `ngrok/v2` or `ssh` */
307
+ transport: string;
308
+ /** URI to the API resource of the tunnel session */
309
+ uri: string;
310
+ }
311
+
312
+ export interface TunnelSessionList {
313
+ /** list of all tunnel sessions on this account */
314
+ tunnelSessions: Array<TunnelSession>;
315
+ /** URI to the API resource of the tunnel session list */
316
+ uri: string;
317
+ /** URI of the next page, or null if there is no next page */
318
+ nextPageUri?: string;
319
+ }
320
+
321
+ export interface TunnelSessionsUpdate {
322
+ id: string;
323
+ }
324
+
142
325
  export interface FailoverBackend {
143
326
  /** unique identifier for this Failover backend */
144
327
  id: string;
145
328
  /** URI of the FailoverBackend API resource */
146
329
  uri: string;
147
330
  /** timestamp when the backend was created, RFC 3339 format */
148
- createdAt: string;
331
+ createdAt: Date;
149
332
  /** human-readable description of this backend. Optional */
150
- description: string;
333
+ description?: string;
151
334
  /** arbitrary user-defined machine-readable data of this backend. Optional */
152
- metadata: string;
335
+ metadata?: string;
153
336
  /** the ids of the child backends in order */
154
337
  backends: Array<string>;
155
338
  }
156
339
 
157
340
  export interface FailoverBackendCreate {
158
341
  /** human-readable description of this backend. Optional */
159
- description: string;
342
+ description?: string;
160
343
  /** arbitrary user-defined machine-readable data of this backend. Optional */
161
- metadata: string;
344
+ metadata?: string;
162
345
  /** the ids of the child backends in order */
163
346
  backends: Array<string>;
164
347
  }
@@ -187,11 +370,11 @@ export interface HTTPResponseBackend {
187
370
  /** URI of the HTTPResponseBackend API resource */
188
371
  uri: string;
189
372
  /** timestamp when the backend was created, RFC 3339 format */
190
- createdAt: string;
373
+ createdAt: Date;
191
374
  /** human-readable description of this backend. Optional */
192
- description: string;
375
+ description?: string;
193
376
  /** arbitrary user-defined machine-readable data of this backend. Optional */
194
- metadata: string;
377
+ metadata?: string;
195
378
  /** body to return as fixed content */
196
379
  body: string;
197
380
  /** headers to return */
@@ -202,9 +385,9 @@ export interface HTTPResponseBackend {
202
385
 
203
386
  export interface HTTPResponseBackendCreate {
204
387
  /** human-readable description of this backend. Optional */
205
- description: string;
388
+ description?: string;
206
389
  /** arbitrary user-defined machine-readable data of this backend. Optional */
207
- metadata: string;
390
+ metadata?: string;
208
391
  /** body to return as fixed content */
209
392
  body: string;
210
393
  /** headers to return */
@@ -239,11 +422,11 @@ export interface TunnelGroupBackend {
239
422
  /** URI of the TunnelGroupBackend API resource */
240
423
  uri: string;
241
424
  /** timestamp when the backend was created, RFC 3339 format */
242
- createdAt: string;
425
+ createdAt: Date;
243
426
  /** human-readable description of this backend. Optional */
244
- description: string;
427
+ description?: string;
245
428
  /** arbitrary user-defined machine-readable data of this backend. Optional */
246
- metadata: string;
429
+ metadata?: string;
247
430
  /** labels to watch for tunnels on, e.g. app->foo, dc->bar */
248
431
  labels: Map<string, string>;
249
432
  /** tunnels matching this backend */
@@ -252,9 +435,9 @@ export interface TunnelGroupBackend {
252
435
 
253
436
  export interface TunnelGroupBackendCreate {
254
437
  /** human-readable description of this backend. Optional */
255
- description: string;
438
+ description?: string;
256
439
  /** arbitrary user-defined machine-readable data of this backend. Optional */
257
- metadata: string;
440
+ metadata?: string;
258
441
  /** labels to watch for tunnels on, e.g. app->foo, dc->bar */
259
442
  labels: Map<string, string>;
260
443
  }
@@ -284,20 +467,20 @@ export interface WeightedBackend {
284
467
  /** URI of the WeightedBackend API resource */
285
468
  uri: string;
286
469
  /** timestamp when the backend was created, RFC 3339 format */
287
- createdAt: string;
470
+ createdAt: Date;
288
471
  /** human-readable description of this backend. Optional */
289
- description: string;
472
+ description?: string;
290
473
  /** arbitrary user-defined machine-readable data of this backend. Optional */
291
- metadata: string;
474
+ metadata?: string;
292
475
  /** the ids of the child backends to their weights [0-10000] */
293
476
  backends: Map<string, number>;
294
477
  }
295
478
 
296
479
  export interface WeightedBackendCreate {
297
480
  /** human-readable description of this backend. Optional */
298
- description: string;
481
+ description?: string;
299
482
  /** arbitrary user-defined machine-readable data of this backend. Optional */
300
- metadata: string;
483
+ metadata?: string;
301
484
  /** the ids of the child backends to their weights [0-10000] */
302
485
  backends: Map<string, number>;
303
486
  }
@@ -323,9 +506,9 @@ export interface WeightedBackendList {
323
506
 
324
507
  export interface CertificateAuthorityCreate {
325
508
  /** human-readable description of this Certificate Authority. optional, max 255 bytes. */
326
- description: string;
509
+ description?: string;
327
510
  /** arbitrary user-defined machine-readable data of this Certificate Authority. optional, max 4096 bytes. */
328
- metadata: string;
511
+ metadata?: string;
329
512
  /** raw PEM of the Certificate Authority */
330
513
  caPem: string;
331
514
  }
@@ -344,19 +527,19 @@ export interface CertificateAuthority {
344
527
  /** URI of the Certificate Authority API resource */
345
528
  uri: string;
346
529
  /** timestamp when the Certificate Authority was created, RFC 3339 format */
347
- createdAt: string;
530
+ createdAt: Date;
348
531
  /** human-readable description of this Certificate Authority. optional, max 255 bytes. */
349
- description: string;
532
+ description?: string;
350
533
  /** arbitrary user-defined machine-readable data of this Certificate Authority. optional, max 4096 bytes. */
351
- metadata: string;
534
+ metadata?: string;
352
535
  /** raw PEM of the Certificate Authority */
353
536
  caPem: string;
354
537
  /** subject common name of the Certificate Authority */
355
538
  subjectCommonName: string;
356
539
  /** timestamp when this Certificate Authority becomes valid, RFC 3339 format */
357
- notBefore: string;
540
+ notBefore: Date;
358
541
  /** timestamp when this Certificate Authority becomes invalid, RFC 3339 format */
359
- notAfter: string;
542
+ notAfter: Date;
360
543
  /** set of actions the private key of this Certificate Authority can be used for */
361
544
  keyUsages: Array<string>;
362
545
  /** extended set of actions the private key of this Certificate Authority can be used for */
@@ -374,11 +557,13 @@ export interface CertificateAuthorityList {
374
557
 
375
558
  export interface CredentialCreate {
376
559
  /** human-readable description of who or what will use the credential to authenticate. Optional, max 255 bytes. */
377
- description: string;
560
+ description?: string;
378
561
  /** arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes. */
379
- metadata: string;
380
- /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
562
+ metadata?: string;
563
+ /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of `bind:*=example` which will allow `x=example`, `y=example`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
381
564
  acl: Array<string>;
565
+ /** If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot. */
566
+ ownerId?: string;
382
567
  }
383
568
 
384
569
  export interface CredentialUpdate {
@@ -387,7 +572,7 @@ export interface CredentialUpdate {
387
572
  description?: string;
388
573
  /** arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes. */
389
574
  metadata?: string;
390
- /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
575
+ /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of `bind:*=example` which will allow `x=example`, `y=example`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
391
576
  acl?: Array<string>;
392
577
  }
393
578
 
@@ -397,15 +582,17 @@ export interface Credential {
397
582
  /** URI of the tunnel credential API resource */
398
583
  uri: string;
399
584
  /** timestamp when the tunnel credential was created, RFC 3339 format */
400
- createdAt: string;
585
+ createdAt: Date;
401
586
  /** human-readable description of who or what will use the credential to authenticate. Optional, max 255 bytes. */
402
- description: string;
587
+ description?: string;
403
588
  /** arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes. */
404
- metadata: string;
589
+ metadata?: string;
405
590
  /** the credential's authtoken that can be used to authenticate an ngrok agent. **This value is only available one time, on the API response from credential creation, otherwise it is null.** */
406
591
  token?: string;
407
- /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
592
+ /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of `bind:*=example` which will allow `x=example`, `y=example`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
408
593
  acl: Array<string>;
594
+ /** If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot. */
595
+ ownerId?: string;
409
596
  }
410
597
 
411
598
  export interface CredentialList {
@@ -420,7 +607,7 @@ export interface CredentialList {
420
607
  export interface EndpointWebhookValidation {
421
608
  /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
422
609
  enabled?: boolean;
423
- /** a string indicating which webhook provider will be sending webhooks to this endpoint. Value must be one of the supported providers: `SLACK`, `SNS`, `STRIPE`, `GITHUB`, `TWILIO`, `SHOPIFY`, `GITLAB`, `INTERCOM`, `SENDGRID`, `XERO`, `PAGERDUTY`. */
610
+ /** a string indicating which webhook provider will be sending webhooks to this endpoint. Value must be one of the supported providers defined at https://ngrok.com/docs/cloud-edge/modules/webhook */
424
611
  provider: string;
425
612
  /** a string secret used to validate requests from the given provider. All providers except AWS SNS require a secret */
426
613
  secret: string;
@@ -482,6 +669,7 @@ export interface EndpointResponseHeaders {
482
669
  export interface EndpointIPPolicy {
483
670
  /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
484
671
  enabled?: boolean;
672
+ /** list of all IP policies that will be used to check if a source IP is allowed access to the endpoint */
485
673
  ipPolicies: Array<Ref>;
486
674
  }
487
675
 
@@ -533,6 +721,14 @@ export interface EndpointOAuthProvider {
533
721
  microsoft?: EndpointOAuthMicrosoft;
534
722
  /** configuration for using google as the identity provider */
535
723
  google?: EndpointOAuthGoogle;
724
+ /** configuration for using linkedin as the identity provider */
725
+ linkedin?: EndpointOAuthLinkedIn;
726
+ /** configuration for using gitlab as the identity provider */
727
+ gitlab?: EndpointOAuthGitLab;
728
+ /** configuration for using twitch as the identity provider */
729
+ twitch?: EndpointOAuthTwitch;
730
+ /** configuration for using amazon as the identity provider */
731
+ amazon?: EndpointOAuthAmazon;
536
732
  }
537
733
 
538
734
  export interface EndpointOAuthGitHub {
@@ -541,15 +737,15 @@ export interface EndpointOAuthGitHub {
541
737
  /** the OAuth app client secret. retrieve if from the identity provider's dashboard where you created your own OAuth app. optional, see all of the caveats in the docs for `client_id`. */
542
738
  clientSecret?: string;
543
739
  /** a list of provider-specific OAuth scopes with the permissions your OAuth app would like to ask for. these may not be set if you are using the ngrok-managed oauth app (i.e. you must pass both `client_id` and `client_secret` to set scopes) */
544
- scopes: Array<string>;
740
+ scopes?: Array<string>;
545
741
  /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
546
- emailAddresses: Array<string>;
742
+ emailAddresses?: Array<string>;
547
743
  /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
548
- emailDomains: Array<string>;
744
+ emailDomains?: Array<string>;
549
745
  /** a list of github teams identifiers. users will be allowed access to the endpoint if they are a member of any of these teams. identifiers should be in the 'slug' format qualified with the org name, e.g. `org-name/team-name` */
550
- teams: Array<string>;
746
+ teams?: Array<string>;
551
747
  /** a list of github org identifiers. users who are members of any of the listed organizations will be allowed access. identifiers should be the organization's 'slug' */
552
- organizations: Array<string>;
748
+ organizations?: Array<string>;
553
749
  }
554
750
 
555
751
  export interface EndpointOAuthFacebook {
@@ -591,6 +787,38 @@ export interface EndpointOAuthGoogle {
591
787
  emailDomains: Array<string>;
592
788
  }
593
789
 
790
+ export interface EndpointOAuthLinkedIn {
791
+ clientId?: string;
792
+ clientSecret?: string;
793
+ scopes: Array<string>;
794
+ emailAddresses: Array<string>;
795
+ emailDomains: Array<string>;
796
+ }
797
+
798
+ export interface EndpointOAuthGitLab {
799
+ clientId?: string;
800
+ clientSecret?: string;
801
+ scopes: Array<string>;
802
+ emailAddresses: Array<string>;
803
+ emailDomains: Array<string>;
804
+ }
805
+
806
+ export interface EndpointOAuthTwitch {
807
+ clientId?: string;
808
+ clientSecret?: string;
809
+ scopes: Array<string>;
810
+ emailAddresses: Array<string>;
811
+ emailDomains: Array<string>;
812
+ }
813
+
814
+ export interface EndpointOAuthAmazon {
815
+ clientId?: string;
816
+ clientSecret?: string;
817
+ scopes: Array<string>;
818
+ emailAddresses: Array<string>;
819
+ emailDomains: Array<string>;
820
+ }
821
+
594
822
  export interface EndpointSAML {
595
823
  /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
596
824
  enabled?: boolean;
@@ -702,9 +930,9 @@ export interface HTTPSEdgeRouteCreate {
702
930
  /** Route selector: "/blog" or "example.com" or "example.com/blog" */
703
931
  match: string;
704
932
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
705
- description: string;
933
+ description?: string;
706
934
  /** arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. */
707
- metadata: string;
935
+ metadata?: string;
708
936
  /** backend module configuration or `null` */
709
937
  backend?: EndpointBackendMutate;
710
938
  /** ip restriction module configuration or `null` */
@@ -739,9 +967,9 @@ export interface HTTPSEdgeRouteUpdate {
739
967
  /** Route selector: "/blog" or "example.com" or "example.com/blog" */
740
968
  match: string;
741
969
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
742
- description: string;
970
+ description?: string;
743
971
  /** arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. */
744
- metadata: string;
972
+ metadata?: string;
745
973
  /** backend module configuration or `null` */
746
974
  backend?: EndpointBackendMutate;
747
975
  /** ip restriction module configuration or `null` */
@@ -772,7 +1000,7 @@ export interface HTTPSEdgeRoute {
772
1000
  /** unique identifier of this edge route */
773
1001
  id: string;
774
1002
  /** timestamp when the edge configuration was created, RFC 3339 format */
775
- createdAt: string;
1003
+ createdAt: Date;
776
1004
  /** Type of match to use for this route. Valid values are "exact_path" and "path_prefix". */
777
1005
  matchType: string;
778
1006
  /** Route selector: "/blog" or "example.com" or "example.com/blog" */
@@ -780,9 +1008,9 @@ export interface HTTPSEdgeRoute {
780
1008
  /** URI of the edge API resource */
781
1009
  uri: string;
782
1010
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
783
- description: string;
1011
+ description?: string;
784
1012
  /** arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. */
785
- metadata: string;
1013
+ metadata?: string;
786
1014
  /** backend module configuration or `null` */
787
1015
  backend?: EndpointBackend;
788
1016
  /** ip restriction module configuration or `null` */
@@ -818,9 +1046,9 @@ export interface HTTPSEdgeList {
818
1046
 
819
1047
  export interface HTTPSEdgeCreate {
820
1048
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
821
- description: string;
1049
+ description?: string;
822
1050
  /** arbitrary user-defined machine-readable data of this edge; optional, max 4096 bytes. */
823
- metadata: string;
1051
+ metadata?: string;
824
1052
  /** hostports served by this edge */
825
1053
  hostports?: Array<string>;
826
1054
  /** edge modules */
@@ -846,11 +1074,11 @@ export interface HTTPSEdge {
846
1074
  /** unique identifier of this edge */
847
1075
  id: string;
848
1076
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
849
- description: string;
1077
+ description?: string;
850
1078
  /** arbitrary user-defined machine-readable data of this edge; optional, max 4096 bytes. */
851
- metadata: string;
1079
+ metadata?: string;
852
1080
  /** timestamp when the edge configuration was created, RFC 3339 format */
853
- createdAt: string;
1081
+ createdAt: Date;
854
1082
  /** URI of the edge API resource */
855
1083
  uri: string;
856
1084
  /** hostports served by this edge */
@@ -964,9 +1192,9 @@ export interface TCPEdgeList {
964
1192
 
965
1193
  export interface TCPEdgeCreate {
966
1194
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
967
- description: string;
1195
+ description?: string;
968
1196
  /** arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. */
969
- metadata: string;
1197
+ metadata?: string;
970
1198
  /** hostports served by this edge */
971
1199
  hostports?: Array<string>;
972
1200
  /** edge modules */
@@ -992,11 +1220,11 @@ export interface TCPEdge {
992
1220
  /** unique identifier of this edge */
993
1221
  id: string;
994
1222
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
995
- description: string;
1223
+ description?: string;
996
1224
  /** arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. */
997
- metadata: string;
1225
+ metadata?: string;
998
1226
  /** timestamp when the edge was created, RFC 3339 format */
999
- createdAt: string;
1227
+ createdAt: Date;
1000
1228
  /** URI of the edge API resource */
1001
1229
  uri: string;
1002
1230
  /** hostports served by this edge */
@@ -1017,9 +1245,9 @@ export interface TLSEdgeList {
1017
1245
 
1018
1246
  export interface TLSEdgeCreate {
1019
1247
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
1020
- description: string;
1248
+ description?: string;
1021
1249
  /** arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. */
1022
- metadata: string;
1250
+ metadata?: string;
1023
1251
  /** hostports served by this edge */
1024
1252
  hostports?: Array<string>;
1025
1253
  /** edge modules */
@@ -1049,11 +1277,11 @@ export interface TLSEdge {
1049
1277
  /** unique identifier of this edge */
1050
1278
  id: string;
1051
1279
  /** human-readable description of what this edge will be used for; optional, max 255 bytes. */
1052
- description: string;
1280
+ description?: string;
1053
1281
  /** arbitrary user-defined machine-readable data of this edge. Optional, max 4096 bytes. */
1054
- metadata: string;
1282
+ metadata?: string;
1055
1283
  /** timestamp when the edge configuration was created, RFC 3339 format */
1056
- createdAt: string;
1284
+ createdAt: Date;
1057
1285
  /** URI of the edge API resource */
1058
1286
  uri: string;
1059
1287
  /** hostports served by this edge */
@@ -1069,11 +1297,11 @@ export interface Endpoint {
1069
1297
  /** unique endpoint resource identifier */
1070
1298
  id: string;
1071
1299
  /** identifier of the region this endpoint belongs to */
1072
- region: string;
1300
+ region?: string;
1073
1301
  /** timestamp when the endpoint was created in RFC 3339 format */
1074
- createdAt: string;
1302
+ createdAt?: Date;
1075
1303
  /** timestamp when the endpoint was updated in RFC 3339 format */
1076
- updatedAt: string;
1304
+ updatedAt?: Date;
1077
1305
  /** URL of the hostport served by this endpoint */
1078
1306
  publicUrl: string;
1079
1307
  /** protocol served by this endpoint. one of `http`, `https`, `tcp`, or `tls` */
@@ -1083,7 +1311,7 @@ export interface Endpoint {
1083
1311
  /** whether the endpoint is `ephemeral` (served directly by an agent-initiated tunnel) or `edge` (served by an edge) */
1084
1312
  type: string;
1085
1313
  /** user-supplied metadata of the associated tunnel or edge object */
1086
- metadata: string;
1314
+ metadata?: string;
1087
1315
  /** the domain reserved for this endpoint */
1088
1316
  domain?: Ref;
1089
1317
  /** the address reserved for this endpoint */
@@ -1105,9 +1333,9 @@ export interface EndpointList {
1105
1333
 
1106
1334
  export interface EventDestinationCreate {
1107
1335
  /** Arbitrary user-defined machine-readable data of this Event Destination. Optional, max 4096 bytes. */
1108
- metadata: string;
1336
+ metadata?: string;
1109
1337
  /** Human-readable description of the Event Destination. Optional, max 255 bytes. */
1110
- description: string;
1338
+ description?: string;
1111
1339
  /** The output format you would like to serialize events into when sending to their target. Currently the only accepted value is `JSON`. */
1112
1340
  format: string;
1113
1341
  /** An object that encapsulates where and how to send your events. An event destination must contain exactly one of the following objects, leaving the rest null: `kinesis`, `firehose`, `cloudwatch_logs`, or `s3`. */
@@ -1131,11 +1359,11 @@ export interface EventDestination {
1131
1359
  /** Unique identifier for this Event Destination. */
1132
1360
  id: string;
1133
1361
  /** Arbitrary user-defined machine-readable data of this Event Destination. Optional, max 4096 bytes. */
1134
- metadata: string;
1362
+ metadata?: string;
1135
1363
  /** Timestamp when the Event Destination was created, RFC 3339 format. */
1136
- createdAt: string;
1364
+ createdAt: Date;
1137
1365
  /** Human-readable description of the Event Destination. Optional, max 255 bytes. */
1138
- description: string;
1366
+ description?: string;
1139
1367
  /** The output format you would like to serialize events into when sending to their target. Currently the only accepted value is `JSON`. */
1140
1368
  format: string;
1141
1369
  /** An object that encapsulates where and how to send your events. An event destination must contain exactly one of the following objects, leaving the rest null: `kinesis`, `firehose`, `cloudwatch_logs`, or `s3`. */
@@ -1160,6 +1388,8 @@ export interface EventTarget {
1160
1388
  kinesis?: EventTargetKinesis;
1161
1389
  /** Configuration used to send events to Amazon CloudWatch Logs. */
1162
1390
  cloudwatchLogs?: EventTargetCloudwatchLogs;
1391
+ /** Configuration used to send events to Datadog. */
1392
+ datadog?: EventTargetDatadog;
1163
1393
  }
1164
1394
 
1165
1395
  export interface EventTargetFirehose {
@@ -1183,6 +1413,17 @@ export interface EventTargetCloudwatchLogs {
1183
1413
  logGroupArn: string;
1184
1414
  }
1185
1415
 
1416
+ export interface EventTargetDatadog {
1417
+ /** Datadog API key to use. */
1418
+ apiKey?: string;
1419
+ /** Tags to send with the event. */
1420
+ ddtags?: string;
1421
+ /** Service name to send with the event. */
1422
+ service?: string;
1423
+ /** Datadog site to send event to. */
1424
+ ddsite?: string;
1425
+ }
1426
+
1186
1427
  export interface AWSAuth {
1187
1428
  /** A role for ngrok to assume on your behalf to deposit events into your AWS account. */
1188
1429
  role?: AWSRole;
@@ -1204,9 +1445,9 @@ export interface AWSCredentials {
1204
1445
 
1205
1446
  export interface EventSubscriptionCreate {
1206
1447
  /** Arbitrary customer supplied information intended to be machine readable. Optional, max 4096 chars. */
1207
- metadata: string;
1448
+ metadata?: string;
1208
1449
  /** Arbitrary customer supplied information intended to be human readable. Optional, max 255 chars. */
1209
- description: string;
1450
+ description?: string;
1210
1451
  /** Sources containing the types for which this event subscription will trigger */
1211
1452
  sources: Array<EventSourceReplace>;
1212
1453
  /** A list of Event Destination IDs which should be used for this Event Subscription. */
@@ -1241,11 +1482,11 @@ export interface EventSubscription {
1241
1482
  /** URI of the Event Subscription API resource. */
1242
1483
  uri: string;
1243
1484
  /** When the Event Subscription was created (RFC 3339 format). */
1244
- createdAt: string;
1485
+ createdAt: Date;
1245
1486
  /** Arbitrary customer supplied information intended to be machine readable. Optional, max 4096 chars. */
1246
- metadata: string;
1487
+ metadata?: string;
1247
1488
  /** Arbitrary customer supplied information intended to be human readable. Optional, max 255 chars. */
1248
- description: string;
1489
+ description?: string;
1249
1490
  /** Sources containing the types for which this event subscription will trigger */
1250
1491
  sources: Array<EventSource>;
1251
1492
  /** Destinations to which these events will be sent */
@@ -1301,9 +1542,9 @@ export interface EventSourcePaging {
1301
1542
 
1302
1543
  export interface IPPolicyCreate {
1303
1544
  /** human-readable description of the source IPs of this IP policy. optional, max 255 bytes. */
1304
- description: string;
1545
+ description?: string;
1305
1546
  /** arbitrary user-defined machine-readable data of this IP policy. optional, max 4096 bytes. */
1306
- metadata: string;
1547
+ metadata?: string;
1307
1548
  }
1308
1549
 
1309
1550
  export interface IPPolicyUpdate {
@@ -1320,11 +1561,11 @@ export interface IPPolicy {
1320
1561
  /** URI of the IP Policy API resource */
1321
1562
  uri: string;
1322
1563
  /** timestamp when the IP policy was created, RFC 3339 format */
1323
- createdAt: string;
1564
+ createdAt: Date;
1324
1565
  /** human-readable description of the source IPs of this IP policy. optional, max 255 bytes. */
1325
- description: string;
1566
+ description?: string;
1326
1567
  /** arbitrary user-defined machine-readable data of this IP policy. optional, max 4096 bytes. */
1327
- metadata: string;
1568
+ metadata?: string;
1328
1569
  }
1329
1570
 
1330
1571
  export interface IPPolicyList {
@@ -1338,9 +1579,9 @@ export interface IPPolicyList {
1338
1579
 
1339
1580
  export interface IPPolicyRuleCreate {
1340
1581
  /** human-readable description of the source IPs of this IP rule. optional, max 255 bytes. */
1341
- description: string;
1582
+ description?: string;
1342
1583
  /** arbitrary user-defined machine-readable data of this IP policy rule. optional, max 4096 bytes. */
1343
- metadata: string;
1584
+ metadata?: string;
1344
1585
  /** an IP or IP range specified in CIDR notation. IPv4 and IPv6 are both supported. */
1345
1586
  cidr: string;
1346
1587
  /** ID of the IP policy this IP policy rule will be attached to */
@@ -1365,11 +1606,11 @@ export interface IPPolicyRule {
1365
1606
  /** URI of the IP policy rule API resource */
1366
1607
  uri: string;
1367
1608
  /** timestamp when the IP policy rule was created, RFC 3339 format */
1368
- createdAt: string;
1609
+ createdAt: Date;
1369
1610
  /** human-readable description of the source IPs of this IP rule. optional, max 255 bytes. */
1370
- description: string;
1611
+ description?: string;
1371
1612
  /** arbitrary user-defined machine-readable data of this IP policy rule. optional, max 4096 bytes. */
1372
- metadata: string;
1613
+ metadata?: string;
1373
1614
  /** an IP or IP range specified in CIDR notation. IPv4 and IPv6 are both supported. */
1374
1615
  cidr: string;
1375
1616
  /** object describing the IP policy this IP Policy Rule belongs to */
@@ -1389,9 +1630,9 @@ export interface IPPolicyRuleList {
1389
1630
 
1390
1631
  export interface IPRestrictionCreate {
1391
1632
  /** human-readable description of this IP restriction. optional, max 255 bytes. */
1392
- description: string;
1633
+ description?: string;
1393
1634
  /** arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes. */
1394
- metadata: string;
1635
+ metadata?: string;
1395
1636
  /** true if the IP restriction will be enforced. if false, only warnings will be issued */
1396
1637
  enforced: boolean;
1397
1638
  /** 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` */
@@ -1418,11 +1659,11 @@ export interface IPRestriction {
1418
1659
  /** URI of the IP restriction API resource */
1419
1660
  uri: string;
1420
1661
  /** timestamp when the IP restriction was created, RFC 3339 format */
1421
- createdAt: string;
1662
+ createdAt: Date;
1422
1663
  /** human-readable description of this IP restriction. optional, max 255 bytes. */
1423
- description: string;
1664
+ description?: string;
1424
1665
  /** arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes. */
1425
- metadata: string;
1666
+ metadata?: string;
1426
1667
  /** true if the IP restriction will be enforced. if false, only warnings will be issued */
1427
1668
  enforced: boolean;
1428
1669
  /** 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` */
@@ -1442,9 +1683,9 @@ export interface IPRestrictionList {
1442
1683
 
1443
1684
  export interface ReservedAddrCreate {
1444
1685
  /** human-readable description of what this reserved address will be used for */
1445
- description: string;
1686
+ description?: string;
1446
1687
  /** arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes. */
1447
- metadata: string;
1688
+ metadata?: string;
1448
1689
  /** reserve the address in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) */
1449
1690
  region: string;
1450
1691
  }
@@ -1463,11 +1704,11 @@ export interface ReservedAddr {
1463
1704
  /** URI of the reserved address API resource */
1464
1705
  uri: string;
1465
1706
  /** timestamp when the reserved address was created, RFC 3339 format */
1466
- createdAt: string;
1707
+ createdAt: Date;
1467
1708
  /** human-readable description of what this reserved address will be used for */
1468
- description: string;
1709
+ description?: string;
1469
1710
  /** arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes. */
1470
- metadata: string;
1711
+ metadata?: string;
1471
1712
  /** hostname:port of the reserved address that was assigned at creation time */
1472
1713
  addr: string;
1473
1714
  /** reserve the address in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) */
@@ -1484,14 +1725,14 @@ export interface ReservedAddrList {
1484
1725
  }
1485
1726
 
1486
1727
  export interface ReservedDomainCreate {
1487
- /** the domain name to reserve. It may be a full domain name like app.example.com. If the name does not contain a '.' it will reserve that subdomain on ngrok.io. */
1488
- name: string;
1728
+ /** hostname of the reserved domain */
1729
+ domain: string;
1489
1730
  /** reserve the domain in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) */
1490
1731
  region: string;
1491
1732
  /** human-readable description of what this reserved domain will be used for */
1492
- description: string;
1733
+ description?: string;
1493
1734
  /** arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes. */
1494
- metadata: string;
1735
+ metadata?: string;
1495
1736
  /** ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with `certificate_management_policy`. */
1496
1737
  certificateId?: string;
1497
1738
  /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with `certificate_id`. */
@@ -1516,11 +1757,11 @@ export interface ReservedDomain {
1516
1757
  /** URI of the reserved domain API resource */
1517
1758
  uri: string;
1518
1759
  /** timestamp when the reserved domain was created, RFC 3339 format */
1519
- createdAt: string;
1760
+ createdAt: Date;
1520
1761
  /** human-readable description of what this reserved domain will be used for */
1521
- description: string;
1762
+ description?: string;
1522
1763
  /** arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes. */
1523
- metadata: string;
1764
+ metadata?: string;
1524
1765
  /** hostname of the reserved domain */
1525
1766
  domain: string;
1526
1767
  /** reserve the domain in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) */
@@ -1555,7 +1796,7 @@ export interface ReservedDomainCertPolicy {
1555
1796
 
1556
1797
  export interface ReservedDomainCertStatus {
1557
1798
  /** timestamp when the next renewal will be requested, RFC 3339 format */
1558
- renewsAt?: string;
1799
+ renewsAt?: Date;
1559
1800
  /** status of the certificate provisioning job, or null if the certificiate isn't being provisioned or renewed */
1560
1801
  provisioningJob?: ReservedDomainCertJob;
1561
1802
  }
@@ -1566,16 +1807,16 @@ export interface ReservedDomainCertJob {
1566
1807
  /** a message describing the current status or error */
1567
1808
  msg: string;
1568
1809
  /** timestamp when the provisioning job started, RFC 3339 format */
1569
- startedAt: string;
1810
+ startedAt: Date;
1570
1811
  /** timestamp when the provisioning job will be retried */
1571
- retriesAt?: string;
1812
+ retriesAt?: Date;
1572
1813
  }
1573
1814
 
1574
1815
  export interface SSHCertificateAuthorityCreate {
1575
1816
  /** human-readable description of this SSH Certificate Authority. optional, max 255 bytes. */
1576
- description: string;
1817
+ description?: string;
1577
1818
  /** arbitrary user-defined machine-readable data of this SSH Certificate Authority. optional, max 4096 bytes. */
1578
- metadata: string;
1819
+ metadata?: string;
1579
1820
  /** the type of private key to generate. one of `rsa`, `ecdsa`, `ed25519` */
1580
1821
  privateKeyType: string;
1581
1822
  /** the type of elliptic curve to use when creating an ECDSA key */
@@ -1598,11 +1839,11 @@ export interface SSHCertificateAuthority {
1598
1839
  /** URI of the SSH Certificate Authority API resource */
1599
1840
  uri: string;
1600
1841
  /** timestamp when the SSH Certificate Authority API resource was created, RFC 3339 format */
1601
- createdAt: string;
1842
+ createdAt: Date;
1602
1843
  /** human-readable description of this SSH Certificate Authority. optional, max 255 bytes. */
1603
- description: string;
1844
+ description?: string;
1604
1845
  /** arbitrary user-defined machine-readable data of this SSH Certificate Authority. optional, max 4096 bytes. */
1605
- metadata: string;
1846
+ metadata?: string;
1606
1847
  /** raw public key for this SSH Certificate Authority */
1607
1848
  publicKey: string;
1608
1849
  /** the type of private key for this SSH Certificate Authority */
@@ -1620,13 +1861,15 @@ export interface SSHCertificateAuthorityList {
1620
1861
 
1621
1862
  export interface SSHCredentialCreate {
1622
1863
  /** human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes. */
1623
- description: string;
1864
+ description?: string;
1624
1865
  /** arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes. */
1625
- metadata: string;
1626
- /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
1866
+ metadata?: string;
1867
+ /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of `bind:*=example` which will allow `x=example`, `y=example`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
1627
1868
  acl: Array<string>;
1628
1869
  /** the PEM-encoded public key of the SSH keypair that will be used to authenticate */
1629
1870
  publicKey: string;
1871
+ /** If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot. */
1872
+ ownerId?: string;
1630
1873
  }
1631
1874
 
1632
1875
  export interface SSHCredentialUpdate {
@@ -1635,7 +1878,7 @@ export interface SSHCredentialUpdate {
1635
1878
  description?: string;
1636
1879
  /** arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes. */
1637
1880
  metadata?: string;
1638
- /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
1881
+ /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of `bind:*=example` which will allow `x=example`, `y=example`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
1639
1882
  acl?: Array<string>;
1640
1883
  }
1641
1884
 
@@ -1645,15 +1888,17 @@ export interface SSHCredential {
1645
1888
  /** URI of the ssh credential API resource */
1646
1889
  uri: string;
1647
1890
  /** timestamp when the ssh credential was created, RFC 3339 format */
1648
- createdAt: string;
1891
+ createdAt: Date;
1649
1892
  /** human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes. */
1650
- description: string;
1893
+ description?: string;
1651
1894
  /** arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes. */
1652
- metadata: string;
1895
+ metadata?: string;
1653
1896
  /** the PEM-encoded public key of the SSH keypair that will be used to authenticate */
1654
1897
  publicKey: string;
1655
- /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains and addresses the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
1898
+ /** optional list of ACL rules. If unspecified, the credential will have no restrictions. The only allowed ACL rule at this time is the `bind` rule. The `bind` rule allows the caller to restrict what domains, addresses, and labels the token is allowed to bind. For example, to allow the token to open a tunnel on example.ngrok.io your ACL would include the rule `bind:example.ngrok.io`. Bind rules for domains may specify a leading wildcard to match multiple domains with a common suffix. For example, you may specify a rule of `bind:*.example.com` which will allow `x.example.com`, `y.example.com`, `*.example.com`, etc. Bind rules for labels may specify a wildcard key and/or value to match multiple labels. For example, you may specify a rule of `bind:*=example` which will allow `x=example`, `y=example`, etc. A rule of `'*'` is equivalent to no acl at all and will explicitly permit all actions. */
1656
1899
  acl: Array<string>;
1900
+ /** If supplied at credential creation, ownership will be assigned to the specified User or Bot. Only admins may specify an owner other than themselves. Defaults to the authenticated User or Bot. */
1901
+ ownerId?: string;
1657
1902
  }
1658
1903
 
1659
1904
  export interface SSHCredentialList {
@@ -1673,13 +1918,13 @@ export interface SSHHostCertificateCreate {
1673
1918
  /** the list of principals included in the ssh host certificate. This is the list of hostnames and/or IP addresses that are authorized to serve SSH traffic with this certificate. Dangerously, if no principals are specified, this certificate is considered valid for all hosts. */
1674
1919
  principals: Array<string>;
1675
1920
  /** The time when the host certificate becomes valid, in RFC 3339 format. Defaults to the current time if unspecified. */
1676
- validAfter: string;
1921
+ validAfter: Date;
1677
1922
  /** The time when this host certificate becomes invalid, in RFC 3339 format. If unspecified, a default value of one year in the future will be used. The OpenSSH certificates RFC calls this `valid_before`. */
1678
- validUntil: string;
1923
+ validUntil: Date;
1679
1924
  /** human-readable description of this SSH Host Certificate. optional, max 255 bytes. */
1680
- description: string;
1925
+ description?: string;
1681
1926
  /** arbitrary user-defined machine-readable data of this SSH Host Certificate. optional, max 4096 bytes. */
1682
- metadata: string;
1927
+ metadata?: string;
1683
1928
  }
1684
1929
 
1685
1930
  export interface SSHHostCertificateUpdate {
@@ -1696,11 +1941,11 @@ export interface SSHHostCertificate {
1696
1941
  /** URI of the SSH Host Certificate API resource */
1697
1942
  uri: string;
1698
1943
  /** timestamp when the SSH Host Certificate API resource was created, RFC 3339 format */
1699
- createdAt: string;
1944
+ createdAt: Date;
1700
1945
  /** human-readable description of this SSH Host Certificate. optional, max 255 bytes. */
1701
- description: string;
1946
+ description?: string;
1702
1947
  /** arbitrary user-defined machine-readable data of this SSH Host Certificate. optional, max 4096 bytes. */
1703
- metadata: string;
1948
+ metadata?: string;
1704
1949
  /** a public key in OpenSSH Authorized Keys format that this certificate signs */
1705
1950
  publicKey: string;
1706
1951
  /** the key type of the `public_key`, one of `rsa`, `ecdsa` or `ed25519` */
@@ -1710,9 +1955,9 @@ export interface SSHHostCertificate {
1710
1955
  /** the list of principals included in the ssh host certificate. This is the list of hostnames and/or IP addresses that are authorized to serve SSH traffic with this certificate. Dangerously, if no principals are specified, this certificate is considered valid for all hosts. */
1711
1956
  principals: Array<string>;
1712
1957
  /** the time when the ssh host certificate becomes valid, in RFC 3339 format. */
1713
- validAfter: string;
1958
+ validAfter: Date;
1714
1959
  /** the time after which the ssh host certificate becomes invalid, in RFC 3339 format. the OpenSSH certificates RFC calls this `valid_before`. */
1715
- validUntil: string;
1960
+ validUntil: Date;
1716
1961
  /** the signed SSH certificate in OpenSSH Authorized Keys format. this value should be placed in a `-cert.pub` certificate file on disk that should be referenced in your `sshd_config` configuration file with a `HostCertificate` directive */
1717
1962
  certificate: string;
1718
1963
  }
@@ -1738,13 +1983,13 @@ export interface SSHUserCertificateCreate {
1738
1983
  /** A map of extensions included in the certificate. Extensions are additional metadata that can be interpreted by the SSH server for any purpose. These can be used to permit or deny the ability to open a terminal, do port forwarding, x11 forwarding, and more. If unspecified, the certificate will include limited permissions with the following extension map: `{"permit-pty": "", "permit-user-rc": ""}` OpenSSH understands a number of predefined extensions. See [the OpenSSH certificate protocol spec](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys) for additional details. */
1739
1984
  extensions: Map<string, string>;
1740
1985
  /** The time when the user certificate becomes valid, in RFC 3339 format. Defaults to the current time if unspecified. */
1741
- validAfter: string;
1986
+ validAfter: Date;
1742
1987
  /** The time when this host certificate becomes invalid, in RFC 3339 format. If unspecified, a default value of 24 hours will be used. The OpenSSH certificates RFC calls this `valid_before`. */
1743
- validUntil: string;
1988
+ validUntil: Date;
1744
1989
  /** human-readable description of this SSH User Certificate. optional, max 255 bytes. */
1745
- description: string;
1990
+ description?: string;
1746
1991
  /** arbitrary user-defined machine-readable data of this SSH User Certificate. optional, max 4096 bytes. */
1747
- metadata: string;
1992
+ metadata?: string;
1748
1993
  }
1749
1994
 
1750
1995
  export interface SSHUserCertificateUpdate {
@@ -1761,11 +2006,11 @@ export interface SSHUserCertificate {
1761
2006
  /** URI of the SSH User Certificate API resource */
1762
2007
  uri: string;
1763
2008
  /** timestamp when the SSH User Certificate API resource was created, RFC 3339 format */
1764
- createdAt: string;
2009
+ createdAt: Date;
1765
2010
  /** human-readable description of this SSH User Certificate. optional, max 255 bytes. */
1766
- description: string;
2011
+ description?: string;
1767
2012
  /** arbitrary user-defined machine-readable data of this SSH User Certificate. optional, max 4096 bytes. */
1768
- metadata: string;
2013
+ metadata?: string;
1769
2014
  /** a public key in OpenSSH Authorized Keys format that this certificate signs */
1770
2015
  publicKey: string;
1771
2016
  /** the key type of the `public_key`, one of `rsa`, `ecdsa` or `ed25519` */
@@ -1779,9 +2024,9 @@ export interface SSHUserCertificate {
1779
2024
  /** A map of extensions included in the certificate. Extensions are additional metadata that can be interpreted by the SSH server for any purpose. These can be used to permit or deny the ability to open a terminal, do port forwarding, x11 forwarding, and more. If unspecified, the certificate will include limited permissions with the following extension map: `{"permit-pty": "", "permit-user-rc": ""}` OpenSSH understands a number of predefined extensions. See [the OpenSSH certificate protocol spec](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys) for additional details. */
1780
2025
  extensions: Map<string, string>;
1781
2026
  /** the time when the ssh host certificate becomes valid, in RFC 3339 format. */
1782
- validAfter: string;
2027
+ validAfter: Date;
1783
2028
  /** the time after which the ssh host certificate becomes invalid, in RFC 3339 format. the OpenSSH certificates RFC calls this `valid_before`. */
1784
- validUntil: string;
2029
+ validUntil: Date;
1785
2030
  /** the signed SSH certificate in OpenSSH Authorized Keys Format. this value should be placed in a `-cert.pub` certificate file on disk that should be referenced in your `sshd_config` configuration file with a `HostCertificate` directive */
1786
2031
  certificate: string;
1787
2032
  }
@@ -1797,12 +2042,12 @@ export interface SSHUserCertificateList {
1797
2042
 
1798
2043
  export interface TLSCertificateCreate {
1799
2044
  /** human-readable description of this TLS certificate. optional, max 255 bytes. */
1800
- description: string;
2045
+ description?: string;
1801
2046
  /** arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes. */
1802
- metadata: string;
1803
- /** chain of PEM-encoded certificates, leaf first. See [Certificate Bundles](https://ngrok.com/docs/api#tls-certificates-pem). */
2047
+ metadata?: string;
2048
+ /** chain of PEM-encoded certificates, leaf first. See [Certificate Bundles](https://ngrok.com/docs/cloud-edge/endpoints#certificate-chains). */
1804
2049
  certificatePem: string;
1805
- /** private key for the TLS certificate, PEM-encoded. See [Private Keys](https://ngrok.com/docs/ngrok-link#tls-certificates-key). */
2050
+ /** private key for the TLS certificate, PEM-encoded. See [Private Keys](https://ngrok.com/docs/cloud-edge/endpoints#private-keys). */
1806
2051
  privateKeyPem: string;
1807
2052
  }
1808
2053
 
@@ -1820,23 +2065,23 @@ export interface TLSCertificate {
1820
2065
  /** URI of the TLS certificate API resource */
1821
2066
  uri: string;
1822
2067
  /** timestamp when the TLS certificate was created, RFC 3339 format */
1823
- createdAt: string;
2068
+ createdAt: Date;
1824
2069
  /** human-readable description of this TLS certificate. optional, max 255 bytes. */
1825
- description: string;
2070
+ description?: string;
1826
2071
  /** arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes. */
1827
- metadata: string;
1828
- /** chain of PEM-encoded certificates, leaf first. See [Certificate Bundles](https://ngrok.com/docs/api#tls-certificates-pem). */
2072
+ metadata?: string;
2073
+ /** chain of PEM-encoded certificates, leaf first. See [Certificate Bundles](https://ngrok.com/docs/cloud-edge/endpoints#certificate-chains). */
1829
2074
  certificatePem: string;
1830
2075
  /** subject common name from the leaf of this TLS certificate */
1831
2076
  subjectCommonName: string;
1832
2077
  /** subject alternative names (SANs) from the leaf of this TLS certificate */
1833
2078
  subjectAlternativeNames: TLSCertificateSANs;
1834
2079
  /** timestamp (in RFC 3339 format) when this TLS certificate was issued automatically, or null if this certificate was user-uploaded */
1835
- issuedAt?: string;
2080
+ issuedAt?: Date;
1836
2081
  /** timestamp when this TLS certificate becomes valid, RFC 3339 format */
1837
- notBefore: string;
2082
+ notBefore: Date;
1838
2083
  /** timestamp when this TLS certificate becomes invalid, RFC 3339 format */
1839
- notAfter: string;
2084
+ notAfter: Date;
1840
2085
  /** set of actions the private key of this TLS certificate can be used for */
1841
2086
  keyUsages: Array<string>;
1842
2087
  /** extended set of actions the private key of this TLS certificate can be used for */
@@ -1875,53 +2120,17 @@ export interface TLSCertificateSANs {
1875
2120
  ips: Array<string>;
1876
2121
  }
1877
2122
 
1878
- export interface TunnelSession {
1879
- /** version of the ngrok agent that started this ngrok tunnel session */
1880
- agentVersion: string;
1881
- /** reference to the tunnel credential or ssh credential used by the ngrok agent to start this tunnel session */
1882
- credential: Ref;
1883
- /** unique tunnel session resource identifier */
1884
- id: string;
1885
- /** source ip address of the tunnel session */
1886
- ip: string;
1887
- /** arbitrary user-defined data specified in the metadata property in the ngrok configuration file. See the metadata configuration option */
1888
- metadata: string;
1889
- /** operating system of the host the ngrok agent is running on */
1890
- os: string;
1891
- /** the ngrok region identifier in which this tunnel session was started */
1892
- region: string;
1893
- /** time when the tunnel session first connected to the ngrok servers */
1894
- startedAt: string;
1895
- /** the transport protocol used to start the tunnel session. Either `ngrok/v2` or `ssh` */
1896
- transport: string;
1897
- /** URI to the API resource of the tunnel session */
1898
- uri: string;
1899
- }
1900
-
1901
- export interface TunnelSessionList {
1902
- /** list of all tunnel sessions on this account */
1903
- tunnelSessions: Array<TunnelSession>;
1904
- /** URI to the API resource of the tunnel session list */
1905
- uri: string;
1906
- /** URI of the next page, or null if there is no next page */
1907
- nextPageUri?: string;
1908
- }
1909
-
1910
- export interface TunnelSessionsUpdate {
1911
- id: string;
1912
- }
1913
-
1914
2123
  export interface Tunnel {
1915
2124
  /** unique tunnel resource identifier */
1916
2125
  id: string;
1917
2126
  /** URL of the ephemeral tunnel's public endpoint */
1918
- publicUrl: string;
2127
+ publicUrl?: string;
1919
2128
  /** timestamp when the tunnel was initiated in RFC 3339 format */
1920
- startedAt: string;
1921
- /** user-supplied metadata for the tunnel defined in the ngrok configuration file. See the tunnel [metadata configuration option](https://ngrok.com/docs#tunnel-definitions-metadata) In API version 0, this value was instead pulled from the top-level [metadata configuration option](https://ngrok.com/docs#config_metadata). */
1922
- metadata: string;
2129
+ startedAt: Date;
2130
+ /** user-supplied metadata for the tunnel defined in the ngrok configuration file. See the tunnel [metadata configuration option](https://ngrok.com/docs/secure-tunnels/ngrok-agent/reference/config#common-tunnel-configuration-properties) In API version 0, this value was instead pulled from the top-level [metadata configuration option](https://ngrok.com/docs/secure-tunnels/ngrok-agent/reference/config#metadata). */
2131
+ metadata?: string;
1923
2132
  /** tunnel protocol for ephemeral tunnels. one of `http`, `https`, `tcp` or `tls` */
1924
- proto: string;
2133
+ proto?: string;
1925
2134
  /** identifier of tune region where the tunnel is running */
1926
2135
  region: string;
1927
2136
  /** reference object pointing to the tunnel session on which this tunnel was started */
@@ -1929,7 +2138,7 @@ export interface Tunnel {
1929
2138
  /** the ephemeral endpoint this tunnel is associated with, if this is an agent-initiated tunnel */
1930
2139
  endpoint?: Ref;
1931
2140
  /** the labels the tunnel group backends will match against, if this is a backend tunnel */
1932
- labels: Map<string, string>;
2141
+ labels?: Map<string, string>;
1933
2142
  /** tunnel group backends served by this backend tunnel */
1934
2143
  backends?: Array<Ref>;
1935
2144
  /** upstream address the ngrok agent forwards traffic over this tunnel to. this may be expressed as a URL or a network address. */