@hyperscale0/sdk 1.0.381 → 1.0.384

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.
package/client.js CHANGED
@@ -1,5 +1,4 @@
1
- // Generated from core/contracts operation descriptors. Do not edit.
2
- const routes = {
1
+ const sdkRoutes = {
3
2
  "account.balance.retrieve": {
4
3
  "method": "GET",
5
4
  "path": "/v1/accounts/{accountId}/balance",
@@ -7,6 +6,12 @@ const routes = {
7
6
  "accountId"
8
7
  ],
9
8
  "idempotency": "not_required",
9
+ "principals": [
10
+ "api_key",
11
+ "user_session",
12
+ "admin_session"
13
+ ],
14
+ "credentialTenant": true,
10
15
  "takesProductId": true
11
16
  },
12
17
  "account.close": {
@@ -15,20 +20,40 @@ const routes = {
15
20
  "pathParams": [
16
21
  "accountId"
17
22
  ],
18
- "idempotency": "required"
23
+ "idempotency": "required",
24
+ "principals": [
25
+ "api_key",
26
+ "user_session",
27
+ "admin_session"
28
+ ],
29
+ "credentialTenant": true,
30
+ "rehearsable": true
19
31
  },
20
32
  "account.create": {
21
33
  "method": "POST",
22
34
  "path": "/v1/accounts",
23
35
  "pathParams": [],
24
36
  "idempotency": "required",
25
- "takesProductId": true
37
+ "principals": [
38
+ "api_key",
39
+ "user_session",
40
+ "admin_session"
41
+ ],
42
+ "credentialTenant": true,
43
+ "takesProductId": true,
44
+ "rehearsable": true
26
45
  },
27
46
  "account.deposit": {
28
47
  "method": "POST",
29
48
  "path": "/v1/account-deposits",
30
49
  "pathParams": [],
31
- "idempotency": "required"
50
+ "idempotency": "required",
51
+ "principals": [
52
+ "api_key",
53
+ "user_session"
54
+ ],
55
+ "credentialTenant": true,
56
+ "rehearsable": true
32
57
  },
33
58
  "account.freeze": {
34
59
  "method": "POST",
@@ -36,7 +61,14 @@ const routes = {
36
61
  "pathParams": [
37
62
  "accountId"
38
63
  ],
39
- "idempotency": "required"
64
+ "idempotency": "required",
65
+ "principals": [
66
+ "api_key",
67
+ "user_session",
68
+ "admin_session"
69
+ ],
70
+ "credentialTenant": true,
71
+ "rehearsable": true
40
72
  },
41
73
  "account.hold.list": {
42
74
  "method": "GET",
@@ -45,6 +77,12 @@ const routes = {
45
77
  "accountId"
46
78
  ],
47
79
  "idempotency": "not_required",
80
+ "principals": [
81
+ "api_key",
82
+ "user_session",
83
+ "admin_session"
84
+ ],
85
+ "credentialTenant": true,
48
86
  "takesProductId": true,
49
87
  "collection": "items"
50
88
  },
@@ -56,6 +94,12 @@ const routes = {
56
94
  "transferId"
57
95
  ],
58
96
  "idempotency": "not_required",
97
+ "principals": [
98
+ "api_key",
99
+ "user_session",
100
+ "admin_session"
101
+ ],
102
+ "credentialTenant": true,
59
103
  "takesProductId": true
60
104
  },
61
105
  "account.list": {
@@ -63,6 +107,11 @@ const routes = {
63
107
  "path": "/v1/accounts",
64
108
  "pathParams": [],
65
109
  "idempotency": "not_required",
110
+ "principals": [
111
+ "api_key",
112
+ "user_session"
113
+ ],
114
+ "credentialTenant": true,
66
115
  "takesProductId": true,
67
116
  "collection": "items"
68
117
  },
@@ -73,6 +122,11 @@ const routes = {
73
122
  "accountId"
74
123
  ],
75
124
  "idempotency": "not_required",
125
+ "principals": [
126
+ "api_key",
127
+ "user_session"
128
+ ],
129
+ "credentialTenant": true,
76
130
  "takesProductId": true
77
131
  },
78
132
  "account.statement.export": {
@@ -83,6 +137,12 @@ const routes = {
83
137
  "period"
84
138
  ],
85
139
  "idempotency": "not_required",
140
+ "principals": [
141
+ "api_key",
142
+ "user_session",
143
+ "admin_session"
144
+ ],
145
+ "credentialTenant": true,
86
146
  "takesProductId": true
87
147
  },
88
148
  "account.statement.retrieve": {
@@ -93,6 +153,12 @@ const routes = {
93
153
  "period"
94
154
  ],
95
155
  "idempotency": "not_required",
156
+ "principals": [
157
+ "api_key",
158
+ "user_session",
159
+ "admin_session"
160
+ ],
161
+ "credentialTenant": true,
96
162
  "takesProductId": true,
97
163
  "collection": "lines"
98
164
  },
@@ -102,13 +168,26 @@ const routes = {
102
168
  "pathParams": [
103
169
  "accountId"
104
170
  ],
105
- "idempotency": "required"
171
+ "idempotency": "required",
172
+ "principals": [
173
+ "api_key",
174
+ "user_session",
175
+ "admin_session"
176
+ ],
177
+ "credentialTenant": true,
178
+ "rehearsable": true
106
179
  },
107
180
  "activity.list": {
108
181
  "method": "GET",
109
182
  "path": "/v1/activity",
110
183
  "pathParams": [],
111
184
  "idempotency": "not_required",
185
+ "principals": [
186
+ "api_key",
187
+ "user_session",
188
+ "admin_session"
189
+ ],
190
+ "credentialTenant": true,
112
191
  "takesProductId": true,
113
192
  "collection": "items"
114
193
  },
@@ -119,6 +198,12 @@ const routes = {
119
198
  "activityId"
120
199
  ],
121
200
  "idempotency": "not_required",
201
+ "principals": [
202
+ "api_key",
203
+ "user_session",
204
+ "admin_session"
205
+ ],
206
+ "credentialTenant": true,
122
207
  "takesProductId": true
123
208
  },
124
209
  "audit_event.list": {
@@ -126,6 +211,11 @@ const routes = {
126
211
  "path": "/v1/audit-events",
127
212
  "pathParams": [],
128
213
  "idempotency": "not_required",
214
+ "principals": [
215
+ "api_key",
216
+ "user_session"
217
+ ],
218
+ "credentialTenant": true,
129
219
  "takesProductId": true,
130
220
  "collection": "items"
131
221
  },
@@ -136,6 +226,11 @@ const routes = {
136
226
  "auditEventId"
137
227
  ],
138
228
  "idempotency": "not_required",
229
+ "principals": [
230
+ "api_key",
231
+ "user_session"
232
+ ],
233
+ "credentialTenant": true,
139
234
  "takesProductId": true
140
235
  },
141
236
  "consent.list": {
@@ -143,6 +238,11 @@ const routes = {
143
238
  "path": "/v1/consents",
144
239
  "pathParams": [],
145
240
  "idempotency": "not_required",
241
+ "principals": [
242
+ "api_key",
243
+ "user_session"
244
+ ],
245
+ "credentialTenant": true,
146
246
  "takesProductId": true,
147
247
  "collection": "items"
148
248
  },
@@ -153,6 +253,11 @@ const routes = {
153
253
  "consentId"
154
254
  ],
155
255
  "idempotency": "not_required",
256
+ "principals": [
257
+ "api_key",
258
+ "user_session"
259
+ ],
260
+ "credentialTenant": true,
156
261
  "takesProductId": true
157
262
  },
158
263
  "consent.revoke": {
@@ -162,7 +267,14 @@ const routes = {
162
267
  "consentId"
163
268
  ],
164
269
  "idempotency": "required",
165
- "takesProductId": true
270
+ "principals": [
271
+ "api_key",
272
+ "user_session",
273
+ "admin_session"
274
+ ],
275
+ "credentialTenant": true,
276
+ "takesProductId": true,
277
+ "rehearsable": true
166
278
  },
167
279
  "customer_access.close": {
168
280
  "method": "POST",
@@ -170,13 +282,25 @@ const routes = {
170
282
  "pathParams": [
171
283
  "customerAccessId"
172
284
  ],
173
- "idempotency": "required"
285
+ "idempotency": "required",
286
+ "principals": [
287
+ "api_key",
288
+ "user_session",
289
+ "admin_session"
290
+ ],
291
+ "credentialTenant": true,
292
+ "rehearsable": true
174
293
  },
175
294
  "customer_access.list": {
176
295
  "method": "GET",
177
296
  "path": "/v1/customer-access",
178
297
  "pathParams": [],
179
298
  "idempotency": "not_required",
299
+ "principals": [
300
+ "api_key",
301
+ "user_session"
302
+ ],
303
+ "credentialTenant": true,
180
304
  "takesProductId": true,
181
305
  "collection": "items"
182
306
  },
@@ -186,7 +310,14 @@ const routes = {
186
310
  "pathParams": [
187
311
  "customerAccessId"
188
312
  ],
189
- "idempotency": "required"
313
+ "idempotency": "required",
314
+ "principals": [
315
+ "api_key",
316
+ "user_session",
317
+ "admin_session"
318
+ ],
319
+ "credentialTenant": true,
320
+ "rehearsable": true
190
321
  },
191
322
  "customer_access.retrieve": {
192
323
  "method": "GET",
@@ -195,6 +326,11 @@ const routes = {
195
326
  "customerAccessId"
196
327
  ],
197
328
  "idempotency": "not_required",
329
+ "principals": [
330
+ "api_key",
331
+ "user_session"
332
+ ],
333
+ "credentialTenant": true,
198
334
  "takesProductId": true
199
335
  },
200
336
  "customer_access.suspend": {
@@ -203,26 +339,48 @@ const routes = {
203
339
  "pathParams": [
204
340
  "customerAccessId"
205
341
  ],
206
- "idempotency": "required"
342
+ "idempotency": "required",
343
+ "principals": [
344
+ "api_key",
345
+ "user_session",
346
+ "admin_session"
347
+ ],
348
+ "credentialTenant": true,
349
+ "rehearsable": true
207
350
  },
208
351
  "customer.create": {
209
352
  "method": "POST",
210
353
  "path": "/v1/customers",
211
354
  "pathParams": [],
212
355
  "idempotency": "required",
213
- "takesProductId": true
356
+ "principals": [
357
+ "api_key",
358
+ "user_session"
359
+ ],
360
+ "credentialTenant": true,
361
+ "takesProductId": true,
362
+ "rehearsable": true
214
363
  },
215
364
  "customer.join": {
216
365
  "method": "POST",
217
366
  "path": "/v1/customer-identity/join",
218
367
  "pathParams": [],
219
- "idempotency": "required"
368
+ "idempotency": "required",
369
+ "principals": [
370
+ "customer_session"
371
+ ],
372
+ "rehearsable": true
220
373
  },
221
374
  "customer.list": {
222
375
  "method": "GET",
223
376
  "path": "/v1/customers",
224
377
  "pathParams": [],
225
378
  "idempotency": "not_required",
379
+ "principals": [
380
+ "api_key",
381
+ "user_session"
382
+ ],
383
+ "credentialTenant": true,
226
384
  "takesProductId": true,
227
385
  "collection": "items"
228
386
  },
@@ -231,19 +389,31 @@ const routes = {
231
389
  "path": "/v1/customer-identity/login",
232
390
  "pathParams": [],
233
391
  "idempotency": "required",
234
- "takesProductId": true
392
+ "principals": [
393
+ "customer_session"
394
+ ],
395
+ "takesProductId": true,
396
+ "rehearsable": true
235
397
  },
236
398
  "customer.logout": {
237
399
  "method": "POST",
238
400
  "path": "/v1/customer-identity/logout",
239
401
  "pathParams": [],
240
- "idempotency": "required"
402
+ "idempotency": "required",
403
+ "principals": [
404
+ "customer_session"
405
+ ],
406
+ "rehearsable": true
241
407
  },
242
408
  "customer.me.retrieve": {
243
409
  "method": "GET",
244
410
  "path": "/v1/customer-identity/me",
245
411
  "pathParams": [],
246
412
  "idempotency": "not_required",
413
+ "principals": [
414
+ "customer_session"
415
+ ],
416
+ "credentialTenant": true,
247
417
  "takesProductId": true
248
418
  },
249
419
  "customer.profile.update": {
@@ -252,7 +422,13 @@ const routes = {
252
422
  "pathParams": [
253
423
  "customerId"
254
424
  ],
255
- "idempotency": "required"
425
+ "idempotency": "required",
426
+ "principals": [
427
+ "api_key",
428
+ "user_session"
429
+ ],
430
+ "credentialTenant": true,
431
+ "rehearsable": true
256
432
  },
257
433
  "customer.retrieve": {
258
434
  "method": "GET",
@@ -261,6 +437,11 @@ const routes = {
261
437
  "customerId"
262
438
  ],
263
439
  "idempotency": "not_required",
440
+ "principals": [
441
+ "api_key",
442
+ "user_session"
443
+ ],
444
+ "credentialTenant": true,
264
445
  "takesProductId": true
265
446
  },
266
447
  "customer.session.revoke": {
@@ -269,20 +450,34 @@ const routes = {
269
450
  "pathParams": [
270
451
  "customerSessionId"
271
452
  ],
272
- "idempotency": "required"
453
+ "idempotency": "required",
454
+ "principals": [
455
+ "customer_session"
456
+ ],
457
+ "rehearsable": true
273
458
  },
274
459
  "customer.signup": {
275
460
  "method": "POST",
276
461
  "path": "/v1/customer-identity/signup",
277
462
  "pathParams": [],
278
463
  "idempotency": "required",
279
- "takesProductId": true
464
+ "principals": [
465
+ "customer_session"
466
+ ],
467
+ "takesProductId": true,
468
+ "rehearsable": true
280
469
  },
281
470
  "event.list": {
282
471
  "method": "GET",
283
472
  "path": "/v1/events",
284
473
  "pathParams": [],
285
474
  "idempotency": "not_required",
475
+ "principals": [
476
+ "api_key",
477
+ "user_session",
478
+ "admin_session"
479
+ ],
480
+ "credentialTenant": true,
286
481
  "takesProductId": true,
287
482
  "collection": "items"
288
483
  },
@@ -293,20 +488,24 @@ const routes = {
293
488
  "eventId"
294
489
  ],
295
490
  "idempotency": "not_required",
491
+ "principals": [
492
+ "api_key",
493
+ "user_session",
494
+ "admin_session"
495
+ ],
496
+ "credentialTenant": true,
296
497
  "takesProductId": true
297
498
  },
298
- "extension.list": {
299
- "method": "GET",
300
- "path": "/v1/extensions",
301
- "pathParams": [],
302
- "idempotency": "not_required",
303
- "collection": "items"
304
- },
305
499
  "internal_transfer.list": {
306
500
  "method": "GET",
307
501
  "path": "/v1/internal-transfers",
308
502
  "pathParams": [],
309
503
  "idempotency": "not_required",
504
+ "principals": [
505
+ "api_key",
506
+ "user_session"
507
+ ],
508
+ "credentialTenant": true,
310
509
  "takesProductId": true,
311
510
  "collection": "items"
312
511
  },
@@ -317,6 +516,11 @@ const routes = {
317
516
  "transferId"
318
517
  ],
319
518
  "idempotency": "not_required",
519
+ "principals": [
520
+ "api_key",
521
+ "user_session"
522
+ ],
523
+ "credentialTenant": true,
320
524
  "takesProductId": true
321
525
  },
322
526
  "operation.list": {
@@ -324,6 +528,11 @@ const routes = {
324
528
  "path": "/v1/operations",
325
529
  "pathParams": [],
326
530
  "idempotency": "not_required",
531
+ "principals": [
532
+ "api_key",
533
+ "user_session"
534
+ ],
535
+ "credentialTenant": true,
327
536
  "takesProductId": true,
328
537
  "collection": "items"
329
538
  },
@@ -334,6 +543,11 @@ const routes = {
334
543
  "operationId"
335
544
  ],
336
545
  "idempotency": "not_required",
546
+ "principals": [
547
+ "api_key",
548
+ "user_session"
549
+ ],
550
+ "credentialTenant": true,
337
551
  "takesProductId": true
338
552
  },
339
553
  "payment_reminder.delivery.retrieve": {
@@ -344,6 +558,12 @@ const routes = {
344
558
  "operationId"
345
559
  ],
346
560
  "idempotency": "not_required",
561
+ "principals": [
562
+ "api_key",
563
+ "user_session",
564
+ "admin_session"
565
+ ],
566
+ "credentialTenant": true,
347
567
  "takesProductId": true
348
568
  },
349
569
  "product.actions.list": {
@@ -353,6 +573,11 @@ const routes = {
353
573
  "productId"
354
574
  ],
355
575
  "idempotency": "not_required",
576
+ "principals": [
577
+ "api_key",
578
+ "user_session"
579
+ ],
580
+ "credentialTenant": true,
356
581
  "takesProductId": true
357
582
  },
358
583
  "product.activation.retrieve": {
@@ -362,6 +587,12 @@ const routes = {
362
587
  "productId"
363
588
  ],
364
589
  "idempotency": "not_required",
590
+ "principals": [
591
+ "api_key",
592
+ "user_session",
593
+ "admin_session"
594
+ ],
595
+ "credentialTenant": true,
365
596
  "takesProductId": true
366
597
  },
367
598
  "product.blocks.summary": {
@@ -371,6 +602,11 @@ const routes = {
371
602
  "productId"
372
603
  ],
373
604
  "idempotency": "not_required",
605
+ "principals": [
606
+ "api_key",
607
+ "user_session"
608
+ ],
609
+ "credentialTenant": true,
374
610
  "takesProductId": true,
375
611
  "collection": "items"
376
612
  },
@@ -381,6 +617,12 @@ const routes = {
381
617
  "productId"
382
618
  ],
383
619
  "idempotency": "not_required",
620
+ "principals": [
621
+ "api_key",
622
+ "user_session",
623
+ "admin_session"
624
+ ],
625
+ "credentialTenant": true,
384
626
  "takesProductId": true
385
627
  },
386
628
  "product.connections.retrieve": {
@@ -390,6 +632,11 @@ const routes = {
390
632
  "productId"
391
633
  ],
392
634
  "idempotency": "not_required",
635
+ "principals": [
636
+ "api_key",
637
+ "user_session"
638
+ ],
639
+ "credentialTenant": true,
393
640
  "takesProductId": true
394
641
  },
395
642
  "product.earn.rate.list": {
@@ -399,6 +646,12 @@ const routes = {
399
646
  "productId"
400
647
  ],
401
648
  "idempotency": "not_required",
649
+ "principals": [
650
+ "api_key",
651
+ "user_session",
652
+ "admin_session"
653
+ ],
654
+ "credentialTenant": true,
402
655
  "takesProductId": true,
403
656
  "collection": "items"
404
657
  },
@@ -409,7 +662,14 @@ const routes = {
409
662
  "productId"
410
663
  ],
411
664
  "idempotency": "required",
412
- "takesProductId": true
665
+ "principals": [
666
+ "api_key",
667
+ "user_session",
668
+ "admin_session"
669
+ ],
670
+ "credentialTenant": true,
671
+ "takesProductId": true,
672
+ "rehearsable": true
413
673
  },
414
674
  "product.economic_snapshot.retrieve": {
415
675
  "method": "GET",
@@ -418,6 +678,12 @@ const routes = {
418
678
  "productId"
419
679
  ],
420
680
  "idempotency": "not_required",
681
+ "principals": [
682
+ "api_key",
683
+ "user_session",
684
+ "admin_session"
685
+ ],
686
+ "credentialTenant": true,
421
687
  "takesProductId": true
422
688
  },
423
689
  "product.guidance.retrieve": {
@@ -427,6 +693,12 @@ const routes = {
427
693
  "productId"
428
694
  ],
429
695
  "idempotency": "not_required",
696
+ "principals": [
697
+ "api_key",
698
+ "user_session",
699
+ "admin_session"
700
+ ],
701
+ "credentialTenant": true,
430
702
  "takesProductId": true
431
703
  },
432
704
  "product.instruments.list": {
@@ -436,6 +708,11 @@ const routes = {
436
708
  "productId"
437
709
  ],
438
710
  "idempotency": "not_required",
711
+ "principals": [
712
+ "api_key",
713
+ "user_session"
714
+ ],
715
+ "credentialTenant": true,
439
716
  "takesProductId": true
440
717
  },
441
718
  "product.margin.retrieve": {
@@ -445,6 +722,12 @@ const routes = {
445
722
  "productId"
446
723
  ],
447
724
  "idempotency": "not_required",
725
+ "principals": [
726
+ "api_key",
727
+ "user_session",
728
+ "admin_session"
729
+ ],
730
+ "credentialTenant": true,
448
731
  "takesProductId": true
449
732
  },
450
733
  "product.objects.actions": {
@@ -456,6 +739,12 @@ const routes = {
456
739
  "objectId"
457
740
  ],
458
741
  "idempotency": "not_required",
742
+ "principals": [
743
+ "api_key",
744
+ "user_session",
745
+ "customer_session"
746
+ ],
747
+ "credentialTenant": true,
459
748
  "takesProductId": true,
460
749
  "collection": "actions"
461
750
  },
@@ -469,6 +758,12 @@ const routes = {
469
758
  "instanceId"
470
759
  ],
471
760
  "idempotency": "not_required",
761
+ "principals": [
762
+ "api_key",
763
+ "user_session",
764
+ "customer_session"
765
+ ],
766
+ "credentialTenant": true,
472
767
  "takesProductId": true,
473
768
  "collection": "items"
474
769
  },
@@ -481,6 +776,12 @@ const routes = {
481
776
  "objectId"
482
777
  ],
483
778
  "idempotency": "not_required",
779
+ "principals": [
780
+ "api_key",
781
+ "user_session",
782
+ "customer_session"
783
+ ],
784
+ "credentialTenant": true,
484
785
  "takesProductId": true,
485
786
  "collection": "items"
486
787
  },
