metronome_api 1.0.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/lib/metronome_api.rb +1545 -0
- metadata +57 -0
@@ -0,0 +1,1545 @@
|
|
1
|
+
# Generated by Sideko (sideko.dev)
|
2
|
+
# frozen_string_literal: true
|
3
|
+
require 'json'
|
4
|
+
require 'http'
|
5
|
+
|
6
|
+
class RequestError < StandardError
|
7
|
+
attr_reader :status_code, :method, :url, :data, :response
|
8
|
+
|
9
|
+
def initialize(method, url, response)
|
10
|
+
@status_code = response.status
|
11
|
+
@method = method
|
12
|
+
@url = url
|
13
|
+
begin
|
14
|
+
@data = response.parse
|
15
|
+
rescue
|
16
|
+
@data = nil
|
17
|
+
end
|
18
|
+
@response = response
|
19
|
+
|
20
|
+
super("received #{status_code} from #{method} #{url} with #{message}")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module AuthProvider
|
25
|
+
def add_auth(http_client, req_kwargs)
|
26
|
+
raise NotImplementedError, "You must implement the 'add_auth' method"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class AuthBasic
|
31
|
+
include AuthProvider
|
32
|
+
|
33
|
+
attr_accessor :username, :password
|
34
|
+
|
35
|
+
def initialize(username: nil, password: nil)
|
36
|
+
@username = username
|
37
|
+
@password = password
|
38
|
+
end
|
39
|
+
|
40
|
+
def add_auth(http_client, req_kwargs)
|
41
|
+
if !@username.nil? && !@password.nil?
|
42
|
+
http_client = http_client.basic_auth(user: @username, pass: @password)
|
43
|
+
end
|
44
|
+
|
45
|
+
return http_client, req_kwargs
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
class AuthBearer
|
50
|
+
include AuthProvider
|
51
|
+
|
52
|
+
attr_accessor :val
|
53
|
+
|
54
|
+
def initialize(val: nil)
|
55
|
+
@val = val
|
56
|
+
end
|
57
|
+
|
58
|
+
def add_auth(http_client, req_kwargs)
|
59
|
+
if !@val.nil?
|
60
|
+
headers = req_kwargs.fetch(:headers, {})
|
61
|
+
headers["Authorization"] = "Bearer " + @val
|
62
|
+
req_kwargs[:headers] = headers
|
63
|
+
end
|
64
|
+
|
65
|
+
return http_client, req_kwargs
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class AuthKeyQuery
|
70
|
+
include AuthProvider
|
71
|
+
|
72
|
+
attr_accessor :query_name, :val
|
73
|
+
|
74
|
+
def initialize(query_name: nil, val: nil)
|
75
|
+
@query_name = query_name
|
76
|
+
@val = val
|
77
|
+
end
|
78
|
+
|
79
|
+
def add_auth(http_client, req_kwargs)
|
80
|
+
if !val.nil?
|
81
|
+
params = req_kwargs.fetch(:params, {})
|
82
|
+
params[query_name] = val
|
83
|
+
req_kwargs[:params] = params
|
84
|
+
end
|
85
|
+
|
86
|
+
return http_client, req_kwargs
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
class AuthKeyHeader
|
91
|
+
include AuthProvider
|
92
|
+
|
93
|
+
attr_accessor :header_name, :val
|
94
|
+
|
95
|
+
def initialize(header_name: nil, val: nil)
|
96
|
+
@header_name = header_name
|
97
|
+
@val = val
|
98
|
+
end
|
99
|
+
|
100
|
+
def add_auth(http_client, req_kwargs)
|
101
|
+
if !@val.nil?
|
102
|
+
headers = req_kwargs.fetch(:headers, {})
|
103
|
+
headers[@header_name] = @val
|
104
|
+
req_kwargs[:headers] = headers
|
105
|
+
end
|
106
|
+
|
107
|
+
return http_client, req_kwargs
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
class AuthKeyCookie
|
112
|
+
include AuthProvider
|
113
|
+
|
114
|
+
attr_accessor :cookie_name, :val
|
115
|
+
|
116
|
+
def initialize(cookie_name: nil, val: nil)
|
117
|
+
@cookie_name = cookie_name
|
118
|
+
@val = val
|
119
|
+
end
|
120
|
+
|
121
|
+
def add_auth(http_client, req_kwargs)
|
122
|
+
if !@val.nil?
|
123
|
+
http_client = http_client.cookies(@cookie_name => @val)
|
124
|
+
end
|
125
|
+
|
126
|
+
return http_client, req_kwargs
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
class Client
|
131
|
+
def initialize(bearer_auth: nil, base_url: 'https://api.metronome.com/v1')
|
132
|
+
@_base_url = base_url
|
133
|
+
# register auth providers
|
134
|
+
@_auth = {}
|
135
|
+
@_auth[:"bearerAuth"] = AuthBearer.new(val: bearer_auth)
|
136
|
+
end
|
137
|
+
|
138
|
+
def _client_with_auth(auth_names, **req_kwargs)
|
139
|
+
http_client = HTTP
|
140
|
+
auth_names.each do |auth_name|
|
141
|
+
provider = @_auth[auth_name]
|
142
|
+
http_client, req_kwargs = provider.add_auth(http_client, req_kwargs) if provider
|
143
|
+
end
|
144
|
+
|
145
|
+
return http_client, req_kwargs
|
146
|
+
end
|
147
|
+
|
148
|
+
|
149
|
+
# Delete the billing configuration for a given customer. Note: this is unsupported for Azure and AWS Marketplace customers.
|
150
|
+
#
|
151
|
+
def delete_billing_config_for_customer(customer_id, billing_provider_type)
|
152
|
+
_url = @_base_url + "/customers/#{customer_id}/billing-config/#{billing_provider_type}"
|
153
|
+
_kwargs = {
|
154
|
+
params: {}
|
155
|
+
}
|
156
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
157
|
+
[:"bearerAuth", ],
|
158
|
+
**_kwargs
|
159
|
+
)
|
160
|
+
|
161
|
+
|
162
|
+
_response = _http_client.delete(
|
163
|
+
_url,
|
164
|
+
|
165
|
+
**_req_kwargs
|
166
|
+
)
|
167
|
+
|
168
|
+
# Raise if not expected success code
|
169
|
+
if _response.status != 200
|
170
|
+
raise RequestError.new(
|
171
|
+
method="delete",
|
172
|
+
url=_url,
|
173
|
+
response=_response
|
174
|
+
)
|
175
|
+
end
|
176
|
+
|
177
|
+
return _response.body.empty? ? '' : _response.parse
|
178
|
+
end
|
179
|
+
|
180
|
+
# Retrieves a range of audit logs. If no further audit logs are currently available, the data array will be empty. As new audit logs are created, subsequent requests using the same next_page value will be in the returned data array, ensuring a continuous and uninterrupted reading of audit logs.
|
181
|
+
#
|
182
|
+
def get_audit_logs(limit: nil, next_page: nil, starting_on: nil)
|
183
|
+
_url = @_base_url + "/auditLogs"
|
184
|
+
_kwargs = {
|
185
|
+
params: {}
|
186
|
+
}
|
187
|
+
if limit != nil
|
188
|
+
_kwargs[:params][:"limit"] = limit
|
189
|
+
end
|
190
|
+
if next_page != nil
|
191
|
+
_kwargs[:params][:"next_page"] = next_page
|
192
|
+
end
|
193
|
+
if starting_on != nil
|
194
|
+
_kwargs[:params][:"starting_on"] = starting_on
|
195
|
+
end
|
196
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
197
|
+
[:"bearerAuth", ],
|
198
|
+
**_kwargs
|
199
|
+
)
|
200
|
+
|
201
|
+
|
202
|
+
_response = _http_client.get(
|
203
|
+
_url,
|
204
|
+
|
205
|
+
**_req_kwargs
|
206
|
+
)
|
207
|
+
|
208
|
+
# Raise if not expected success code
|
209
|
+
if _response.status != 200
|
210
|
+
raise RequestError.new(
|
211
|
+
method="get",
|
212
|
+
url=_url,
|
213
|
+
response=_response
|
214
|
+
)
|
215
|
+
end
|
216
|
+
|
217
|
+
return _response.body.empty? ? '' : _response.parse
|
218
|
+
end
|
219
|
+
|
220
|
+
# List all pricing units (known in the API by the legacy term "credit types").
|
221
|
+
def list_credit_types(limit: nil, next_page: nil)
|
222
|
+
_url = @_base_url + "/credit-types/list"
|
223
|
+
_kwargs = {
|
224
|
+
params: {}
|
225
|
+
}
|
226
|
+
if limit != nil
|
227
|
+
_kwargs[:params][:"limit"] = limit
|
228
|
+
end
|
229
|
+
if next_page != nil
|
230
|
+
_kwargs[:params][:"next_page"] = next_page
|
231
|
+
end
|
232
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
233
|
+
[:"bearerAuth", ],
|
234
|
+
**_kwargs
|
235
|
+
)
|
236
|
+
|
237
|
+
|
238
|
+
_response = _http_client.get(
|
239
|
+
_url,
|
240
|
+
|
241
|
+
**_req_kwargs
|
242
|
+
)
|
243
|
+
|
244
|
+
# Raise if not expected success code
|
245
|
+
if _response.status != 200
|
246
|
+
raise RequestError.new(
|
247
|
+
method="get",
|
248
|
+
url=_url,
|
249
|
+
response=_response
|
250
|
+
)
|
251
|
+
end
|
252
|
+
|
253
|
+
return _response.body.empty? ? '' : _response.parse
|
254
|
+
end
|
255
|
+
|
256
|
+
# List all customers.
|
257
|
+
def list_customers(customer_ids: nil, ingest_alias: nil, limit: nil, next_page: nil, only_archived: nil, salesforce_account_ids: nil)
|
258
|
+
_url = @_base_url + "/customers"
|
259
|
+
_kwargs = {
|
260
|
+
params: {}
|
261
|
+
}
|
262
|
+
if customer_ids != nil
|
263
|
+
_kwargs[:params][:"customer_ids"] = customer_ids.join(",")
|
264
|
+
end
|
265
|
+
if ingest_alias != nil
|
266
|
+
_kwargs[:params][:"ingest_alias"] = ingest_alias
|
267
|
+
end
|
268
|
+
if limit != nil
|
269
|
+
_kwargs[:params][:"limit"] = limit
|
270
|
+
end
|
271
|
+
if next_page != nil
|
272
|
+
_kwargs[:params][:"next_page"] = next_page
|
273
|
+
end
|
274
|
+
if only_archived != nil
|
275
|
+
_kwargs[:params][:"only_archived"] = only_archived
|
276
|
+
end
|
277
|
+
if salesforce_account_ids != nil
|
278
|
+
_kwargs[:params][:"salesforce_account_ids"] = salesforce_account_ids.join(",")
|
279
|
+
end
|
280
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
281
|
+
[:"bearerAuth", ],
|
282
|
+
**_kwargs
|
283
|
+
)
|
284
|
+
|
285
|
+
|
286
|
+
_response = _http_client.get(
|
287
|
+
_url,
|
288
|
+
|
289
|
+
**_req_kwargs
|
290
|
+
)
|
291
|
+
|
292
|
+
# Raise if not expected success code
|
293
|
+
if _response.status != 200
|
294
|
+
raise RequestError.new(
|
295
|
+
method="get",
|
296
|
+
url=_url,
|
297
|
+
response=_response
|
298
|
+
)
|
299
|
+
end
|
300
|
+
|
301
|
+
return _response.body.empty? ? '' : _response.parse
|
302
|
+
end
|
303
|
+
|
304
|
+
# Get a customer by Metronome ID.
|
305
|
+
def get_customer(customer_id)
|
306
|
+
_url = @_base_url + "/customers/#{customer_id}"
|
307
|
+
_kwargs = {
|
308
|
+
params: {}
|
309
|
+
}
|
310
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
311
|
+
[:"bearerAuth", ],
|
312
|
+
**_kwargs
|
313
|
+
)
|
314
|
+
|
315
|
+
|
316
|
+
_response = _http_client.get(
|
317
|
+
_url,
|
318
|
+
|
319
|
+
**_req_kwargs
|
320
|
+
)
|
321
|
+
|
322
|
+
# Raise if not expected success code
|
323
|
+
if _response.status != 200
|
324
|
+
raise RequestError.new(
|
325
|
+
method="get",
|
326
|
+
url=_url,
|
327
|
+
response=_response
|
328
|
+
)
|
329
|
+
end
|
330
|
+
|
331
|
+
return _response.body.empty? ? '' : _response.parse
|
332
|
+
end
|
333
|
+
|
334
|
+
# List all billable metrics.
|
335
|
+
def list_billable_metrics(customer_id, limit: nil, next_page: nil, on_current_plan: nil)
|
336
|
+
_url = @_base_url + "/customers/#{customer_id}/billable-metrics"
|
337
|
+
_kwargs = {
|
338
|
+
params: {}
|
339
|
+
}
|
340
|
+
if limit != nil
|
341
|
+
_kwargs[:params][:"limit"] = limit
|
342
|
+
end
|
343
|
+
if next_page != nil
|
344
|
+
_kwargs[:params][:"next_page"] = next_page
|
345
|
+
end
|
346
|
+
if on_current_plan != nil
|
347
|
+
_kwargs[:params][:"on_current_plan"] = on_current_plan
|
348
|
+
end
|
349
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
350
|
+
[:"bearerAuth", ],
|
351
|
+
**_kwargs
|
352
|
+
)
|
353
|
+
|
354
|
+
|
355
|
+
_response = _http_client.get(
|
356
|
+
_url,
|
357
|
+
|
358
|
+
**_req_kwargs
|
359
|
+
)
|
360
|
+
|
361
|
+
# Raise if not expected success code
|
362
|
+
if _response.status != 200
|
363
|
+
raise RequestError.new(
|
364
|
+
method="get",
|
365
|
+
url=_url,
|
366
|
+
response=_response
|
367
|
+
)
|
368
|
+
end
|
369
|
+
|
370
|
+
return _response.body.empty? ? '' : _response.parse
|
371
|
+
end
|
372
|
+
|
373
|
+
# Fetch the billing configuration for the given customer.
|
374
|
+
def get_billing_config(customer_id, billing_provider_type)
|
375
|
+
_url = @_base_url + "/customers/#{customer_id}/billing-config/#{billing_provider_type}"
|
376
|
+
_kwargs = {
|
377
|
+
params: {}
|
378
|
+
}
|
379
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
380
|
+
[:"bearerAuth", ],
|
381
|
+
**_kwargs
|
382
|
+
)
|
383
|
+
|
384
|
+
|
385
|
+
_response = _http_client.get(
|
386
|
+
_url,
|
387
|
+
|
388
|
+
**_req_kwargs
|
389
|
+
)
|
390
|
+
|
391
|
+
# Raise if not expected success code
|
392
|
+
if _response.status != 200
|
393
|
+
raise RequestError.new(
|
394
|
+
method="get",
|
395
|
+
url=_url,
|
396
|
+
response=_response
|
397
|
+
)
|
398
|
+
end
|
399
|
+
|
400
|
+
return _response.body.empty? ? '' : _response.parse
|
401
|
+
end
|
402
|
+
|
403
|
+
# Fetch daily pending costs for the specified customer, broken down by credit type and line items. Note: this is not supported for customers whose plan includes a UNIQUE-type billable metric.
|
404
|
+
def get_costs(customer_id, ending_before, starting_on, limit: nil, next_page: nil)
|
405
|
+
_url = @_base_url + "/customers/#{customer_id}/costs"
|
406
|
+
_kwargs = {
|
407
|
+
params: {}
|
408
|
+
}
|
409
|
+
_kwargs[:params][:"ending_before"] = ending_before
|
410
|
+
_kwargs[:params][:"starting_on"] = starting_on
|
411
|
+
if limit != nil
|
412
|
+
_kwargs[:params][:"limit"] = limit
|
413
|
+
end
|
414
|
+
if next_page != nil
|
415
|
+
_kwargs[:params][:"next_page"] = next_page
|
416
|
+
end
|
417
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
418
|
+
[:"bearerAuth", ],
|
419
|
+
**_kwargs
|
420
|
+
)
|
421
|
+
|
422
|
+
|
423
|
+
_response = _http_client.get(
|
424
|
+
_url,
|
425
|
+
|
426
|
+
**_req_kwargs
|
427
|
+
)
|
428
|
+
|
429
|
+
# Raise if not expected success code
|
430
|
+
if _response.status != 200
|
431
|
+
raise RequestError.new(
|
432
|
+
method="get",
|
433
|
+
url=_url,
|
434
|
+
response=_response
|
435
|
+
)
|
436
|
+
end
|
437
|
+
|
438
|
+
return _response.body.empty? ? '' : _response.parse
|
439
|
+
end
|
440
|
+
|
441
|
+
# List all invoices for a given customer, optionally filtered by status, date range, and/or credit type.
|
442
|
+
def list_invoices(customer_id, credit_type_id: nil, ending_before: nil, limit: nil, next_page: nil, sort: nil, starting_on: nil, status: nil)
|
443
|
+
_url = @_base_url + "/customers/#{customer_id}/invoices"
|
444
|
+
_kwargs = {
|
445
|
+
params: {}
|
446
|
+
}
|
447
|
+
if credit_type_id != nil
|
448
|
+
_kwargs[:params][:"credit_type_id"] = credit_type_id
|
449
|
+
end
|
450
|
+
if ending_before != nil
|
451
|
+
_kwargs[:params][:"ending_before"] = ending_before
|
452
|
+
end
|
453
|
+
if limit != nil
|
454
|
+
_kwargs[:params][:"limit"] = limit
|
455
|
+
end
|
456
|
+
if next_page != nil
|
457
|
+
_kwargs[:params][:"next_page"] = next_page
|
458
|
+
end
|
459
|
+
if sort != nil
|
460
|
+
_kwargs[:params][:"sort"] = sort
|
461
|
+
end
|
462
|
+
if starting_on != nil
|
463
|
+
_kwargs[:params][:"starting_on"] = starting_on
|
464
|
+
end
|
465
|
+
if status != nil
|
466
|
+
_kwargs[:params][:"status"] = status
|
467
|
+
end
|
468
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
469
|
+
[:"bearerAuth", ],
|
470
|
+
**_kwargs
|
471
|
+
)
|
472
|
+
|
473
|
+
|
474
|
+
_response = _http_client.get(
|
475
|
+
_url,
|
476
|
+
|
477
|
+
**_req_kwargs
|
478
|
+
)
|
479
|
+
|
480
|
+
# Raise if not expected success code
|
481
|
+
if _response.status != 200
|
482
|
+
raise RequestError.new(
|
483
|
+
method="get",
|
484
|
+
url=_url,
|
485
|
+
response=_response
|
486
|
+
)
|
487
|
+
end
|
488
|
+
|
489
|
+
return _response.body.empty? ? '' : _response.parse
|
490
|
+
end
|
491
|
+
|
492
|
+
# Fetch a specific invoice for a given customer.
|
493
|
+
def get_invoice(customer_id, invoice_id)
|
494
|
+
_url = @_base_url + "/customers/#{customer_id}/invoices/#{invoice_id}"
|
495
|
+
_kwargs = {
|
496
|
+
params: {}
|
497
|
+
}
|
498
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
499
|
+
[:"bearerAuth", ],
|
500
|
+
**_kwargs
|
501
|
+
)
|
502
|
+
|
503
|
+
|
504
|
+
_response = _http_client.get(
|
505
|
+
_url,
|
506
|
+
|
507
|
+
**_req_kwargs
|
508
|
+
)
|
509
|
+
|
510
|
+
# Raise if not expected success code
|
511
|
+
if _response.status != 200
|
512
|
+
raise RequestError.new(
|
513
|
+
method="get",
|
514
|
+
url=_url,
|
515
|
+
response=_response
|
516
|
+
)
|
517
|
+
end
|
518
|
+
|
519
|
+
return _response.body.empty? ? '' : _response.parse
|
520
|
+
end
|
521
|
+
|
522
|
+
# List the given customer's plans in reverse-chronological order.
|
523
|
+
def list_customer_plans(customer_id, limit: nil, next_page: nil)
|
524
|
+
_url = @_base_url + "/customers/#{customer_id}/plans"
|
525
|
+
_kwargs = {
|
526
|
+
params: {}
|
527
|
+
}
|
528
|
+
if limit != nil
|
529
|
+
_kwargs[:params][:"limit"] = limit
|
530
|
+
end
|
531
|
+
if next_page != nil
|
532
|
+
_kwargs[:params][:"next_page"] = next_page
|
533
|
+
end
|
534
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
535
|
+
[:"bearerAuth", ],
|
536
|
+
**_kwargs
|
537
|
+
)
|
538
|
+
|
539
|
+
|
540
|
+
_response = _http_client.get(
|
541
|
+
_url,
|
542
|
+
|
543
|
+
**_req_kwargs
|
544
|
+
)
|
545
|
+
|
546
|
+
# Raise if not expected success code
|
547
|
+
if _response.status != 200
|
548
|
+
raise RequestError.new(
|
549
|
+
method="get",
|
550
|
+
url=_url,
|
551
|
+
response=_response
|
552
|
+
)
|
553
|
+
end
|
554
|
+
|
555
|
+
return _response.body.empty? ? '' : _response.parse
|
556
|
+
end
|
557
|
+
|
558
|
+
# Lists a customer plans adjustments. See the [price adjustments documentation](https://docs.metronome.com/pricing/managing-plans/#price-adjustments) for details.
|
559
|
+
def get_plan_price_adjustments(customer_id, customer_plan_id, limit: nil, next_page: nil)
|
560
|
+
_url = @_base_url + "/customers/#{customer_id}/plans/#{customer_plan_id}/priceAdjustments"
|
561
|
+
_kwargs = {
|
562
|
+
params: {}
|
563
|
+
}
|
564
|
+
if limit != nil
|
565
|
+
_kwargs[:params][:"limit"] = limit
|
566
|
+
end
|
567
|
+
if next_page != nil
|
568
|
+
_kwargs[:params][:"next_page"] = next_page
|
569
|
+
end
|
570
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
571
|
+
[:"bearerAuth", ],
|
572
|
+
**_kwargs
|
573
|
+
)
|
574
|
+
|
575
|
+
|
576
|
+
_response = _http_client.get(
|
577
|
+
_url,
|
578
|
+
|
579
|
+
**_req_kwargs
|
580
|
+
)
|
581
|
+
|
582
|
+
# Raise if not expected success code
|
583
|
+
if _response.status != 200
|
584
|
+
raise RequestError.new(
|
585
|
+
method="get",
|
586
|
+
url=_url,
|
587
|
+
response=_response
|
588
|
+
)
|
589
|
+
end
|
590
|
+
|
591
|
+
return _response.body.empty? ? '' : _response.parse
|
592
|
+
end
|
593
|
+
|
594
|
+
# Fetch high level details of a specific plan.
|
595
|
+
def get_plan_details(plan_id)
|
596
|
+
_url = @_base_url + "/planDetails/#{plan_id}"
|
597
|
+
_kwargs = {
|
598
|
+
params: {}
|
599
|
+
}
|
600
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
601
|
+
[:"bearerAuth", ],
|
602
|
+
**_kwargs
|
603
|
+
)
|
604
|
+
|
605
|
+
|
606
|
+
_response = _http_client.get(
|
607
|
+
_url,
|
608
|
+
|
609
|
+
**_req_kwargs
|
610
|
+
)
|
611
|
+
|
612
|
+
# Raise if not expected success code
|
613
|
+
if _response.status != 200
|
614
|
+
raise RequestError.new(
|
615
|
+
method="get",
|
616
|
+
url=_url,
|
617
|
+
response=_response
|
618
|
+
)
|
619
|
+
end
|
620
|
+
|
621
|
+
return _response.body.empty? ? '' : _response.parse
|
622
|
+
end
|
623
|
+
|
624
|
+
# Fetches a list of charges of a specific plan.
|
625
|
+
def get_plan_charges(plan_id, limit: nil, next_page: nil)
|
626
|
+
_url = @_base_url + "/planDetails/#{plan_id}/charges"
|
627
|
+
_kwargs = {
|
628
|
+
params: {}
|
629
|
+
}
|
630
|
+
if limit != nil
|
631
|
+
_kwargs[:params][:"limit"] = limit
|
632
|
+
end
|
633
|
+
if next_page != nil
|
634
|
+
_kwargs[:params][:"next_page"] = next_page
|
635
|
+
end
|
636
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
637
|
+
[:"bearerAuth", ],
|
638
|
+
**_kwargs
|
639
|
+
)
|
640
|
+
|
641
|
+
|
642
|
+
_response = _http_client.get(
|
643
|
+
_url,
|
644
|
+
|
645
|
+
**_req_kwargs
|
646
|
+
)
|
647
|
+
|
648
|
+
# Raise if not expected success code
|
649
|
+
if _response.status != 200
|
650
|
+
raise RequestError.new(
|
651
|
+
method="get",
|
652
|
+
url=_url,
|
653
|
+
response=_response
|
654
|
+
)
|
655
|
+
end
|
656
|
+
|
657
|
+
return _response.body.empty? ? '' : _response.parse
|
658
|
+
end
|
659
|
+
|
660
|
+
# Fetches a list of customers on a specific plan (by default, only currently active plans are included)
|
661
|
+
def get_plan_customers(plan_id, limit: nil, next_page: nil, status: nil)
|
662
|
+
_url = @_base_url + "/planDetails/#{plan_id}/customers"
|
663
|
+
_kwargs = {
|
664
|
+
params: {}
|
665
|
+
}
|
666
|
+
if limit != nil
|
667
|
+
_kwargs[:params][:"limit"] = limit
|
668
|
+
end
|
669
|
+
if next_page != nil
|
670
|
+
_kwargs[:params][:"next_page"] = next_page
|
671
|
+
end
|
672
|
+
if status != nil
|
673
|
+
_kwargs[:params][:"status"] = status
|
674
|
+
end
|
675
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
676
|
+
[:"bearerAuth", ],
|
677
|
+
**_kwargs
|
678
|
+
)
|
679
|
+
|
680
|
+
|
681
|
+
_response = _http_client.get(
|
682
|
+
_url,
|
683
|
+
|
684
|
+
**_req_kwargs
|
685
|
+
)
|
686
|
+
|
687
|
+
# Raise if not expected success code
|
688
|
+
if _response.status != 200
|
689
|
+
raise RequestError.new(
|
690
|
+
method="get",
|
691
|
+
url=_url,
|
692
|
+
response=_response
|
693
|
+
)
|
694
|
+
end
|
695
|
+
|
696
|
+
return _response.body.empty? ? '' : _response.parse
|
697
|
+
end
|
698
|
+
|
699
|
+
# List all available plans.
|
700
|
+
def list_plans(limit: nil, next_page: nil)
|
701
|
+
_url = @_base_url + "/plans"
|
702
|
+
_kwargs = {
|
703
|
+
params: {}
|
704
|
+
}
|
705
|
+
if limit != nil
|
706
|
+
_kwargs[:params][:"limit"] = limit
|
707
|
+
end
|
708
|
+
if next_page != nil
|
709
|
+
_kwargs[:params][:"next_page"] = next_page
|
710
|
+
end
|
711
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
712
|
+
[:"bearerAuth", ],
|
713
|
+
**_kwargs
|
714
|
+
)
|
715
|
+
|
716
|
+
|
717
|
+
_response = _http_client.get(
|
718
|
+
_url,
|
719
|
+
|
720
|
+
**_req_kwargs
|
721
|
+
)
|
722
|
+
|
723
|
+
# Raise if not expected success code
|
724
|
+
if _response.status != 200
|
725
|
+
raise RequestError.new(
|
726
|
+
method="get",
|
727
|
+
url=_url,
|
728
|
+
response=_response
|
729
|
+
)
|
730
|
+
end
|
731
|
+
|
732
|
+
return _response.body.empty? ? '' : _response.parse
|
733
|
+
end
|
734
|
+
|
735
|
+
# Archive an existing alert
|
736
|
+
def archive_alert(data: nil)
|
737
|
+
_url = @_base_url + "/alerts/archive"
|
738
|
+
_kwargs = {
|
739
|
+
params: {}
|
740
|
+
}
|
741
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
742
|
+
[:"bearerAuth", ],
|
743
|
+
**_kwargs
|
744
|
+
)
|
745
|
+
|
746
|
+
|
747
|
+
_response = _http_client.post(
|
748
|
+
_url,
|
749
|
+
json: data,
|
750
|
+
**_req_kwargs
|
751
|
+
)
|
752
|
+
|
753
|
+
# Raise if not expected success code
|
754
|
+
if _response.status != 200
|
755
|
+
raise RequestError.new(
|
756
|
+
method="post",
|
757
|
+
url=_url,
|
758
|
+
response=_response
|
759
|
+
)
|
760
|
+
end
|
761
|
+
|
762
|
+
return _response.body.empty? ? '' : _response.parse
|
763
|
+
end
|
764
|
+
|
765
|
+
# Create a new alert
|
766
|
+
def create_alert(data: nil)
|
767
|
+
_url = @_base_url + "/alerts/create"
|
768
|
+
_kwargs = {
|
769
|
+
params: {}
|
770
|
+
}
|
771
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
772
|
+
[:"bearerAuth", ],
|
773
|
+
**_kwargs
|
774
|
+
)
|
775
|
+
|
776
|
+
|
777
|
+
_response = _http_client.post(
|
778
|
+
_url,
|
779
|
+
json: data,
|
780
|
+
**_req_kwargs
|
781
|
+
)
|
782
|
+
|
783
|
+
# Raise if not expected success code
|
784
|
+
if _response.status != 200
|
785
|
+
raise RequestError.new(
|
786
|
+
method="post",
|
787
|
+
url=_url,
|
788
|
+
response=_response
|
789
|
+
)
|
790
|
+
end
|
791
|
+
|
792
|
+
return _response.body.empty? ? '' : _response.parse
|
793
|
+
end
|
794
|
+
|
795
|
+
# Create a new credit grant
|
796
|
+
def create_grant(data: nil)
|
797
|
+
_url = @_base_url + "/credits/createGrant"
|
798
|
+
_kwargs = {
|
799
|
+
params: {}
|
800
|
+
}
|
801
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
802
|
+
[:"bearerAuth", ],
|
803
|
+
**_kwargs
|
804
|
+
)
|
805
|
+
|
806
|
+
|
807
|
+
_response = _http_client.post(
|
808
|
+
_url,
|
809
|
+
json: data,
|
810
|
+
**_req_kwargs
|
811
|
+
)
|
812
|
+
|
813
|
+
# Raise if not expected success code
|
814
|
+
if _response.status != 200
|
815
|
+
raise RequestError.new(
|
816
|
+
method="post",
|
817
|
+
url=_url,
|
818
|
+
response=_response
|
819
|
+
)
|
820
|
+
end
|
821
|
+
|
822
|
+
return _response.body.empty? ? '' : _response.parse
|
823
|
+
end
|
824
|
+
|
825
|
+
# Edit an existing credit grant
|
826
|
+
def edit_grant(data: nil)
|
827
|
+
_url = @_base_url + "/credits/editGrant"
|
828
|
+
_kwargs = {
|
829
|
+
params: {}
|
830
|
+
}
|
831
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
832
|
+
[:"bearerAuth", ],
|
833
|
+
**_kwargs
|
834
|
+
)
|
835
|
+
|
836
|
+
|
837
|
+
_response = _http_client.post(
|
838
|
+
_url,
|
839
|
+
json: data,
|
840
|
+
**_req_kwargs
|
841
|
+
)
|
842
|
+
|
843
|
+
# Raise if not expected success code
|
844
|
+
if _response.status != 200
|
845
|
+
raise RequestError.new(
|
846
|
+
method="post",
|
847
|
+
url=_url,
|
848
|
+
response=_response
|
849
|
+
)
|
850
|
+
end
|
851
|
+
|
852
|
+
return _response.body.empty? ? '' : _response.parse
|
853
|
+
end
|
854
|
+
|
855
|
+
# Fetches a list of credit ledger entries. Returns lists of ledgers per customer. Ledger entries are returned in reverse chronological order. Ledger entries associated with voided credit grants are not included.
|
856
|
+
def list_credit_ledger_entries(data: nil, next_page: nil)
|
857
|
+
_url = @_base_url + "/credits/listEntries"
|
858
|
+
_kwargs = {
|
859
|
+
params: {}
|
860
|
+
}
|
861
|
+
if next_page != nil
|
862
|
+
_kwargs[:params][:"next_page"] = next_page
|
863
|
+
end
|
864
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
865
|
+
[:"bearerAuth", ],
|
866
|
+
**_kwargs
|
867
|
+
)
|
868
|
+
|
869
|
+
|
870
|
+
_response = _http_client.post(
|
871
|
+
_url,
|
872
|
+
json: data,
|
873
|
+
**_req_kwargs
|
874
|
+
)
|
875
|
+
|
876
|
+
# Raise if not expected success code
|
877
|
+
if _response.status != 200
|
878
|
+
raise RequestError.new(
|
879
|
+
method="post",
|
880
|
+
url=_url,
|
881
|
+
response=_response
|
882
|
+
)
|
883
|
+
end
|
884
|
+
|
885
|
+
return _response.body.empty? ? '' : _response.parse
|
886
|
+
end
|
887
|
+
|
888
|
+
# List credit grants. This list does not included voided grants.
|
889
|
+
def list_grants(data: nil, next_page: nil)
|
890
|
+
_url = @_base_url + "/credits/listGrants"
|
891
|
+
_kwargs = {
|
892
|
+
params: {}
|
893
|
+
}
|
894
|
+
if next_page != nil
|
895
|
+
_kwargs[:params][:"next_page"] = next_page
|
896
|
+
end
|
897
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
898
|
+
[:"bearerAuth", ],
|
899
|
+
**_kwargs
|
900
|
+
)
|
901
|
+
|
902
|
+
|
903
|
+
_response = _http_client.post(
|
904
|
+
_url,
|
905
|
+
json: data,
|
906
|
+
**_req_kwargs
|
907
|
+
)
|
908
|
+
|
909
|
+
# Raise if not expected success code
|
910
|
+
if _response.status != 200
|
911
|
+
raise RequestError.new(
|
912
|
+
method="post",
|
913
|
+
url=_url,
|
914
|
+
response=_response
|
915
|
+
)
|
916
|
+
end
|
917
|
+
|
918
|
+
return _response.body.empty? ? '' : _response.parse
|
919
|
+
end
|
920
|
+
|
921
|
+
# Void a credit grant
|
922
|
+
def void_grant(data: nil)
|
923
|
+
_url = @_base_url + "/credits/voidGrant"
|
924
|
+
_kwargs = {
|
925
|
+
params: {}
|
926
|
+
}
|
927
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
928
|
+
[:"bearerAuth", ],
|
929
|
+
**_kwargs
|
930
|
+
)
|
931
|
+
|
932
|
+
|
933
|
+
_response = _http_client.post(
|
934
|
+
_url,
|
935
|
+
json: data,
|
936
|
+
**_req_kwargs
|
937
|
+
)
|
938
|
+
|
939
|
+
# Raise if not expected success code
|
940
|
+
if _response.status != 200
|
941
|
+
raise RequestError.new(
|
942
|
+
method="post",
|
943
|
+
url=_url,
|
944
|
+
response=_response
|
945
|
+
)
|
946
|
+
end
|
947
|
+
|
948
|
+
return _response.body.empty? ? '' : _response.parse
|
949
|
+
end
|
950
|
+
|
951
|
+
# Add a key to the allow list for a given entity. There is a 100 character limit on custom field keys.
|
952
|
+
#
|
953
|
+
def add_custom_field_key(data: nil)
|
954
|
+
_url = @_base_url + "/customFields/addKey"
|
955
|
+
_kwargs = {
|
956
|
+
params: {}
|
957
|
+
}
|
958
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
959
|
+
[:"bearerAuth", ],
|
960
|
+
**_kwargs
|
961
|
+
)
|
962
|
+
|
963
|
+
|
964
|
+
_response = _http_client.post(
|
965
|
+
_url,
|
966
|
+
json: data,
|
967
|
+
**_req_kwargs
|
968
|
+
)
|
969
|
+
|
970
|
+
# Raise if not expected success code
|
971
|
+
if _response.status != 200
|
972
|
+
raise RequestError.new(
|
973
|
+
method="post",
|
974
|
+
url=_url,
|
975
|
+
response=_response
|
976
|
+
)
|
977
|
+
end
|
978
|
+
|
979
|
+
return _response.body.empty? ? '' : _response.parse
|
980
|
+
end
|
981
|
+
|
982
|
+
# Deletes one or more custom fields on an instance of a Metronome entity.
|
983
|
+
#
|
984
|
+
def delete_custom_fields(data: nil)
|
985
|
+
_url = @_base_url + "/customFields/deleteValues"
|
986
|
+
_kwargs = {
|
987
|
+
params: {}
|
988
|
+
}
|
989
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
990
|
+
[:"bearerAuth", ],
|
991
|
+
**_kwargs
|
992
|
+
)
|
993
|
+
|
994
|
+
|
995
|
+
_response = _http_client.post(
|
996
|
+
_url,
|
997
|
+
json: data,
|
998
|
+
**_req_kwargs
|
999
|
+
)
|
1000
|
+
|
1001
|
+
# Raise if not expected success code
|
1002
|
+
if _response.status != 200
|
1003
|
+
raise RequestError.new(
|
1004
|
+
method="post",
|
1005
|
+
url=_url,
|
1006
|
+
response=_response
|
1007
|
+
)
|
1008
|
+
end
|
1009
|
+
|
1010
|
+
return _response.body.empty? ? '' : _response.parse
|
1011
|
+
end
|
1012
|
+
|
1013
|
+
# List all active custom field keys, optionally filtered by entity type.
|
1014
|
+
#
|
1015
|
+
def list_custom_field_keys(data: nil, next_page: nil)
|
1016
|
+
_url = @_base_url + "/customFields/listKeys"
|
1017
|
+
_kwargs = {
|
1018
|
+
params: {}
|
1019
|
+
}
|
1020
|
+
if next_page != nil
|
1021
|
+
_kwargs[:params][:"next_page"] = next_page
|
1022
|
+
end
|
1023
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1024
|
+
[:"bearerAuth", ],
|
1025
|
+
**_kwargs
|
1026
|
+
)
|
1027
|
+
|
1028
|
+
|
1029
|
+
_response = _http_client.post(
|
1030
|
+
_url,
|
1031
|
+
json: data,
|
1032
|
+
**_req_kwargs
|
1033
|
+
)
|
1034
|
+
|
1035
|
+
# Raise if not expected success code
|
1036
|
+
if _response.status != 200
|
1037
|
+
raise RequestError.new(
|
1038
|
+
method="post",
|
1039
|
+
url=_url,
|
1040
|
+
response=_response
|
1041
|
+
)
|
1042
|
+
end
|
1043
|
+
|
1044
|
+
return _response.body.empty? ? '' : _response.parse
|
1045
|
+
end
|
1046
|
+
|
1047
|
+
# Remove a key from the allow list for a given entity.
|
1048
|
+
#
|
1049
|
+
def disable_custom_field_key(data: nil)
|
1050
|
+
_url = @_base_url + "/customFields/removeKey"
|
1051
|
+
_kwargs = {
|
1052
|
+
params: {}
|
1053
|
+
}
|
1054
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1055
|
+
[:"bearerAuth", ],
|
1056
|
+
**_kwargs
|
1057
|
+
)
|
1058
|
+
|
1059
|
+
|
1060
|
+
_response = _http_client.post(
|
1061
|
+
_url,
|
1062
|
+
json: data,
|
1063
|
+
**_req_kwargs
|
1064
|
+
)
|
1065
|
+
|
1066
|
+
# Raise if not expected success code
|
1067
|
+
if _response.status != 200
|
1068
|
+
raise RequestError.new(
|
1069
|
+
method="post",
|
1070
|
+
url=_url,
|
1071
|
+
response=_response
|
1072
|
+
)
|
1073
|
+
end
|
1074
|
+
|
1075
|
+
return _response.body.empty? ? '' : _response.parse
|
1076
|
+
end
|
1077
|
+
|
1078
|
+
# Sets one or more custom fields on an instance of a Metronome entity. If a key/value pair passed in this request matches one already set on the entity, its value will be overwritten. Any key/value pairs that exist on the entity that do not match those passed in this request will remain untouched. This endpoint is transactional and will update all key/value pairs or no key/value pairs. Partial updates are not supported. There is a 200 character limit on custom field values.
|
1079
|
+
#
|
1080
|
+
def set_custom_fields(data: nil)
|
1081
|
+
_url = @_base_url + "/customFields/setValues"
|
1082
|
+
_kwargs = {
|
1083
|
+
params: {}
|
1084
|
+
}
|
1085
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1086
|
+
[:"bearerAuth", ],
|
1087
|
+
**_kwargs
|
1088
|
+
)
|
1089
|
+
|
1090
|
+
|
1091
|
+
_response = _http_client.post(
|
1092
|
+
_url,
|
1093
|
+
json: data,
|
1094
|
+
**_req_kwargs
|
1095
|
+
)
|
1096
|
+
|
1097
|
+
# Raise if not expected success code
|
1098
|
+
if _response.status != 200
|
1099
|
+
raise RequestError.new(
|
1100
|
+
method="post",
|
1101
|
+
url=_url,
|
1102
|
+
response=_response
|
1103
|
+
)
|
1104
|
+
end
|
1105
|
+
|
1106
|
+
return _response.body.empty? ? '' : _response.parse
|
1107
|
+
end
|
1108
|
+
|
1109
|
+
# Get the customer alert status and alert information for the specified customer and alert
|
1110
|
+
def get_customer_alert(data: nil)
|
1111
|
+
_url = @_base_url + "/customer-alerts/get"
|
1112
|
+
_kwargs = {
|
1113
|
+
params: {}
|
1114
|
+
}
|
1115
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1116
|
+
[:"bearerAuth", ],
|
1117
|
+
**_kwargs
|
1118
|
+
)
|
1119
|
+
|
1120
|
+
|
1121
|
+
_response = _http_client.post(
|
1122
|
+
_url,
|
1123
|
+
json: data,
|
1124
|
+
**_req_kwargs
|
1125
|
+
)
|
1126
|
+
|
1127
|
+
# Raise if not expected success code
|
1128
|
+
if _response.status != 200
|
1129
|
+
raise RequestError.new(
|
1130
|
+
method="post",
|
1131
|
+
url=_url,
|
1132
|
+
response=_response
|
1133
|
+
)
|
1134
|
+
end
|
1135
|
+
|
1136
|
+
return _response.body.empty? ? '' : _response.parse
|
1137
|
+
end
|
1138
|
+
|
1139
|
+
# Fetch all customer alert statuses and alert information for a customer
|
1140
|
+
def list_customer_alerts(data: nil, next_page: nil)
|
1141
|
+
_url = @_base_url + "/customer-alerts/list"
|
1142
|
+
_kwargs = {
|
1143
|
+
params: {}
|
1144
|
+
}
|
1145
|
+
if next_page != nil
|
1146
|
+
_kwargs[:params][:"next_page"] = next_page
|
1147
|
+
end
|
1148
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1149
|
+
[:"bearerAuth", ],
|
1150
|
+
**_kwargs
|
1151
|
+
)
|
1152
|
+
|
1153
|
+
|
1154
|
+
_response = _http_client.post(
|
1155
|
+
_url,
|
1156
|
+
json: data,
|
1157
|
+
**_req_kwargs
|
1158
|
+
)
|
1159
|
+
|
1160
|
+
# Raise if not expected success code
|
1161
|
+
if _response.status != 200
|
1162
|
+
raise RequestError.new(
|
1163
|
+
method="post",
|
1164
|
+
url=_url,
|
1165
|
+
response=_response
|
1166
|
+
)
|
1167
|
+
end
|
1168
|
+
|
1169
|
+
return _response.body.empty? ? '' : _response.parse
|
1170
|
+
end
|
1171
|
+
|
1172
|
+
# Create a new customer
|
1173
|
+
def create_customer(data: nil)
|
1174
|
+
_url = @_base_url + "/customers"
|
1175
|
+
_kwargs = {
|
1176
|
+
params: {}
|
1177
|
+
}
|
1178
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1179
|
+
[:"bearerAuth", ],
|
1180
|
+
**_kwargs
|
1181
|
+
)
|
1182
|
+
|
1183
|
+
|
1184
|
+
_response = _http_client.post(
|
1185
|
+
_url,
|
1186
|
+
json: data,
|
1187
|
+
**_req_kwargs
|
1188
|
+
)
|
1189
|
+
|
1190
|
+
# Raise if not expected success code
|
1191
|
+
if _response.status != 200
|
1192
|
+
raise RequestError.new(
|
1193
|
+
method="post",
|
1194
|
+
url=_url,
|
1195
|
+
response=_response
|
1196
|
+
)
|
1197
|
+
end
|
1198
|
+
|
1199
|
+
return _response.body.empty? ? '' : _response.parse
|
1200
|
+
end
|
1201
|
+
|
1202
|
+
# Archive a customer
|
1203
|
+
def archive_customer(data: nil)
|
1204
|
+
_url = @_base_url + "/customers/archive"
|
1205
|
+
_kwargs = {
|
1206
|
+
params: {}
|
1207
|
+
}
|
1208
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1209
|
+
[:"bearerAuth", ],
|
1210
|
+
**_kwargs
|
1211
|
+
)
|
1212
|
+
|
1213
|
+
|
1214
|
+
_response = _http_client.post(
|
1215
|
+
_url,
|
1216
|
+
json: data,
|
1217
|
+
**_req_kwargs
|
1218
|
+
)
|
1219
|
+
|
1220
|
+
# Raise if not expected success code
|
1221
|
+
if _response.status != 200
|
1222
|
+
raise RequestError.new(
|
1223
|
+
method="post",
|
1224
|
+
url=_url,
|
1225
|
+
response=_response
|
1226
|
+
)
|
1227
|
+
end
|
1228
|
+
|
1229
|
+
return _response.body.empty? ? '' : _response.parse
|
1230
|
+
end
|
1231
|
+
|
1232
|
+
# Set the billing configuration for a given customer.
|
1233
|
+
def set_billing_config_for_customer(data: nil, customer_id, billing_provider_type)
|
1234
|
+
_url = @_base_url + "/customers/#{customer_id}/billing-config/#{billing_provider_type}"
|
1235
|
+
_kwargs = {
|
1236
|
+
params: {}
|
1237
|
+
}
|
1238
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1239
|
+
[:"bearerAuth", ],
|
1240
|
+
**_kwargs
|
1241
|
+
)
|
1242
|
+
|
1243
|
+
|
1244
|
+
_response = _http_client.post(
|
1245
|
+
_url,
|
1246
|
+
json: data,
|
1247
|
+
**_req_kwargs
|
1248
|
+
)
|
1249
|
+
|
1250
|
+
# Raise if not expected success code
|
1251
|
+
if _response.status != 200
|
1252
|
+
raise RequestError.new(
|
1253
|
+
method="post",
|
1254
|
+
url=_url,
|
1255
|
+
response=_response
|
1256
|
+
)
|
1257
|
+
end
|
1258
|
+
|
1259
|
+
return _response.body.empty? ? '' : _response.parse
|
1260
|
+
end
|
1261
|
+
|
1262
|
+
# Associate an existing customer with a plan for a specified date range. See the [price adjustments documentation](https://docs.metronome.com/pricing/managing-plans/#price-adjustments) for details on the price adjustments.
|
1263
|
+
def add_plan_to_customer(data: nil, customer_id)
|
1264
|
+
_url = @_base_url + "/customers/#{customer_id}/plans/add"
|
1265
|
+
_kwargs = {
|
1266
|
+
params: {}
|
1267
|
+
}
|
1268
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1269
|
+
[:"bearerAuth", ],
|
1270
|
+
**_kwargs
|
1271
|
+
)
|
1272
|
+
|
1273
|
+
|
1274
|
+
_response = _http_client.post(
|
1275
|
+
_url,
|
1276
|
+
json: data,
|
1277
|
+
**_req_kwargs
|
1278
|
+
)
|
1279
|
+
|
1280
|
+
# Raise if not expected success code
|
1281
|
+
if _response.status != 200
|
1282
|
+
raise RequestError.new(
|
1283
|
+
method="post",
|
1284
|
+
url=_url,
|
1285
|
+
response=_response
|
1286
|
+
)
|
1287
|
+
end
|
1288
|
+
|
1289
|
+
return _response.body.empty? ? '' : _response.parse
|
1290
|
+
end
|
1291
|
+
|
1292
|
+
# Change the end date of a customer's plan.
|
1293
|
+
def end_customer_plan(data: nil, customer_id, customer_plan_id)
|
1294
|
+
_url = @_base_url + "/customers/#{customer_id}/plans/#{customer_plan_id}/end"
|
1295
|
+
_kwargs = {
|
1296
|
+
params: {}
|
1297
|
+
}
|
1298
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1299
|
+
[:"bearerAuth", ],
|
1300
|
+
**_kwargs
|
1301
|
+
)
|
1302
|
+
|
1303
|
+
|
1304
|
+
_response = _http_client.post(
|
1305
|
+
_url,
|
1306
|
+
json: data,
|
1307
|
+
**_req_kwargs
|
1308
|
+
)
|
1309
|
+
|
1310
|
+
# Raise if not expected success code
|
1311
|
+
if _response.status != 200
|
1312
|
+
raise RequestError.new(
|
1313
|
+
method="post",
|
1314
|
+
url=_url,
|
1315
|
+
response=_response
|
1316
|
+
)
|
1317
|
+
end
|
1318
|
+
|
1319
|
+
return _response.body.empty? ? '' : _response.parse
|
1320
|
+
end
|
1321
|
+
|
1322
|
+
# Sets the ingest aliases for a customer. Ingest aliases can be used in the `customer_id` field when sending usage events to Metronome. This call is idempotent. It fully replaces the set of ingest aliases for the given customer.
|
1323
|
+
#
|
1324
|
+
def set_ingest_aliases(data: nil, customer_id)
|
1325
|
+
_url = @_base_url + "/customers/#{customer_id}/setIngestAliases"
|
1326
|
+
_kwargs = {
|
1327
|
+
params: {}
|
1328
|
+
}
|
1329
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1330
|
+
[:"bearerAuth", ],
|
1331
|
+
**_kwargs
|
1332
|
+
)
|
1333
|
+
|
1334
|
+
|
1335
|
+
_response = _http_client.post(
|
1336
|
+
_url,
|
1337
|
+
json: data,
|
1338
|
+
**_req_kwargs
|
1339
|
+
)
|
1340
|
+
|
1341
|
+
# Raise if not expected success code
|
1342
|
+
if _response.status != 200
|
1343
|
+
raise RequestError.new(
|
1344
|
+
method="post",
|
1345
|
+
url=_url,
|
1346
|
+
response=_response
|
1347
|
+
)
|
1348
|
+
end
|
1349
|
+
|
1350
|
+
return _response.body.empty? ? '' : _response.parse
|
1351
|
+
end
|
1352
|
+
|
1353
|
+
# Updates the specified customer's name.
|
1354
|
+
#
|
1355
|
+
def set_customer_name(data: nil, customer_id)
|
1356
|
+
_url = @_base_url + "/customers/#{customer_id}/setName"
|
1357
|
+
_kwargs = {
|
1358
|
+
params: {}
|
1359
|
+
}
|
1360
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1361
|
+
[:"bearerAuth", ],
|
1362
|
+
**_kwargs
|
1363
|
+
)
|
1364
|
+
|
1365
|
+
|
1366
|
+
_response = _http_client.post(
|
1367
|
+
_url,
|
1368
|
+
json: data,
|
1369
|
+
**_req_kwargs
|
1370
|
+
)
|
1371
|
+
|
1372
|
+
# Raise if not expected success code
|
1373
|
+
if _response.status != 200
|
1374
|
+
raise RequestError.new(
|
1375
|
+
method="post",
|
1376
|
+
url=_url,
|
1377
|
+
response=_response
|
1378
|
+
)
|
1379
|
+
end
|
1380
|
+
|
1381
|
+
return _response.body.empty? ? '' : _response.parse
|
1382
|
+
end
|
1383
|
+
|
1384
|
+
# Updates the specified customer's config.
|
1385
|
+
#
|
1386
|
+
def update_customer_config(data: nil, customer_id)
|
1387
|
+
_url = @_base_url + "/customers/#{customer_id}/updateConfig"
|
1388
|
+
_kwargs = {
|
1389
|
+
params: {}
|
1390
|
+
}
|
1391
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1392
|
+
[:"bearerAuth", ],
|
1393
|
+
**_kwargs
|
1394
|
+
)
|
1395
|
+
|
1396
|
+
|
1397
|
+
_response = _http_client.post(
|
1398
|
+
_url,
|
1399
|
+
json: data,
|
1400
|
+
**_req_kwargs
|
1401
|
+
)
|
1402
|
+
|
1403
|
+
# Raise if not expected success code
|
1404
|
+
if _response.status != 200
|
1405
|
+
raise RequestError.new(
|
1406
|
+
method="post",
|
1407
|
+
url=_url,
|
1408
|
+
response=_response
|
1409
|
+
)
|
1410
|
+
end
|
1411
|
+
|
1412
|
+
return _response.body.empty? ? '' : _response.parse
|
1413
|
+
end
|
1414
|
+
|
1415
|
+
# Retrieve an embeddable dashboard url for a customer. The dashboard can be embedded using an iframe in a website. This will show information such as usage data and customer invoices.
|
1416
|
+
def embeddable_dashboard(data: nil)
|
1417
|
+
_url = @_base_url + "/dashboards/getEmbeddableUrl"
|
1418
|
+
_kwargs = {
|
1419
|
+
params: {}
|
1420
|
+
}
|
1421
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1422
|
+
[:"bearerAuth", ],
|
1423
|
+
**_kwargs
|
1424
|
+
)
|
1425
|
+
|
1426
|
+
|
1427
|
+
_response = _http_client.post(
|
1428
|
+
_url,
|
1429
|
+
json: data,
|
1430
|
+
**_req_kwargs
|
1431
|
+
)
|
1432
|
+
|
1433
|
+
# Raise if not expected success code
|
1434
|
+
if _response.status != 200
|
1435
|
+
raise RequestError.new(
|
1436
|
+
method="post",
|
1437
|
+
url=_url,
|
1438
|
+
response=_response
|
1439
|
+
)
|
1440
|
+
end
|
1441
|
+
|
1442
|
+
return _response.body.empty? ? '' : _response.parse
|
1443
|
+
end
|
1444
|
+
|
1445
|
+
# Send usage events to Metronome. The body of this request is expected to be a JSON array of between 1 and 100 usage events. Compressed request bodies are supported with a `Content-Encoding: gzip` header. See [Getting usage into Metronome](https://docs.metronome.com/getting-usage-data-into-metronome/overview) to learn more about usage events.
|
1446
|
+
#
|
1447
|
+
def ingest(data: nil)
|
1448
|
+
_url = @_base_url + "/ingest"
|
1449
|
+
_kwargs = {
|
1450
|
+
params: {}
|
1451
|
+
}
|
1452
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1453
|
+
[:"bearerAuth", ],
|
1454
|
+
**_kwargs
|
1455
|
+
)
|
1456
|
+
|
1457
|
+
|
1458
|
+
_response = _http_client.post(
|
1459
|
+
_url,
|
1460
|
+
json: data,
|
1461
|
+
**_req_kwargs
|
1462
|
+
)
|
1463
|
+
|
1464
|
+
# Raise if not expected success code
|
1465
|
+
if _response.status != 200
|
1466
|
+
raise RequestError.new(
|
1467
|
+
method="post",
|
1468
|
+
url=_url,
|
1469
|
+
response=_response
|
1470
|
+
)
|
1471
|
+
end
|
1472
|
+
|
1473
|
+
return _response.body.empty? ? '' : _response.parse
|
1474
|
+
end
|
1475
|
+
|
1476
|
+
# Fetch aggregated usage data for multiple customers and billable-metrics, broken into intervals of the specified length.
|
1477
|
+
def get_usage_batch(data: nil, next_page: nil)
|
1478
|
+
_url = @_base_url + "/usage"
|
1479
|
+
_kwargs = {
|
1480
|
+
params: {}
|
1481
|
+
}
|
1482
|
+
if next_page != nil
|
1483
|
+
_kwargs[:params][:"next_page"] = next_page
|
1484
|
+
end
|
1485
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1486
|
+
[:"bearerAuth", ],
|
1487
|
+
**_kwargs
|
1488
|
+
)
|
1489
|
+
|
1490
|
+
|
1491
|
+
_response = _http_client.post(
|
1492
|
+
_url,
|
1493
|
+
json: data,
|
1494
|
+
**_req_kwargs
|
1495
|
+
)
|
1496
|
+
|
1497
|
+
# Raise if not expected success code
|
1498
|
+
if _response.status != 200
|
1499
|
+
raise RequestError.new(
|
1500
|
+
method="post",
|
1501
|
+
url=_url,
|
1502
|
+
response=_response
|
1503
|
+
)
|
1504
|
+
end
|
1505
|
+
|
1506
|
+
return _response.body.empty? ? '' : _response.parse
|
1507
|
+
end
|
1508
|
+
|
1509
|
+
# Fetch aggregated usage data for the specified customer, billable-metric, and optional group, broken into intervals of the specified length.
|
1510
|
+
def get_paged_usage(data: nil, limit: nil, next_page: nil)
|
1511
|
+
_url = @_base_url + "/usage/groups"
|
1512
|
+
_kwargs = {
|
1513
|
+
params: {}
|
1514
|
+
}
|
1515
|
+
if limit != nil
|
1516
|
+
_kwargs[:params][:"limit"] = limit
|
1517
|
+
end
|
1518
|
+
if next_page != nil
|
1519
|
+
_kwargs[:params][:"next_page"] = next_page
|
1520
|
+
end
|
1521
|
+
_http_client, _req_kwargs = self._client_with_auth(
|
1522
|
+
[:"bearerAuth", ],
|
1523
|
+
**_kwargs
|
1524
|
+
)
|
1525
|
+
|
1526
|
+
|
1527
|
+
_response = _http_client.post(
|
1528
|
+
_url,
|
1529
|
+
json: data,
|
1530
|
+
**_req_kwargs
|
1531
|
+
)
|
1532
|
+
|
1533
|
+
# Raise if not expected success code
|
1534
|
+
if _response.status != 200
|
1535
|
+
raise RequestError.new(
|
1536
|
+
method="post",
|
1537
|
+
url=_url,
|
1538
|
+
response=_response
|
1539
|
+
)
|
1540
|
+
end
|
1541
|
+
|
1542
|
+
return _response.body.empty? ? '' : _response.parse
|
1543
|
+
end
|
1544
|
+
|
1545
|
+
end
|