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