@@ -492,7 +793,14 @@ const routes = {
492
793
  "kind"
493
794
  ],
494
795
  "idempotency": "required",
495
- "takesProductId": true
796
+ "principals": [
797
+ "api_key",
798
+ "user_session",
799
+ "customer_session"
800
+ ],
801
+ "credentialTenant": true,
802
+ "takesProductId": true,
803
+ "rehearsable": true
496
804
  },
497
805
  "product.objects.discover": {
498
806
  "method": "GET",
@@ -501,6 +809,12 @@ const routes = {
501
809
  "productId"
502
810
  ],
503
811
  "idempotency": "not_required",
812
+ "principals": [
813
+ "api_key",
814
+ "user_session",
815
+ "customer_session"
816
+ ],
817
+ "credentialTenant": true,
504
818
  "takesProductId": true
505
819
  },
506
820
  "product.objects.execute": {
@@ -513,7 +827,14 @@ const routes = {
513
827
  "action"
514
828
  ],
515
829
  "idempotency": "required",
516
- "takesProductId": true
830
+ "principals": [
831
+ "api_key",
832
+ "user_session",
833
+ "customer_session"
834
+ ],
835
+ "credentialTenant": true,
836
+ "takesProductId": true,
837
+ "rehearsable": true
517
838
  },
