@isnap/sdk 1.1.0-next.55 → 1.1.0-next.56

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.
@@ -862,152 +862,6 @@ export interface paths {
862
862
  patch?: never;
863
863
  trace?: never;
864
864
  };
865
- "/demo/start": {
866
- parameters: {
867
- query?: never;
868
- header?: never;
869
- path?: never;
870
- cookie?: never;
871
- };
872
- get?: never;
873
- put?: never;
874
- post: {
875
- parameters: {
876
- query?: never;
877
- header?: never;
878
- path?: never;
879
- cookie?: never;
880
- };
881
- requestBody?: never;
882
- responses: {
883
- /** @description Demo session started */
884
- 200: {
885
- headers: {
886
- [name: string]: unknown;
887
- };
888
- content: {
889
- "application/json": components["schemas"]["DemoStart"];
890
- };
891
- };
892
- };
893
- };
894
- delete?: never;
895
- options?: never;
896
- head?: never;
897
- patch?: never;
898
- trace?: never;
899
- };
900
- "/demo/send-test": {
901
- parameters: {
902
- query?: never;
903
- header?: never;
904
- path?: never;
905
- cookie?: never;
906
- };
907
- get?: never;
908
- put?: never;
909
- post: {
910
- parameters: {
911
- query?: never;
912
- header?: never;
913
- path?: never;
914
- cookie?: never;
915
- };
916
- requestBody?: {
917
- content: {
918
- "application/json": {
919
- to_number: string;
920
- };
921
- };
922
- };
923
- responses: {
924
- /** @description Test message sent */
925
- 200: {
926
- headers: {
927
- [name: string]: unknown;
928
- };
929
- content: {
930
- "application/json": components["schemas"]["DemoSendTest"];
931
- };
932
- };
933
- };
934
- };
935
- delete?: never;
936
- options?: never;
937
- head?: never;
938
- patch?: never;
939
- trace?: never;
940
- };
941
- "/demo/session": {
942
- parameters: {
943
- query?: never;
944
- header?: never;
945
- path?: never;
946
- cookie?: never;
947
- };
948
- get: {
949
- parameters: {
950
- query?: never;
951
- header?: never;
952
- path?: never;
953
- cookie?: never;
954
- };
955
- requestBody?: never;
956
- responses: {
957
- /** @description Current demo session */
958
- 200: {
959
- headers: {
960
- [name: string]: unknown;
961
- };
962
- content: {
963
- "application/json": components["schemas"]["DemoSession"];
964
- };
965
- };
966
- };
967
- };
968
- put?: never;
969
- post?: never;
970
- delete?: never;
971
- options?: never;
972
- head?: never;
973
- patch?: never;
974
- trace?: never;
975
- };
976
- "/demo/api-key": {
977
- parameters: {
978
- query?: never;
979
- header?: never;
980
- path?: never;
981
- cookie?: never;
982
- };
983
- get?: never;
984
- put?: never;
985
- post: {
986
- parameters: {
987
- query?: never;
988
- header?: never;
989
- path?: never;
990
- cookie?: never;
991
- };
992
- requestBody?: never;
993
- responses: {
994
- /** @description Demo API key generated */
995
- 200: {
996
- headers: {
997
- [name: string]: unknown;
998
- };
999
- content: {
1000
- "application/json": components["schemas"]["DemoApiKey"];
1001
- };
1002
- };
1003
- };
1004
- };
1005
- delete?: never;
1006
- options?: never;
1007
- head?: never;
1008
- patch?: never;
1009
- trace?: never;
1010
- };
1011
865
  "/analytics/message-volume": {
1012
866
  parameters: {
1013
867
  query?: never;
@@ -2692,7 +2546,7 @@ export interface paths {
2692
2546
  content: {
2693
2547
  "application/json": {
2694
2548
  /** @enum {string} */
2695
- status: "available" | "ordered" | "shipped" | "received" | "setup_in_progress" | "ready" | "deployed" | "offline" | "decommissioned";
2549
+ status: "available" | "ordered" | "received" | "setup_in_progress" | "ready" | "deployed" | "offline" | "decommissioned";
2696
2550
  };
2697
2551
  };
2698
2552
  };
@@ -3490,7 +3344,7 @@ export interface paths {
3490
3344
  patch?: never;
3491
3345
  trace?: never;
3492
3346
  };
3493
- "/va/devices": {
3347
+ "/va/performance": {
3494
3348
  parameters: {
3495
3349
  query?: never;
3496
3350
  header?: never;
@@ -3499,71 +3353,68 @@ export interface paths {
3499
3353
  };
3500
3354
  get: {
3501
3355
  parameters: {
3502
- query?: {
3503
- page?: number;
3504
- limit?: number;
3505
- type?: "iphone" | "android";
3506
- status?: string;
3507
- availableForEsim?: boolean | null;
3508
- };
3356
+ query?: never;
3509
3357
  header?: never;
3510
3358
  path?: never;
3511
3359
  cookie?: never;
3512
3360
  };
3513
3361
  requestBody?: never;
3514
3362
  responses: {
3515
- /** @description Device inventory */
3363
+ /** @description VA performance KPIs */
3516
3364
  200: {
3517
3365
  headers: {
3518
3366
  [name: string]: unknown;
3519
3367
  };
3520
3368
  content: {
3521
- "application/json": components["schemas"]["VADeviceInventory"];
3369
+ "application/json": components["schemas"]["VAPerformance"];
3522
3370
  };
3523
3371
  };
3524
3372
  };
3525
3373
  };
3526
3374
  put?: never;
3527
- post: {
3375
+ post?: never;
3376
+ delete?: never;
3377
+ options?: never;
3378
+ head?: never;
3379
+ patch?: never;
3380
+ trace?: never;
3381
+ };
3382
+ "/va/mac-minis": {
3383
+ parameters: {
3384
+ query?: never;
3385
+ header?: never;
3386
+ path?: never;
3387
+ cookie?: never;
3388
+ };
3389
+ get: {
3528
3390
  parameters: {
3529
3391
  query?: never;
3530
3392
  header?: never;
3531
3393
  path?: never;
3532
3394
  cookie?: never;
3533
3395
  };
3534
- requestBody?: {
3535
- content: {
3536
- "application/json": {
3537
- model: string;
3538
- /** @enum {string} */
3539
- type: "iphone" | "android";
3540
- imei?: string;
3541
- purchaseDate?: string;
3542
- /** Format: uuid */
3543
- farmId: string;
3544
- notes?: string;
3545
- };
3546
- };
3547
- };
3396
+ requestBody?: never;
3548
3397
  responses: {
3549
- /** @description Device created */
3398
+ /** @description Fleet Mac Minis with session counts */
3550
3399
  200: {
3551
3400
  headers: {
3552
3401
  [name: string]: unknown;
3553
3402
  };
3554
3403
  content: {
3555
- "application/json": components["schemas"]["VADevice"];
3404
+ "application/json": components["schemas"]["VAMacMinis"];
3556
3405
  };
3557
3406
  };
3558
3407
  };
3559
3408
  };
3409
+ put?: never;
3410
+ post?: never;
3560
3411
  delete?: never;
3561
3412
  options?: never;
3562
3413
  head?: never;
3563
3414
  patch?: never;
3564
3415
  trace?: never;
3565
3416
  };
3566
- "/va/esims": {
3417
+ "/va/mac-minis/next": {
3567
3418
  parameters: {
3568
3419
  query?: never;
3569
3420
  header?: never;
@@ -3572,30 +3423,41 @@ export interface paths {
3572
3423
  };
3573
3424
  get: {
3574
3425
  parameters: {
3575
- query?: {
3576
- page?: number;
3577
- limit?: number;
3578
- areaCode?: string;
3579
- status?: string;
3580
- };
3426
+ query?: never;
3581
3427
  header?: never;
3582
3428
  path?: never;
3583
3429
  cookie?: never;
3584
3430
  };
3585
3431
  requestBody?: never;
3586
3432
  responses: {
3587
- /** @description eSIM inventory */
3433
+ /** @description Preview the least-loaded Mac Mini (no commit) */
3588
3434
  200: {
3589
3435
  headers: {
3590
3436
  [name: string]: unknown;
3591
3437
  };
3592
3438
  content: {
3593
- "application/json": components["schemas"]["VAEsimInventory"];
3439
+ "application/json": components["schemas"]["VANextMacMini"];
3594
3440
  };
3595
3441
  };
3596
3442
  };
3597
3443
  };
3598
3444
  put?: never;
3445
+ post?: never;
3446
+ delete?: never;
3447
+ options?: never;
3448
+ head?: never;
3449
+ patch?: never;
3450
+ trace?: never;
3451
+ };
3452
+ "/va/macos-sessions": {
3453
+ parameters: {
3454
+ query?: never;
3455
+ header?: never;
3456
+ path?: never;
3457
+ cookie?: never;
3458
+ };
3459
+ get?: never;
3460
+ put?: never;
3599
3461
  post: {
3600
3462
  parameters: {
3601
3463
  query?: never;
@@ -3606,31 +3468,21 @@ export interface paths {
3606
3468
  requestBody?: {
3607
3469
  content: {
3608
3470
  "application/json": {
3609
- phoneNumber: string;
3610
3471
  /** Format: uuid */
3611
- deviceId?: string;
3612
- carrier?: string;
3613
- esimQrCode?: string;
3614
- iccid?: string;
3615
- accountNumber?: string;
3616
- accountPin?: string;
3617
- carrierEmail?: string;
3618
- carrierPassword?: string;
3619
- planName?: string;
3620
- monthlyCostCents?: number;
3621
- billingCycleDay?: number;
3622
- notes?: string;
3472
+ appleAccountId: string;
3473
+ login: string;
3474
+ password: string;
3623
3475
  };
3624
3476
  };
3625
3477
  };
3626
3478
  responses: {
3627
- /** @description eSIM created */
3479
+ /** @description macOS session created (or pending_provisioning) */
3628
3480
  200: {
3629
3481
  headers: {
3630
3482
  [name: string]: unknown;
3631
3483
  };
3632
3484
  content: {
3633
- "application/json": components["schemas"]["VAEsim"];
3485
+ "application/json": components["schemas"]["VAMacosSession"];
3634
3486
  };
3635
3487
  };
3636
3488
  };
@@ -3641,7 +3493,7 @@ export interface paths {
3641
3493
  patch?: never;
3642
3494
  trace?: never;
3643
3495
  };
3644
- "/va/apple-accounts": {
3496
+ "/va/devices": {
3645
3497
  parameters: {
3646
3498
  query?: never;
3647
3499
  header?: never;
@@ -3653,7 +3505,9 @@ export interface paths {
3653
3505
  query?: {
3654
3506
  page?: number;
3655
3507
  limit?: number;
3508
+ type?: "iphone" | "android";
3656
3509
  status?: string;
3510
+ availableForEsim?: boolean | null;
3657
3511
  };
3658
3512
  header?: never;
3659
3513
  path?: never;
@@ -3661,13 +3515,13 @@ export interface paths {
3661
3515
  };
3662
3516
  requestBody?: never;
3663
3517
  responses: {
3664
- /** @description Apple account inventory */
3518
+ /** @description Device inventory */
3665
3519
  200: {
3666
3520
  headers: {
3667
3521
  [name: string]: unknown;
3668
3522
  };
3669
3523
  content: {
3670
- "application/json": components["schemas"]["AppleAccountInventory"];
3524
+ "application/json": components["schemas"]["VADeviceInventory"];
3671
3525
  };
3672
3526
  };
3673
3527
  };
@@ -3683,24 +3537,26 @@ export interface paths {
3683
3537
  requestBody?: {
3684
3538
  content: {
3685
3539
  "application/json": {
3686
- /** Format: email */
3687
- appleEmail: string;
3688
- applePassword: string;
3689
- macMiniId?: string;
3690
- macosSessionLogin?: string;
3691
- macosSessionPassword?: string;
3540
+ model: string;
3541
+ /** @enum {string} */
3542
+ type: "iphone" | "android";
3543
+ imei?: string;
3544
+ purchaseDate?: string;
3545
+ /** Format: uuid */
3546
+ farmId: string;
3692
3547
  notes?: string;
3548
+ unitCostCents?: number;
3693
3549
  };
3694
3550
  };
3695
3551
  };
3696
3552
  responses: {
3697
- /** @description Apple account created */
3553
+ /** @description Device created */
3698
3554
  200: {
3699
3555
  headers: {
3700
3556
  [name: string]: unknown;
3701
3557
  };
3702
3558
  content: {
3703
- "application/json": components["schemas"]["AppleAccount"];
3559
+ "application/json": components["schemas"]["VADevice"];
3704
3560
  };
3705
3561
  };
3706
3562
  };
@@ -3711,19 +3567,104 @@ export interface paths {
3711
3567
  patch?: never;
3712
3568
  trace?: never;
3713
3569
  };
3714
- "/va/tasks": {
3570
+ "/va/devices/{id}": {
3715
3571
  parameters: {
3716
3572
  query?: never;
3717
3573
  header?: never;
3718
3574
  path?: never;
3719
3575
  cookie?: never;
3720
3576
  };
3721
- get: {
3577
+ get?: never;
3578
+ put?: never;
3579
+ post?: never;
3580
+ delete?: never;
3581
+ options?: never;
3582
+ head?: never;
3583
+ patch: {
3722
3584
  parameters: {
3723
- query?: {
3724
- page?: number;
3725
- limit?: number;
3726
- type?: "buy_device" | "buy_esim" | "create_apple_account" | "assemble_line" | "ship_device";
3585
+ query?: never;
3586
+ header?: never;
3587
+ path: {
3588
+ id: string;
3589
+ };
3590
+ cookie?: never;
3591
+ };
3592
+ requestBody?: {
3593
+ content: {
3594
+ "application/json": {
3595
+ model?: string;
3596
+ imei?: string | null;
3597
+ notes?: string;
3598
+ unitCostCents?: number | null;
3599
+ /** Format: uuid */
3600
+ farmId?: string;
3601
+ };
3602
+ };
3603
+ };
3604
+ responses: {
3605
+ /** @description Device updated */
3606
+ 200: {
3607
+ headers: {
3608
+ [name: string]: unknown;
3609
+ };
3610
+ content: {
3611
+ "application/json": components["schemas"]["VADevice"];
3612
+ };
3613
+ };
3614
+ };
3615
+ };
3616
+ trace?: never;
3617
+ };
3618
+ "/va/device-models": {
3619
+ parameters: {
3620
+ query?: never;
3621
+ header?: never;
3622
+ path?: never;
3623
+ cookie?: never;
3624
+ };
3625
+ get: {
3626
+ parameters: {
3627
+ query?: {
3628
+ platform?: "iphone" | "android";
3629
+ };
3630
+ header?: never;
3631
+ path?: never;
3632
+ cookie?: never;
3633
+ };
3634
+ requestBody?: never;
3635
+ responses: {
3636
+ /** @description VA-readable device-model catalogue */
3637
+ 200: {
3638
+ headers: {
3639
+ [name: string]: unknown;
3640
+ };
3641
+ content: {
3642
+ "application/json": components["schemas"]["VADeviceModels"];
3643
+ };
3644
+ };
3645
+ };
3646
+ };
3647
+ put?: never;
3648
+ post?: never;
3649
+ delete?: never;
3650
+ options?: never;
3651
+ head?: never;
3652
+ patch?: never;
3653
+ trace?: never;
3654
+ };
3655
+ "/va/esims": {
3656
+ parameters: {
3657
+ query?: never;
3658
+ header?: never;
3659
+ path?: never;
3660
+ cookie?: never;
3661
+ };
3662
+ get: {
3663
+ parameters: {
3664
+ query?: {
3665
+ page?: number;
3666
+ limit?: number;
3667
+ areaCode?: string;
3727
3668
  status?: string;
3728
3669
  };
3729
3670
  header?: never;
@@ -3732,13 +3673,13 @@ export interface paths {
3732
3673
  };
3733
3674
  requestBody?: never;
3734
3675
  responses: {
3735
- /** @description Task list */
3676
+ /** @description eSIM inventory */
3736
3677
  200: {
3737
3678
  headers: {
3738
3679
  [name: string]: unknown;
3739
3680
  };
3740
3681
  content: {
3741
- "application/json": components["schemas"]["VATaskList"];
3682
+ "application/json": components["schemas"]["VAEsimInventory"];
3742
3683
  };
3743
3684
  };
3744
3685
  };
@@ -3754,25 +3695,31 @@ export interface paths {
3754
3695
  requestBody?: {
3755
3696
  content: {
3756
3697
  "application/json": {
3757
- /** @enum {string} */
3758
- type: "buy_device" | "buy_esim" | "create_apple_account" | "assemble_line" | "ship_device";
3759
- /** @default 3 */
3760
- priority?: number;
3761
- dueAt?: string;
3762
- metadata?: {
3763
- [key: string]: unknown;
3764
- };
3698
+ phoneNumber: string;
3699
+ /** Format: uuid */
3700
+ deviceId?: string;
3701
+ carrier?: string;
3702
+ esimQrCode?: string;
3703
+ iccid?: string;
3704
+ accountNumber?: string;
3705
+ accountPin?: string;
3706
+ carrierEmail?: string;
3707
+ carrierPassword?: string;
3708
+ planName?: string;
3709
+ monthlyCostCents?: number;
3710
+ billingCycleDay?: number;
3711
+ notes?: string;
3765
3712
  };
3766
3713
  };
3767
3714
  };
3768
3715
  responses: {
3769
- /** @description Task created */
3716
+ /** @description eSIM created */
3770
3717
  200: {
3771
3718
  headers: {
3772
3719
  [name: string]: unknown;
3773
3720
  };
3774
3721
  content: {
3775
- "application/json": components["schemas"]["VATask"];
3722
+ "application/json": components["schemas"]["VAEsim"];
3776
3723
  };
3777
3724
  };
3778
3725
  };
@@ -3783,40 +3730,132 @@ export interface paths {
3783
3730
  patch?: never;
3784
3731
  trace?: never;
3785
3732
  };
3786
- "/va/tasks/{id}": {
3733
+ "/va/apple-accounts": {
3787
3734
  parameters: {
3788
3735
  query?: never;
3789
3736
  header?: never;
3790
3737
  path?: never;
3791
3738
  cookie?: never;
3792
3739
  };
3793
- get?: never;
3740
+ get: {
3741
+ parameters: {
3742
+ query?: {
3743
+ page?: number;
3744
+ limit?: number;
3745
+ status?: string;
3746
+ };
3747
+ header?: never;
3748
+ path?: never;
3749
+ cookie?: never;
3750
+ };
3751
+ requestBody?: never;
3752
+ responses: {
3753
+ /** @description Apple account inventory */
3754
+ 200: {
3755
+ headers: {
3756
+ [name: string]: unknown;
3757
+ };
3758
+ content: {
3759
+ "application/json": components["schemas"]["AppleAccountInventory"];
3760
+ };
3761
+ };
3762
+ };
3763
+ };
3794
3764
  put?: never;
3795
- post?: never;
3765
+ post: {
3766
+ parameters: {
3767
+ query?: never;
3768
+ header?: never;
3769
+ path?: never;
3770
+ cookie?: never;
3771
+ };
3772
+ requestBody?: {
3773
+ content: {
3774
+ "application/json": {
3775
+ /** Format: email */
3776
+ appleEmail: string;
3777
+ applePassword: string;
3778
+ macMiniId?: string;
3779
+ macosSessionLogin?: string;
3780
+ macosSessionPassword?: string;
3781
+ notes?: string;
3782
+ };
3783
+ };
3784
+ };
3785
+ responses: {
3786
+ /** @description Apple account created */
3787
+ 200: {
3788
+ headers: {
3789
+ [name: string]: unknown;
3790
+ };
3791
+ content: {
3792
+ "application/json": components["schemas"]["AppleAccount"];
3793
+ };
3794
+ };
3795
+ };
3796
+ };
3796
3797
  delete?: never;
3797
3798
  options?: never;
3798
3799
  head?: never;
3799
- patch: {
3800
+ patch?: never;
3801
+ trace?: never;
3802
+ };
3803
+ "/va/tasks": {
3804
+ parameters: {
3805
+ query?: never;
3806
+ header?: never;
3807
+ path?: never;
3808
+ cookie?: never;
3809
+ };
3810
+ get: {
3800
3811
  parameters: {
3801
- query?: never;
3812
+ query?: {
3813
+ page?: number;
3814
+ limit?: number;
3815
+ type?: "buy_device" | "buy_esim" | "create_apple_account" | "assemble_line";
3816
+ status?: string;
3817
+ };
3802
3818
  header?: never;
3803
- path: {
3804
- id: string;
3819
+ path?: never;
3820
+ cookie?: never;
3821
+ };
3822
+ requestBody?: never;
3823
+ responses: {
3824
+ /** @description Task list */
3825
+ 200: {
3826
+ headers: {
3827
+ [name: string]: unknown;
3828
+ };
3829
+ content: {
3830
+ "application/json": components["schemas"]["VATaskList"];
3831
+ };
3805
3832
  };
3833
+ };
3834
+ };
3835
+ put?: never;
3836
+ post: {
3837
+ parameters: {
3838
+ query?: never;
3839
+ header?: never;
3840
+ path?: never;
3806
3841
  cookie?: never;
3807
3842
  };
3808
3843
  requestBody?: {
3809
3844
  content: {
3810
3845
  "application/json": {
3811
3846
  /** @enum {string} */
3812
- status?: "pending" | "in_progress" | "completed" | "cancelled";
3847
+ type: "buy_device" | "buy_esim" | "create_apple_account" | "assemble_line";
3848
+ /** @default 3 */
3813
3849
  priority?: number;
3814
- dueAt?: string | null;
3850
+ dueAt?: string;
3851
+ metadata?: {
3852
+ [key: string]: unknown;
3853
+ };
3815
3854
  };
3816
3855
  };
3817
3856
  };
3818
3857
  responses: {
3819
- /** @description Task updated */
3858
+ /** @description Task created */
3820
3859
  200: {
3821
3860
  headers: {
3822
3861
  [name: string]: unknown;
@@ -3827,9 +3866,13 @@ export interface paths {
3827
3866
  };
3828
3867
  };
3829
3868
  };
3869
+ delete?: never;
3870
+ options?: never;
3871
+ head?: never;
3872
+ patch?: never;
3830
3873
  trace?: never;
3831
3874
  };
3832
- "/va/assembly/{fulfillmentId}": {
3875
+ "/va/tasks/{id}": {
3833
3876
  parameters: {
3834
3877
  query?: never;
3835
3878
  header?: never;
@@ -3838,46 +3881,44 @@ export interface paths {
3838
3881
  };
3839
3882
  get?: never;
3840
3883
  put?: never;
3841
- post: {
3884
+ post?: never;
3885
+ delete?: never;
3886
+ options?: never;
3887
+ head?: never;
3888
+ patch: {
3842
3889
  parameters: {
3843
3890
  query?: never;
3844
3891
  header?: never;
3845
3892
  path: {
3846
- fulfillmentId: string;
3893
+ id: string;
3847
3894
  };
3848
3895
  cookie?: never;
3849
3896
  };
3850
3897
  requestBody?: {
3851
3898
  content: {
3852
3899
  "application/json": {
3853
- /** Format: uuid */
3854
- deviceId: string;
3855
- /** Format: uuid */
3856
- esimId: string;
3857
- /** Format: uuid */
3858
- appleAccountId?: string;
3900
+ /** @enum {string} */
3901
+ status?: "pending" | "in_progress" | "completed" | "cancelled";
3902
+ priority?: number;
3903
+ dueAt?: string | null;
3859
3904
  };
3860
3905
  };
3861
3906
  };
3862
3907
  responses: {
3863
- /** @description Line assembled */
3908
+ /** @description Task updated */
3864
3909
  200: {
3865
3910
  headers: {
3866
3911
  [name: string]: unknown;
3867
3912
  };
3868
3913
  content: {
3869
- "application/json": components["schemas"]["Assemble"];
3914
+ "application/json": components["schemas"]["VATask"];
3870
3915
  };
3871
3916
  };
3872
3917
  };
3873
3918
  };
3874
- delete?: never;
3875
- options?: never;
3876
- head?: never;
3877
- patch?: never;
3878
3919
  trace?: never;
3879
3920
  };
3880
- "/va/devices/{id}/ship": {
3921
+ "/va/assembly/{fulfillmentId}": {
3881
3922
  parameters: {
3882
3923
  query?: never;
3883
3924
  header?: never;
@@ -3891,29 +3932,30 @@ export interface paths {
3891
3932
  query?: never;
3892
3933
  header?: never;
3893
3934
  path: {
3894
- id: string;
3935
+ fulfillmentId: string;
3895
3936
  };
3896
3937
  cookie?: never;
3897
3938
  };
3898
3939
  requestBody?: {
3899
3940
  content: {
3900
3941
  "application/json": {
3901
- trackingNumber?: string;
3902
- carrier?: string;
3903
- trackingUrl?: string;
3904
- expectedArrivalDate?: string;
3905
- notes?: string;
3942
+ /** Format: uuid */
3943
+ deviceId: string;
3944
+ /** Format: uuid */
3945
+ esimId: string;
3946
+ /** Format: uuid */
3947
+ appleAccountId?: string;
3906
3948
  };
3907
3949
  };
3908
3950
  };
3909
3951
  responses: {
3910
- /** @description Device shipped */
3952
+ /** @description Line assembled */
3911
3953
  200: {
3912
3954
  headers: {
3913
3955
  [name: string]: unknown;
3914
3956
  };
3915
3957
  content: {
3916
- "application/json": components["schemas"]["VADevice"];
3958
+ "application/json": components["schemas"]["Assemble"];
3917
3959
  };
3918
3960
  };
3919
3961
  };
@@ -4433,8 +4475,172 @@ export interface paths {
4433
4475
  };
4434
4476
  };
4435
4477
  };
4436
- /** @description Bad request — validation failed */
4437
- 400: {
4478
+ /** @description Bad request — validation failed */
4479
+ 400: {
4480
+ headers: {
4481
+ [name: string]: unknown;
4482
+ };
4483
+ content: {
4484
+ "application/json": components["schemas"]["ErrorEnvelope"];
4485
+ };
4486
+ };
4487
+ /** @description Too many requests — rate limit exceeded */
4488
+ 429: {
4489
+ headers: {
4490
+ [name: string]: unknown;
4491
+ };
4492
+ content: {
4493
+ "application/json": components["schemas"]["ErrorEnvelope"];
4494
+ };
4495
+ };
4496
+ /** @description Internal server error */
4497
+ 500: {
4498
+ headers: {
4499
+ [name: string]: unknown;
4500
+ };
4501
+ content: {
4502
+ "application/json": components["schemas"]["ErrorEnvelope"];
4503
+ };
4504
+ };
4505
+ };
4506
+ };
4507
+ put?: never;
4508
+ post?: never;
4509
+ delete?: never;
4510
+ options?: never;
4511
+ head?: never;
4512
+ patch?: never;
4513
+ trace?: never;
4514
+ };
4515
+ "/v1/lines/my": {
4516
+ parameters: {
4517
+ query?: never;
4518
+ header?: never;
4519
+ path?: never;
4520
+ cookie?: never;
4521
+ };
4522
+ /**
4523
+ * List the caller's own lines
4524
+ * @description Return every line owned by the authenticated user that's in `active` or `reserved` status. Includes a `fulfillment_status` hint for lines whose hardware is still being procured. Accepts an API key (`isnap_*`) or a dashboard JWT.
4525
+ */
4526
+ get: {
4527
+ parameters: {
4528
+ query?: never;
4529
+ header?: never;
4530
+ path?: never;
4531
+ cookie?: never;
4532
+ };
4533
+ requestBody?: never;
4534
+ responses: {
4535
+ /** @description User lines */
4536
+ 200: {
4537
+ headers: {
4538
+ [name: string]: unknown;
4539
+ };
4540
+ content: {
4541
+ "application/json": {
4542
+ /** @enum {boolean} */
4543
+ success: true;
4544
+ data: components["schemas"]["MyLines"];
4545
+ trace_id: string;
4546
+ request_id: string;
4547
+ };
4548
+ };
4549
+ };
4550
+ /** @description Bad request — validation failed */
4551
+ 400: {
4552
+ headers: {
4553
+ [name: string]: unknown;
4554
+ };
4555
+ content: {
4556
+ "application/json": components["schemas"]["ErrorEnvelope"];
4557
+ };
4558
+ };
4559
+ /** @description Unauthenticated — missing or invalid bearer token */
4560
+ 401: {
4561
+ headers: {
4562
+ [name: string]: unknown;
4563
+ };
4564
+ content: {
4565
+ "application/json": components["schemas"]["ErrorEnvelope"];
4566
+ };
4567
+ };
4568
+ /** @description Too many requests — rate limit exceeded */
4569
+ 429: {
4570
+ headers: {
4571
+ [name: string]: unknown;
4572
+ };
4573
+ content: {
4574
+ "application/json": components["schemas"]["ErrorEnvelope"];
4575
+ };
4576
+ };
4577
+ /** @description Internal server error */
4578
+ 500: {
4579
+ headers: {
4580
+ [name: string]: unknown;
4581
+ };
4582
+ content: {
4583
+ "application/json": components["schemas"]["ErrorEnvelope"];
4584
+ };
4585
+ };
4586
+ };
4587
+ };
4588
+ put?: never;
4589
+ post?: never;
4590
+ delete?: never;
4591
+ options?: never;
4592
+ head?: never;
4593
+ patch?: never;
4594
+ trace?: never;
4595
+ };
4596
+ "/v1/lines/{id}": {
4597
+ parameters: {
4598
+ query?: never;
4599
+ header?: never;
4600
+ path?: never;
4601
+ cookie?: never;
4602
+ };
4603
+ /**
4604
+ * Get line details (public marketplace)
4605
+ * @description Fetch a single line by its `line_<base62>` id. Available unauthenticated for the marketplace browsing flow; partner-private metadata still requires API key access via `GET /v1/lines/my`.
4606
+ */
4607
+ get: {
4608
+ parameters: {
4609
+ query?: never;
4610
+ header?: never;
4611
+ path: {
4612
+ id: string;
4613
+ };
4614
+ cookie?: never;
4615
+ };
4616
+ requestBody?: never;
4617
+ responses: {
4618
+ /** @description Line */
4619
+ 200: {
4620
+ headers: {
4621
+ [name: string]: unknown;
4622
+ };
4623
+ content: {
4624
+ "application/json": {
4625
+ /** @enum {boolean} */
4626
+ success: true;
4627
+ data: components["schemas"]["Line"];
4628
+ trace_id: string;
4629
+ request_id: string;
4630
+ };
4631
+ };
4632
+ };
4633
+ /** @description Bad request — validation failed */
4634
+ 400: {
4635
+ headers: {
4636
+ [name: string]: unknown;
4637
+ };
4638
+ content: {
4639
+ "application/json": components["schemas"]["ErrorEnvelope"];
4640
+ };
4641
+ };
4642
+ /** @description Not found */
4643
+ 404: {
4438
4644
  headers: {
4439
4645
  [name: string]: unknown;
4440
4646
  };
@@ -4467,30 +4673,26 @@ export interface paths {
4467
4673
  delete?: never;
4468
4674
  options?: never;
4469
4675
  head?: never;
4470
- patch?: never;
4471
- trace?: never;
4472
- };
4473
- "/v1/lines/my": {
4474
- parameters: {
4475
- query?: never;
4476
- header?: never;
4477
- path?: never;
4478
- cookie?: never;
4479
- };
4480
4676
  /**
4481
- * List the caller's own lines
4482
- * @description Return every line owned by the authenticated user that's in `active` or `reserved` status. Includes a `fulfillment_status` hint for lines whose hardware is still being procured. Accepts an API key (`isnap_*`) or a dashboard JWT.
4677
+ * Update line metadata
4678
+ * @description Merge-patch the line's free-form `metadata` tag object. Pass `null` for a key to delete it; pass a new value to overwrite. Metadata is echoed on every `line.*` webhook so partners can attribute events back to their own customer IDs.
4483
4679
  */
4484
- get: {
4680
+ patch: {
4485
4681
  parameters: {
4486
4682
  query?: never;
4487
4683
  header?: never;
4488
- path?: never;
4684
+ path: {
4685
+ id: string;
4686
+ };
4489
4687
  cookie?: never;
4490
4688
  };
4491
- requestBody?: never;
4689
+ requestBody?: {
4690
+ content: {
4691
+ "application/json": components["schemas"]["PatchLine"];
4692
+ };
4693
+ };
4492
4694
  responses: {
4493
- /** @description User lines */
4695
+ /** @description Line with merged metadata */
4494
4696
  200: {
4495
4697
  headers: {
4496
4698
  [name: string]: unknown;
@@ -4499,7 +4701,7 @@ export interface paths {
4499
4701
  "application/json": {
4500
4702
  /** @enum {boolean} */
4501
4703
  success: true;
4502
- data: components["schemas"]["MyLines"];
4704
+ data: components["schemas"]["Line"];
4503
4705
  trace_id: string;
4504
4706
  request_id: string;
4505
4707
  };
@@ -4523,6 +4725,24 @@ export interface paths {
4523
4725
  "application/json": components["schemas"]["ErrorEnvelope"];
4524
4726
  };
4525
4727
  };
4728
+ /** @description Forbidden — caller authenticated but not allowed */
4729
+ 403: {
4730
+ headers: {
4731
+ [name: string]: unknown;
4732
+ };
4733
+ content: {
4734
+ "application/json": components["schemas"]["ErrorEnvelope"];
4735
+ };
4736
+ };
4737
+ /** @description Not found */
4738
+ 404: {
4739
+ headers: {
4740
+ [name: string]: unknown;
4741
+ };
4742
+ content: {
4743
+ "application/json": components["schemas"]["ErrorEnvelope"];
4744
+ };
4745
+ };
4526
4746
  /** @description Too many requests — rate limit exceeded */
4527
4747
  429: {
4528
4748
  headers: {
@@ -4543,37 +4763,35 @@ export interface paths {
4543
4763
  };
4544
4764
  };
4545
4765
  };
4546
- put?: never;
4547
- post?: never;
4548
- delete?: never;
4549
- options?: never;
4550
- head?: never;
4551
- patch?: never;
4552
4766
  trace?: never;
4553
4767
  };
4554
- "/v1/lines/{id}": {
4768
+ "/v1/lines/assign": {
4555
4769
  parameters: {
4556
4770
  query?: never;
4557
4771
  header?: never;
4558
4772
  path?: never;
4559
4773
  cookie?: never;
4560
4774
  };
4775
+ get?: never;
4776
+ put?: never;
4561
4777
  /**
4562
- * Get line details (public marketplace)
4563
- * @description Fetch a single line by its `line_<base62>` id. Available unauthenticated for the marketplace browsing flow; partner-private metadata still requires API key access via `GET /v1/lines/my`.
4778
+ * Atomically reserve + activate a line
4779
+ * @description Find an available line matching `billing_tier` (and optional `area_code`), reserve it, and activate it in a single round-trip. Useful when the partner doesn't care which specific number they get — saves the reserve→checkout→activate dance. Scoped API keys are rejected (cannot assign lines outside their allowlist).
4564
4780
  */
4565
- get: {
4781
+ post: {
4566
4782
  parameters: {
4567
4783
  query?: never;
4568
4784
  header?: never;
4569
- path: {
4570
- id: string;
4571
- };
4785
+ path?: never;
4572
4786
  cookie?: never;
4573
4787
  };
4574
- requestBody?: never;
4788
+ requestBody?: {
4789
+ content: {
4790
+ "application/json": components["schemas"]["AssignLine"];
4791
+ };
4792
+ };
4575
4793
  responses: {
4576
- /** @description Line */
4794
+ /** @description Line assigned and activated */
4577
4795
  200: {
4578
4796
  headers: {
4579
4797
  [name: string]: unknown;
@@ -4597,6 +4815,24 @@ export interface paths {
4597
4815
  "application/json": components["schemas"]["ErrorEnvelope"];
4598
4816
  };
4599
4817
  };
4818
+ /** @description Unauthenticated — missing or invalid bearer token */
4819
+ 401: {
4820
+ headers: {
4821
+ [name: string]: unknown;
4822
+ };
4823
+ content: {
4824
+ "application/json": components["schemas"]["ErrorEnvelope"];
4825
+ };
4826
+ };
4827
+ /** @description Forbidden — caller authenticated but not allowed */
4828
+ 403: {
4829
+ headers: {
4830
+ [name: string]: unknown;
4831
+ };
4832
+ content: {
4833
+ "application/json": components["schemas"]["ErrorEnvelope"];
4834
+ };
4835
+ };
4600
4836
  /** @description Not found */
4601
4837
  404: {
4602
4838
  headers: {
@@ -4606,6 +4842,15 @@ export interface paths {
4606
4842
  "application/json": components["schemas"]["ErrorEnvelope"];
4607
4843
  };
4608
4844
  };
4845
+ /** @description Conflict — concurrent or terminal state */
4846
+ 409: {
4847
+ headers: {
4848
+ [name: string]: unknown;
4849
+ };
4850
+ content: {
4851
+ "application/json": components["schemas"]["ErrorEnvelope"];
4852
+ };
4853
+ };
4609
4854
  /** @description Too many requests — rate limit exceeded */
4610
4855
  429: {
4611
4856
  headers: {
@@ -4626,16 +4871,26 @@ export interface paths {
4626
4871
  };
4627
4872
  };
4628
4873
  };
4629
- put?: never;
4630
- post?: never;
4631
4874
  delete?: never;
4632
4875
  options?: never;
4633
4876
  head?: never;
4877
+ patch?: never;
4878
+ trace?: never;
4879
+ };
4880
+ "/v1/lines/{id}/reserve": {
4881
+ parameters: {
4882
+ query?: never;
4883
+ header?: never;
4884
+ path?: never;
4885
+ cookie?: never;
4886
+ };
4887
+ get?: never;
4888
+ put?: never;
4634
4889
  /**
4635
- * Update line metadata
4636
- * @description Merge-patch the line's free-form `metadata` tag object. Pass `null` for a key to delete it; pass a new value to overwrite. Metadata is echoed on every `line.*` webhook so partners can attribute events back to their own customer IDs.
4890
+ * Reserve an available line
4891
+ * @description Move a specific line from `available` to `reserved` for 15 minutes. After that window a background worker auto-releases the reservation. Call `POST /v1/billing/checkout` next to convert the reservation into an active subscription.
4637
4892
  */
4638
- patch: {
4893
+ post: {
4639
4894
  parameters: {
4640
4895
  query?: never;
4641
4896
  header?: never;
@@ -4644,13 +4899,9 @@ export interface paths {
4644
4899
  };
4645
4900
  cookie?: never;
4646
4901
  };
4647
- requestBody?: {
4648
- content: {
4649
- "application/json": components["schemas"]["PatchLine"];
4650
- };
4651
- };
4902
+ requestBody?: never;
4652
4903
  responses: {
4653
- /** @description Line with merged metadata */
4904
+ /** @description Line reserved */
4654
4905
  200: {
4655
4906
  headers: {
4656
4907
  [name: string]: unknown;
@@ -4701,6 +4952,15 @@ export interface paths {
4701
4952
  "application/json": components["schemas"]["ErrorEnvelope"];
4702
4953
  };
4703
4954
  };
4955
+ /** @description Conflict — concurrent or terminal state */
4956
+ 409: {
4957
+ headers: {
4958
+ [name: string]: unknown;
4959
+ };
4960
+ content: {
4961
+ "application/json": components["schemas"]["ErrorEnvelope"];
4962
+ };
4963
+ };
4704
4964
  /** @description Too many requests — rate limit exceeded */
4705
4965
  429: {
4706
4966
  headers: {
@@ -4721,9 +4981,13 @@ export interface paths {
4721
4981
  };
4722
4982
  };
4723
4983
  };
4984
+ delete?: never;
4985
+ options?: never;
4986
+ head?: never;
4987
+ patch?: never;
4724
4988
  trace?: never;
4725
4989
  };
4726
- "/v1/lines/assign": {
4990
+ "/v1/lines/{id}/activate": {
4727
4991
  parameters: {
4728
4992
  query?: never;
4729
4993
  header?: never;
@@ -4733,23 +4997,25 @@ export interface paths {
4733
4997
  get?: never;
4734
4998
  put?: never;
4735
4999
  /**
4736
- * Atomically reserve + activate a line
4737
- * @description Find an available line matching `billing_tier` (and optional `area_code`), reserve it, and activate it in a single round-trip. Useful when the partner doesn't care which specific number they get saves the reserve→checkout→activate dance. Scoped API keys are rejected (cannot assign lines outside their allowlist).
5000
+ * Activate a reserved line
5001
+ * @description Commit a `reserved` line to `active`. Wholesale partners (no Stripe checkout surface) use this as the second phase of reserve→activate — they reserve, bill their own end-user, then activate within the 15-minute window with no per-line Stripe sub (EOM-metered), and may pick the inbound-only rental variant via `inbound_only`. Direct callers get the test/dev mock-sub shortcut (production direct activation happens via the Stripe webhook on `checkout.session.completed`); `inbound_only` is ignored for them (theirs comes from the checkout price).
4738
5002
  */
4739
5003
  post: {
4740
5004
  parameters: {
4741
5005
  query?: never;
4742
5006
  header?: never;
4743
- path?: never;
5007
+ path: {
5008
+ id: string;
5009
+ };
4744
5010
  cookie?: never;
4745
5011
  };
4746
5012
  requestBody?: {
4747
5013
  content: {
4748
- "application/json": components["schemas"]["AssignLine"];
5014
+ "application/json": components["schemas"]["ActivateLine"];
4749
5015
  };
4750
5016
  };
4751
5017
  responses: {
4752
- /** @description Line assigned and activated */
5018
+ /** @description Line activated */
4753
5019
  200: {
4754
5020
  headers: {
4755
5021
  [name: string]: unknown;
@@ -4835,7 +5101,7 @@ export interface paths {
4835
5101
  patch?: never;
4836
5102
  trace?: never;
4837
5103
  };
4838
- "/v1/lines/{id}/reserve": {
5104
+ "/v1/lines/{id}/transfer-ownership": {
4839
5105
  parameters: {
4840
5106
  query?: never;
4841
5107
  header?: never;
@@ -4845,8 +5111,8 @@ export interface paths {
4845
5111
  get?: never;
4846
5112
  put?: never;
4847
5113
  /**
4848
- * Reserve an available line
4849
- * @description Move a specific line from `available` to `reserved` for 15 minutes. After that window a background worker auto-releases the reservation. Call `POST /v1/billing/checkout` next to convert the reservation into an active subscription.
5114
+ * Transfer a line to another iSnap user
5115
+ * @description Move ownership of a line to a different iSnap user. By default the paired device session stays attached so messaging continues uninterrupted; pass `preserve_device_session: false` to force the new owner to re-pair. See `/concepts/billing` for how the cutover handles the in-flight Stripe subscription.
4850
5116
  */
4851
5117
  post: {
4852
5118
  parameters: {
@@ -4857,9 +5123,13 @@ export interface paths {
4857
5123
  };
4858
5124
  cookie?: never;
4859
5125
  };
4860
- requestBody?: never;
5126
+ requestBody?: {
5127
+ content: {
5128
+ "application/json": components["schemas"]["TransferOwnership"];
5129
+ };
5130
+ };
4861
5131
  responses: {
4862
- /** @description Line reserved */
5132
+ /** @description Ownership transferred */
4863
5133
  200: {
4864
5134
  headers: {
4865
5135
  [name: string]: unknown;
@@ -4945,7 +5215,7 @@ export interface paths {
4945
5215
  patch?: never;
4946
5216
  trace?: never;
4947
5217
  };
4948
- "/v1/lines/{id}/activate": {
5218
+ "/v1/lines/{id}/convert-to-test": {
4949
5219
  parameters: {
4950
5220
  query?: never;
4951
5221
  header?: never;
@@ -4955,8 +5225,8 @@ export interface paths {
4955
5225
  get?: never;
4956
5226
  put?: never;
4957
5227
  /**
4958
- * Activate a reserved line
4959
- * @description Commit a `reserved` line to `active`. Wholesale partners (no Stripe checkout surface) use this as the second phase of reserveactivate they reserve, bill their own end-user, then activate within the 15-minute window with no per-line Stripe sub (EOM-metered), and may pick the inbound-only rental variant via `inbound_only`. Direct callers get the test/dev mock-sub shortcut (production direct activation happens via the Stripe webhook on `checkout.session.completed`); `inbound_only` is ignored for them (theirs comes from the checkout price).
5228
+ * Convert an owned rental line into a test line
5229
+ * @description Flip a rental line you own into an owned test line that backs trials in your own pool (ownershippool; the monthly price stays the rental-equivalent, not the $0 global-pool rate). Rejected on byod lines, lines you do not own, and lines carrying an active subscription.
4960
5230
  */
4961
5231
  post: {
4962
5232
  parameters: {
@@ -4967,13 +5237,9 @@ export interface paths {
4967
5237
  };
4968
5238
  cookie?: never;
4969
5239
  };
4970
- requestBody?: {
4971
- content: {
4972
- "application/json": components["schemas"]["ActivateLine"];
4973
- };
4974
- };
5240
+ requestBody?: never;
4975
5241
  responses: {
4976
- /** @description Line activated */
5242
+ /** @description Line converted to a test line */
4977
5243
  200: {
4978
5244
  headers: {
4979
5245
  [name: string]: unknown;
@@ -5059,7 +5325,7 @@ export interface paths {
5059
5325
  patch?: never;
5060
5326
  trace?: never;
5061
5327
  };
5062
- "/v1/lines/{id}/transfer-ownership": {
5328
+ "/v1/lines/{id}/convert-from-test": {
5063
5329
  parameters: {
5064
5330
  query?: never;
5065
5331
  header?: never;
@@ -5069,8 +5335,8 @@ export interface paths {
5069
5335
  get?: never;
5070
5336
  put?: never;
5071
5337
  /**
5072
- * Transfer a line to another iSnap user
5073
- * @description Move ownership of a line to a different iSnap user. By default the paired device session stays attached so messaging continues uninterrupted; pass `preserve_device_session: false` to force the new owner to re-pair. See `/concepts/billing` for how the cutover handles the in-flight Stripe subscription.
5338
+ * Revert an owned test line back to a rental line
5339
+ * @description Symmetric to convert-to-test: flip an owned test line back to a rental line (ownership rental, rental price re-stamped). Rejected while the test line still hosts live trials, since reverting would strand them.
5074
5340
  */
5075
5341
  post: {
5076
5342
  parameters: {
@@ -5081,13 +5347,9 @@ export interface paths {
5081
5347
  };
5082
5348
  cookie?: never;
5083
5349
  };
5084
- requestBody?: {
5085
- content: {
5086
- "application/json": components["schemas"]["TransferOwnership"];
5087
- };
5088
- };
5350
+ requestBody?: never;
5089
5351
  responses: {
5090
- /** @description Ownership transferred */
5352
+ /** @description Line reverted to a rental line */
5091
5353
  200: {
5092
5354
  headers: {
5093
5355
  [name: string]: unknown;
@@ -8946,7 +9208,7 @@ export interface paths {
8946
9208
  put?: never;
8947
9209
  /**
8948
9210
  * Start a trial session
8949
- * @description Create a pairing-pending trial session against the caller's API key. Returns a one-time pairing token the partner embeds in their onboarding UI; the recipient claims it by sending an inbound message that links them to a shared-pool line.
9211
+ * @description Create a pairing-pending trial session owned by the caller (dashboard JWT for direct self-serve, or an API key for wholesale/SDK). Returns a one-time pairing token the partner embeds in their onboarding UI; the recipient claims it by sending an inbound message that links them to a pool line. Direct accounts may hold only one live trial at a time.
8950
9212
  */
8951
9213
  post: {
8952
9214
  parameters: {
@@ -8988,6 +9250,15 @@ export interface paths {
8988
9250
  "application/json": components["schemas"]["ErrorEnvelope"];
8989
9251
  };
8990
9252
  };
9253
+ /** @description Conflict — concurrent or terminal state */
9254
+ 409: {
9255
+ headers: {
9256
+ [name: string]: unknown;
9257
+ };
9258
+ content: {
9259
+ "application/json": components["schemas"]["ErrorEnvelope"];
9260
+ };
9261
+ };
8991
9262
  /** @description Too many requests — rate limit exceeded */
8992
9263
  429: {
8993
9264
  headers: {
@@ -10197,45 +10468,6 @@ export interface components {
10197
10468
  LineWatchList: {
10198
10469
  watches: components["schemas"]["LineWatch"][];
10199
10470
  };
10200
- DemoStart: {
10201
- /** Format: uuid */
10202
- session_id: string;
10203
- line: {
10204
- /** Format: uuid */
10205
- id: string;
10206
- phone_number: string;
10207
- billing_tier: string;
10208
- };
10209
- api_key: string | null;
10210
- };
10211
- DemoSendTest: {
10212
- success: boolean;
10213
- /** Format: uuid */
10214
- message_id: string;
10215
- };
10216
- DemoSession: {
10217
- /** Format: uuid */
10218
- session_id: string;
10219
- line: {
10220
- /** Format: uuid */
10221
- id: string;
10222
- phone_number: string;
10223
- billing_tier: string;
10224
- };
10225
- messages_sent: number;
10226
- daily_limit: number;
10227
- test_number: string | null;
10228
- completed: boolean;
10229
- expires_at: string | null;
10230
- created_at: string;
10231
- has_api_key: boolean;
10232
- };
10233
- DemoApiKey: {
10234
- key: string;
10235
- /** Format: uuid */
10236
- id: string;
10237
- prefix: string;
10238
- };
10239
10471
  MessageVolume: {
10240
10472
  dates: string[];
10241
10473
  counts: number[];
@@ -10867,9 +11099,6 @@ export interface components {
10867
11099
  devices: {
10868
11100
  available: number;
10869
11101
  ordered: number;
10870
- shipped: number;
10871
- received: number;
10872
- ready: number;
10873
11102
  total: number;
10874
11103
  };
10875
11104
  esims: {
@@ -10886,6 +11115,51 @@ export interface components {
10886
11115
  pendingAssembly: number;
10887
11116
  pendingTasks: number;
10888
11117
  };
11118
+ VAPerformance: {
11119
+ throughput: {
11120
+ today: number;
11121
+ week: number;
11122
+ total: number;
11123
+ };
11124
+ speed: {
11125
+ avgCompletionMins: number;
11126
+ onTimeRate: number;
11127
+ };
11128
+ backlog: {
11129
+ open: number;
11130
+ overdue: number;
11131
+ };
11132
+ };
11133
+ VAMacMinis: {
11134
+ macMinis: components["schemas"]["VAMacMini"][];
11135
+ };
11136
+ VAMacMini: {
11137
+ /** Format: uuid */
11138
+ id: string;
11139
+ name: string;
11140
+ hostname: string | null;
11141
+ status: string;
11142
+ capacity: number;
11143
+ sessionCount: number;
11144
+ };
11145
+ VANextMacMini: {
11146
+ /** Format: uuid */
11147
+ macMiniId: string | null;
11148
+ hostname: string | null;
11149
+ /** @enum {string} */
11150
+ status: "available" | "pending_provisioning";
11151
+ };
11152
+ VAMacosSession: {
11153
+ /** Format: uuid */
11154
+ sessionId: string;
11155
+ /** Format: uuid */
11156
+ macMiniId: string;
11157
+ macMiniName: string;
11158
+ macMiniHostname: string | null;
11159
+ /** @enum {string} */
11160
+ status: "created" | "pending_provisioning";
11161
+ ordered: boolean;
11162
+ };
10889
11163
  VADevice: {
10890
11164
  /** Format: uuid */
10891
11165
  id: string;
@@ -10896,6 +11170,8 @@ export interface components {
10896
11170
  /** Format: uuid */
10897
11171
  farmId: string | null;
10898
11172
  farmName: string | null;
11173
+ unitCostCents?: number | null;
11174
+ invoiceUrl?: string | null;
10899
11175
  createdAt: string;
10900
11176
  taskCompleted?: boolean;
10901
11177
  };
@@ -10903,6 +11179,15 @@ export interface components {
10903
11179
  devices: components["schemas"]["VADevice"][];
10904
11180
  total: number;
10905
11181
  };
11182
+ VADeviceModels: {
11183
+ models: {
11184
+ /** Format: uuid */
11185
+ id: string;
11186
+ name: string;
11187
+ /** @enum {string} */
11188
+ platform: "iphone" | "android";
11189
+ }[];
11190
+ };
10906
11191
  VAEsim: {
10907
11192
  /** Format: uuid */
10908
11193
  id: string;
@@ -10943,6 +11228,8 @@ export interface components {
10943
11228
  /** Format: uuid */
10944
11229
  assigneeId: string | null;
10945
11230
  /** Format: uuid */
11231
+ completedBy: string | null;
11232
+ /** Format: uuid */
10946
11233
  deviceId: string | null;
10947
11234
  /** Format: uuid */
10948
11235
  esimId: string | null;
@@ -11061,6 +11348,8 @@ export interface components {
11061
11348
  metadata: {
11062
11349
  [key: string]: unknown;
11063
11350
  } | null;
11351
+ /** @description True when the line is an owner-provisioned test line (ownership=pool with a set owner) that backs the owner's own trial pool. Its monthly_price is the rental-equivalent, not the $0 global pool rate. */
11352
+ test_line: boolean;
11064
11353
  fulfillment_status?: string | null;
11065
11354
  };
11066
11355
  MyLines: {
@@ -11071,6 +11360,7 @@ export interface components {
11071
11360
  billing_tier: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android";
11072
11361
  area_code?: string;
11073
11362
  inbound_only?: boolean;
11363
+ as_test_line?: boolean;
11074
11364
  metadata?: {
11075
11365
  [key: string]: unknown;
11076
11366
  };
@@ -11489,7 +11779,7 @@ export interface components {
11489
11779
  * @description A concrete event type (e.g. `message.received`), a family wildcard (`line.*`), or the catch-all `*`.
11490
11780
  * @enum {string}
11491
11781
  */
11492
- WebhookEventName: "message.queued" | "message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.received" | "message.scheduled" | "message.cancelled" | "message.fallback_triggered" | "reaction.added" | "reaction.received" | "reaction.removed" | "line.connected" | "line.disconnected" | "line.offline" | "line.degraded" | "line.apple_id_flagged" | "line.quota_warning" | "line.quota_exceeded" | "line.capability_changed" | "typing_indicator.started" | "typing_indicator.stopped" | "trial.linked" | "trial.dormant" | "trial.reactivated" | "pre_order.fulfilled" | "pre_order.cancelled" | "pre_order.refunded" | "webhook.test" | "*" | "message.*" | "reaction.*" | "line.*" | "typing_indicator.*" | "trial.*" | "webhook.*";
11782
+ WebhookEventName: "message.queued" | "message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.received" | "message.scheduled" | "message.cancelled" | "message.fallback_triggered" | "reaction.added" | "reaction.received" | "reaction.removed" | "line.connected" | "line.disconnected" | "line.offline" | "line.degraded" | "line.apple_id_flagged" | "line.quota_warning" | "line.quota_exceeded" | "line.capability_changed" | "typing_indicator.started" | "typing_indicator.stopped" | "trial.linked" | "trial.dormant" | "trial.reactivated" | "trial.bind_conflict" | "pre_order.fulfilled" | "pre_order.cancelled" | "pre_order.refunded" | "webhook.test" | "*" | "message.*" | "reaction.*" | "line.*" | "typing_indicator.*" | "trial.*" | "webhook.*";
11493
11783
  WebhookList: {
11494
11784
  webhooks: components["schemas"]["Webhook"][];
11495
11785
  };