@ngrok/ngrok-api 0.0.9 → 0.3.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 (218) hide show
  1. package/.eslintrc.js +4 -1
  2. package/CHANGELOG.md +34 -0
  3. package/README.md +148 -2
  4. package/docs/CNAME +1 -0
  5. package/docs/assets/css/main.css +2660 -0
  6. package/docs/assets/images/icons.png +0 -0
  7. package/docs/assets/images/icons@2x.png +0 -0
  8. package/docs/assets/images/widgets.png +0 -0
  9. package/docs/assets/images/widgets@2x.png +0 -0
  10. package/docs/assets/js/main.js +248 -0
  11. package/docs/assets/js/search.js +1 -0
  12. package/docs/classes/client.Ngrok.html +681 -0
  13. package/docs/classes/services.APIKeys.html +453 -0
  14. package/docs/classes/services.AbuseReports.html +360 -0
  15. package/docs/classes/services.AgentIngresses.html +442 -0
  16. package/docs/classes/services.CertificateAuthorities.html +453 -0
  17. package/docs/classes/services.Credentials.html +452 -0
  18. package/docs/classes/services.EndpointCircuitBreakerModule.html +369 -0
  19. package/docs/classes/services.EndpointCompressionModule.html +369 -0
  20. package/docs/classes/services.EndpointConfigurations.html +451 -0
  21. package/docs/classes/services.EndpointIPPolicyModule.html +369 -0
  22. package/docs/classes/services.EndpointLoggingModule.html +369 -0
  23. package/docs/classes/services.EndpointMutualTLSModule.html +369 -0
  24. package/docs/classes/services.EndpointOAuthModule.html +369 -0
  25. package/docs/classes/services.EndpointOIDCModule.html +369 -0
  26. package/docs/classes/services.EndpointRequestHeadersModule.html +369 -0
  27. package/docs/classes/services.EndpointResponseHeadersModule.html +369 -0
  28. package/docs/classes/services.EndpointSAMLModule.html +369 -0
  29. package/docs/classes/services.EndpointTLSTerminationModule.html +369 -0
  30. package/docs/classes/services.EndpointWebhookValidationModule.html +369 -0
  31. package/docs/classes/services.EventDestinations.html +442 -0
  32. package/docs/classes/services.EventSources.html +448 -0
  33. package/docs/classes/services.EventStreams.html +442 -0
  34. package/docs/classes/services.EventSubscriptions.html +442 -0
  35. package/docs/classes/services.IPPolicies.html +452 -0
  36. package/docs/classes/services.IPPolicyRules.html +450 -0
  37. package/docs/classes/services.IPRestrictions.html +454 -0
  38. package/docs/classes/services.ReservedAddrs.html +483 -0
  39. package/docs/classes/services.ReservedDomains.html +580 -0
  40. package/docs/classes/services.SSHCertificateAuthorities.html +450 -0
  41. package/docs/classes/services.SSHCredentials.html +450 -0
  42. package/docs/classes/services.SSHHostCertificates.html +451 -0
  43. package/docs/classes/services.SSHUserCertificates.html +451 -0
  44. package/docs/classes/services.TLSCertificates.html +453 -0
  45. package/docs/classes/services.TunnelSessions.html +451 -0
  46. package/docs/classes/services.Tunnels.html +322 -0
  47. package/docs/index.html +239 -0
  48. package/docs/interfaces/client.NgrokConfig.html +179 -0
  49. package/docs/interfaces/datatypes.APIKey.html +262 -0
  50. package/docs/interfaces/datatypes.APIKeyCreate.html +186 -0
  51. package/docs/interfaces/datatypes.APIKeyList.html +205 -0
  52. package/docs/interfaces/datatypes.APIKeyUpdate.html +200 -0
  53. package/docs/interfaces/datatypes.AWSAuth.html +186 -0
  54. package/docs/interfaces/datatypes.AWSCredentials.html +186 -0
  55. package/docs/interfaces/datatypes.AWSRole.html +167 -0
  56. package/docs/interfaces/datatypes.AbuseReport.html +281 -0
  57. package/docs/interfaces/datatypes.AbuseReportCreate.html +186 -0
  58. package/docs/interfaces/datatypes.AbuseReportHostname.html +186 -0
  59. package/docs/interfaces/datatypes.AgentIngress.html +300 -0
  60. package/docs/interfaces/datatypes.AgentIngressCreate.html +205 -0
  61. package/docs/interfaces/datatypes.AgentIngressList.html +205 -0
  62. package/docs/interfaces/datatypes.AgentIngressUpdate.html +200 -0
  63. package/docs/interfaces/datatypes.CertificateAuthority.html +357 -0
  64. package/docs/interfaces/datatypes.CertificateAuthorityCreate.html +205 -0
  65. package/docs/interfaces/datatypes.CertificateAuthorityList.html +205 -0
  66. package/docs/interfaces/datatypes.CertificateAuthorityUpdate.html +200 -0
  67. package/docs/interfaces/datatypes.Credential.html +281 -0
  68. package/docs/interfaces/datatypes.CredentialCreate.html +205 -0
  69. package/docs/interfaces/datatypes.CredentialList.html +205 -0
  70. package/docs/interfaces/datatypes.CredentialUpdate.html +219 -0
  71. package/docs/interfaces/datatypes.Empty.html +130 -0
  72. package/docs/interfaces/datatypes.EndpointCircuitBreaker.html +262 -0
  73. package/docs/interfaces/datatypes.EndpointCircuitBreakerReplace.html +176 -0
  74. package/docs/interfaces/datatypes.EndpointCompression.html +167 -0
  75. package/docs/interfaces/datatypes.EndpointCompressionReplace.html +176 -0
  76. package/docs/interfaces/datatypes.EndpointConfiguration.html +490 -0
  77. package/docs/interfaces/datatypes.EndpointConfigurationCreate.html +433 -0
  78. package/docs/interfaces/datatypes.EndpointConfigurationList.html +205 -0
  79. package/docs/interfaces/datatypes.EndpointConfigurationUpdate.html +433 -0
  80. package/docs/interfaces/datatypes.EndpointIPPolicy.html +181 -0
  81. package/docs/interfaces/datatypes.EndpointIPPolicyMutate.html +186 -0
  82. package/docs/interfaces/datatypes.EndpointIPPolicyReplace.html +176 -0
  83. package/docs/interfaces/datatypes.EndpointLogging.html +186 -0
  84. package/docs/interfaces/datatypes.EndpointLoggingMutate.html +186 -0
  85. package/docs/interfaces/datatypes.EndpointLoggingReplace.html +176 -0
  86. package/docs/interfaces/datatypes.EndpointMutualTLS.html +186 -0
  87. package/docs/interfaces/datatypes.EndpointMutualTLSMutate.html +186 -0
  88. package/docs/interfaces/datatypes.EndpointMutualTLSReplace.html +176 -0
  89. package/docs/interfaces/datatypes.EndpointOAuth.html +281 -0
  90. package/docs/interfaces/datatypes.EndpointOAuthFacebook.html +243 -0
  91. package/docs/interfaces/datatypes.EndpointOAuthGitHub.html +281 -0
  92. package/docs/interfaces/datatypes.EndpointOAuthGoogle.html +243 -0
  93. package/docs/interfaces/datatypes.EndpointOAuthMicrosoft.html +243 -0
  94. package/docs/interfaces/datatypes.EndpointOAuthProvider.html +224 -0
  95. package/docs/interfaces/datatypes.EndpointOAuthReplace.html +176 -0
  96. package/docs/interfaces/datatypes.EndpointOIDC.html +319 -0
  97. package/docs/interfaces/datatypes.EndpointOIDCReplace.html +176 -0
  98. package/docs/interfaces/datatypes.EndpointRequestHeaders.html +205 -0
  99. package/docs/interfaces/datatypes.EndpointRequestHeadersReplace.html +176 -0
  100. package/docs/interfaces/datatypes.EndpointResponseHeaders.html +205 -0
  101. package/docs/interfaces/datatypes.EndpointResponseHeadersReplace.html +176 -0
  102. package/docs/interfaces/datatypes.EndpointSAML.html +433 -0
  103. package/docs/interfaces/datatypes.EndpointSAMLMutate.html +338 -0
  104. package/docs/interfaces/datatypes.EndpointSAMLReplace.html +176 -0
  105. package/docs/interfaces/datatypes.EndpointTLSTermination.html +205 -0
  106. package/docs/interfaces/datatypes.EndpointTLSTerminationReplace.html +176 -0
  107. package/docs/interfaces/datatypes.EndpointWebhookValidation.html +205 -0
  108. package/docs/interfaces/datatypes.EndpointWebhookValidationReplace.html +176 -0
  109. package/docs/interfaces/datatypes.Error.html +204 -0
  110. package/docs/interfaces/datatypes.EventDestination.html +281 -0
  111. package/docs/interfaces/datatypes.EventDestinationCreate.html +224 -0
  112. package/docs/interfaces/datatypes.EventDestinationList.html +205 -0
  113. package/docs/interfaces/datatypes.EventDestinationUpdate.html +243 -0
  114. package/docs/interfaces/datatypes.EventSource.html +186 -0
  115. package/docs/interfaces/datatypes.EventSourceCreate.html +186 -0
  116. package/docs/interfaces/datatypes.EventSourceItem.html +193 -0
  117. package/docs/interfaces/datatypes.EventSourceList.html +186 -0
  118. package/docs/interfaces/datatypes.EventSourcePaging.html +174 -0
  119. package/docs/interfaces/datatypes.EventSourceReplace.html +167 -0
  120. package/docs/interfaces/datatypes.EventSourceUpdate.html +186 -0
  121. package/docs/interfaces/datatypes.EventStream.html +319 -0
  122. package/docs/interfaces/datatypes.EventStreamCreate.html +262 -0
  123. package/docs/interfaces/datatypes.EventStreamList.html +205 -0
  124. package/docs/interfaces/datatypes.EventStreamUpdate.html +262 -0
  125. package/docs/interfaces/datatypes.EventSubscription.html +281 -0
  126. package/docs/interfaces/datatypes.EventSubscriptionCreate.html +224 -0
  127. package/docs/interfaces/datatypes.EventSubscriptionList.html +205 -0
  128. package/docs/interfaces/datatypes.EventSubscriptionUpdate.html +243 -0
  129. package/docs/interfaces/datatypes.EventTarget.html +205 -0
  130. package/docs/interfaces/datatypes.EventTargetCloudwatchLogs.html +186 -0
  131. package/docs/interfaces/datatypes.EventTargetFirehose.html +186 -0
  132. package/docs/interfaces/datatypes.EventTargetKinesis.html +186 -0
  133. package/docs/interfaces/datatypes.IPPolicy.html +262 -0
  134. package/docs/interfaces/datatypes.IPPolicyCreate.html +205 -0
  135. package/docs/interfaces/datatypes.IPPolicyList.html +205 -0
  136. package/docs/interfaces/datatypes.IPPolicyRule.html +281 -0
  137. package/docs/interfaces/datatypes.IPPolicyRuleCreate.html +224 -0
  138. package/docs/interfaces/datatypes.IPPolicyRuleList.html +205 -0
  139. package/docs/interfaces/datatypes.IPPolicyRuleUpdate.html +219 -0
  140. package/docs/interfaces/datatypes.IPPolicyUpdate.html +200 -0
  141. package/docs/interfaces/datatypes.IPRestriction.html +300 -0
  142. package/docs/interfaces/datatypes.IPRestrictionCreate.html +243 -0
  143. package/docs/interfaces/datatypes.IPRestrictionList.html +205 -0
  144. package/docs/interfaces/datatypes.IPRestrictionUpdate.html +238 -0
  145. package/docs/interfaces/datatypes.Item.html +167 -0
  146. package/docs/interfaces/datatypes.Paging.html +176 -0
  147. package/docs/interfaces/datatypes.Ref.html +186 -0
  148. package/docs/interfaces/datatypes.ReservedAddr.html +300 -0
  149. package/docs/interfaces/datatypes.ReservedAddrCreate.html +224 -0
  150. package/docs/interfaces/datatypes.ReservedAddrList.html +205 -0
  151. package/docs/interfaces/datatypes.ReservedAddrUpdate.html +219 -0
  152. package/docs/interfaces/datatypes.ReservedDomain.html +414 -0
  153. package/docs/interfaces/datatypes.ReservedDomainCertJob.html +224 -0
  154. package/docs/interfaces/datatypes.ReservedDomainCertPolicy.html +186 -0
  155. package/docs/interfaces/datatypes.ReservedDomainCertStatus.html +186 -0
  156. package/docs/interfaces/datatypes.ReservedDomainCreate.html +300 -0
  157. package/docs/interfaces/datatypes.ReservedDomainList.html +205 -0
  158. package/docs/interfaces/datatypes.ReservedDomainUpdate.html +276 -0
  159. package/docs/interfaces/datatypes.SSHCertificateAuthority.html +281 -0
  160. package/docs/interfaces/datatypes.SSHCertificateAuthorityCreate.html +243 -0
  161. package/docs/interfaces/datatypes.SSHCertificateAuthorityList.html +205 -0
  162. package/docs/interfaces/datatypes.SSHCertificateAuthorityUpdate.html +200 -0
  163. package/docs/interfaces/datatypes.SSHCredential.html +281 -0
  164. package/docs/interfaces/datatypes.SSHCredentialCreate.html +224 -0
  165. package/docs/interfaces/datatypes.SSHCredentialList.html +205 -0
  166. package/docs/interfaces/datatypes.SSHCredentialUpdate.html +219 -0
  167. package/docs/interfaces/datatypes.SSHHostCertificate.html +376 -0
  168. package/docs/interfaces/datatypes.SSHHostCertificateCreate.html +281 -0
  169. package/docs/interfaces/datatypes.SSHHostCertificateList.html +205 -0
  170. package/docs/interfaces/datatypes.SSHHostCertificateUpdate.html +200 -0
  171. package/docs/interfaces/datatypes.SSHUserCertificate.html +414 -0
  172. package/docs/interfaces/datatypes.SSHUserCertificateCreate.html +319 -0
  173. package/docs/interfaces/datatypes.SSHUserCertificateList.html +205 -0
  174. package/docs/interfaces/datatypes.SSHUserCertificateUpdate.html +200 -0
  175. package/docs/interfaces/datatypes.TLSCertificate.html +547 -0
  176. package/docs/interfaces/datatypes.TLSCertificateCreate.html +224 -0
  177. package/docs/interfaces/datatypes.TLSCertificateList.html +205 -0
  178. package/docs/interfaces/datatypes.TLSCertificateSANs.html +186 -0
  179. package/docs/interfaces/datatypes.TLSCertificateUpdate.html +200 -0
  180. package/docs/interfaces/datatypes.Tunnel.html +281 -0
  181. package/docs/interfaces/datatypes.TunnelList.html +205 -0
  182. package/docs/interfaces/datatypes.TunnelSession.html +338 -0
  183. package/docs/interfaces/datatypes.TunnelSessionList.html +205 -0
  184. package/docs/interfaces/datatypes.TunnelSessionsUpdate.html +162 -0
  185. package/docs/modules/client.html +137 -0
  186. package/docs/modules/datatypes.html +668 -0
  187. package/docs/modules/services.html +260 -0
  188. package/docs/modules.html +119 -0
  189. package/lib/client.d.ts +145 -0
  190. package/lib/client.d.ts.map +1 -0
  191. package/lib/client.js +102 -0
  192. package/lib/client.js.map +1 -0
  193. package/lib/{types.d.ts → datatypes.d.ts} +620 -816
  194. package/lib/datatypes.d.ts.map +1 -0
  195. package/lib/{types.js → datatypes.js} +1 -1
  196. package/lib/datatypes.js.map +1 -0
  197. package/lib/index.d.ts +3 -314
  198. package/lib/index.d.ts.map +1 -0
  199. package/lib/index.js +25 -887
  200. package/lib/index.js.map +1 -1
  201. package/lib/services.d.ts +773 -0
  202. package/lib/services.d.ts.map +1 -0
  203. package/lib/services.js +2761 -0
  204. package/lib/services.js.map +1 -0
  205. package/lib/util.d.ts +5 -0
  206. package/lib/util.d.ts.map +1 -0
  207. package/lib/util.js +53 -0
  208. package/lib/util.js.map +1 -0
  209. package/package.json +12 -3
  210. package/src/client.ts +265 -0
  211. package/src/{types.ts → datatypes.ts} +648 -869
  212. package/src/index.ts +2 -616
  213. package/src/services.ts +2560 -0
  214. package/src/util.ts +48 -0
  215. package/test/apikey.test.js +44 -30
  216. package/test/endpointConfigurations.test.js +38 -34
  217. package/tsconfig.json +17 -7
  218. package/lib/types.js.map +0 -1