518
839
  "product.objects.list": {
519
840
  "method": "GET",
@@ -523,6 +844,12 @@ const routes = {
523
844
  "kind"
524
845
  ],
525
846
  "idempotency": "not_required",
847
+ "principals": [
848
+ "api_key",
849
+ "user_session",
850
+ "customer_session"
851
+ ],
852
+ "credentialTenant": true,
526
853
  "takesProductId": true,
527
854
  "collection": "items"
528
855
  },
@@ -536,6 +863,12 @@ const routes = {
536
863
  "action"
537
864
  ],
538
865
  "idempotency": "not_required",
866
+ "principals": [
867
+ "api_key",
868
+ "user_session",
869
+ "customer_session"
870
+ ],
871
+ "credentialTenant": true,
539
872
  "takesProductId": true
540
873
  },
541
874
  "product.objects.retrieve": {
@@ -547,6 +880,12 @@ const routes = {
547
880
  "objectId"
548
881
  ],
549
882
  "idempotency": "not_required",
883
+ "principals": [
884
+ "api_key",
885
+ "user_session",
886
+ "customer_session"
887
+ ],
888
+ "credentialTenant": true,
550
889
  "takesProductId": true
551
890
  },
552
891
  "product.objects.timeline.list": {
@@ -558,6 +897,12 @@ const routes = {
558
897
  "objectId"
559
898
  ],
560
899
  "idempotency": "not_required",
900
+ "principals": [
901
+ "api_key",
902
+ "user_session",
903
+ "customer_session"
904
+ ],
905
+ "credentialTenant": true,
561
906
  "takesProductId": true,
562
907
  "collection": "items"
563
908
  },
