ngrok-api 0.9.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.
- checksums.yaml +7 -0
- data/.github/workflows/ci.yml +21 -0
- data/.gitignore +13 -0
- data/.rubocop.yml +28 -0
- data/.rubocop_airbnb.yml +2 -0
- data/.simplecov +1 -0
- data/Gemfile +33 -0
- data/Guardfile +16 -0
- data/README.md +61 -0
- data/Rakefile +7 -0
- data/doc/NgrokAPI/Client.html +542 -0
- data/doc/NgrokAPI/Error.html +305 -0
- data/doc/NgrokAPI/Errors/NotFoundError.html +309 -0
- data/doc/NgrokAPI/Errors.html +115 -0
- data/doc/NgrokAPI/HttpClient.html +1104 -0
- data/doc/NgrokAPI/Models/ApiKey.html +1138 -0
- data/doc/NgrokAPI/Models/EndpointConfiguration.html +1366 -0
- data/doc/NgrokAPI/Models/Listable.html +934 -0
- data/doc/NgrokAPI/Models/ReservedDomain.html +2498 -0
- data/doc/NgrokAPI/Models/TlsCertificate.html +1064 -0
- data/doc/NgrokAPI/Models.html +117 -0
- data/doc/NgrokAPI/PagedIterator.html +631 -0
- data/doc/NgrokAPI/Services/ApiKeysClient.html +1333 -0
- data/doc/NgrokAPI/Services/EndpointConfigurationsClient.html +2201 -0
- data/doc/NgrokAPI/Services/ReservedDomainsClient.html +2541 -0
- data/doc/NgrokAPI/Services/TlsCertificatesClient.html +1417 -0
- data/doc/NgrokAPI/Services.html +117 -0
- data/doc/NgrokAPI.html +157 -0
- data/doc/_index.html +309 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +497 -0
- data/doc/file.README.html +126 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +126 -0
- data/doc/js/app.js +314 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +1227 -0
- data/doc/top-level-namespace.html +110 -0
- data/docs/NgrokAPI/Client.html +542 -0
- data/docs/NgrokAPI/Error.html +305 -0
- data/docs/NgrokAPI/Errors/NotFoundError.html +309 -0
- data/docs/NgrokAPI/Errors.html +115 -0
- data/docs/NgrokAPI/HttpClient.html +1104 -0
- data/docs/NgrokAPI/Models/ApiKey.html +1138 -0
- data/docs/NgrokAPI/Models/EndpointConfiguration.html +1366 -0
- data/docs/NgrokAPI/Models/Listable.html +934 -0
- data/docs/NgrokAPI/Models/ReservedDomain.html +2498 -0
- data/docs/NgrokAPI/Models/TlsCertificate.html +1064 -0
- data/docs/NgrokAPI/Models.html +117 -0
- data/docs/NgrokAPI/PagedIterator.html +631 -0
- data/docs/NgrokAPI/Services/ApiKeysClient.html +1333 -0
- data/docs/NgrokAPI/Services/EndpointConfigurationsClient.html +2201 -0
- data/docs/NgrokAPI/Services/ReservedDomainsClient.html +2541 -0
- data/docs/NgrokAPI/Services/TlsCertificatesClient.html +1417 -0
- data/docs/NgrokAPI/Services.html +117 -0
- data/docs/NgrokAPI.html +157 -0
- data/docs/_index.html +309 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +497 -0
- data/docs/file.README.html +126 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +126 -0
- data/docs/js/app.js +314 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +1227 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/ngrokapi/client.rb +49 -0
- data/lib/ngrokapi/error.rb +14 -0
- data/lib/ngrokapi/errors/not_found_error.rb +16 -0
- data/lib/ngrokapi/http_client.rb +132 -0
- data/lib/ngrokapi/models/api_key.rb +64 -0
- data/lib/ngrokapi/models/endpoint_configuration.rb +119 -0
- data/lib/ngrokapi/models/listable.rb +42 -0
- data/lib/ngrokapi/models/reserved_domain.rb +211 -0
- data/lib/ngrokapi/models/tls_certificate.rb +62 -0
- data/lib/ngrokapi/paged_iterator.rb +40 -0
- data/lib/ngrokapi/services/api_keys_client.rb +144 -0
- data/lib/ngrokapi/services/endpoint_configurations_client.rb +313 -0
- data/lib/ngrokapi/services/reserved_domains_client.rb +313 -0
- data/lib/ngrokapi/services/tls_certificates_client.rb +161 -0
- data/lib/ngrokapi/version.rb +7 -0
- data/lib/ngrokapi.rb +13 -0
- data/ngrok-api.gemspec +27 -0
- data/spec/ngrokapi/client_spec.rb +33 -0
- data/spec/ngrokapi/http_client_spec.rb +75 -0
- data/spec/ngrokapi/models/api_key_spec.rb +43 -0
- data/spec/ngrokapi/models/listable_spec.rb +43 -0
- data/spec/ngrokapi/models/reserved_domain_spec.rb +100 -0
- data/spec/ngrokapi/paged_iterator_spec.rb +84 -0
- data/spec/ngrokapi/services/api_keys_client_spec.rb +127 -0
- data/spec/spec_helper.rb +80 -0
- metadata +144 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module NgrokAPI
|
|
4
|
+
module Services
|
|
5
|
+
##
|
|
6
|
+
# A client for interacting with the endpoint_configuration API
|
|
7
|
+
#
|
|
8
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations
|
|
9
|
+
class EndpointConfigurationsClient
|
|
10
|
+
# The List Property from the resulting API for list calls
|
|
11
|
+
LIST_PROPERTY = 'endpoint_configurations'
|
|
12
|
+
# The API path for endpoint configurations
|
|
13
|
+
PATH = '/endpoint_configurations'
|
|
14
|
+
|
|
15
|
+
attr_reader :client
|
|
16
|
+
|
|
17
|
+
def initialize(client:)
|
|
18
|
+
@client = client
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# rubocop:disable LineLength
|
|
22
|
+
|
|
23
|
+
##
|
|
24
|
+
# Create a new endpoint configuration
|
|
25
|
+
#
|
|
26
|
+
# @param [string] description 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
|
|
27
|
+
# @param [string] metadata arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes.
|
|
28
|
+
# @param [string] type they type of traffic this endpoint configuration can be applied to. one of: ``http``, ``https``, ``tcp``
|
|
29
|
+
# @param [string] circuit_breaker circuit breaker module configuration
|
|
30
|
+
# @param [string] compression compression module configuration
|
|
31
|
+
# @param [string] request_headers request headers module configuration
|
|
32
|
+
# @param [string] response_headers response headers module configuration
|
|
33
|
+
# @param [string] ip_policy ip policy module configuration
|
|
34
|
+
# @param [string] mutual_tls mutual TLS module configuration
|
|
35
|
+
# @param [string] tls_termination TLS termination module configuration
|
|
36
|
+
# @param [string] webhook_validation webhook validation module configuration
|
|
37
|
+
# @param [string] oauth oauth module configuration
|
|
38
|
+
# @param [string] logging logging module configuration
|
|
39
|
+
# @param [string] saml saml module configuration
|
|
40
|
+
# @param [string] oidc oidc module configuration
|
|
41
|
+
# @return [NgrokAPI::Models::EndpointConfiguration] result from create request
|
|
42
|
+
#
|
|
43
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations-create
|
|
44
|
+
def create(
|
|
45
|
+
description: '',
|
|
46
|
+
metadata: '',
|
|
47
|
+
type: '',
|
|
48
|
+
circuit_breaker: nil,
|
|
49
|
+
compression: nil,
|
|
50
|
+
request_headers: nil,
|
|
51
|
+
response_headers: nil,
|
|
52
|
+
ip_policy: nil,
|
|
53
|
+
mutual_tls: nil,
|
|
54
|
+
tls_termination: nil,
|
|
55
|
+
webhook_validation: nil,
|
|
56
|
+
oauth: nil,
|
|
57
|
+
logging: nil,
|
|
58
|
+
saml: nil,
|
|
59
|
+
oidc: nil
|
|
60
|
+
)
|
|
61
|
+
data = {
|
|
62
|
+
type: type,
|
|
63
|
+
description: description,
|
|
64
|
+
metadata: metadata,
|
|
65
|
+
circuit_breaker: circuit_breaker,
|
|
66
|
+
compression: compression,
|
|
67
|
+
request_headers: request_headers,
|
|
68
|
+
response_headers: response_headers,
|
|
69
|
+
ip_policy: ip_policy,
|
|
70
|
+
mutual_tls: mutual_tls,
|
|
71
|
+
tls_termination: tls_termination,
|
|
72
|
+
webhook_validation: webhook_validation,
|
|
73
|
+
oauth: oauth,
|
|
74
|
+
logging: logging,
|
|
75
|
+
saml: saml,
|
|
76
|
+
oidc: oidc,
|
|
77
|
+
}
|
|
78
|
+
result = @client.post(PATH, data: data)
|
|
79
|
+
NgrokAPI::Models::EndpointConfiguration.new(client: self, result: result)
|
|
80
|
+
end
|
|
81
|
+
# rubocop:enable LineLength
|
|
82
|
+
|
|
83
|
+
##
|
|
84
|
+
# Delete an endpoint configuration.
|
|
85
|
+
# This operation will fail if the endpoint configuration is still referenced by
|
|
86
|
+
# any reserved domain or reserved address.
|
|
87
|
+
#
|
|
88
|
+
# @param [string] id a resource identifier
|
|
89
|
+
# @return [nil] result from delete request
|
|
90
|
+
#
|
|
91
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations-delete
|
|
92
|
+
def delete(id: nil)
|
|
93
|
+
@client.delete("#{PATH}/#{id}")
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# Delete an endpoint configuration. Throw an exception if 404.
|
|
98
|
+
# This operation will fail if the endpoint configuration is still referenced by
|
|
99
|
+
# any reserved domain or reserved address.
|
|
100
|
+
#
|
|
101
|
+
# @param [string] id a resource identifier
|
|
102
|
+
# @return [nil] result from delete request
|
|
103
|
+
#
|
|
104
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations-delete
|
|
105
|
+
def delete!(id: nil)
|
|
106
|
+
@client.delete("#{PATH}/#{id}", danger: true)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
##
|
|
110
|
+
# Returns detailed information about an endpoint configuration by ID.
|
|
111
|
+
#
|
|
112
|
+
# @param [string] id a resource identifier
|
|
113
|
+
# @return [NgrokAPI::Models::EndpointConfiguration] result from get request
|
|
114
|
+
#
|
|
115
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations-get
|
|
116
|
+
def get(id: nil)
|
|
117
|
+
result = @client.get("#{PATH}/#{id}")
|
|
118
|
+
NgrokAPI::Models::EndpointConfiguration.new(client: self, result: result)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
##
|
|
122
|
+
# Returns detailed information about an endpoint configuration by ID. Throw an execption if 404.
|
|
123
|
+
#
|
|
124
|
+
# @param [string] id a resource identifier
|
|
125
|
+
# @return [NgrokAPI::Models::EndpointConfiguration] result from get request
|
|
126
|
+
#
|
|
127
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations-get
|
|
128
|
+
def get!(id: nil)
|
|
129
|
+
result = @client.get("#{PATH}/#{id}", danger: true)
|
|
130
|
+
NgrokAPI::Models::EndpointConfiguration.new(client: self, result: result)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
##
|
|
134
|
+
# Returns a list of all endpoint configurations on this account.
|
|
135
|
+
#
|
|
136
|
+
# @param [string] before_id
|
|
137
|
+
# @param [integer] limit
|
|
138
|
+
# @param [string] url optional and mutually exclusive from before_id and limit
|
|
139
|
+
# @return [NgrokAPI::Models::Listable] the result listable
|
|
140
|
+
#
|
|
141
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations-list
|
|
142
|
+
def list(before_id: nil, limit: nil, url: nil)
|
|
143
|
+
result = @client.list(before_id: before_id, limit: limit, url: url, path: PATH)
|
|
144
|
+
NgrokAPI::Models::Listable.new(
|
|
145
|
+
client: self,
|
|
146
|
+
result: result,
|
|
147
|
+
list_property: LIST_PROPERTY,
|
|
148
|
+
klass: NgrokAPI::Models::EndpointConfiguration
|
|
149
|
+
)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# rubocop:disable LineLength
|
|
153
|
+
|
|
154
|
+
##
|
|
155
|
+
# Updates an endpoint configuration. If a module is not specified in the update, it will not be modified.
|
|
156
|
+
# However, each module configuration that is specified will completely replace the existing value.
|
|
157
|
+
# There is no way to delete an existing module via this API, instead use the delete module API.
|
|
158
|
+
#
|
|
159
|
+
# @param [string] id unique identifier of this endpoint configuration
|
|
160
|
+
# @param [string] description 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
|
|
161
|
+
# @param [string] metadata arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes.
|
|
162
|
+
# @param [string] circuit_breaker circuit breaker module configuration
|
|
163
|
+
# @param [string] compression compression module configuration
|
|
164
|
+
# @param [string] request_headers request headers module configuration
|
|
165
|
+
# @param [string] response_headers response headers module configuration
|
|
166
|
+
# @param [string] ip_policy ip policy module configuration
|
|
167
|
+
# @param [string] mutual_tls mutual TLS module configuration
|
|
168
|
+
# @param [string] tls_termination TLS termination module configuration
|
|
169
|
+
# @param [string] webhook_validation webhook validation module configuration
|
|
170
|
+
# @param [string] oauth oauth module configuration
|
|
171
|
+
# @param [string] logging logging module configuration
|
|
172
|
+
# @param [string] saml saml module configuration
|
|
173
|
+
# @param [string] oidc oidc module configuration
|
|
174
|
+
# @return [NgrokAPI::Models::EndpointConfiguration] result from update request
|
|
175
|
+
#
|
|
176
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations-update
|
|
177
|
+
def update(
|
|
178
|
+
id: nil,
|
|
179
|
+
description: nil,
|
|
180
|
+
metadata: nil,
|
|
181
|
+
circuit_breaker: nil,
|
|
182
|
+
compression: nil,
|
|
183
|
+
request_headers: nil,
|
|
184
|
+
response_headers: nil,
|
|
185
|
+
ip_policy: nil,
|
|
186
|
+
mutual_tls: nil,
|
|
187
|
+
tls_termination: nil,
|
|
188
|
+
webhook_validation: nil,
|
|
189
|
+
oauth: nil,
|
|
190
|
+
logging: nil,
|
|
191
|
+
saml: nil,
|
|
192
|
+
oidc: nil
|
|
193
|
+
)
|
|
194
|
+
data = build_data(
|
|
195
|
+
description: description,
|
|
196
|
+
metadata: metadata,
|
|
197
|
+
circuit_breaker: circuit_breaker,
|
|
198
|
+
compression: compression,
|
|
199
|
+
request_headers: request_headers,
|
|
200
|
+
response_headers: response_headers,
|
|
201
|
+
ip_policy: ip_policy,
|
|
202
|
+
mutual_tls: mutual_tls,
|
|
203
|
+
tls_termination: tls_termination,
|
|
204
|
+
webhook_validation: webhook_validation,
|
|
205
|
+
oauth: oauth,
|
|
206
|
+
logging: logging,
|
|
207
|
+
saml: saml,
|
|
208
|
+
oidc: oidc
|
|
209
|
+
)
|
|
210
|
+
result = @client.patch("#{PATH}/#{id}", data: data)
|
|
211
|
+
NgrokAPI::Models::EndpointConfiguration.new(client: self, result: result)
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
##
|
|
215
|
+
# Updates an endpoint configuration. If a module is not specified in the update, it will not be modified.
|
|
216
|
+
# However, each module configuration that is specified will completely replace the existing value.
|
|
217
|
+
# There is no way to delete an existing module via this API, instead use the delete module API.
|
|
218
|
+
# Throw an exception if 404.
|
|
219
|
+
#
|
|
220
|
+
# @param [string] id unique identifier of this endpoint configuration
|
|
221
|
+
# @param [string] description 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
|
|
222
|
+
# @param [string] metadata arbitrary user-defined machine-readable data of this endpoint configuration. Optional, max 4096 bytes.
|
|
223
|
+
# @param [string] circuit_breaker circuit breaker module configuration
|
|
224
|
+
# @param [string] compression compression module configuration
|
|
225
|
+
# @param [string] request_headers request headers module configuration
|
|
226
|
+
# @param [string] response_headers response headers module configuration
|
|
227
|
+
# @param [string] ip_policy ip policy module configuration
|
|
228
|
+
# @param [string] mutual_tls mutual TLS module configuration
|
|
229
|
+
# @param [string] tls_termination TLS termination module configuration
|
|
230
|
+
# @param [string] webhook_validation webhook validation module configuration
|
|
231
|
+
# @param [string] oauth oauth module configuration
|
|
232
|
+
# @param [string] logging logging module configuration
|
|
233
|
+
# @param [string] saml saml module configuration
|
|
234
|
+
# @param [string] oidc oidc module configuration
|
|
235
|
+
# @return [NgrokAPI::Models::EndpointConfiguration] result from update request
|
|
236
|
+
#
|
|
237
|
+
# https://ngrok.com/docs/api#api-endpoint-configurations-update
|
|
238
|
+
def update!(
|
|
239
|
+
id: nil,
|
|
240
|
+
description: nil,
|
|
241
|
+
metadata: nil,
|
|
242
|
+
circuit_breaker: nil,
|
|
243
|
+
compression: nil,
|
|
244
|
+
request_headers: nil,
|
|
245
|
+
response_headers: nil,
|
|
246
|
+
ip_policy: nil,
|
|
247
|
+
mutual_tls: nil,
|
|
248
|
+
tls_termination: nil,
|
|
249
|
+
webhook_validation: nil,
|
|
250
|
+
oauth: nil,
|
|
251
|
+
logging: nil,
|
|
252
|
+
saml: nil,
|
|
253
|
+
oidc: nil
|
|
254
|
+
)
|
|
255
|
+
data = build_data(
|
|
256
|
+
description: description,
|
|
257
|
+
metadata: metadata,
|
|
258
|
+
circuit_breaker: circuit_breaker,
|
|
259
|
+
compression: compression,
|
|
260
|
+
request_headers: request_headers,
|
|
261
|
+
response_headers: response_headers,
|
|
262
|
+
ip_policy: ip_policy,
|
|
263
|
+
mutual_tls: mutual_tls,
|
|
264
|
+
tls_termination: tls_termination,
|
|
265
|
+
webhook_validation: webhook_validation,
|
|
266
|
+
oauth: oauth,
|
|
267
|
+
logging: logging,
|
|
268
|
+
saml: saml,
|
|
269
|
+
oidc: oidc
|
|
270
|
+
)
|
|
271
|
+
result = @client.patch("#{PATH}/#{id}", danger: true, data: data)
|
|
272
|
+
NgrokAPI::Models::EndpointConfiguration.new(client: self, result: result)
|
|
273
|
+
end
|
|
274
|
+
# rubocop:enable LineLength
|
|
275
|
+
|
|
276
|
+
private
|
|
277
|
+
|
|
278
|
+
def build_data(
|
|
279
|
+
description: nil,
|
|
280
|
+
metadata: nil,
|
|
281
|
+
circuit_breaker: nil,
|
|
282
|
+
compression: nil,
|
|
283
|
+
request_headers: nil,
|
|
284
|
+
response_headers: nil,
|
|
285
|
+
ip_policy: nil,
|
|
286
|
+
mutual_tls: nil,
|
|
287
|
+
tls_termination: nil,
|
|
288
|
+
webhook_validation: nil,
|
|
289
|
+
oauth: nil,
|
|
290
|
+
logging: nil,
|
|
291
|
+
saml: nil,
|
|
292
|
+
oidc: nil
|
|
293
|
+
)
|
|
294
|
+
data = {}
|
|
295
|
+
data[:description] = description if description
|
|
296
|
+
data[:metadata] = metadata if metadata
|
|
297
|
+
data[:circuit_breaker] = circuit_breaker if circuit_breaker
|
|
298
|
+
data[:compression] = compression if compression
|
|
299
|
+
data[:request_headers] = request_headers if request_headers
|
|
300
|
+
data[:response_headers] = response_headers if response_headers
|
|
301
|
+
data[:ip_policy] = ip_policy if ip_policy
|
|
302
|
+
data[:mutual_tls] = mutual_tls if mutual_tls
|
|
303
|
+
data[:tls_termination] = tls_termination if tls_termination
|
|
304
|
+
data[:webhook_validation] = webhook_validation if webhook_validation
|
|
305
|
+
data[:oauth] = oauth if oauth
|
|
306
|
+
data[:logging] = logging if logging
|
|
307
|
+
data[:saml] = saml if saml
|
|
308
|
+
data[:oidc] = oidc if oidc
|
|
309
|
+
data
|
|
310
|
+
end
|
|
311
|
+
end
|
|
312
|
+
end
|
|
313
|
+
end
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module NgrokAPI
|
|
4
|
+
module Services
|
|
5
|
+
##
|
|
6
|
+
# A client for interacting with the reserved_domains API
|
|
7
|
+
#
|
|
8
|
+
# https://ngrok.com/docs/api#api-reserved-domains
|
|
9
|
+
class ReservedDomainsClient
|
|
10
|
+
# The List Property from the resulting API for list calls
|
|
11
|
+
LIST_PROPERTY = 'reserved_domains'
|
|
12
|
+
# The API path for reserved domains
|
|
13
|
+
PATH = '/reserved_domains'
|
|
14
|
+
|
|
15
|
+
attr_reader :client
|
|
16
|
+
|
|
17
|
+
def initialize(client:)
|
|
18
|
+
@client = client
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# rubocop:disable LineLength
|
|
22
|
+
|
|
23
|
+
##
|
|
24
|
+
# Create a new reserved domain.
|
|
25
|
+
#
|
|
26
|
+
# @param [string] name the domain name to reserve. It may be a full domain name like app.example.com. If the name does not contain a '.' it will reserve that subdomain on ngrok.io.
|
|
27
|
+
# @param [string] region reserve the domain in this geographic ngrok datacenter. Optional, default is us. (au, eu, ap, us, jp, in, sa)
|
|
28
|
+
# @param [string] description human-readable description of what this reserved domain will be used for
|
|
29
|
+
# @param [string] metadata arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes.
|
|
30
|
+
# @param [string] http_endpoint_configuration_id ID of an endpoint configuration of type http that will be used to handle inbound http traffic to this domain
|
|
31
|
+
# @param [string] https_endpoint_configuration_id ID of an endpoint configuration of type https that will be used to handle inbound https traffic to this domain
|
|
32
|
+
# @param [string] certificate_id ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with ``certificate_management_policy``.
|
|
33
|
+
# @param [string] certificate_management_policy configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with ``certificate_id``.
|
|
34
|
+
# @return [NgrokAPI::Models::ReservedDomain] result from create request
|
|
35
|
+
#
|
|
36
|
+
# https://ngrok.com/docs/api#api-reserved-domains-create
|
|
37
|
+
def create(
|
|
38
|
+
name: '',
|
|
39
|
+
region: '',
|
|
40
|
+
description: '',
|
|
41
|
+
metadata: '',
|
|
42
|
+
http_endpoint_configuration_id: '',
|
|
43
|
+
https_endpoint_configuration_id: '',
|
|
44
|
+
certificate_id: nil,
|
|
45
|
+
certificate_management_policy: nil
|
|
46
|
+
)
|
|
47
|
+
data = {
|
|
48
|
+
name: name,
|
|
49
|
+
region: region,
|
|
50
|
+
description: description,
|
|
51
|
+
metadata: metadata,
|
|
52
|
+
http_endpoint_configuration_id: http_endpoint_configuration_id,
|
|
53
|
+
https_endpoint_configuration_id: https_endpoint_configuration_id,
|
|
54
|
+
certificate_id: certificate_id,
|
|
55
|
+
certificate_management_policy: certificate_management_policy,
|
|
56
|
+
}
|
|
57
|
+
result = @client.post(PATH, data: data)
|
|
58
|
+
NgrokAPI::Models::ReservedDomain.new(client: self, result: result)
|
|
59
|
+
end
|
|
60
|
+
# rubocop:enable LineLength
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
# Delete a reserved domain.
|
|
64
|
+
#
|
|
65
|
+
# @param [string] id a resource identifier
|
|
66
|
+
# @return [nil] result from delete request
|
|
67
|
+
#
|
|
68
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete
|
|
69
|
+
def delete(id: nil)
|
|
70
|
+
@client.delete("#{PATH}/#{id}")
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
##
|
|
74
|
+
# Delete a reserved domain. Throw an exception if 404.
|
|
75
|
+
#
|
|
76
|
+
# @param [string] id a resource identifier
|
|
77
|
+
# @return [nil] result from delete request
|
|
78
|
+
#
|
|
79
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete
|
|
80
|
+
def delete!(id: nil)
|
|
81
|
+
@client.delete("#{PATH}/#{id}", danger: true)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
##
|
|
85
|
+
# Get the details of a reserved domain.
|
|
86
|
+
#
|
|
87
|
+
# @param [string] id a resource identifier
|
|
88
|
+
# @return [NgrokAPI::Models::ReservedDomain] result from get request
|
|
89
|
+
#
|
|
90
|
+
# https://ngrok.com/docs/api#api-reserved-domains-get
|
|
91
|
+
def get(id: nil)
|
|
92
|
+
result = @client.get("#{PATH}/#{id}")
|
|
93
|
+
NgrokAPI::Models::ReservedDomain.new(client: self, result: result)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# Get the details of a reserved domain. Throw an exception if 404.
|
|
98
|
+
#
|
|
99
|
+
# @param [string] id a resource identifier
|
|
100
|
+
# @return [NgrokAPI::Models::ReservedDomain] result from get request
|
|
101
|
+
#
|
|
102
|
+
# https://ngrok.com/docs/api#api-reserved-domains-get
|
|
103
|
+
def get!(id: nil)
|
|
104
|
+
result = @client.get!("#{PATH}/#{id}")
|
|
105
|
+
NgrokAPI::Models::ReservedDomain.new(client: self, result: result)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
##
|
|
109
|
+
# List all reserved domains on this account.
|
|
110
|
+
#
|
|
111
|
+
# @param [string] before_id
|
|
112
|
+
# @param [integer] limit
|
|
113
|
+
# @param [string] url optional and mutually exclusive from before_id and limit
|
|
114
|
+
# @return [NgrokAPI::Models::Listable] result from list request
|
|
115
|
+
#
|
|
116
|
+
# https://ngrok.com/docs/api#api-reserved-domains-list
|
|
117
|
+
def list(before_id: nil, limit: nil, url: nil)
|
|
118
|
+
result = @client.list(before_id: before_id, limit: limit, url: url, path: PATH)
|
|
119
|
+
NgrokAPI::Models::Listable.new(
|
|
120
|
+
client: self,
|
|
121
|
+
result: result,
|
|
122
|
+
list_property: LIST_PROPERTY,
|
|
123
|
+
klass: NgrokAPI::Models::ReservedDomain
|
|
124
|
+
)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# rubocop:disable LineLength
|
|
128
|
+
|
|
129
|
+
##
|
|
130
|
+
# Update the attributes of a reserved domain.
|
|
131
|
+
#
|
|
132
|
+
# @param [string] id
|
|
133
|
+
# @param [string] description human-readable description of what this reserved domain will be used for
|
|
134
|
+
# @param [string] metadata arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes.
|
|
135
|
+
# @param [string] http_endpoint_configuration_id ID of an endpoint configuration of type http that will be used to handle inbound http traffic to this domain
|
|
136
|
+
# @param [string] https_endpoint_configuration_id ID of an endpoint configuration of type https that will be used to handle inbound https traffic to this domain
|
|
137
|
+
# @param [string] certificate_id ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with ``certificate_management_policy``.
|
|
138
|
+
# @param [string] certificate_management_policy configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with ``certificate_id``.
|
|
139
|
+
# @return [NgrokAPI::Models::ReservedDomain] result from update request
|
|
140
|
+
#
|
|
141
|
+
# https://ngrok.com/docs/api#api-reserved-domains-update
|
|
142
|
+
def update(
|
|
143
|
+
id: nil,
|
|
144
|
+
certificate_id: nil,
|
|
145
|
+
certificate_management_policy: nil,
|
|
146
|
+
description: nil,
|
|
147
|
+
http_endpoint_configuration_id: nil,
|
|
148
|
+
https_endpoint_configuration_id: nil,
|
|
149
|
+
metadata: nil
|
|
150
|
+
)
|
|
151
|
+
data = build_data(
|
|
152
|
+
description: description,
|
|
153
|
+
metadata: metadata,
|
|
154
|
+
http_endpoint_configuration_id: http_endpoint_configuration_id,
|
|
155
|
+
https_endpoint_configuration_id: https_endpoint_configuration_id,
|
|
156
|
+
certificate_id: certificate_id,
|
|
157
|
+
certificate_management_policy: certificate_management_policy
|
|
158
|
+
)
|
|
159
|
+
result = @client.patch("#{PATH}/#{id}", data: data)
|
|
160
|
+
NgrokAPI::Models::ReservedDomain.new(client: self, result: result)
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
##
|
|
164
|
+
# Update the attributes of a reserved domain. Throw an exception if 404.
|
|
165
|
+
#
|
|
166
|
+
# @param [string] id
|
|
167
|
+
# @param [string] description human-readable description of what this reserved domain will be used for
|
|
168
|
+
# @param [string] metadata arbitrary user-defined machine-readable data of this reserved domain. Optional, max 4096 bytes.
|
|
169
|
+
# @param [string] http_endpoint_configuration_id ID of an endpoint configuration of type http that will be used to handle inbound http traffic to this domain
|
|
170
|
+
# @param [string] https_endpoint_configuration_id ID of an endpoint configuration of type https that will be used to handle inbound https traffic to this domain
|
|
171
|
+
# @param [string] certificate_id ID of a user-uploaded TLS certificate to use for connections to targeting this domain. Optional, mutually exclusive with ``certificate_management_policy``.
|
|
172
|
+
# @param [string] certificate_management_policy configuration for automatic management of TLS certificates for this domain, or null if automatic management is disabled. Optional, mutually exclusive with ``certificate_id``.
|
|
173
|
+
# @return [NgrokAPI::Models::ReservedDomain] result from update request
|
|
174
|
+
#
|
|
175
|
+
# https://ngrok.com/docs/api#api-reserved-domains-update
|
|
176
|
+
def update!(
|
|
177
|
+
id: nil,
|
|
178
|
+
certificate_id: nil,
|
|
179
|
+
certificate_management_policy: nil,
|
|
180
|
+
description: nil,
|
|
181
|
+
http_endpoint_configuration_id: nil,
|
|
182
|
+
https_endpoint_configuration_id: nil,
|
|
183
|
+
metadata: nil
|
|
184
|
+
)
|
|
185
|
+
data = build_data(
|
|
186
|
+
description: description,
|
|
187
|
+
metadata: metadata,
|
|
188
|
+
http_endpoint_configuration_id: http_endpoint_configuration_id,
|
|
189
|
+
https_endpoint_configuration_id: https_endpoint_configuration_id,
|
|
190
|
+
certificate_id: certificate_id,
|
|
191
|
+
certificate_management_policy: certificate_management_policy
|
|
192
|
+
)
|
|
193
|
+
result = @client.patch("#{PATH}/#{id}", danger: true, data: data)
|
|
194
|
+
NgrokAPI::Models::ReservedDomain.new(client: self, result: result)
|
|
195
|
+
end
|
|
196
|
+
# rubocop:enable LineLength
|
|
197
|
+
|
|
198
|
+
##
|
|
199
|
+
# Detach the certificate attached from a reserved domain.
|
|
200
|
+
#
|
|
201
|
+
# @param [string] id a resource identifier
|
|
202
|
+
# @return [nil] result from delete request
|
|
203
|
+
#
|
|
204
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete-certificate
|
|
205
|
+
def delete_certificate(id: nil)
|
|
206
|
+
@client.delete("#{PATH}/#{id}/certificate")
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
##
|
|
210
|
+
# Detach the certificate attached from a reserved domain. Throw an exception if 404.
|
|
211
|
+
#
|
|
212
|
+
# @param [string] id a resource identifier
|
|
213
|
+
# @return [nil] result from delete request
|
|
214
|
+
#
|
|
215
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete-certificate
|
|
216
|
+
def delete_certificate!(id: nil)
|
|
217
|
+
@client.delete("#{PATH}/#{id}/certificate", danger: true)
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
##
|
|
221
|
+
# Detach the certificate management policy attached from a reserved domain.
|
|
222
|
+
#
|
|
223
|
+
# @param [string] id a resource identifier
|
|
224
|
+
# @return [nil] result from delete request
|
|
225
|
+
#
|
|
226
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete-certificate-management-policy
|
|
227
|
+
def delete_certificate_management_policy(id: nil)
|
|
228
|
+
@client.delete("#{PATH}/#{id}/certificate_management_policy")
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
##
|
|
232
|
+
# Detach the certificate management policy attached from a reserved domain.
|
|
233
|
+
#
|
|
234
|
+
# @param [string] id a resource identifier
|
|
235
|
+
# @return [nil] result from delete request
|
|
236
|
+
#
|
|
237
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete-certificate-management-policy
|
|
238
|
+
def delete_certificate_management_policy!(id: nil)
|
|
239
|
+
@client.delete("#{PATH}/#{id}/certificate_management_policy", danger: true)
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
##
|
|
243
|
+
# Detach the http endpoint configuration attached from a reserved domain.
|
|
244
|
+
#
|
|
245
|
+
# @param [string] id a resource identifier
|
|
246
|
+
# @return [nil] result from delete request
|
|
247
|
+
#
|
|
248
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete-http-endpoint-config
|
|
249
|
+
def delete_http_endpoint_config(id: nil)
|
|
250
|
+
@client.delete("#{PATH}/#{id}/http_endpoint_configuration")
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
##
|
|
254
|
+
# Detach the http endpoint configuration attached from a reserved domain. Throw an exception if 404.
|
|
255
|
+
#
|
|
256
|
+
# @param [string] id a resource identifier
|
|
257
|
+
# @return [nil] result from delete request
|
|
258
|
+
#
|
|
259
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete-http-endpoint-config
|
|
260
|
+
def delete_http_endpoint_config!(id: nil)
|
|
261
|
+
@client.delete("#{PATH}/#{id}/http_endpoint_configuration", danger: true)
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
##
|
|
265
|
+
# Detach the https endpoint configuration attached from a reserved domain.
|
|
266
|
+
#
|
|
267
|
+
# @param [string] id a resource identifier
|
|
268
|
+
# @return [nil] result from delete request
|
|
269
|
+
#
|
|
270
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete-https-endpoint-config
|
|
271
|
+
def delete_https_endpoint_config(id: nil)
|
|
272
|
+
@client.delete("#{PATH}/#{id}/https_endpoint_configuration")
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
##
|
|
276
|
+
# Detach the https endpoint configuration attached from a reserved domain. Throw an exception if 404.
|
|
277
|
+
#
|
|
278
|
+
# @param [string] id a resource identifier
|
|
279
|
+
# @return [nil] result from delete request
|
|
280
|
+
#
|
|
281
|
+
# https://ngrok.com/docs/api#api-reserved-domains-delete-https-endpoint-config
|
|
282
|
+
def delete_https_endpoint_config!(id: nil)
|
|
283
|
+
@client.delete("#{PATH}/#{id}/https_endpoint_configuration", danger: true)
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
private
|
|
287
|
+
|
|
288
|
+
def build_data(
|
|
289
|
+
description: nil,
|
|
290
|
+
metadata: nil,
|
|
291
|
+
http_endpoint_configuration_id: nil,
|
|
292
|
+
https_endpoint_configuration_id: nil,
|
|
293
|
+
certificate_id: nil,
|
|
294
|
+
certificate_management_policy: nily
|
|
295
|
+
)
|
|
296
|
+
data = {}
|
|
297
|
+
data[:certificate_id] = certificate_id if certificate_id
|
|
298
|
+
if certificate_management_policy
|
|
299
|
+
data[:certificate_management_policy] = certificate_management_policy
|
|
300
|
+
end
|
|
301
|
+
data[:description] = description if description
|
|
302
|
+
if http_endpoint_configuration_id
|
|
303
|
+
data[:http_endpoint_configuration_id] = http_endpoint_configuration_id
|
|
304
|
+
end
|
|
305
|
+
if https_endpoint_configuration_id
|
|
306
|
+
data[:https_endpoint_configuration_id] = https_endpoint_configuration_id
|
|
307
|
+
end
|
|
308
|
+
data[:metadata] = metadata if metadata
|
|
309
|
+
data
|
|
310
|
+
end
|
|
311
|
+
end
|
|
312
|
+
end
|
|
313
|
+
end
|