@@ -5,12 +5,12 @@ export interface Item {
5
5
  id: string;
6
6
  }
7
7
  export interface Paging {
8
- before_id?: string;
8
+ beforeId?: string;
9
9
  limit?: string;
10
10
  }
11
11
  export interface Error {
12
- error_code: string;
13
- status_code: number;
12
+ errorCode: string;
13
+ statusCode: number;
14
14
  msg: string;
15
15
  details: Map<string, string>;
16
16
  }
@@ -26,12 +26,12 @@ export interface AbuseReport {
26
26
  /** URI of the abuse report API resource */
27
27
  uri: string;
28
28
  /** timestamp that the abuse report record was created in RFC 3339 format */
29
- created_at: string;
29
+ createdAt: string;
30
30
  /** a list of URLs containing suspected abusive content */
31
31
  urls: Array<string>;
32
32
  /** arbitrary user-defined data about this abuse report. Optional, max 4096 bytes. */
33
33
  metadata: string;
34
- /** Indicates whether ngrok has processed the abuse report. one of PENDING, PROCESSED, or PARTIALLY_PROCESSED */
34
+ /** Indicates whether ngrok has processed the abuse report. one of `PENDING`, `PROCESSED`, or `PARTIALLY_PROCESSED` */
35
35
  status: string;
36
36
  /** an array of hostname statuses related to the report */
37
37
  hostnames: Array<AbuseReportHostname>;
@@ -39,7 +39,7 @@ export interface AbuseReport {
39
39
  export interface AbuseReportHostname {
40
40
  /** the hostname ngrok has parsed out of one of the reported URLs in this abuse report */
41
41
  hostname: string;
42
- /** indicates what action ngrok has taken against the hostname. one of PENDING, BANNED, UNBANNED, or IGNORE */
42
+ /** indicates what action ngrok has taken against the hostname. one of `PENDING`, `BANNED`, `UNBANNED`, or `IGNORE` */
43
43
  status: string;
44
44
  }
45
45
  export interface AbuseReportCreate {
@@ -48,6 +48,47 @@ export interface AbuseReportCreate {
48
48
  /** arbitrary user-defined data about this abuse report. Optional, max 4096 bytes. */
49
49
  metadata: string;
50
50
  }
51
+ export interface AgentIngressCreate {
52
+ /** human-readable description of the use of this Agent Ingress. optional, max 255 bytes. */
53
+ description: string;
54
+ /** arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes */
55
+ metadata: string;
56
+ /** the domain that you own to be used as the base domain name to generate regional agent ingress domains. */
57
+ domain: string;
58
+ }
59
+ export interface AgentIngressUpdate {
60
+ id: string;
61
+ /** human-readable description of the use of this Agent Ingress. optional, max 255 bytes. */
62
+ description?: string;
63
+ /** arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes */
64
+ metadata?: string;
65
+ }
66
+ export interface AgentIngress {
67
+ /** unique Agent Ingress resource identifier */
68
+ id: string;
69
+ /** URI to the API resource of this Agent ingress */
70
+ uri: string;
71
+ /** human-readable description of the use of this Agent Ingress. optional, max 255 bytes. */
72
+ description: string;
73
+ /** arbitrary user-defined machine-readable data of this Agent Ingress. optional, max 4096 bytes */
74
+ metadata: string;
75
+ /** the domain that you own to be used as the base domain name to generate regional agent ingress domains. */
76
+ domain: string;
77
+ /** 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 */
78
+ nsTargets: Array<string>;
79
+ /** 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 */
80
+ regionDomains: Array<string>;
81
+ /** timestamp when the Agent Ingress was created, RFC 3339 format */
82
+ createdAt: string;
83
+ }
84
+ export interface AgentIngressList {
85
+ /** the list of Agent Ingresses owned by this account */
86
+ ingresses: Array<AgentIngress>;
87
+ /** URI of the Agent Ingress list API resource */
88
+ uri: string;
89
+ /** URI of the next page, or null if there is no next page */
90
+ nextPageUri?: string;
91
+ }
51
92
  export interface APIKeyCreate {
52
93
  /** human-readable description of what uses the API key to authenticate. optional, max 255 bytes. */
53
94
  description: string;
@@ -71,8 +112,8 @@ export interface APIKey {
71
112
  /** arbitrary user-defined data of this API key. optional, max 4096 bytes */
72
113
  metadata: string;
73
114
  /** timestamp when the api key was created, RFC 3339 format */
74
- created_at: string;
75
- /** 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. */
115
+ createdAt: string;
116
+ /** 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.** */
76
117
  token?: string;
77
118
  }
78
119
  export interface APIKeyList {
@@ -81,165 +122,7 @@ export interface APIKeyList {
81
122
  /** URI of the API keys list API resource */
82
123
  uri: string;
83
124
  /** URI of the next page, or null if there is no next page */
84
- next_page_uri?: string;
85
- }
86
- export interface PriorityBackend {
87
- /** unique identifier for this Priority backend */
88
- id: string;
89
- /** timestamp when the backend was created, RFC 3339 format */
90
- created_at: string;
91
- /** human-readable description of this backend. Optional */
92
- description: string;
93
- /** arbitrary user-defined machine-readable data of this backend. Optional */
94
- metadata: string;
95
- /** the ids of the child backends in order */
96
- backends: Array<string>;
97
- }
98
- export interface PriorityBackendCreate {
99
- /** human-readable description of this backend. Optional */
100
- description: string;
101
- /** arbitrary user-defined machine-readable data of this backend. Optional */
102
- metadata: string;
103
- /** the ids of the child backends in order */
104
- backends: Array<string>;
105
- }
106
- export interface PriorityBackendUpdate {
107
- id: string;
108
- /** human-readable description of this backend. Optional */
109
- description?: string;
110
- /** arbitrary user-defined machine-readable data of this backend. Optional */
111
- metadata?: string;
112
- /** the ids of the child backends in order */
113
- backends: Array<string>;
114
- }
115
- export interface PriorityBackendList {
116
- /** the list of all Priority backends on this account */
117
- backends: Array<PriorityBackend>;
118
- /** URI of the Priority backends list API resource */
119
- uri: string;
120
- /** URI of the next page, or null if there is no next page */
121
- next_page_uri?: string;
122
- }
123
- export interface StaticBackend {
124
- /** unique identifier for this static backend */
125
- id: string;
126
- /** timestamp when the backend was created, RFC 3339 format */
127
- created_at: string;
128
- /** human-readable description of this backend. Optional */
129
- description: string;
130
- /** arbitrary user-defined machine-readable data of this backend. Optional */
131
- metadata: string;
132
- /** the address to forward to */
133
- address: string;
134
- /** tls configuration to use */
135
- tls: StaticBackendTLS;
136
- }
137
- export interface StaticBackendTLS {
138
- /** if tls is checked */
139
- enabled: boolean;
140
- }
141
- export interface StaticBackendCreate {
142
- /** human-readable description of this backend. Optional */
143
- description: string;
144
- /** arbitrary user-defined machine-readable data of this backend. Optional */
145
- metadata: string;
146
- /** the address to forward to */
147
- address: string;
148
- /** tls configuration to use */
149
- tls: StaticBackendTLS;
150
- }
151
- export interface StaticBackendUpdate {
152
- id: string;
153
- /** human-readable description of this backend. Optional */
154
- description?: string;
155
- /** arbitrary user-defined machine-readable data of this backend. Optional */
156
- metadata?: string;
157
- /** the address to forward to */
158
- address: string;
159
- /** tls configuration to use */
160
- tls: StaticBackendTLS;
161
- }
162
- export interface StaticBackendList {
163
- /** the list of all static backends on this account */
164
- backends: Array<StaticBackend>;
165
- /** URI of the static backends list API resource */
166
- uri: string;
167
- /** URI of the next page, or null if there is no next page */
168
- next_page_uri?: string;
169
- }
170
- export interface TunnelGroupBackend {
171
- /** unique identifier for this TunnelGroup backend */
172
- id: string;
173
- /** timestamp when the backend was created, RFC 3339 format */
174
- created_at: string;
175
- /** human-readable description of this backend. Optional */
176
- description: string;
177
- /** arbitrary user-defined machine-readable data of this backend. Optional */
178
- metadata: string;
179
- /** labels to watch for tunnels on, e.g. app->foo, dc->bar */
180
- labels: Map<string, string>;
181
- }
182
- export interface TunnelGroupBackendCreate {
183
- /** human-readable description of this backend. Optional */
184
- description: string;
185
- /** arbitrary user-defined machine-readable data of this backend. Optional */
186
- metadata: string;
187
- /** labels to watch for tunnels on, e.g. app->foo, dc->bar */
188
- labels: Map<string, string>;
189
- }
190
- export interface TunnelGroupBackendUpdate {
191
- id: string;
192
- /** human-readable description of this backend. Optional */
193
- description?: string;
194
- /** arbitrary user-defined machine-readable data of this backend. Optional */
195
- metadata?: string;
196
- /** labels to watch for tunnels on, e.g. app->foo, dc->bar */
197
- labels: Map<string, string>;
198
- }
199
- export interface TunnelGroupBackendList {
200
- /** the list of all TunnelGroup backends on this account */
201
- backends: Array<TunnelGroupBackend>;
202
- /** URI of the TunnelGroup backends list API resource */
203
- uri: string;
204
- /** URI of the next page, or null if there is no next page */
205
- next_page_uri?: string;
206
- }
207
- export interface WeightedBackend {
208
- /** unique identifier for this Weighted backend */
209
- id: string;
210
- /** timestamp when the backend was created, RFC 3339 format */
211
- created_at: string;
212
- /** human-readable description of this backend. Optional */
213
- description: string;
214
- /** arbitrary user-defined machine-readable data of this backend. Optional */
215
- metadata: string;
216
- /** the ids of the child backends to their weights (0-10000) */
217
- backends: Map<string, number>;
218
- }
219
- export interface WeightedBackendCreate {
220
- /** human-readable description of this backend. Optional */
221
- description: string;
222
- /** arbitrary user-defined machine-readable data of this backend. Optional */
223
- metadata: string;
224
- /** the ids of the child backends to their weights (0-10000) */
225
- backends: Map<string, number>;
226
- }
227
- export interface WeightedBackendUpdate {
228
- id: string;
229
- /** human-readable description of this backend. Optional */
230
- description?: string;
231
- /** arbitrary user-defined machine-readable data of this backend. Optional */
232
- metadata?: string;
233
- /** the ids of the child backends to their weights (0-10000) */
234
- backends: Map<string, number>;
235
- }
236
- export interface WeightedBackendList {
237
- /** the list of all Weighted backends on this account */
238
- backends: Array<WeightedBackend>;
239
- /** URI of the Weighted backends list API resource */
240
- uri: string;
241
- /** URI of the next page, or null if there is no next page */
242
- next_page_uri?: string;
125
+ nextPageUri?: string;
243
126
  }
244
127
  export interface CertificateAuthorityCreate {
245
128
  /** human-readable description of this Certificate Authority. optional, max 255 bytes. */
@@ -247,7 +130,7 @@ export interface CertificateAuthorityCreate {
247
130
  /** arbitrary user-defined machine-readable data of this Certificate Authority. optional, max 4096 bytes. */
248
131
  metadata: string;
249
132
  /** raw PEM of the Certificate Authority */
250
- ca_pem: string;
133
+ caPem: string;
251
134
  }
252
135
  export interface CertificateAuthorityUpdate {
253
136
  id: string;
@@ -262,38 +145,38 @@ export interface CertificateAuthority {
262
145
  /** URI of the Certificate Authority API resource */
263
146
  uri: string;
264
147
  /** timestamp when the Certificate Authority was created, RFC 3339 format */
265
- created_at: string;
148
+ createdAt: string;
266
149
  /** human-readable description of this Certificate Authority. optional, max 255 bytes. */
267
150
  description: string;
268
151
  /** arbitrary user-defined machine-readable data of this Certificate Authority. optional, max 4096 bytes. */
269
152
  metadata: string;
270
153
  /** raw PEM of the Certificate Authority */
271
- ca_pem: string;
154
+ caPem: string;
272
155
  /** subject common name of the Certificate Authority */
273
- subject_common_name: string;
156
+ subjectCommonName: string;
274
157
  /** timestamp when this Certificate Authority becomes valid, RFC 3339 format */
275
- not_before: string;
158
+ notBefore: string;
276
159
  /** timestamp when this Certificate Authority becomes invalid, RFC 3339 format */
277
- not_after: string;
160
+ notAfter: string;
278
161
  /** set of actions the private key of this Certificate Authority can be used for */
279
- key_usages: Array<string>;
162
+ keyUsages: Array<string>;
280
163
  /** extended set of actions the private key of this Certificate Authority can be used for */
281
- extended_key_usages: Array<string>;
164
+ extendedKeyUsages: Array<string>;
282
165
  }
283
166
  export interface CertificateAuthorityList {
284
167
  /** the list of all certificate authorities on this account */
285
- certificate_authorities: Array<CertificateAuthority>;
168
+ certificateAuthorities: Array<CertificateAuthority>;
286
169
  /** URI of the certificates authorities list API resource */
287
170
  uri: string;
288
171
  /** URI of the next page, or null if there is no next page */
289
- next_page_uri?: string;
172
+ nextPageUri?: string;
290
173
  }
291
174
  export interface CredentialCreate {
292
175
  /** human-readable description of who or what will use the credential to authenticate. Optional, max 255 bytes. */
293
176
  description: string;
294
177
  /** arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes. */
295
178
  metadata: string;
296
- /** 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. */
179
+ /** 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. */
297
180
  acl: Array<string>;
298
181
  }
299
182
  export interface CredentialUpdate {
@@ -302,7 +185,7 @@ export interface CredentialUpdate {
302
185
  description?: string;
303
186
  /** arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes. */
304
187
  metadata?: string;
305
- /** 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. */
188
+ /** 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. */
306
189
  acl?: Array<string>;
307
190
  }
308
191
  export interface Credential {
@@ -311,14 +194,14 @@ export interface Credential {
311
194
  /** URI of the tunnel credential API resource */
312
195
  uri: string;
313
196
  /** timestamp when the tunnel credential was created, RFC 3339 format */
314
- created_at: string;
197
+ createdAt: string;
315
198
  /** human-readable description of who or what will use the credential to authenticate. Optional, max 255 bytes. */
316
199
  description: string;
317
200
  /** arbitrary user-defined machine-readable data of this credential. Optional, max 4096 bytes. */
318
201
  metadata: string;
319
- /** the credential's authtoken that can be used to authenticate an ngrok client. This value is only available one time, on the API response from credential creation, otherwise it is null. */
202
+ /** the credential's authtoken that can be used to authenticate an ngrok client. **This value is only available one time, on the API response from credential creation, otherwise it is null.** */
320
203
  token?: string;
321
- /** 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. */
204
+ /** 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. */
322
205
  acl: Array<string>;
323
206
  }
324
207
  export interface CredentialList {
@@ -327,7 +210,354 @@ export interface CredentialList {
327
210
  /** URI of the tunnel credential list API resource */
328
211
  uri: string;
329
212
  /** URI of the next page, or null if there is no next page */
330
- next_page_uri?: string;
213
+ nextPageUri?: string;
214
+ }
215
+ export interface EndpointConfiguration {
216
+ /** unique identifier of this endpoint configuration */
217
+ id: string;
218
+ /** they type of traffic this endpoint configuration can be applied to. one of: `http`, `https`, `tcp` */
219
+ type: string;
220
+ /** human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes */
221
+ description: string;
222
+ /** arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes. */
223
+ metadata: string;
224
+ /** timestamp when the endpoint configuration was created, RFC 3339 format */
225
+ createdAt: string;
226
+ /** URI of the endpoint configuration API resource */
227
+ uri: string;
228
+ /** circuit breaker module configuration or `null` */
229
+ circuitBreaker?: EndpointCircuitBreaker;
230
+ /** compression module configuration or `null` */
231
+ compression?: EndpointCompression;
232
+ /** request headers module configuration or `null` */
233
+ requestHeaders?: EndpointRequestHeaders;
234
+ /** response headers module configuration or `null` */
235
+ responseHeaders?: EndpointResponseHeaders;
236
+ /** ip policy module configuration or `null` */
237
+ ipPolicy?: EndpointIPPolicy;
238
+ /** mutual TLS module configuration or `null` */
239
+ mutualTls?: EndpointMutualTLS;
240
+ /** TLS termination module configuration or `null` */
241
+ tlsTermination?: EndpointTLSTermination;
242
+ /** webhook validation module configuration or `null` */
243
+ webhookValidation?: EndpointWebhookValidation;
244
+ /** oauth module configuration or `null` */
245
+ oauth?: EndpointOAuth;
246
+ /** logging module configuration or `null` */
247
+ logging?: EndpointLogging;
248
+ /** saml module configuration or `null` */
249
+ saml?: EndpointSAML;
250
+ /** oidc module configuration or `null` */
251
+ oidc?: EndpointOIDC;
252
+ }
253
+ export interface EndpointConfigurationList {
254
+ /** the list of all endpoint configurations on this account */
255
+ endpointConfigurations: Array<EndpointConfiguration>;
256
+ /** URI of the endpoint configurations list API resource */
257
+ uri: string;
258
+ /** URI of the next page, or null if there is no next page */
259
+ nextPageUri?: string;
260
+ }
261
+ export interface EndpointConfigurationUpdate {
262
+ /** unique identifier of this endpoint configuration */
263
+ id: string;
264
+ /** human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes */
265
+ description?: string;
266
+ /** arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes. */
267
+ metadata?: string;
268
+ /** circuit breaker module configuration or `null` */
269
+ circuitBreaker?: EndpointCircuitBreaker;
270
+ /** compression module configuration or `null` */
271
+ compression?: EndpointCompression;
272
+ /** request headers module configuration or `null` */
273
+ requestHeaders?: EndpointRequestHeaders;
274
+ /** response headers module configuration or `null` */
275
+ responseHeaders?: EndpointResponseHeaders;
276
+ /** ip policy module configuration or `null` */
277
+ ipPolicy?: EndpointIPPolicyMutate;
278
+ /** mutual TLS module configuration or `null` */
279
+ mutualTls?: EndpointMutualTLSMutate;
280
+ /** TLS termination module configuration or `null` */
281
+ tlsTermination?: EndpointTLSTermination;
282
+ /** webhook validation module configuration or `null` */
283
+ webhookValidation?: EndpointWebhookValidation;
284
+ /** oauth module configuration or `null` */
285
+ oauth?: EndpointOAuth;
286
+ /** logging module configuration or `null` */
287
+ logging?: EndpointLoggingMutate;
288
+ /** saml module configuration or `null` */
289
+ saml?: EndpointSAMLMutate;
290
+ /** oidc module configuration or `null` */
291
+ oidc?: EndpointOIDC;
292
+ }
293
+ export interface EndpointConfigurationCreate {
294
+ /** they type of traffic this endpoint configuration can be applied to. one of: `http`, `https`, `tcp` */
295
+ type: string;
296
+ /** human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes */
297
+ description: string;
298
+ /** arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes. */
299
+ metadata: string;
300
+ /** circuit breaker module configuration or `null` */
301
+ circuitBreaker?: EndpointCircuitBreaker;
302
+ /** compression module configuration or `null` */
303
+ compression?: EndpointCompression;
304
+ /** request headers module configuration or `null` */
305
+ requestHeaders?: EndpointRequestHeaders;
306
+ /** response headers module configuration or `null` */
307
+ responseHeaders?: EndpointResponseHeaders;
308
+ /** ip policy module configuration or `null` */
309
+ ipPolicy?: EndpointIPPolicyMutate;
310
+ /** mutual TLS module configuration or `null` */
311
+ mutualTls?: EndpointMutualTLSMutate;
312
+ /** TLS termination module configuration or `null` */
313
+ tlsTermination?: EndpointTLSTermination;
314
+ /** webhook validation module configuration or `null` */
315
+ webhookValidation?: EndpointWebhookValidation;
316
+ /** oauth module configuration or `null` */
317
+ oauth?: EndpointOAuth;
318
+ /** logging module configuration or `null` */
319
+ logging?: EndpointLoggingMutate;
320
+ /** saml module configuration or `null` */
321
+ saml?: EndpointSAMLMutate;
322
+ /** oidc module configuration or `null` */
323
+ oidc?: EndpointOIDC;
324
+ }
325
+ export interface EndpointWebhookValidation {
326
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
327
+ enabled?: boolean;
328
+ /** 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`. */
329
+ provider: string;
330
+ /** a string secret used to validate requests from the given provider. All providers except AWS SNS require a secret */
331
+ secret: string;
332
+ }
333
+ export interface EndpointCompression {
334
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
335
+ enabled?: boolean;
336
+ }
337
+ export interface EndpointMutualTLS {
338
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
339
+ enabled?: boolean;
340
+ /** PEM-encoded CA certificates that will be used to validate. Multiple CAs may be provided by concatenating them together. */
341
+ certificateAuthorities: Array<Ref>;
342
+ }
343
+ export interface EndpointMutualTLSMutate {
344
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
345
+ enabled?: boolean;
346
+ /** list of certificate authorities that will be used to validate the TLS client certificate presnted by the initiatiator of the TLS connection */
347
+ certificateAuthorityIds: Array<string>;
348
+ }
349
+ export interface EndpointTLSTermination {
350
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
351
+ enabled?: boolean;
352
+ /** `edge` if the ngrok edge should terminate TLS traffic, `upstream` if TLS traffic should be passed through to the upstream ngrok agent / application server for termination. if `upstream` is chosen, most other modules will be disallowed because they rely on the ngrok edge being able to access the underlying traffic. */
353
+ terminateAt: string;
354
+ /** The minimum TLS version used for termination and advertised to the client during the TLS handshake. if unspecified, ngrok will choose an industry-safe default. This value must be null if `terminate_at` is set to `upstream`. */
355
+ minVersion?: string;
356
+ }
357
+ export interface EndpointLogging {
358
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
359
+ enabled?: boolean;
360
+ /** list of all EventStreams that will be used to configure and export this endpoint's logs */
361
+ eventStreams: Array<Ref>;
362
+ }
363
+ export interface EndpointLoggingMutate {
364
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
365
+ enabled?: boolean;
366
+ /** list of all EventStreams that will be used to configure and export this endpoint's logs */
367
+ eventStreamIds: Array<string>;
368
+ }
369
+ export interface EndpointRequestHeaders {
370
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
371
+ enabled?: boolean;
372
+ /** a map of header key to header value that will be injected into the HTTP Request before being sent to the upstream application server */
373
+ add: Map<string, string>;
374
+ /** a list of header names that will be removed from the HTTP Request before being sent to the upstream application server */
375
+ remove: Array<string>;
376
+ }
377
+ export interface EndpointResponseHeaders {
378
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
379
+ enabled?: boolean;
380
+ /** a map of header key to header value that will be injected into the HTTP Response returned to the HTTP client */
381
+ add: Map<string, string>;
382
+ /** a list of header names that will be removed from the HTTP Response returned to the HTTP client */
383
+ remove: Array<string>;
384
+ }
385
+ export interface EndpointIPPolicy {
386
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
387
+ enabled?: boolean;
388
+ ipPolicies: Array<Ref>;
389
+ }
390
+ export interface EndpointIPPolicyMutate {
391
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
392
+ enabled?: boolean;
393
+ /** list of all IP policies that will be used to check if a source IP is allowed access to the endpoint */
394
+ ipPolicyIds: Array<string>;
395
+ }
396
+ export interface EndpointCircuitBreaker {
397
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
398
+ enabled?: boolean;
399
+ /** Integer number of seconds after which the circuit is tripped to wait before re-evaluating upstream health */
400
+ trippedDuration: number;
401
+ /** Integer number of seconds in the statistical rolling window that metrics are retained for. */
402
+ rollingWindow: number;
403
+ /** Integer number of buckets into which metrics are retained. Max 128. */
404
+ numBuckets: number;
405
+ /** Integer number of requests in a rolling window that will trip the circuit. Helpful if traffic volume is low. */
406
+ volumeThreshold: number;
407
+ /** Error threshold percentage should be between 0 - 1.0, not 0-100.0 */
408
+ errorThresholdPercentage: number;
409
+ }
410
+ export interface EndpointOAuth {
411
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
412
+ enabled?: boolean;
413
+ /** an object which defines the identity provider to use for authentication and configuration for who may access the endpoint */
414
+ provider: EndpointOAuthProvider;
415
+ /** Do not enforce authentication on HTTP OPTIONS requests. necessary if you are supporting CORS. */
416
+ optionsPassthrough: boolean;
417
+ /** the prefix of the session cookie that ngrok sets on the http client to cache authentication. default is 'ngrok.' */
418
+ cookiePrefix: string;
419
+ /** Integer number of seconds of inactivity after which if the user has not accessed the endpoint, their session will time out and they will be forced to reauthenticate. */
420
+ inactivityTimeout: number;
421
+ /** Integer number of seconds of the maximum duration of an authenticated session. After this period is exceeded, a user must reauthenticate. */
422
+ maximumDuration: number;
423
+ /** Integer number of seconds after which ngrok guarantees it will refresh user state from the identity provider and recheck whether the user is still authorized to access the endpoint. This is the preferred tunable to use to enforce a minimum amount of time after which a revoked user will no longer be able to access the resource. */
424
+ authCheckInterval: number;
425
+ }
426
+ export interface EndpointOAuthProvider {
427
+ /** configuration for using github as the identity provider */
428
+ github?: EndpointOAuthGitHub;
429
+ /** configuration for using facebook as the identity provider */
430
+ facebook?: EndpointOAuthFacebook;
431
+ /** configuration for using microsoft as the identity provider */
432
+ microsoft?: EndpointOAuthMicrosoft;
433
+ /** configuration for using google as the identity provider */
434
+ google?: EndpointOAuthGoogle;
435
+ }
436
+ export interface EndpointOAuthGitHub {
437
+ /** the OAuth app client ID. retrieve it from the identity provider's dashboard where you created your own OAuth app. optional. if unspecified, ngrok will use its own managed oauth application which has additional restrictions. see the OAuth module docs for more details. if present, client_secret must be present as well. */
438
+ clientId?: string;
439
+ /** 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`. */
440
+ clientSecret?: string;
441
+ /** 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) */
442
+ scopes: Array<string>;
443
+ /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
444
+ emailAddresses: Array<string>;
445
+ /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
446
+ emailDomains: Array<string>;
447
+ /** 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` */
448
+ teams: Array<string>;
449
+ /** 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' */
450
+ organizations: Array<string>;
451
+ }
452
+ export interface EndpointOAuthFacebook {
453
+ /** the OAuth app client ID. retrieve it from the identity provider's dashboard where you created your own OAuth app. optional. if unspecified, ngrok will use its own managed oauth application which has additional restrictions. see the OAuth module docs for more details. if present, client_secret must be present as well. */
454
+ clientId?: string;
455
+ /** 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`. */
456
+ clientSecret?: string;
457
+ /** 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) */
458
+ scopes: Array<string>;
459
+ /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
460
+ emailAddresses: Array<string>;
461
+ /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
462
+ emailDomains: Array<string>;
463
+ }
464
+ export interface EndpointOAuthMicrosoft {
465
+ /** the OAuth app client ID. retrieve it from the identity provider's dashboard where you created your own OAuth app. optional. if unspecified, ngrok will use its own managed oauth application which has additional restrictions. see the OAuth module docs for more details. if present, client_secret must be present as well. */
466
+ clientId?: string;
467
+ /** 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`. */
468
+ clientSecret?: string;
469
+ /** 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) */
470
+ scopes: Array<string>;
471
+ /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
472
+ emailAddresses: Array<string>;
473
+ /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
474
+ emailDomains: Array<string>;
475
+ }
476
+ export interface EndpointOAuthGoogle {
477
+ /** the OAuth app client ID. retrieve it from the identity provider's dashboard where you created your own OAuth app. optional. if unspecified, ngrok will use its own managed oauth application which has additional restrictions. see the OAuth module docs for more details. if present, client_secret must be present as well. */
478
+ clientId?: string;
479
+ /** 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`. */
480
+ clientSecret?: string;
481
+ /** 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) */
482
+ scopes: Array<string>;
483
+ /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
484
+ emailAddresses: Array<string>;
485
+ /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
486
+ emailDomains: Array<string>;
487
+ }
488
+ export interface EndpointSAML {
489
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
490
+ enabled?: boolean;
491
+ /** Do not enforce authentication on HTTP OPTIONS requests. necessary if you are supporting CORS. */
492
+ optionsPassthrough: boolean;
493
+ /** the prefix of the session cookie that ngrok sets on the http client to cache authentication. default is 'ngrok.' */
494
+ cookiePrefix: string;
495
+ /** Integer number of seconds of inactivity after which if the user has not accessed the endpoint, their session will time out and they will be forced to reauthenticate. */
496
+ inactivityTimeout: number;
497
+ /** Integer number of seconds of the maximum duration of an authenticated session. After this period is exceeded, a user must reauthenticate. */
498
+ maximumDuration: number;
499
+ /** The full XML IdP EntityDescriptor. Your IdP may provide this to you as a a file to download or as a URL. */
500
+ idpMetadata: string;
501
+ /** If true, indicates that whenever we redirect a user to the IdP for authentication that the IdP must prompt the user for authentication credentials even if the user already has a valid session with the IdP. */
502
+ forceAuthn: boolean;
503
+ /** If true, the IdP may initiate a login directly (e.g. the user does not need to visit the endpoint first and then be redirected). The IdP should set the `RelayState` parameter to the target URL of the resource they want the user to be redirected to after the SAML login assertion has been processed. */
504
+ allowIdpInitiated?: boolean;
505
+ /** If present, only users who are a member of one of the listed groups may access the target endpoint. */
506
+ authorizedGroups: Array<string>;
507
+ /** The SP Entity's unique ID. This always takes the form of a URL. In ngrok's implementation, this URL is the same as the metadata URL. This will need to be specified to the IdP as configuration. */
508
+ entityId: string;
509
+ /** The public URL of the SP's Assertion Consumer Service. This is where the IdP will redirect to during an authentication flow. This will need to be specified to the IdP as configuration. */
510
+ assertionConsumerServiceUrl: string;
511
+ /** The public URL of the SP's Single Logout Service. This is where the IdP will redirect to during a single logout flow. This will optionally need to be specified to the IdP as configuration. */
512
+ singleLogoutUrl: string;
513
+ /** PEM-encoded x.509 certificate of the key pair that is used to sign all SAML requests that the ngrok SP makes to the IdP. Many IdPs do not support request signing verification, but we highly recommend specifying this in the IdP's configuration if it is supported. */
514
+ requestSigningCertificatePem: string;
515
+ /** A public URL where the SP's metadata is hosted. If an IdP supports dynamic configuration, this is the URL it can use to retrieve the SP metadata. */
516
+ metadataUrl: string;
517
+ /** Defines the name identifier format the SP expects the IdP to use in its assertions to identify subjects. If unspecified, a default value of `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` will be used. A subset of the allowed values enumerated by the SAML specification are supported. */
518
+ nameidFormat: string;
519
+ }
520
+ export interface EndpointSAMLMutate {
521
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
522
+ enabled?: boolean;
523
+ /** Do not enforce authentication on HTTP OPTIONS requests. necessary if you are supporting CORS. */
524
+ optionsPassthrough: boolean;
525
+ /** the prefix of the session cookie that ngrok sets on the http client to cache authentication. default is 'ngrok.' */
526
+ cookiePrefix: string;
527
+ /** Integer number of seconds of inactivity after which if the user has not accessed the endpoint, their session will time out and they will be forced to reauthenticate. */
528
+ inactivityTimeout: number;
529
+ /** Integer number of seconds of the maximum duration of an authenticated session. After this period is exceeded, a user must reauthenticate. */
530
+ maximumDuration: number;
531
+ /** The full XML IdP EntityDescriptor. Your IdP may provide this to you as a a file to download or as a URL. */
532
+ idpMetadata: string;
533
+ /** If true, indicates that whenever we redirect a user to the IdP for authentication that the IdP must prompt the user for authentication credentials even if the user already has a valid session with the IdP. */
534
+ forceAuthn: boolean;
535
+ /** If true, the IdP may initiate a login directly (e.g. the user does not need to visit the endpoint first and then be redirected). The IdP should set the `RelayState` parameter to the target URL of the resource they want the user to be redirected to after the SAML login assertion has been processed. */
536
+ allowIdpInitiated?: boolean;
537
+ /** If present, only users who are a member of one of the listed groups may access the target endpoint. */
538
+ authorizedGroups: Array<string>;
539
+ /** Defines the name identifier format the SP expects the IdP to use in its assertions to identify subjects. If unspecified, a default value of `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` will be used. A subset of the allowed values enumerated by the SAML specification are supported. */
540
+ nameidFormat: string;
541
+ }
542
+ export interface EndpointOIDC {
543
+ /** `true` if the module will be applied to traffic, `false` to disable. default `true` if unspecified */
544
+ enabled?: boolean;
545
+ /** Do not enforce authentication on HTTP OPTIONS requests. necessary if you are supporting CORS. */
546
+ optionsPassthrough: boolean;
547
+ /** the prefix of the session cookie that ngrok sets on the http client to cache authentication. default is 'ngrok.' */
548
+ cookiePrefix: string;
549
+ /** Integer number of seconds of inactivity after which if the user has not accessed the endpoint, their session will time out and they will be forced to reauthenticate. */
550
+ inactivityTimeout: number;
551
+ /** Integer number of seconds of the maximum duration of an authenticated session. After this period is exceeded, a user must reauthenticate. */
552
+ maximumDuration: number;
553
+ /** URL of the OIDC "OpenID provider". This is the base URL used for discovery. */
554
+ issuer: string;
555
+ /** The OIDC app's client ID and OIDC audience. */
556
+ clientId: string;
557
+ /** The OIDC app's client secret. */
558
+ clientSecret: string;
559
+ /** The set of scopes to request from the OIDC identity provider. */
560
+ scopes: Array<string>;
331
561
  }
332
562
  export interface EventStreamCreate {
333
563
  /** Arbitrary user-defined machine-readable data of this Event Stream. Optional, max 4096 bytes. */
@@ -336,12 +566,12 @@ export interface EventStreamCreate {
336
566
  description: string;
337
567
  /** A list of protocol-specific fields you want to collect on each event. */
338
568
  fields: Array<string>;
339
- /** The protocol that determines which events will be collected. Supported values are tcp_connection_closed and http_request_complete. */
340
- event_type: string;
569
+ /** The protocol that determines which events will be collected. Supported values are `tcp_connection_closed` and `http_request_complete`. */
570
+ eventType: string;
341
571
  /** A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. */
342
- destination_ids: Array<string>;
572
+ destinationIds: Array<string>;
343
573
  /** The percentage of all events you would like to capture. Valid values range from 0.01, representing 1% of all events to 1.00, representing 100% of all events. */
344
- sampling_rate: number;
574
+ samplingRate: number;
345
575
  }
346
576
  export interface EventStreamUpdate {
347
577
  /** Unique identifier for this Event Stream. */
@@ -353,17 +583,17 @@ export interface EventStreamUpdate {
353
583
  /** A list of protocol-specific fields you want to collect on each event. */
354
584
  fields?: Array<string>;
355
585
  /** A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. */
356
- destination_ids?: Array<string>;
586
+ destinationIds?: Array<string>;
357
587
  /** The percentage of all events you would like to capture. Valid values range from 0.01, representing 1% of all events to 1.00, representing 100% of all events. */
358
- sampling_rate?: number;
588
+ samplingRate?: number;
359
589
  }
360
590
  export interface EventStreamList {
361
591
  /** The list of all Event Streams on this account. */
362
- event_streams: Array<EventStream>;
592
+ eventStreams: Array<EventStream>;
363
593
  /** URI of the Event Stream list API resource. */
364
594
  uri: string;
365
595
  /** URI of the next page, or null if there is no next page. */
366
- next_page_uri?: string;
596
+ nextPageUri?: string;
367
597
  }
368
598
  export interface EventStream {
369
599
  /** Unique identifier for this Event Stream. */
@@ -371,28 +601,28 @@ export interface EventStream {
371
601
  /** URI of the Event Stream API resource. */
372
602
  uri: string;
373
603
  /** Timestamp when the Event Stream was created, RFC 3339 format. */
374
- created_at: string;
604
+ createdAt: string;
375
605
  /** Arbitrary user-defined machine-readable data of this Event Stream. Optional, max 4096 bytes. */
376
606
  metadata: string;
377
607
  /** Human-readable description of the Event Stream. Optional, max 255 bytes. */
378
608
  description: string;
379
609
  /** A list of protocol-specific fields you want to collect on each event. */
380
610
  fields: Array<string>;
381
- /** The protocol that determines which events will be collected. Supported values are tcp_connection_closed and http_request_complete. */
382
- event_type: string;
611
+ /** The protocol that determines which events will be collected. Supported values are `tcp_connection_closed` and `http_request_complete`. */
612
+ eventType: string;
383
613
  /** A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. */
384
- destination_ids: Array<string>;
614
+ destinationIds: Array<string>;
385
615
  /** The percentage of all events you would like to capture. Valid values range from 0.01, representing 1% of all events to 1.00, representing 100% of all events. */
386
- sampling_rate: number;
616
+ samplingRate: number;
387
617
  }
388
618
  export interface EventDestinationCreate {
389
619
  /** Arbitrary user-defined machine-readable data of this Event Destination. Optional, max 4096 bytes. */
390
620
  metadata: string;
391
621
  /** Human-readable description of the Event Destination. Optional, max 255 bytes. */
392
622
  description: string;
393
- /** The output format you would like to serialize events into when sending to their target. Currently the only accepted value is JSON. */
623
+ /** The output format you would like to serialize events into when sending to their target. Currently the only accepted value is `JSON`. */
394
624
  format: string;
395
- /** 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. */
625
+ /** 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`. */
396
626
  target: EventTarget;
397
627
  }
398
628
  export interface EventDestinationUpdate {
@@ -402,9 +632,9 @@ export interface EventDestinationUpdate {
402
632
  metadata?: string;
403
633
  /** Human-readable description of the Event Destination. Optional, max 255 bytes. */
404
634
  description?: string;
405
- /** The output format you would like to serialize events into when sending to their target. Currently the only accepted value is JSON. */
635
+ /** The output format you would like to serialize events into when sending to their target. Currently the only accepted value is `JSON`. */
406
636
  format?: string;
407
- /** 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. */
637
+ /** 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`. */
408
638
  target?: EventTarget;
409
639
  }
410
640
  export interface EventDestination {
@@ -413,23 +643,23 @@ export interface EventDestination {
413
643
  /** Arbitrary user-defined machine-readable data of this Event Destination. Optional, max 4096 bytes. */
414
644
  metadata: string;
415
645
  /** Timestamp when the Event Destination was created, RFC 3339 format. */
416
- created_at: string;
646
+ createdAt: string;
417
647
  /** Human-readable description of the Event Destination. Optional, max 255 bytes. */
418
648
  description: string;
419
- /** The output format you would like to serialize events into when sending to their target. Currently the only accepted value is JSON. */
649
+ /** The output format you would like to serialize events into when sending to their target. Currently the only accepted value is `JSON`. */
420
650
  format: string;
421
- /** 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. */
651
+ /** 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`. */
422
652
  target: EventTarget;
423
653
  /** URI of the Event Destination API resource. */
424
654
  uri: string;
425
655
  }
426
656
  export interface EventDestinationList {
427
657
  /** The list of all Event Destinations on this account. */
428
- event_destinations: Array<EventDestination>;
658
+ eventDestinations: Array<EventDestination>;
429
659
  /** URI of the Event Destinations list API resource. */
430
660
  uri: string;
431
661
  /** URI of the next page, or null if there is no next page. */
432
- next_page_uri?: string;
662
+ nextPageUri?: string;
433
663
  }
434
664
  export interface EventTarget {
435
665
  /** Configuration used to send events to Amazon Kinesis Data Firehose. */
@@ -437,41 +667,25 @@ export interface EventTarget {
437
667
  /** Configuration used to send events to Amazon Kinesis. */
438
668
  kinesis?: EventTargetKinesis;
439
669
  /** Configuration used to send events to Amazon CloudWatch Logs. */
440
- cloudwatch_logs?: EventTargetCloudwatchLogs;
670
+ cloudwatchLogs?: EventTargetCloudwatchLogs;
441
671
  }
442
672
  export interface EventTargetFirehose {
443
- /** Configuration for how to authenticate into your AWS account. Exactly one of role or creds should be configured. */
673
+ /** Configuration for how to authenticate into your AWS account. Exactly one of `role` or `creds` should be configured. */
444
674
  auth: AWSAuth;
445
675
  /** An Amazon Resource Name specifying the Firehose delivery stream to deposit events into. */
446
- delivery_stream_arn: string;
676
+ deliveryStreamArn: string;
447
677
  }
448
678
  export interface EventTargetKinesis {
449
- /** Configuration for how to authenticate into your AWS account. Exactly one of role or creds should be configured. */
679
+ /** Configuration for how to authenticate into your AWS account. Exactly one of `role` or `creds` should be configured. */
450
680
  auth: AWSAuth;
451
681
  /** An Amazon Resource Name specifying the Kinesis stream to deposit events into. */
452
- stream_arn: string;
682
+ streamArn: string;
453
683
  }
454
684
  export interface EventTargetCloudwatchLogs {
455
- /** Configuration for how to authenticate into your AWS account. Exactly one of role or creds should be configured. */
685
+ /** Configuration for how to authenticate into your AWS account. Exactly one of `role` or `creds` should be configured. */
456
686
  auth: AWSAuth;
457
687
  /** An Amazon Resource Name specifying the CloudWatch Logs group to deposit events into. */
458
- log_group_arn: string;
459
- }
460
- export interface EventTargetS3 {
461
- /** Configuration for how to authenticate into your AWS account. Exactly one of role or creds should be configured. */
462
- auth: AWSAuth;
463
- /** An Amazon Resource Name specifying the S3 bucket to deposit events into. */
464
- bucket_arn: string;
465
- /** An optional prefix to prepend to S3 object keys. */
466
- object_prefix: string;
467
- /** Whether or not to compress files with gzip. */
468
- compression: boolean;
469
- /** How many bytes we should accumulate into a single file before sending to S3. */
470
- max_file_size: number;
471
- /** How many seconds we should batch up events before sending them to S3. */
472
- max_file_age: number;
473
- }
474
- export interface EventTargetDebug {
688
+ logGroupArn: string;
475
689
  }
476
690
  export interface AWSAuth {
477
691
  /** A role for ngrok to assume on your behalf to deposit events into your AWS account. */
@@ -481,26 +695,23 @@ export interface AWSAuth {
481
695
  }
482
696
  export interface AWSRole {
483
697
  /** An ARN that specifies the role that ngrok should use to deliver to the configured target. */
484
- role_arn: string;
698
+ roleArn: string;
485
699
  }
486
700
  export interface AWSCredentials {
487
701
  /** The ID portion of an AWS access key. */
488
- aws_access_key_id: string;
702
+ awsAccessKeyId: string;
489
703
  /** The secret portion of an AWS access key. */
490
- aws_secret_access_key?: string;
491
- }
492
- export interface SentEvent {
493
- event_id: string;
704
+ awsSecretAccessKey?: string;
494
705
  }
495
706
  export interface EventSubscriptionCreate {
496
707
  /** Arbitrary customer supplied information intended to be machine readable. Optional, max 4096 chars. */
497
708
  metadata: string;
498
709
  /** Arbitrary customer supplied information intended to be human readable. Optional, max 255 chars. */
499
710
  description: string;
500
- /** TODO */
711
+ /** Sources containing the types for which this event subscription will trigger */
501
712
  sources: Array<EventSourceReplace>;
502
- /** TODO */
503
- destination_ids: Array<string>;
713
+ /** A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. */
714
+ destinationIds: Array<string>;
504
715
  }
505
716
  export interface EventSubscriptionUpdate {
506
717
  /** Unique identifier for this Event Subscription. */
@@ -509,18 +720,18 @@ export interface EventSubscriptionUpdate {
509
720
  metadata?: string;
510
721
  /** Arbitrary customer supplied information intended to be human readable. Optional, max 255 chars. */
511
722
  description?: string;
512
- /** TODO */
723
+ /** Sources containing the types for which this event subscription will trigger */
513
724
  sources?: Array<EventSourceReplace>;
514
- /** TODO */
515
- destination_ids?: Array<string>;
725
+ /** A list of Event Destination IDs which should be used for this Event Stream. Event Streams are required to have at least one Event Destination. */
726
+ destinationIds?: Array<string>;
516
727
  }
517
728
  export interface EventSubscriptionList {
518
729
  /** The list of all Event Subscriptions on this account. */
519
- event_subscriptions: Array<EventSubscription>;
730
+ eventSubscriptions: Array<EventSubscription>;
520
731
  /** URI of the Event Subscriptions list API resource. */
521
732
  uri: string;
522
733
  /** URI of next page, or null if there is no next page. */
523
- next_page_uri?: string;
734
+ nextPageUri?: string;
524
735
  }
525
736
  export interface EventSubscription {
526
737
  /** Unique identifier for this Event Subscription. */
@@ -528,62 +739,62 @@ export interface EventSubscription {
528
739
  /** URI of the Event Subscription API resource. */
529
740
  uri: string;
530
741
  /** When the Event Subscription was created (RFC 3339 format). */
531
- created_at: string;
742
+ createdAt: string;
532
743
  /** Arbitrary customer supplied information intended to be machine readable. Optional, max 4096 chars. */
533
744
  metadata: string;
534
745
  /** Arbitrary customer supplied information intended to be human readable. Optional, max 255 chars. */
535
746
  description: string;
536
- /** TODO */
747
+ /** Sources containing the types for which this event subscription will trigger */
537
748
  sources: Array<EventSource>;
538
- /** TODO */
749
+ /** Destinations to which these events will be sent */
539
750
  destinations: Array<Ref>;
540
751
  }
541
752
  export interface EventSourceReplace {
542
- /** TODO */
753
+ /** Type of event for which an event subscription will trigger */
543
754
  type: string;
544
755
  }
545
756
  export interface EventSource {
546
- /** TODO */
757
+ /** Type of event for which an event subscription will trigger */
547
758
  type: string;
548
- /** TODO */
759
+ /** URI of the Event Source API resource. */
549
760
  uri: string;
550
761
  }
551
762
  export interface EventSourceList {
552
- /** TODO */
763
+ /** The list of all Event Sources for an Event Subscription */
553
764
  sources: Array<EventSource>;
554
- /** TODO */
765
+ /** URI of the next page, or null if there is no next page. */
555
766
  uri: string;
556
767
  }
557
768
  export interface EventSourceCreate {
558
- /** TODO */
559
- subscription_id: string;
560
- /** TODO */
769
+ /** The unique identifier for the Event Subscription that this Event Source is attached to. */
770
+ subscriptionId: string;
771
+ /** Type of event for which an event subscription will trigger */
561
772
  type: string;
562
773
  }
563
774
  export interface EventSourceUpdate {
564
- /** TODO */
565
- subscription_id: string;
566
- /** TODO */
775
+ /** The unique identifier for the Event Subscription that this Event Source is attached to. */
776
+ subscriptionId: string;
777
+ /** Type of event for which an event subscription will trigger */
567
778
  type: string;
568
779
  }
569
780
  /** This is needed instead of Item because the parameters are different. */
570
781
  export interface EventSourceItem {
571
- /** TODO */
572
- subscription_id: string;
573
- /** TODO */
782
+ /** The unique identifier for the Event Subscription that this Event Source is attached to. */
783
+ subscriptionId: string;
784
+ /** Type of event for which an event subscription will trigger */
574
785
  type: string;
575
786
  }
576
787
  /** This is needed instead of Paging because the parameters are different. We also don't need the typical pagination params because pagination of this isn't necessary or supported. */
577
788
  export interface EventSourcePaging {
578
- /** TODO */
579
- subscription_id: string;
789
+ /** The unique identifier for the Event Subscription that this Event Source is attached to. */
790
+ subscriptionId: string;
580
791
  }
581
792
  export interface IPPolicyCreate {
582
793
  /** human-readable description of the source IPs of this IP policy. optional, max 255 bytes. */
583
794
  description: string;
584
795
  /** arbitrary user-defined machine-readable data of this IP policy. optional, max 4096 bytes. */
585
796
  metadata: string;
586
- /** the IP policy action. Supported values are allow or deny */
797
+ /** the IP policy action. Supported values are `allow` or `deny` */
587
798
  action: string;
588
799
  }
589
800
  export interface IPPolicyUpdate {
@@ -599,21 +810,21 @@ export interface IPPolicy {
599
810
  /** URI of the IP Policy API resource */
600
811
  uri: string;
601
812
  /** timestamp when the IP policy was created, RFC 3339 format */
602
- created_at: string;
813
+ createdAt: string;
603
814
  /** human-readable description of the source IPs of this IP policy. optional, max 255 bytes. */
604
815
  description: string;
605
816
  /** arbitrary user-defined machine-readable data of this IP policy. optional, max 4096 bytes. */
606
817
  metadata: string;
607
- /** the IP policy action. Supported values are allow or deny */
818
+ /** the IP policy action. Supported values are `allow` or `deny` */
608
819
  action: string;
609
820
  }
610
821
  export interface IPPolicyList {
611
822
  /** the list of all IP policies on this account */
612
- ip_policies: Array<IPPolicy>;
823
+ ipPolicies: Array<IPPolicy>;
613
824
  /** URI of the IP policy list API resource */
614
825
  uri: string;
615
826
  /** URI of the next page, or null if there is no next page */
616
- next_page_uri?: string;
827
+ nextPageUri?: string;
617
828
  }
618
829
  export interface IPPolicyRuleCreate {
619
830
  /** human-readable description of the source IPs of this IP rule. optional, max 255 bytes. */
@@ -623,7 +834,7 @@ export interface IPPolicyRuleCreate {
623
834
  /** an IP or IP range specified in CIDR notation. IPv4 and IPv6 are both supported. */
624
835
  cidr: string;
625
836
  /** ID of the IP policy this IP policy rule will be attached to */
626
- ip_policy_id: string;
837
+ ipPolicyId: string;
627
838
  }
628
839
  export interface IPPolicyRuleUpdate {
629
840
  id: string;
@@ -640,7 +851,7 @@ export interface IPPolicyRule {
640
851
  /** URI of the IP policy rule API resource */
641
852
  uri: string;
642
853
  /** timestamp when the IP policy rule was created, RFC 3339 format */
643
- created_at: string;
854
+ createdAt: string;
644
855
  /** human-readable description of the source IPs of this IP rule. optional, max 255 bytes. */
645
856
  description: string;
646
857
  /** arbitrary user-defined machine-readable data of this IP policy rule. optional, max 4096 bytes. */
@@ -648,27 +859,27 @@ export interface IPPolicyRule {
648
859
  /** an IP or IP range specified in CIDR notation. IPv4 and IPv6 are both supported. */
649
860
  cidr: string;
650
861
  /** object describing the IP policy this IP Policy Rule belongs to */
651
- ip_policy: Ref;
862
+ ipPolicy: Ref;
652
863
  }
653
864
  export interface IPPolicyRuleList {
654
865
  /** the list of all IP policy rules on this account */
655
- ip_policy_rules: Array<IPPolicyRule>;
866
+ ipPolicyRules: Array<IPPolicyRule>;
656
867
  /** URI of the IP policy rule list API resource */
657
868
  uri: string;
658
869
  /** URI of the next page, or null if there is no next page */
659
- next_page_uri?: string;
870
+ nextPageUri?: string;
660
871
  }
661
872
  export interface IPRestrictionCreate {
662
873
  /** human-readable description of this IP restriction. optional, max 255 bytes. */
663
874
  description: string;
664
875
  /** arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes. */
665
876
  metadata: string;
666
- /** true if the IP restriction will be enforce. if false, only warnings will be issued */
877
+ /** true if the IP restriction will be enforced. if false, only warnings will be issued */
667
878
  enforced: boolean;
668
- /** 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 */
879
+ /** 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` */
669
880
  type: string;
670
881
  /** the set of IP policy identifiers that are used to enforce the restriction */
671
- ip_policy_ids: Array<string>;
882
+ ipPolicyIds: Array<string>;
672
883
  }
673
884
  export interface IPRestrictionUpdate {
674
885
  id: string;
@@ -676,10 +887,10 @@ export interface IPRestrictionUpdate {
676
887
  description?: string;
677
888
  /** arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes. */
678
889
  metadata?: string;
679
- /** true if the IP restriction will be enforce. if false, only warnings will be issued */
890
+ /** true if the IP restriction will be enforced. if false, only warnings will be issued */
680
891
  enforced?: boolean;
681
892
  /** the set of IP policy identifiers that are used to enforce the restriction */
682
- ip_policy_ids: Array<string>;
893
+ ipPolicyIds: Array<string>;
683
894
  }
684
895
  export interface IPRestriction {
685
896
  /** unique identifier for this IP restriction */
@@ -687,424 +898,30 @@ export interface IPRestriction {
687
898
  /** URI of the IP restriction API resource */
688
899
  uri: string;
689
900
  /** timestamp when the IP restriction was created, RFC 3339 format */
690
- created_at: string;
901
+ createdAt: string;
691
902
  /** human-readable description of this IP restriction. optional, max 255 bytes. */
692
903
  description: string;
693
904
  /** arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes. */
694
905
  metadata: string;
695
- /** true if the IP restriction will be enforce. if false, only warnings will be issued */
906
+ /** true if the IP restriction will be enforced. if false, only warnings will be issued */
696
907
  enforced: boolean;
697
- /** 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 */
908
+ /** 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` */
698
909
  type: string;
699
910
  /** the set of IP policies that are used to enforce the restriction */
700
- ip_policies: Array<Ref>;
911
+ ipPolicies: Array<Ref>;
701
912
  }
702
913
  export interface IPRestrictionList {
703
914
  /** the list of all IP restrictions on this account */
704
- ip_restrictions: Array<IPRestriction>;
915
+ ipRestrictions: Array<IPRestriction>;
705
916
  /** URI of the IP resrtrictions list API resource */
706
917
  uri: string;
707
918
  /** URI of the next page, or null if there is no next page */
708
- next_page_uri?: string;
709
- }
710
- export interface IPWhitelistEntryCreate {
711
- /** human-readable description of the source IPs for this IP whitelist entry. optional, max 255 bytes. */
712
- description: string;
713
- /** arbitrary user-defined machine-readable data of this IP whitelist entry. optional, max 4096 bytes. */
714
- metadata: string;
715
- /** an IP address or IP network range in CIDR notation (e.g. 10.1.1.1 or 10.1.0.0/16) of addresses that will be whitelisted to communicate with your tunnel endpoints */
716
- ip_net: string;
717
- }
718
- export interface IPWhitelistEntryUpdate {
719
- id: string;
720
- /** human-readable description of the source IPs for this IP whitelist entry. optional, max 255 bytes. */
721
- description?: string;
722
- /** arbitrary user-defined machine-readable data of this IP whitelist entry. optional, max 4096 bytes. */
723
- metadata?: string;
724
- }
725
- export interface IPWhitelistEntry {
726
- /** unique identifier for this IP whitelist entry */
727
- id: string;
728
- /** URI of the IP whitelist entry API resource */
729
- uri: string;
730
- /** timestamp when the IP whitelist entry was created, RFC 3339 format */
731
- created_at: string;
732
- /** human-readable description of the source IPs for this IP whitelist entry. optional, max 255 bytes. */
733
- description: string;
734
- /** arbitrary user-defined machine-readable data of this IP whitelist entry. optional, max 4096 bytes. */
735
- metadata: string;
736
- /** an IP address or IP network range in CIDR notation (e.g. 10.1.1.1 or 10.1.0.0/16) of addresses that will be whitelisted to communicate with your tunnel endpoints */
737
- ip_net: string;
738
- }
739
- export interface IPWhitelistEntryList {
740
- /** the list of all IP whitelist entries on this account */
741
- whitelist: Array<IPWhitelistEntry>;
742
- /** URI of the IP whitelist API resource */
743
- uri: string;
744
- /** URI of the next page, or null if there is no next page */
745
- next_page_uri?: string;
746
- }
747
- export interface EndpointConfiguration {
748
- /** unique identifier of this endpoint configuration */
749
- id: string;
750
- /** they type of traffic this endpoint configuration can be applied to. one of: http, https, tcp */
751
- type: string;
752
- /** human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes */
753
- description: string;
754
- /** arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes. */
755
- metadata: string;
756
- /** timestamp when the endpoint configuration was created, RFC 3339 format */
757
- created_at: string;
758
- /** URI of the endpoint configuration API resource */
759
- uri: string;
760
- /** circuit breaker module configuration or null */
761
- circuit_breaker?: EndpointCircuitBreaker;
762
- /** compression module configuration or null */
763
- compression?: EndpointCompression;
764
- /** request headers module configuration or null */
765
- request_headers?: EndpointRequestHeaders;
766
- /** response headers module configuration or null */
767
- response_headers?: EndpointResponseHeaders;
768
- /** ip policy module configuration or null */
769
- ip_policy?: EndpointIPPolicy;
770
- /** mutual TLS module configuration or null */
771
- mutual_tls?: EndpointMutualTLS;
772
- /** TLS termination module configuration or null */
773
- tls_termination?: EndpointTLSTermination;
774
- /** webhook validation module configuration or null */
775
- webhook_validation?: EndpointWebhookValidation;
776
- /** oauth module configuration or null */
777
- oauth?: EndpointOAuth;
778
- /** logging module configuration or null */
779
- logging?: EndpointLogging;
780
- /** saml module configuration or null */
781
- saml?: EndpointSAML;
782
- /** oidc module configuration or null */
783
- oidc?: EndpointOIDC;
784
- }
785
- export interface EndpointConfigurationList {
786
- /** the list of all endpoint configurations on this account */
787
- endpoint_configurations: Array<EndpointConfiguration>;
788
- /** URI of the endpoint configurations list API resource */
789
- uri: string;
790
- /** URI of the next page, or null if there is no next page */
791
- next_page_uri?: string;
792
- }
793
- export interface EndpointConfigurationUpdate {
794
- /** unique identifier of this endpoint configuration */
795
- id: string;
796
- /** human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes */
797
- description?: string;
798
- /** arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes. */
799
- metadata?: string;
800
- /** circuit breaker module configuration or null */
801
- circuit_breaker?: EndpointCircuitBreaker;
802
- /** compression module configuration or null */
803
- compression?: EndpointCompression;
804
- /** request headers module configuration or null */
805
- request_headers?: EndpointRequestHeaders;
806
- /** response headers module configuration or null */
807
- response_headers?: EndpointResponseHeaders;
808
- /** ip policy module configuration or null */
809
- ip_policy?: EndpointIPPolicyMutate;
810
- /** mutual TLS module configuration or null */
811
- mutual_tls?: EndpointMutualTLSMutate;
812
- /** TLS termination module configuration or null */
813
- tls_termination?: EndpointTLSTermination;
814
- /** webhook validation module configuration or null */
815
- webhook_validation?: EndpointWebhookValidation;
816
- /** oauth module configuration or null */
817
- oauth?: EndpointOAuth;
818
- /** logging module configuration or null */
819
- logging?: EndpointLoggingMutate;
820
- /** saml module configuration or null */
821
- saml?: EndpointSAMLMutate;
822
- /** oidc module configuration or null */
823
- oidc?: EndpointOIDC;
824
- }
825
- export interface EndpointConfigurationCreate {
826
- /** they type of traffic this endpoint configuration can be applied to. one of: http, https, tcp */
827
- type: string;
828
- /** human-readable description of what this endpoint configuration will be do when applied or what traffic it will be applied to. Optional, max 255 bytes */
829
- description: string;
830
- /** arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes. */
831
- metadata: string;
832
- /** circuit breaker module configuration or null */
833
- circuit_breaker?: EndpointCircuitBreaker;
834
- /** compression module configuration or null */
835
- compression?: EndpointCompression;
836
- /** request headers module configuration or null */
837
- request_headers?: EndpointRequestHeaders;
838
- /** response headers module configuration or null */
839
- response_headers?: EndpointResponseHeaders;
840
- /** ip policy module configuration or null */
841
- ip_policy?: EndpointIPPolicyMutate;
842
- /** mutual TLS module configuration or null */
843
- mutual_tls?: EndpointMutualTLSMutate;
844
- /** TLS termination module configuration or null */
845
- tls_termination?: EndpointTLSTermination;
846
- /** webhook validation module configuration or null */
847
- webhook_validation?: EndpointWebhookValidation;
848
- /** oauth module configuration or null */
849
- oauth?: EndpointOAuth;
850
- /** logging module configuration or null */
851
- logging?: EndpointLoggingMutate;
852
- /** saml module configuration or null */
853
- saml?: EndpointSAMLMutate;
854
- /** oidc module configuration or null */
855
- oidc?: EndpointOIDC;
856
- }
857
- export interface EndpointWebhookValidation {
858
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
859
- enabled?: boolean;
860
- /** 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. */
861
- provider: string;
862
- /** a string secret used to validate requests from the given provider. All providers except AWS SNS require a secret */
863
- secret: string;
864
- }
865
- export interface EndpointCompression {
866
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
867
- enabled?: boolean;
868
- }
869
- export interface EndpointMutualTLS {
870
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
871
- enabled?: boolean;
872
- /** PEM-encoded CA certificates that will be used to validate. Multiple CAs may be provided by concatenating them together. */
873
- certificate_authorities: Array<Ref>;
874
- }
875
- export interface EndpointMutualTLSMutate {
876
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
877
- enabled?: boolean;
878
- /** list of certificate authorities that will be used to validate the TLS client certificate presnted by the initiatiator of the TLS connection */
879
- certificate_authority_ids: Array<string>;
880
- }
881
- export interface EndpointTLSTermination {
882
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
883
- enabled?: boolean;
884
- /** edge if the ngrok edge should terminate TLS traffic, upstream if TLS traffic should be passed through to the upstream ngrok agent / application server for termination. if upstream is chosen, most other modules will be disallowed because they rely on the ngrok edge being able to access the underlying traffic. */
885
- terminate_at: string;
886
- /** The minimum TLS version used for termination and advertised to the client during the TLS handshake. if unspecified, ngrok will choose an industry-safe default. This value must be null if terminate_at is set to upstream. */
887
- min_version?: string;
888
- }
889
- export interface EndpointBasicAuth {
890
- }
891
- export interface EndpointLogging {
892
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
893
- enabled?: boolean;
894
- /** list of all EventStreams that will be used to configure and export this endpoint's logs */
895
- event_streams: Array<Ref>;
896
- }
897
- export interface EndpointLoggingMutate {
898
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
899
- enabled?: boolean;
900
- /** list of all EventStreams that will be used to configure and export this endpoint's logs */
901
- event_stream_ids: Array<string>;
902
- }
903
- export interface EndpointRequestHeaders {
904
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
905
- enabled?: boolean;
906
- /** a map of header key to header value that will be injected into the HTTP Request before being sent to the upstream application server */
907
- add: Map<string, string>;
908
- /** a list of header names that will be removed from the HTTP Request before being sent to the upstream application server */
909
- remove: Array<string>;
910
- }
911
- export interface EndpointResponseHeaders {
912
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
913
- enabled?: boolean;
914
- /** a map of header key to header value that will be injected into the HTTP Response returned to the HTTP client */
915
- add: Map<string, string>;
916
- /** a list of header names that will be removed from the HTTP Response returned to the HTTP client */
917
- remove: Array<string>;
918
- }
919
- export interface EndpointIPPolicy {
920
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
921
- enabled?: boolean;
922
- ip_policies: Array<Ref>;
923
- }
924
- export interface EndpointIPPolicyMutate {
925
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
926
- enabled?: boolean;
927
- /** list of all IP policies that will be used to check if a source IP is allowed access to the endpoint */
928
- ip_policy_ids: Array<string>;
929
- }
930
- export interface EndpointCircuitBreaker {
931
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
932
- enabled?: boolean;
933
- /** Integer number of seconds after which the circuit is tripped to wait before re-evaluating upstream health */
934
- tripped_duration: number;
935
- /** Integer number of seconds in the statistical rolling window that metrics are retained for. */
936
- rolling_window: number;
937
- /** Integer number of buckets into which metrics are retained. Max 128. */
938
- num_buckets: number;
939
- /** Integer number of requests in a rolling window that will trip the circuit. Helpful if traffic volume is low. */
940
- volume_threshold: number;
941
- /** Error threshold percentage should be between 0 - 1.0, not 0-100.0 */
942
- error_threshold_percentage: number;
943
- }
944
- export interface EndpointOAuth {
945
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
946
- enabled?: boolean;
947
- /** an object which defines the identity provider to use for authentication and configuration for who may access the endpoint */
948
- provider: EndpointOAuthProvider;
949
- /** Do not enforce authentication on HTTP OPTIONS requests. necessary if you are supporting CORS. */
950
- options_passthrough: boolean;
951
- /** the prefix of the session cookie that ngrok sets on the http client to cache authentication. default is 'ngrok.' */
952
- cookie_prefix: string;
953
- /** Integer number of seconds of inactivity after which if the user has not accessed the endpoint, their session will time out and they will be forced to reauthenticate. */
954
- inactivity_timeout: number;
955
- /** Integer number of seconds of the maximum duration of an authenticated session. After this period is exceeded, a user must reauthenticate. */
956
- maximum_duration: number;
957
- /** Integer number of seconds after which ngrok guarantees it will refresh user state from the identity provider and recheck whether the user is still authorized to access the endpoint. This is the preferred tunable to use to enforce a minimum amount of time after which a revoked user will no longer be able to access the resource. */
958
- auth_check_interval: number;
959
- }
960
- export interface EndpointOAuthProvider {
961
- /** configuration for using github as the identity provider */
962
- github?: EndpointOAuthGitHub;
963
- /** configuration for using facebook as the identity provider */
964
- facebook?: EndpointOAuthFacebook;
965
- /** configuration for using microsoft as the identity provider */
966
- microsoft?: EndpointOAuthMicrosoft;
967
- /** configuration for using google as the identity provider */
968
- google?: EndpointOAuthGoogle;
969
- }
970
- export interface EndpointOAuthGitHub {
971
- /** the OAuth app client ID. retrieve it from the identity provider's dashboard where you created your own OAuth app. optional. if unspecified, ngrok will use its own managed oauth application which has additional restrictions. see the OAuth module docs for more details. if present, client_secret must be present as well. */
972
- client_id?: string;
973
- /** 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. */
974
- client_secret?: string;
975
- /** 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) */
976
- scopes: Array<string>;
977
- /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
978
- email_addresses: Array<string>;
979
- /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
980
- email_domains: Array<string>;
981
- /** 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 */
982
- teams: Array<string>;
983
- /** 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' */
984
- organizations: Array<string>;
985
- }
986
- export interface EndpointOAuthFacebook {
987
- /** the OAuth app client ID. retrieve it from the identity provider's dashboard where you created your own OAuth app. optional. if unspecified, ngrok will use its own managed oauth application which has additional restrictions. see the OAuth module docs for more details. if present, client_secret must be present as well. */
988
- client_id?: string;
989
- /** 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. */
990
- client_secret?: string;
991
- /** 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) */
992
- scopes: Array<string>;
993
- /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
994
- email_addresses: Array<string>;
995
- /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
996
- email_domains: Array<string>;
997
- }
998
- export interface EndpointOAuthMicrosoft {
999
- /** the OAuth app client ID. retrieve it from the identity provider's dashboard where you created your own OAuth app. optional. if unspecified, ngrok will use its own managed oauth application which has additional restrictions. see the OAuth module docs for more details. if present, client_secret must be present as well. */
1000
- client_id?: string;
1001
- /** 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. */
1002
- client_secret?: string;
1003
- /** 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) */
1004
- scopes: Array<string>;
1005
- /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
1006
- email_addresses: Array<string>;
1007
- /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
1008
- email_domains: Array<string>;
1009
- }
1010
- export interface EndpointOAuthGoogle {
1011
- /** the OAuth app client ID. retrieve it from the identity provider's dashboard where you created your own OAuth app. optional. if unspecified, ngrok will use its own managed oauth application which has additional restrictions. see the OAuth module docs for more details. if present, client_secret must be present as well. */
1012
- client_id?: string;
1013
- /** 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. */
1014
- client_secret?: string;
1015
- /** 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) */
1016
- scopes: Array<string>;
1017
- /** a list of email addresses of users authenticated by identity provider who are allowed access to the endpoint */
1018
- email_addresses: Array<string>;
1019
- /** a list of email domains of users authenticated by identity provider who are allowed access to the endpoint */
1020
- email_domains: Array<string>;
1021
- }
1022
- export interface EndpointSAML {
1023
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
1024
- enabled?: boolean;
1025
- /** Do not enforce authentication on HTTP OPTIONS requests. necessary if you are supporting CORS. */
1026
- options_passthrough: boolean;
1027
- /** the prefix of the session cookie that ngrok sets on the http client to cache authentication. default is 'ngrok.' */
1028
- cookie_prefix: string;
1029
- /** Integer number of seconds of inactivity after which if the user has not accessed the endpoint, their session will time out and they will be forced to reauthenticate. */
1030
- inactivity_timeout: number;
1031
- /** Integer number of seconds of the maximum duration of an authenticated session. After this period is exceeded, a user must reauthenticate. */
1032
- maximum_duration: number;
1033
- /** The full XML IdP EntityDescriptor. Your IdP may provide this to you as a a file to download or as a URL. */
1034
- idp_metadata: string;
1035
- /** If true, indicates that whenever we redirect a user to the IdP for authentication that the IdP must prompt the user for authentication credentials even if the user already has a valid session with the IdP. */
1036
- force_authn: boolean;
1037
- /** If true, the IdP may initiate a login directly (e.g. the user does not need to visit the endpoint first and then be redirected). The IdP should set the RelayState parameter to the target URL of the resource they want the user to be redirected to after the SAML login assertion has been processed. */
1038
- allow_idp_initiated?: boolean;
1039
- /** If present, only users who are a member of one of the listed groups may access the target endpoint. */
1040
- authorized_groups: Array<string>;
1041
- /** The SP Entity's unique ID. This always takes the form of a URL. In ngrok's implementation, this URL is the same as the metadata URL. This will need to be specified to the IdP as configuration. */
1042
- entity_id: string;
1043
- /** The public URL of the SP's Assertion Consumer Service. This is where the IdP will redirect to during an authentication flow. This will need to be specified to the IdP as configuration. */
1044
- assertion_consumer_service_url: string;
1045
- /** The public URL of the SP's Single Logout Service. This is where the IdP will redirect to during a single logout flow. This will optionally need to be specified to the IdP as configuration. */
1046
- single_logout_url: string;
1047
- /** PEM-encoded x.509 certificate of the key pair that is used to sign all SAML requests that the ngrok SP makes to the IdP. Many IdPs do not support request signing verification, but we highly recommend specifying this in the IdP's configuration if it is supported. */
1048
- request_signing_certificate_pem: string;
1049
- /** A public URL where the SP's metadata is hosted. If an IdP supports dynamic configuration, this is the URL it can use to retrieve the SP metadata. */
1050
- metadata_url: string;
1051
- }
1052
- export interface EndpointSAMLMutate {
1053
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
1054
- enabled?: boolean;
1055
- /** Do not enforce authentication on HTTP OPTIONS requests. necessary if you are supporting CORS. */
1056
- options_passthrough: boolean;
1057
- /** the prefix of the session cookie that ngrok sets on the http client to cache authentication. default is 'ngrok.' */
1058
- cookie_prefix: string;
1059
- /** Integer number of seconds of inactivity after which if the user has not accessed the endpoint, their session will time out and they will be forced to reauthenticate. */
1060
- inactivity_timeout: number;
1061
- /** Integer number of seconds of the maximum duration of an authenticated session. After this period is exceeded, a user must reauthenticate. */
1062
- maximum_duration: number;
1063
- /** The full XML IdP EntityDescriptor. Your IdP may provide this to you as a a file to download or as a URL. */
1064
- idp_metadata: string;
1065
- /** If true, indicates that whenever we redirect a user to the IdP for authentication that the IdP must prompt the user for authentication credentials even if the user already has a valid session with the IdP. */
1066
- force_authn: boolean;
1067
- /** If true, the IdP may initiate a login directly (e.g. the user does not need to visit the endpoint first and then be redirected). The IdP should set the RelayState parameter to the target URL of the resource they want the user to be redirected to after the SAML login assertion has been processed. */
1068
- allow_idp_initiated?: boolean;
1069
- /** If present, only users who are a member of one of the listed groups may access the target endpoint. */
1070
- authorized_groups: Array<string>;
1071
- }
1072
- export interface EndpointOIDC {
1073
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
1074
- enabled?: boolean;
1075
- /** Do not enforce authentication on HTTP OPTIONS requests. necessary if you are supporting CORS. */
1076
- options_passthrough: boolean;
1077
- /** the prefix of the session cookie that ngrok sets on the http client to cache authentication. default is 'ngrok.' */
1078
- cookie_prefix: string;
1079
- /** Integer number of seconds of inactivity after which if the user has not accessed the endpoint, their session will time out and they will be forced to reauthenticate. */
1080
- inactivity_timeout: number;
1081
- /** Integer number of seconds of the maximum duration of an authenticated session. After this period is exceeded, a user must reauthenticate. */
1082
- maximum_duration: number;
1083
- /** URL of the OIDC "OpenID provider". This is the base URL used for discovery. */
1084
- issuer: string;
1085
- /** The OIDC app's client ID and OIDC audience. */
1086
- client_id: string;
1087
- /** The OIDC app's client secret. */
1088
- client_secret: string;
1089
- /** The set of scopes to request from the OIDC identity provider. */
1090
- scopes: Array<string>;
1091
- }
1092
- export interface EndpointBackend {
1093
- /** true if the module will be applied to traffic, false to disable. default true if unspecified */
1094
- enabled?: boolean;
1095
- /** backend to be used to back this endpoint */
1096
- backend: Ref;
1097
- }
1098
- export interface EndpointBackendMutate {
919
+ nextPageUri?: string;
1099
920
  }
1100
921
  export interface EndpointLoggingReplace {
1101
922
  id: string;
1102
923
  module: EndpointLoggingMutate;
1103
924
  }
1104
- export interface EndpointBasicAuthReplace {
1105
- id: string;
1106
- module: EndpointBasicAuth;
1107
- }
1108
925
  export interface EndpointCircuitBreakerReplace {
1109
926
  id: string;
1110
927
  module: EndpointCircuitBreaker;
@@ -1149,10 +966,6 @@ export interface EndpointOIDCReplace {
1149
966
  id: string;
1150
967
  module: EndpointOIDC;
1151
968
  }
1152
- export interface EndpointBackendReplace {
1153
- id: string;
1154
- module: EndpointBackendMutate;
1155
- }
1156
969
  export interface ReservedAddrCreate {
1157
970
  /** human-readable description of what this reserved address will be used for */
1158
971
  description: string;
@@ -1161,7 +974,7 @@ export interface ReservedAddrCreate {
1161
974
  /** reserve the address in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) */
1162
975
  region: string;
1163
976
  /** ID of an endpoint configuration of type tcp that will be used to handle inbound traffic to this address */
1164
- endpoint_configuration_id: string;
977
+ endpointConfigurationId?: string;
1165
978
  }
1166
979
  export interface ReservedAddrUpdate {
1167
980
  id: string;
@@ -1170,7 +983,7 @@ export interface ReservedAddrUpdate {
1170
983
  /** arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes. */
1171
984
  metadata?: string;
1172
985
  /** ID of an endpoint configuration of type tcp that will be used to handle inbound traffic to this address */
1173
- endpoint_configuration_id?: string;
986
+ endpointConfigurationId?: string;
1174
987
  }
1175
988
  export interface ReservedAddr {
1176
989
  /** unique reserved address resource identifier */
@@ -1178,7 +991,7 @@ export interface ReservedAddr {
1178
991
  /** URI of the reserved address API resource */
1179
992
  uri: string;
1180
993
  /** timestamp when the reserved address was created, RFC 3339 format */
1181
- created_at: string;
994
+ createdAt: string;
1182
995
  /** human-readable description of what this reserved address will be used for */
1183
996
  description: string;
1184
997
  /** arbitrary user-defined machine-readable data of this reserved address. Optional, max 4096 bytes. */
@@ -1188,15 +1001,15 @@ export interface ReservedAddr {
1188
1001
  /** reserve the address in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) */
1189
1002
  region: string;
1190
1003
  /** object reference to the endpoint configuration that will be applied to traffic to this address */
1191
- endpoint_configuration?: Ref;
1004
+ endpointConfiguration?: Ref;
1192
1005
  }
1193
1006
  export interface ReservedAddrList {
1194
1007
  /** the list of all reserved addresses on this account */
1195
- reserved_addrs: Array<ReservedAddr>;
1008
+ reservedAddrs: Array<ReservedAddr>;
1196
1009
  /** URI of the reserved address list API resource */
1197
1010
  uri: string;
1198
1011
  /** URI of the next page, or null if there is no next page */
1199
- next_page_uri?: string;
1012
+ nextPageUri?: string;
1200
1013
  }
1201
1014
  export interface ReservedDomainCreate {
1202
1015
  /** 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. */
@@ -1208,13 +1021,13 @@ export interface ReservedDomainCreate {
1208
1021
  /** arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes. */
1209
1022
  metadata: string;
1210
1023
  /** ID of an endpoint configuration of type http that will be used to handle inbound http traffic to this domain */
1211
- http_endpoint_configuration_id: string;
1024
+ httpEndpointConfigurationId?: string;
1212
1025
  /** ID of an endpoint configuration of type https that will be used to handle inbound https traffic to this domain */
1213
- https_endpoint_configuration_id: string;
1214
- /** ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with certificate_management_policy. */
1215
- certificate_id?: string;
1216
- /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with certificate_id. */
1217
- certificate_management_policy?: ReservedDomainCertPolicy;
1026
+ httpsEndpointConfigurationId?: string;
1027
+ /** ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with `certificate_management_policy`. */
1028
+ certificateId?: string;
1029
+ /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with `certificate_id`. */
1030
+ certificateManagementPolicy?: ReservedDomainCertPolicy;
1218
1031
  }
1219
1032
  export interface ReservedDomainUpdate {
1220
1033
  id: string;
@@ -1223,13 +1036,13 @@ export interface ReservedDomainUpdate {
1223
1036
  /** arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes. */
1224
1037
  metadata?: string;
1225
1038
  /** ID of an endpoint configuration of type http that will be used to handle inbound http traffic to this domain */
1226
- http_endpoint_configuration_id?: string;
1039
+ httpEndpointConfigurationId?: string;
1227
1040
  /** ID of an endpoint configuration of type https that will be used to handle inbound https traffic to this domain */
1228
- https_endpoint_configuration_id?: string;
1229
- /** ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with certificate_management_policy. */
1230
- certificate_id?: string;
1231
- /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with certificate_id. */
1232
- certificate_management_policy?: ReservedDomainCertPolicy;
1041
+ httpsEndpointConfigurationId?: string;
1042
+ /** ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with `certificate_management_policy`. */
1043
+ certificateId?: string;
1044
+ /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with `certificate_id`. */
1045
+ certificateManagementPolicy?: ReservedDomainCertPolicy;
1233
1046
  }
1234
1047
  export interface ReservedDomain {
1235
1048
  /** unique reserved domain resource identifier */
@@ -1237,7 +1050,7 @@ export interface ReservedDomain {
1237
1050
  /** URI of the reserved domain API resource */
1238
1051
  uri: string;
1239
1052
  /** timestamp when the reserved domain was created, RFC 3339 format */
1240
- created_at: string;
1053
+ createdAt: string;
1241
1054
  /** human-readable description of what this reserved domain will be used for */
1242
1055
  description: string;
1243
1056
  /** arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes. */
@@ -1247,71 +1060,61 @@ export interface ReservedDomain {
1247
1060
  /** reserve the domain in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa) */
1248
1061
  region: string;
1249
1062
  /** DNS CNAME target for a custom hostname, or null if the reserved domain is a subdomain of *.ngrok.io */
1250
- cname_target?: string;
1063
+ cnameTarget?: string;
1251
1064
  /** object referencing the endpoint configuration applied to http traffic on this domain */
1252
- http_endpoint_configuration?: Ref;
1065
+ httpEndpointConfiguration?: Ref;
1253
1066
  /** object referencing the endpoint configuration applied to https traffic on this domain */
1254
- https_endpoint_configuration?: Ref;
1067
+ httpsEndpointConfiguration?: Ref;
1255
1068
  /** object referencing the TLS certificate used for connections to this domain. This can be either a user-uploaded certificate, the most recently issued automatic one, or null otherwise. */
1256
1069
  certificate?: Ref;
1257
1070
  /** configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled */
1258
- certificate_management_policy?: ReservedDomainCertPolicy;
1071
+ certificateManagementPolicy?: ReservedDomainCertPolicy;
1259
1072
  /** status of the automatic certificate management for this domain, or null if automatic management is disabled */
1260
- certificate_management_status?: ReservedDomainCertStatus;
1073
+ certificateManagementStatus?: ReservedDomainCertStatus;
1074
+ /** DNS CNAME target for the host _acme-challenge.example.com, where example.com is your reserved domain name. This is required to issue certificates for wildcard, non-ngrok reserved domains. Must be null for non-wildcard domains and ngrok subdomains. */
1075
+ acmeChallengeCnameTarget?: string;
1261
1076
  }
1262
1077
  export interface ReservedDomainList {
1263
1078
  /** the list of all reserved domains on this account */
1264
- reserved_domains: Array<ReservedDomain>;
1079
+ reservedDomains: Array<ReservedDomain>;
1265
1080
  /** URI of the reserved domain list API resource */
1266
1081
  uri: string;
1267
1082
  /** URI of the next page, or null if there is no next page */
1268
- next_page_uri?: string;
1083
+ nextPageUri?: string;
1269
1084
  }
1270
1085
  export interface ReservedDomainCertPolicy {
1271
1086
  /** certificate authority to request certificates from. The only supported value is letsencrypt. */
1272
1087
  authority: string;
1273
1088
  /** type of private key to use when requesting certificates. Defaults to rsa, can be either rsa or ecdsa. */
1274
- private_key_type: string;
1089
+ privateKeyType: string;
1275
1090
  }
1276
1091
  export interface ReservedDomainCertStatus {
1277
1092
  /** timestamp when the next renewal will be requested, RFC 3339 format */
1278
- renews_at?: string;
1093
+ renewsAt?: string;
1279
1094
  /** status of the certificate provisioning job, or null if the certificiate isn't being provisioned or renewed */
1280
- provisioning_job?: ReservedDomainCertJob;
1281
- }
1282
- export interface ReservedDomainCertNSTarget {
1283
- /** the zone that the nameservers need to be applied to */
1284
- zone: string;
1285
- /** the nameservers the user must add */
1286
- nameservers: Array<string>;
1095
+ provisioningJob?: ReservedDomainCertJob;
1287
1096
  }
1288
1097
  export interface ReservedDomainCertJob {
1289
1098
  /** 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). */
1290
- error_code?: string;
1099
+ errorCode?: string;
1291
1100
  /** a message describing the current status or error */
1292
1101
  msg: string;
1293
1102
  /** timestamp when the provisioning job started, RFC 3339 format */
1294
- started_at: string;
1103
+ startedAt: string;
1295
1104
  /** timestamp when the provisioning job will be retried */
1296
- retries_at?: string;
1297
- /** if present, indicates the dns nameservers that the user must configure to complete the provisioning process of a wildcard certificate */
1298
- ns_targets: Array<ReservedDomainCertNSTarget>;
1299
- }
1300
- export interface RootResponse {
1301
- uri: string;
1302
- subresource_uris: Map<string, string>;
1105
+ retriesAt?: string;
1303
1106
  }
1304
1107
  export interface SSHCertificateAuthorityCreate {
1305
1108
  /** human-readable description of this SSH Certificate Authority. optional, max 255 bytes. */
1306
1109
  description: string;
1307
1110
  /** arbitrary user-defined machine-readable data of this SSH Certificate Authority. optional, max 4096 bytes. */
1308
1111
  metadata: string;
1309
- /** the type of private key to generate. one of rsa, ecdsa, ed25519 */
1310
- private_key_type: string;
1112
+ /** the type of private key to generate. one of `rsa`, `ecdsa`, `ed25519` */
1113
+ privateKeyType: string;
1311
1114
  /** the type of elliptic curve to use when creating an ECDSA key */
1312
- elliptic_curve: string;
1313
- /** the key size to use when creating an RSA key. one of 2048 or 4096 */
1314
- key_size: number;
1115
+ ellipticCurve: string;
1116
+ /** the key size to use when creating an RSA key. one of `2048` or `4096` */
1117
+ keySize: number;
1315
1118
  }
1316
1119
  export interface SSHCertificateAuthorityUpdate {
1317
1120
  id: string;
@@ -1326,33 +1129,33 @@ export interface SSHCertificateAuthority {
1326
1129
  /** URI of the SSH Certificate Authority API resource */
1327
1130
  uri: string;
1328
1131
  /** timestamp when the SSH Certificate Authority API resource was created, RFC 3339 format */
1329
- created_at: string;
1132
+ createdAt: string;
1330
1133
  /** human-readable description of this SSH Certificate Authority. optional, max 255 bytes. */
1331
1134
  description: string;
1332
1135
  /** arbitrary user-defined machine-readable data of this SSH Certificate Authority. optional, max 4096 bytes. */
1333
1136
  metadata: string;
1334
1137
  /** raw public key for this SSH Certificate Authority */
1335
- public_key: string;
1138
+ publicKey: string;
1336
1139
  /** the type of private key for this SSH Certificate Authority */
1337
- key_type: string;
1140
+ keyType: string;
1338
1141
  }
1339
1142
  export interface SSHCertificateAuthorityList {
1340
1143
  /** the list of all certificate authorities on this account */
1341
- ssh_certificate_authorities: Array<SSHCertificateAuthority>;
1144
+ sshCertificateAuthorities: Array<SSHCertificateAuthority>;
1342
1145
  /** URI of the certificates authorities list API resource */
1343
1146
  uri: string;
1344
1147
  /** URI of the next page, or null if there is no next page */
1345
- next_page_uri?: string;
1148
+ nextPageUri?: string;
1346
1149
  }
1347
1150
  export interface SSHCredentialCreate {
1348
1151
  /** human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes. */
1349
1152
  description: string;
1350
1153
  /** arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes. */
1351
1154
  metadata: string;
1352
- /** 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. */
1155
+ /** 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. */
1353
1156
  acl: Array<string>;
1354
1157
  /** the PEM-encoded public key of the SSH keypair that will be used to authenticate */
1355
- public_key: string;
1158
+ publicKey: string;
1356
1159
  }
1357
1160
  export interface SSHCredentialUpdate {
1358
1161
  id: string;
@@ -1360,7 +1163,7 @@ export interface SSHCredentialUpdate {
1360
1163
  description?: string;
1361
1164
  /** arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes. */
1362
1165
  metadata?: string;
1363
- /** 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. */
1166
+ /** 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. */
1364
1167
  acl?: Array<string>;
1365
1168
  }
1366
1169
  export interface SSHCredential {
@@ -1369,35 +1172,35 @@ export interface SSHCredential {
1369
1172
  /** URI of the ssh credential API resource */
1370
1173
  uri: string;
1371
1174
  /** timestamp when the ssh credential was created, RFC 3339 format */
1372
- created_at: string;
1175
+ createdAt: string;
1373
1176
  /** human-readable description of who or what will use the ssh credential to authenticate. Optional, max 255 bytes. */
1374
1177
  description: string;
1375
1178
  /** arbitrary user-defined machine-readable data of this ssh credential. Optional, max 4096 bytes. */
1376
1179
  metadata: string;
1377
1180
  /** the PEM-encoded public key of the SSH keypair that will be used to authenticate */
1378
- public_key: string;
1379
- /** 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. */
1181
+ publicKey: string;
1182
+ /** 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. */
1380
1183
  acl: Array<string>;
1381
1184
  }
1382
1185
  export interface SSHCredentialList {
1383
1186
  /** the list of all ssh credentials on this account */
1384
- ssh_credentials: Array<SSHCredential>;
1187
+ sshCredentials: Array<SSHCredential>;
1385
1188
  /** URI of the ssh credential list API resource */
1386
1189
  uri: string;
1387
1190
  /** URI of the next page, or null if there is no next page */
1388
- next_page_uri?: string;
1191
+ nextPageUri?: string;
1389
1192
  }
1390
1193
  export interface SSHHostCertificateCreate {
1391
1194
  /** the ssh certificate authority that is used to sign this ssh host certificate */
1392
- ssh_certificate_authority_id: string;
1195
+ sshCertificateAuthorityId: string;
1393
1196
  /** a public key in OpenSSH Authorized Keys format that this certificate signs */
1394
- public_key: string;
1197
+ publicKey: string;
1395
1198
  /** 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. */
1396
1199
  principals: Array<string>;
1397
1200
  /** The time when the host certificate becomes valid, in RFC 3339 format. Defaults to the current time if unspecified. */
1398
- valid_after: string;
1399
- /** 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. */
1400
- valid_until: string;
1201
+ validAfter: string;
1202
+ /** 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`. */
1203
+ validUntil: string;
1401
1204
  /** human-readable description of this SSH Host Certificate. optional, max 255 bytes. */
1402
1205
  description: string;
1403
1206
  /** arbitrary user-defined machine-readable data of this SSH Host Certificate. optional, max 4096 bytes. */
@@ -1416,49 +1219,49 @@ export interface SSHHostCertificate {
1416
1219
  /** URI of the SSH Host Certificate API resource */
1417
1220
  uri: string;
1418
1221
  /** timestamp when the SSH Host Certificate API resource was created, RFC 3339 format */
1419
- created_at: string;
1222
+ createdAt: string;
1420
1223
  /** human-readable description of this SSH Host Certificate. optional, max 255 bytes. */
1421
1224
  description: string;
1422
1225
  /** arbitrary user-defined machine-readable data of this SSH Host Certificate. optional, max 4096 bytes. */
1423
1226
  metadata: string;
1424
1227
  /** a public key in OpenSSH Authorized Keys format that this certificate signs */
1425
- public_key: string;
1426
- /** the key type of the public_key, one of rsa, ecdsa or ed25519 */
1427
- key_type: string;
1228
+ publicKey: string;
1229
+ /** the key type of the `public_key`, one of `rsa`, `ecdsa` or `ed25519` */
1230
+ keyType: string;
1428
1231
  /** the ssh certificate authority that is used to sign this ssh host certificate */
1429
- ssh_certificate_authority_id: string;
1232
+ sshCertificateAuthorityId: string;
1430
1233
  /** 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. */
1431
1234
  principals: Array<string>;
1432
1235
  /** the time when the ssh host certificate becomes valid, in RFC 3339 format. */
1433
- valid_after: string;
1434
- /** the time after which the ssh host certificate becomes invalid, in RFC 3339 format. the OpenSSH certificates RFC calls this valid_before. */
1435
- valid_until: string;
1436
- /** 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 */
1236
+ validAfter: string;
1237
+ /** the time after which the ssh host certificate becomes invalid, in RFC 3339 format. the OpenSSH certificates RFC calls this `valid_before`. */
1238
+ validUntil: string;
1239
+ /** 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 */
1437
1240
  certificate: string;
1438
1241
  }
1439
1242
  export interface SSHHostCertificateList {
1440
1243
  /** the list of all ssh host certificates on this account */
1441
- ssh_host_certificates: Array<SSHHostCertificate>;
1244
+ sshHostCertificates: Array<SSHHostCertificate>;
1442
1245
  /** URI of the ssh host certificates list API resource */
1443
1246
  uri: string;
1444
1247
  /** URI of the next page, or null if there is no next page */
1445
- next_page_uri?: string;
1248
+ nextPageUri?: string;
1446
1249
  }
1447
1250
  export interface SSHUserCertificateCreate {
1448
1251
  /** the ssh certificate authority that is used to sign this ssh user certificate */
1449
- ssh_certificate_authority_id: string;
1252
+ sshCertificateAuthorityId: string;
1450
1253
  /** a public key in OpenSSH Authorized Keys format that this certificate signs */
1451
- public_key: string;
1254
+ publicKey: string;
1452
1255
  /** the list of principals included in the ssh user certificate. This is the list of usernames that the certificate holder may sign in as on a machine authorizinig the signing certificate authority. Dangerously, if no principals are specified, this certificate may be used to log in as any user. */
1453
1256
  principals: Array<string>;
1454
- /** A map of critical options included in the certificate. Only two critical options are currently defined by OpenSSH: force-command and source-address. See (https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys)the OpenSSH certificate protocol spec for additional details. */
1455
- critical_options: Map<string, string>;
1456
- /** 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 (https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys)the OpenSSH certificate protocol spec for additional details. */
1257
+ /** A map of critical options included in the certificate. Only two critical options are currently defined by OpenSSH: `force-command` and `source-address`. See [the OpenSSH certificate protocol spec](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys) for additional details. */
1258
+ criticalOptions: Map<string, string>;
1259
+ /** 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. */
1457
1260
  extensions: Map<string, string>;
1458
1261
  /** The time when the user certificate becomes valid, in RFC 3339 format. Defaults to the current time if unspecified. */
1459
- valid_after: string;
1460
- /** 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. */
1461
- valid_until: string;
1262
+ validAfter: string;
1263
+ /** 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`. */
1264
+ validUntil: string;
1462
1265
  /** human-readable description of this SSH User Certificate. optional, max 255 bytes. */
1463
1266
  description: string;
1464
1267
  /** arbitrary user-defined machine-readable data of this SSH User Certificate. optional, max 4096 bytes. */
@@ -1477,47 +1280,47 @@ export interface SSHUserCertificate {
1477
1280
  /** URI of the SSH User Certificate API resource */
1478
1281
  uri: string;
1479
1282
  /** timestamp when the SSH User Certificate API resource was created, RFC 3339 format */
1480
- created_at: string;
1283
+ createdAt: string;
1481
1284
  /** human-readable description of this SSH User Certificate. optional, max 255 bytes. */
1482
1285
  description: string;
1483
1286
  /** arbitrary user-defined machine-readable data of this SSH User Certificate. optional, max 4096 bytes. */
1484
1287
  metadata: string;
1485
1288
  /** a public key in OpenSSH Authorized Keys format that this certificate signs */
1486
- public_key: string;
1487
- /** the key type of the public_key, one of rsa, ecdsa or ed25519 */
1488
- key_type: string;
1289
+ publicKey: string;
1290
+ /** the key type of the `public_key`, one of `rsa`, `ecdsa` or `ed25519` */
1291
+ keyType: string;
1489
1292
  /** the ssh certificate authority that is used to sign this ssh user certificate */
1490
- ssh_certificate_authority_id: string;
1293
+ sshCertificateAuthorityId: string;
1491
1294
  /** the list of principals included in the ssh user certificate. This is the list of usernames that the certificate holder may sign in as on a machine authorizinig the signing certificate authority. Dangerously, if no principals are specified, this certificate may be used to log in as any user. */
1492
1295
  principals: Array<string>;
1493
- /** A map of critical options included in the certificate. Only two critical options are currently defined by OpenSSH: force-command and source-address. See (https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys)the OpenSSH certificate protocol spec for additional details. */
1494
- critical_options: Map<string, string>;
1495
- /** 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 (https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys)the OpenSSH certificate protocol spec for additional details. */
1296
+ /** A map of critical options included in the certificate. Only two critical options are currently defined by OpenSSH: `force-command` and `source-address`. See [the OpenSSH certificate protocol spec](https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys) for additional details. */
1297
+ criticalOptions: Map<string, string>;
1298
+ /** 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. */
1496
1299
  extensions: Map<string, string>;
1497
1300
  /** the time when the ssh host certificate becomes valid, in RFC 3339 format. */
1498
- valid_after: string;
1499
- /** the time after which the ssh host certificate becomes invalid, in RFC 3339 format. the OpenSSH certificates RFC calls this valid_before. */
1500
- valid_until: string;
1501
- /** 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 */
1301
+ validAfter: string;
1302
+ /** the time after which the ssh host certificate becomes invalid, in RFC 3339 format. the OpenSSH certificates RFC calls this `valid_before`. */
1303
+ validUntil: string;
1304
+ /** 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 */
1502
1305
  certificate: string;
1503
1306
  }
1504
1307
  export interface SSHUserCertificateList {
1505
1308
  /** the list of all ssh user certificates on this account */
1506
- ssh_user_certificates: Array<SSHUserCertificate>;
1309
+ sshUserCertificates: Array<SSHUserCertificate>;
1507
1310
  /** URI of the ssh user certificates list API resource */
1508
1311
  uri: string;
1509
1312
  /** URI of the next page, or null if there is no next page */
1510
- next_page_uri?: string;
1313
+ nextPageUri?: string;
1511
1314
  }
1512
1315
  export interface TLSCertificateCreate {
1513
1316
  /** human-readable description of this TLS certificate. optional, max 255 bytes. */
1514
1317
  description: string;
1515
1318
  /** arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes. */
1516
1319
  metadata: string;
1517
- /** chain of PEM-encoded certificates, leaf first. See (https://ngrok.com/docs/api#tls-certificates-pem)Certificate Bundles. */
1518
- certificate_pem: string;
1519
- /** private key for the TLS certificate, PEM-encoded. See (https://ngrok.com/docs/ngrok-link#tls-certificates-key)Private Keys. */
1520
- private_key_pem: string;
1320
+ /** chain of PEM-encoded certificates, leaf first. See [Certificate Bundles](https://ngrok.com/docs/api#tls-certificates-pem). */
1321
+ certificatePem: string;
1322
+ /** private key for the TLS certificate, PEM-encoded. See [Private Keys](https://ngrok.com/docs/ngrok-link#tls-certificates-key). */
1323
+ privateKeyPem: string;
1521
1324
  }
1522
1325
  export interface TLSCertificateUpdate {
1523
1326
  id: string;
@@ -1532,61 +1335,61 @@ export interface TLSCertificate {
1532
1335
  /** URI of the TLS certificate API resource */
1533
1336
  uri: string;
1534
1337
  /** timestamp when the TLS certificate was created, RFC 3339 format */
1535
- created_at: string;
1338
+ createdAt: string;
1536
1339
  /** human-readable description of this TLS certificate. optional, max 255 bytes. */
1537
1340
  description: string;
1538
1341
  /** arbitrary user-defined machine-readable data of this TLS certificate. optional, max 4096 bytes. */
1539
1342
  metadata: string;
1540
- /** chain of PEM-encoded certificates, leaf first. See (https://ngrok.com/docs/api#tls-certificates-pem)Certificate Bundles. */
1541
- certificate_pem: string;
1343
+ /** chain of PEM-encoded certificates, leaf first. See [Certificate Bundles](https://ngrok.com/docs/api#tls-certificates-pem). */
1344
+ certificatePem: string;
1542
1345
  /** subject common name from the leaf of this TLS certificate */
1543
- subject_common_name: string;
1346
+ subjectCommonName: string;
1544
1347
  /** subject alternative names (SANs) from the leaf of this TLS certificate */
1545
- subject_alternative_names: TLSCertificateSANs;
1348
+ subjectAlternativeNames: TLSCertificateSANs;
1546
1349
  /** timestamp (in RFC 3339 format) when this TLS certificate was issued automatically, or null if this certificate was user-uploaded */
1547
- issued_at?: string;
1350
+ issuedAt?: string;
1548
1351
  /** timestamp when this TLS certificate becomes valid, RFC 3339 format */
1549
- not_before: string;
1352
+ notBefore: string;
1550
1353
  /** timestamp when this TLS certificate becomes invalid, RFC 3339 format */
1551
- not_after: string;
1354
+ notAfter: string;
1552
1355
  /** set of actions the private key of this TLS certificate can be used for */
1553
- key_usages: Array<string>;
1356
+ keyUsages: Array<string>;
1554
1357
  /** extended set of actions the private key of this TLS certificate can be used for */
1555
- extended_key_usages: Array<string>;
1358
+ extendedKeyUsages: Array<string>;
1556
1359
  /** type of the private key of this TLS certificate. One of rsa, ecdsa, or ed25519. */
1557
- private_key_type: string;
1360
+ privateKeyType: string;
1558
1361
  /** issuer common name from the leaf of this TLS certificate */
1559
- issuer_common_name: string;
1362
+ issuerCommonName: string;
1560
1363
  /** serial number of the leaf of this TLS certificate */
1561
- serial_number: string;
1364
+ serialNumber: string;
1562
1365
  /** subject organization from the leaf of this TLS certificate */
1563
- subject_organization: string;
1366
+ subjectOrganization: string;
1564
1367
  /** subject organizational unit from the leaf of this TLS certificate */
1565
- subject_organizational_unit: string;
1368
+ subjectOrganizationalUnit: string;
1566
1369
  /** subject locality from the leaf of this TLS certificate */
1567
- subject_locality: string;
1370
+ subjectLocality: string;
1568
1371
  /** subject province from the leaf of this TLS certificate */
1569
- subject_province: string;
1372
+ subjectProvince: string;
1570
1373
  /** subject country from the leaf of this TLS certificate */
1571
- subject_country: string;
1374
+ subjectCountry: string;
1572
1375
  }
1573
1376
  export interface TLSCertificateList {
1574
1377
  /** the list of all TLS certificates on this account */
1575
- tls_certificates: Array<TLSCertificate>;
1378
+ tlsCertificates: Array<TLSCertificate>;
1576
1379
  /** URI of the TLS certificates list API resource */
1577
1380
  uri: string;
1578
1381
  /** URI of the next page, or null if there is no next page */
1579
- next_page_uri?: string;
1382
+ nextPageUri?: string;
1580
1383
  }
1581
1384
  export interface TLSCertificateSANs {
1582
1385
  /** set of additional domains (including wildcards) this TLS certificate is valid for */
1583
- dns_names: Array<string>;
1386
+ dnsNames: Array<string>;
1584
1387
  /** set of IP addresses this TLS certificate is also valid for */
1585
1388
  ips: Array<string>;
1586
1389
  }
1587
1390
  export interface TunnelSession {
1588
1391
  /** version of the ngrok agent that started this ngrok tunnel session */
1589
- agent_version: string;
1392
+ agentVersion: string;
1590
1393
  /** reference to the tunnel credential or ssh credential used by the ngrok agent to start this tunnel session */
1591
1394
  credential: Ref;
1592
1395
  /** unique tunnel session resource identifier */
@@ -1600,19 +1403,19 @@ export interface TunnelSession {
1600
1403
  /** the ngrok region identifier in which this tunnel session was started */
1601
1404
  region: string;
1602
1405
  /** time when the tunnel session first connected to the ngrok servers */
1603
- started_at: string;
1604
- /** the transport protocol used to start the tunnel session. Either ngrok/v2 or ssh */
1406
+ startedAt: string;
1407
+ /** the transport protocol used to start the tunnel session. Either `ngrok/v2` or `ssh` */
1605
1408
  transport: string;
1606
1409
  /** URI to the API resource of the tunnel session */
1607
1410
  uri: string;
1608
1411
  }
1609
1412
  export interface TunnelSessionList {
1610
1413
  /** list of all tunnel sessions on this account */
1611
- tunnel_sessions: Array<TunnelSession>;
1414
+ tunnelSessions: Array<TunnelSession>;
1612
1415
  /** URI to the API resource of the tunnel session list */
1613
1416
  uri: string;
1614
1417
  /** URI of the next page, or null if there is no next page */
1615
- next_page_uri?: string;
1418
+ nextPageUri?: string;
1616
1419
  }
1617
1420
  export interface TunnelSessionsUpdate {
1618
1421
  id: string;
@@ -1621,17 +1424,17 @@ export interface Tunnel {
1621
1424
  /** unique tunnel resource identifier */
1622
1425
  id: string;
1623
1426
  /** URL of the tunnel's public endpoint */
1624
- public_url: string;
1427
+ publicUrl: string;
1625
1428
  /** timestamp when the tunnel was initiated in RFC 3339 format */
1626
- started_at: string;
1627
- /** user-supplied metadata for the tunnel defined in the ngrok configuration file. See the tunnel (https://ngrok.com/docs#tunnel-definitions-metadata)metadata configuration option In API version 0, this value was instead pulled from the top-level (https://ngrok.com/docs#config_metadata)metadata configuration option. */
1429
+ startedAt: string;
1430
+ /** 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). */
1628
1431
  metadata: string;
1629
- /** tunnel protocol. one of http, https, tcp or tls */
1432
+ /** tunnel protocol. one of `http`, `https`, `tcp` or `tls` */
1630
1433
  proto: string;
1631
1434
  /** identifier of tune region where the tunnel is running */
1632
1435
  region: string;
1633
1436
  /** reference object pointing to the tunnel session on which this tunnel was started */
1634
- tunnel_session: Ref;
1437
+ tunnelSession: Ref;
1635
1438
  }
1636
1439
  export interface TunnelList {
1637
1440
  /** the list of all online tunnels on this account */
@@ -1639,5 +1442,6 @@ export interface TunnelList {
1639
1442
  /** URI of the tunnels list API resource */
1640
1443
  uri: string;
1641
1444
  /** URI of the next page, or null if there is no next page */
1642
- next_page_uri?: string;
1445
+ nextPageUri?: string;
1643
1446
  }
1447
+ //# sourceMappingURL=datatypes.d.ts.map