@@ -568,6 +913,11 @@ const routes = {
568
913
  "productId"
569
914
  ],
570
915
  "idempotency": "not_required",
916
+ "principals": [
917
+ "api_key",
918
+ "user_session"
919
+ ],
920
+ "credentialTenant": true,
571
921
  "takesProductId": true
572
922
  },
573
923
  "product.schedule.list": {
@@ -577,6 +927,11 @@ const routes = {
577
927
  "productId"
578
928
  ],
579
929
  "idempotency": "not_required",
930
+ "principals": [
931
+ "api_key",
932
+ "user_session"
933
+ ],
934
+ "credentialTenant": true,
580
935
  "takesProductId": true,
581
936
  "collection": "items"
582
937
  },
@@ -587,6 +942,12 @@ const routes = {
587
942
  "productId"
588
943
  ],
589
944
  "idempotency": "not_required",
945
+ "principals": [
946
+ "api_key",
947
+ "user_session",
948
+ "admin_session"
949
+ ],
950
+ "credentialTenant": true,
590
951
  "takesProductId": true
591
952
  },
592
953
  "product.work.list": {
@@ -596,6 +957,11 @@ const routes = {
596
957
  "productId"
597
958
  ],
598
959
  "idempotency": "not_required",
960
+ "principals": [
961
+ "api_key",
962
+ "user_session"
963
+ ],
964
+ "credentialTenant": true,
599
965
  "takesProductId": true,
600
966
  "collection": "items"
601
967
  },
@@ -604,6 +970,11 @@ const routes = {
604
970
  "path": "/v1/receipts",
605
971
  "pathParams": [],
606
972
  "idempotency": "not_required",
973
+ "principals": [
974
+ "api_key",
975
+ "user_session"
976
+ ],
977
+ "credentialTenant": true,
607
978
  "takesProductId": true,
608
979
  "collection": "items"
609
980
  },
@@ -614,20 +985,37 @@ const routes = {
614
985
  "receiptId"
615
986
  ],
616
987
  "idempotency": "not_required",
988
+ "principals": [
989
+ "api_key",
990
+ "user_session"
991
+ ],
992
+ "credentialTenant": true,
617
993
  "takesProductId": true
618
994
  },
619
995
  "sandbox.account.fund": {
620
996
  "method": "POST",
621
997
  "path": "/v1/sandbox/account-funding",
622
998
  "pathParams": [],
623
- "idempotency": "required"
999
+ "idempotency": "required",
1000
+ "principals": [
1001
+ "api_key",
1002
+ "user_session"
1003
+ ],
1004
+ "credentialTenant": true,
1005
+ "rehearsable": true
624
1006
  },
625
1007
  "sandbox.clock.advance": {
626
1008
  "method": "POST",
627
1009
  "path": "/v1/sandbox/clock/advance",
628
1010
  "pathParams": [],
629
1011
  "idempotency": "required",
630
- "takesProductId": true
1012
+ "principals": [
1013
+ "api_key",
1014
+ "user_session"
1015
+ ],
1016
+ "credentialTenant": true,
1017
+ "takesProductId": true,
1018
+ "rehearsable": true
631
1019
  },
632
1020
  "sandbox.clock.retrieve": {
633
1021
  "method": "GET",
@@ -636,6 +1024,12 @@ const routes = {
636
1024
  "productId"
637
1025
  ],
638
1026
  "idempotency": "not_required",
1027
+ "principals": [
1028
+ "api_key",
1029
+ "user_session",
1030
+ "admin_session"
1031
+ ],
1032
+ "credentialTenant": true,
639
1033
  "takesProductId": true
640
1034
  },
641
1035
  "sandbox.customer_access.activate": {
@@ -644,19 +1038,24 @@ const routes = {
644
1038
  "pathParams": [
645
1039
  "customerAccessId"
646
1040
  ],
647
- "idempotency": "required"
648
- },
649
- "sandbox.platform.fire": {
650
- "method": "POST",
651
- "path": "/v1/sandbox/platform/fire",
652
- "pathParams": [],
653
- "idempotency": "required"
1041
+ "idempotency": "required",
1042
+ "principals": [
1043
+ "api_key",
1044
+ "user_session"
1045
+ ],
1046
+ "credentialTenant": true,
1047
+ "rehearsable": true
654
1048
  },
655
1049
  "usage_record.list": {
656
1050
  "method": "GET",
657
1051
  "path": "/v1/usage-records",
658
1052
  "pathParams": [],
659
1053
  "idempotency": "not_required",
1054
+ "principals": [
1055
+ "api_key",
1056
+ "user_session"
1057
+ ],
1058
+ "credentialTenant": true,
660
1059
  "takesProductId": true,
661
1060
  "collection": "items"
662
1061
  },
@@ -667,6 +1066,11 @@ const routes = {
667
1066
  "usageRecordId"
668
1067
  ],
669
1068
  "idempotency": "not_required",
1069
+ "principals": [
1070
+ "api_key",
1071
+ "user_session"
1072
+ ],
1073
+ "credentialTenant": true,
670
1074
  "takesProductId": true
671
1075
  },
672
1076
  "webhook.delivery.list": {
@@ -676,6 +1080,12 @@ const routes = {
676
1080
  "webhookEndpointId"
677
1081
  ],
678
1082
  "idempotency": "not_required",
1083
+ "principals": [
1084
+ "api_key",
1085
+ "user_session",
1086
+ "admin_session"
1087
+ ],
1088
+ "credentialTenant": true,
679
1089
  "collection": "items"
680
1090
  },
681
1091
  "webhook.delivery.resend": {
@@ -685,14 +1095,26 @@ const routes = {
685
1095
  "webhookEndpointId",
686
1096
  "webhookDeliveryId"
687
1097
  ],
688
- "idempotency": "required"
1098
+ "idempotency": "required",
1099
+ "principals": [
1100
+ "api_key",
1101
+ "user_session"
1102
+ ],
1103
+ "credentialTenant": true,
1104
+ "rehearsable": true
689
1105
  },
690
1106
  "webhook.endpoint.create": {
691
1107
  "method": "POST",
692
1108
  "path": "/v1/webhook-endpoints",
693
1109
  "pathParams": [],
694
1110
  "idempotency": "required",
695
- "takesProductId": true
1111
+ "principals": [
1112
+ "api_key",
1113
+ "user_session"
1114
+ ],
1115
+ "credentialTenant": true,
1116
+ "takesProductId": true,
1117
+ "rehearsable": true
696
1118
  },
697
1119
  "webhook.endpoint.delete": {
698
1120
  "method": "POST",
@@ -700,7 +1122,13 @@ const routes = {
700
1122
  "pathParams": [
701
1123
  "webhookEndpointId"
702
1124
  ],
703
- "idempotency": "required"
1125
+ "idempotency": "required",
1126
+ "principals": [
1127
+ "api_key",
1128
+ "user_session"
1129
+ ],
1130
+ "credentialTenant": true,
1131
+ "rehearsable": true
704
1132
  },
705
1133
  "webhook.endpoint.disable": {
706
1134
  "method": "POST",
@@ -708,7 +1136,13 @@ const routes = {
708
1136
  "pathParams": [
709
1137
  "webhookEndpointId"
710
1138
  ],
711
- "idempotency": "required"
1139
+ "idempotency": "required",
1140
+ "principals": [
1141
+ "api_key",
1142
+ "user_session"
1143
+ ],
1144
+ "credentialTenant": true,
1145
+ "rehearsable": true
712
1146
  },
713
1147
  "webhook.endpoint.enable": {
714
1148
  "method": "POST",
@@ -716,13 +1150,25 @@ const routes = {
716
1150
  "pathParams": [
717
1151
  "webhookEndpointId"
718
1152
  ],
719
- "idempotency": "required"
1153
+ "idempotency": "required",
1154
+ "principals": [
1155
+ "api_key",
1156
+ "user_session"
1157
+ ],
1158
+ "credentialTenant": true,
1159
+ "rehearsable": true
720
1160
  },
721
1161
  "webhook.endpoint.list": {
722
1162
  "method": "GET",
723
1163
  "path": "/v1/webhook-endpoints",
724
1164
  "pathParams": [],
725
1165
  "idempotency": "not_required",
1166
+ "principals": [
1167
+ "api_key",
1168
+ "user_session",
1169
+ "admin_session"
1170
+ ],
1171
+ "credentialTenant": true,
726
1172
  "takesProductId": true,
727
1173
  "collection": "items"
728
1174
  },
@@ -732,7 +1178,13 @@ const routes = {
732
1178
  "pathParams": [
733
1179
  "webhookEndpointId"
734
1180
  ],
735
- "idempotency": "required"
1181
+ "idempotency": "required",
1182
+ "principals": [
1183
+ "api_key",
1184
+ "user_session"
1185
+ ],
1186
+ "credentialTenant": true,
1187
+ "rehearsable": true
736
1188
  },
737
1189
  "webhook.endpoint.retrieve": {
738
1190
  "method": "GET",
@@ -740,7 +1192,13 @@ const routes = {
740
1192
  "pathParams": [
741
1193
  "webhookEndpointId"
742
1194
  ],
743
- "idempotency": "not_required"
1195
+ "idempotency": "not_required",
1196
+ "principals": [
1197
+ "api_key",
1198
+ "user_session",
1199
+ "admin_session"
1200
+ ],
1201
+ "credentialTenant": true
744
1202
  },
745
1203
  "webhook.endpoint.secret.rotate": {
746
1204
  "method": "POST",
@@ -748,7 +1206,13 @@ const routes = {
748
1206
  "pathParams": [
749
1207
  "webhookEndpointId"
750
1208
  ],
751
- "idempotency": "required"
1209
+ "idempotency": "required",
1210
+ "principals": [
1211
+ "api_key",
1212
+ "user_session"
1213
+ ],
1214
+ "credentialTenant": true,
1215
+ "rehearsable": true
752
1216
  },
753
1217
  "webhook.endpoint.update": {
754
1218
  "method": "PATCH",
@@ -756,7 +1220,13 @@ const routes = {
756
1220
  "pathParams": [
757
1221
  "webhookEndpointId"
758
1222
  ],
759
- "idempotency": "required"
1223
+ "idempotency": "required",
1224
+ "principals": [
1225
+ "api_key",
1226
+ "user_session"
1227
+ ],
1228
+ "credentialTenant": true,
1229
+ "rehearsable": true
760
1230
  },
761
1231
  "webhook.event.catalog": {
762
1232
  "method": "GET",
@@ -765,13 +1235,28 @@ const routes = {
765
1235
  "productId"
766
1236
  ],
767
1237
  "idempotency": "not_required",
1238
+ "principals": [
1239
+ "api_key",
1240
+ "user_session",
1241
+ "admin_session"
1242
+ ],
1243
+ "credentialTenant": true,
768
1244
  "takesProductId": true
769
1245
  }
770
1246
  };
771
1247
 
1248
+ // The SDK lists every operation; a Product key or customer session calls these.
1249
+ const routes = Object.fromEntries(
1250
+ Object.entries(sdkRoutes).filter(([, route]) =>
1251
+ route.principals.some(
1252
+ (kind) => kind === "api_key" || kind === "customer_session",
1253
+ ),
1254
+ ),
1255
+ );
1256
+
772
1257
  /** A refusal from Hyperscale, carrying the server's own code and message. */
773
1258
  export class HyperscaleError extends Error {
774
- constructor({ status, code, message, details, requestId }) {
1259
+ constructor({ status, code, message, details, requestId, trace }) {
775
1260
  super(message);
776
1261
  this.name = "HyperscaleError";
777
1262
  this.code = code;
@@ -781,6 +1266,11 @@ export class HyperscaleError extends Error {
781
1266
  if (typeof details?.nextStep === "string") this.nextStep = details.nextStep;
782
1267
  if (typeof details?.shortfall === "string")
783
1268
  this.shortfall = details.shortfall;
1269
+ if (trace && typeof trace === "object") {
1270
+ this.trace = trace;
1271
+ this.gate = trace.gate;
1272
+ if (trace.remedy) this.remedy = trace.remedy;
1273
+ }
784
1274
  }
785
1275
  }
786
1276
 
@@ -880,6 +1370,7 @@ export function createClient({
880
1370
  code: result?.error?.code ?? "internal_error",
881
1371
  message: result?.error?.message ?? `HTTP ${response.status}`,
882
1372
  details: result?.error?.details,
1373
+ trace: result?.error?.trace,
883
1374
  requestId: result?.requestId ?? response.headers.get("x-request-id"),
884
1375
  }),
885
1376
  retryAfter: Number(response.headers.get("retry-after")) || 0,
@@ -939,6 +1430,12 @@ export function createClient({
939
1430
  const headers = { ...options.headers };
940
1431
  const turnstile = options.turnstileToken ?? turnstileToken;
941
1432
  if (turnstile) headers["x-turnstile-token"] ??= turnstile;
1433
+ if (options.rehearse) {
1434
+ // A read would ignore the header and answer its own output.
1435
+ if (route && !route.rehearsable)
1436
+ throw new Error(`${name} is a read; only a mutation can rehearse`);
1437
+ headers["x-hyperscale-rehearsal"] = "true";
1438
+ }
942
1439
  if (!route) {
943
1440
  const operation = await productOperationName(name);
944
1441
  const path = sessionToken