@isnap/sdk 1.1.0-next.54 → 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
  };
@@ -4404,6 +4446,10 @@ export interface paths {
4404
4446
  billing_tier?: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool";
4405
4447
  area_code?: string;
4406
4448
  country_code?: string;
4449
+ /** @description US state filter — 2-letter code or full name. */
4450
+ state?: string;
4451
+ /** @description Country filter — ISO alpha-2 code or country name. */
4452
+ country?: string;
4407
4453
  status?: string;
4408
4454
  page?: number;
4409
4455
  limit?: number;
@@ -4429,8 +4475,172 @@ export interface paths {
4429
4475
  };
4430
4476
  };
4431
4477
  };
4432
- /** @description Bad request — validation failed */
4433
- 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: {
4434
4644
  headers: {
4435
4645
  [name: string]: unknown;
4436
4646
  };
@@ -4463,30 +4673,26 @@ export interface paths {
4463
4673
  delete?: never;
4464
4674
  options?: never;
4465
4675
  head?: never;
4466
- patch?: never;
4467
- trace?: never;
4468
- };
4469
- "/v1/lines/my": {
4470
- parameters: {
4471
- query?: never;
4472
- header?: never;
4473
- path?: never;
4474
- cookie?: never;
4475
- };
4476
4676
  /**
4477
- * List the caller's own lines
4478
- * @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.
4479
4679
  */
4480
- get: {
4680
+ patch: {
4481
4681
  parameters: {
4482
4682
  query?: never;
4483
4683
  header?: never;
4484
- path?: never;
4684
+ path: {
4685
+ id: string;
4686
+ };
4485
4687
  cookie?: never;
4486
4688
  };
4487
- requestBody?: never;
4689
+ requestBody?: {
4690
+ content: {
4691
+ "application/json": components["schemas"]["PatchLine"];
4692
+ };
4693
+ };
4488
4694
  responses: {
4489
- /** @description User lines */
4695
+ /** @description Line with merged metadata */
4490
4696
  200: {
4491
4697
  headers: {
4492
4698
  [name: string]: unknown;
@@ -4495,7 +4701,7 @@ export interface paths {
4495
4701
  "application/json": {
4496
4702
  /** @enum {boolean} */
4497
4703
  success: true;
4498
- data: components["schemas"]["MyLines"];
4704
+ data: components["schemas"]["Line"];
4499
4705
  trace_id: string;
4500
4706
  request_id: string;
4501
4707
  };
@@ -4519,6 +4725,24 @@ export interface paths {
4519
4725
  "application/json": components["schemas"]["ErrorEnvelope"];
4520
4726
  };
4521
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
+ };
4522
4746
  /** @description Too many requests — rate limit exceeded */
4523
4747
  429: {
4524
4748
  headers: {
@@ -4539,37 +4763,35 @@ export interface paths {
4539
4763
  };
4540
4764
  };
4541
4765
  };
4542
- put?: never;
4543
- post?: never;
4544
- delete?: never;
4545
- options?: never;
4546
- head?: never;
4547
- patch?: never;
4548
4766
  trace?: never;
4549
4767
  };
4550
- "/v1/lines/{id}": {
4768
+ "/v1/lines/assign": {
4551
4769
  parameters: {
4552
4770
  query?: never;
4553
4771
  header?: never;
4554
4772
  path?: never;
4555
4773
  cookie?: never;
4556
4774
  };
4775
+ get?: never;
4776
+ put?: never;
4557
4777
  /**
4558
- * Get line details (public marketplace)
4559
- * @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).
4560
4780
  */
4561
- get: {
4781
+ post: {
4562
4782
  parameters: {
4563
4783
  query?: never;
4564
4784
  header?: never;
4565
- path: {
4566
- id: string;
4567
- };
4785
+ path?: never;
4568
4786
  cookie?: never;
4569
4787
  };
4570
- requestBody?: never;
4788
+ requestBody?: {
4789
+ content: {
4790
+ "application/json": components["schemas"]["AssignLine"];
4791
+ };
4792
+ };
4571
4793
  responses: {
4572
- /** @description Line */
4794
+ /** @description Line assigned and activated */
4573
4795
  200: {
4574
4796
  headers: {
4575
4797
  [name: string]: unknown;
@@ -4593,6 +4815,24 @@ export interface paths {
4593
4815
  "application/json": components["schemas"]["ErrorEnvelope"];
4594
4816
  };
4595
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
+ };
4596
4836
  /** @description Not found */
4597
4837
  404: {
4598
4838
  headers: {
@@ -4602,6 +4842,15 @@ export interface paths {
4602
4842
  "application/json": components["schemas"]["ErrorEnvelope"];
4603
4843
  };
4604
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
+ };
4605
4854
  /** @description Too many requests — rate limit exceeded */
4606
4855
  429: {
4607
4856
  headers: {
@@ -4622,16 +4871,26 @@ export interface paths {
4622
4871
  };
4623
4872
  };
4624
4873
  };
4625
- put?: never;
4626
- post?: never;
4627
4874
  delete?: never;
4628
4875
  options?: never;
4629
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;
4630
4889
  /**
4631
- * Update line metadata
4632
- * @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.
4633
4892
  */
4634
- patch: {
4893
+ post: {
4635
4894
  parameters: {
4636
4895
  query?: never;
4637
4896
  header?: never;
@@ -4640,13 +4899,9 @@ export interface paths {
4640
4899
  };
4641
4900
  cookie?: never;
4642
4901
  };
4643
- requestBody?: {
4644
- content: {
4645
- "application/json": components["schemas"]["PatchLine"];
4646
- };
4647
- };
4902
+ requestBody?: never;
4648
4903
  responses: {
4649
- /** @description Line with merged metadata */
4904
+ /** @description Line reserved */
4650
4905
  200: {
4651
4906
  headers: {
4652
4907
  [name: string]: unknown;
@@ -4697,6 +4952,15 @@ export interface paths {
4697
4952
  "application/json": components["schemas"]["ErrorEnvelope"];
4698
4953
  };
4699
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
+ };
4700
4964
  /** @description Too many requests — rate limit exceeded */
4701
4965
  429: {
4702
4966
  headers: {
@@ -4717,9 +4981,13 @@ export interface paths {
4717
4981
  };
4718
4982
  };
4719
4983
  };
4984
+ delete?: never;
4985
+ options?: never;
4986
+ head?: never;
4987
+ patch?: never;
4720
4988
  trace?: never;
4721
4989
  };
4722
- "/v1/lines/assign": {
4990
+ "/v1/lines/{id}/activate": {
4723
4991
  parameters: {
4724
4992
  query?: never;
4725
4993
  header?: never;
@@ -4729,23 +4997,25 @@ export interface paths {
4729
4997
  get?: never;
4730
4998
  put?: never;
4731
4999
  /**
4732
- * Atomically reserve + activate a line
4733
- * @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).
4734
5002
  */
4735
5003
  post: {
4736
5004
  parameters: {
4737
5005
  query?: never;
4738
5006
  header?: never;
4739
- path?: never;
5007
+ path: {
5008
+ id: string;
5009
+ };
4740
5010
  cookie?: never;
4741
5011
  };
4742
5012
  requestBody?: {
4743
5013
  content: {
4744
- "application/json": components["schemas"]["AssignLine"];
5014
+ "application/json": components["schemas"]["ActivateLine"];
4745
5015
  };
4746
5016
  };
4747
5017
  responses: {
4748
- /** @description Line assigned and activated */
5018
+ /** @description Line activated */
4749
5019
  200: {
4750
5020
  headers: {
4751
5021
  [name: string]: unknown;
@@ -4831,7 +5101,7 @@ export interface paths {
4831
5101
  patch?: never;
4832
5102
  trace?: never;
4833
5103
  };
4834
- "/v1/lines/{id}/reserve": {
5104
+ "/v1/lines/{id}/transfer-ownership": {
4835
5105
  parameters: {
4836
5106
  query?: never;
4837
5107
  header?: never;
@@ -4841,8 +5111,8 @@ export interface paths {
4841
5111
  get?: never;
4842
5112
  put?: never;
4843
5113
  /**
4844
- * Reserve an available line
4845
- * @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.
4846
5116
  */
4847
5117
  post: {
4848
5118
  parameters: {
@@ -4853,9 +5123,13 @@ export interface paths {
4853
5123
  };
4854
5124
  cookie?: never;
4855
5125
  };
4856
- requestBody?: never;
5126
+ requestBody?: {
5127
+ content: {
5128
+ "application/json": components["schemas"]["TransferOwnership"];
5129
+ };
5130
+ };
4857
5131
  responses: {
4858
- /** @description Line reserved */
5132
+ /** @description Ownership transferred */
4859
5133
  200: {
4860
5134
  headers: {
4861
5135
  [name: string]: unknown;
@@ -4941,7 +5215,7 @@ export interface paths {
4941
5215
  patch?: never;
4942
5216
  trace?: never;
4943
5217
  };
4944
- "/v1/lines/{id}/activate": {
5218
+ "/v1/lines/{id}/convert-to-test": {
4945
5219
  parameters: {
4946
5220
  query?: never;
4947
5221
  header?: never;
@@ -4951,8 +5225,8 @@ export interface paths {
4951
5225
  get?: never;
4952
5226
  put?: never;
4953
5227
  /**
4954
- * Activate a reserved line
4955
- * @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.
4956
5230
  */
4957
5231
  post: {
4958
5232
  parameters: {
@@ -4963,13 +5237,9 @@ export interface paths {
4963
5237
  };
4964
5238
  cookie?: never;
4965
5239
  };
4966
- requestBody?: {
4967
- content: {
4968
- "application/json": components["schemas"]["ActivateLine"];
4969
- };
4970
- };
5240
+ requestBody?: never;
4971
5241
  responses: {
4972
- /** @description Line activated */
5242
+ /** @description Line converted to a test line */
4973
5243
  200: {
4974
5244
  headers: {
4975
5245
  [name: string]: unknown;
@@ -5055,7 +5325,7 @@ export interface paths {
5055
5325
  patch?: never;
5056
5326
  trace?: never;
5057
5327
  };
5058
- "/v1/lines/{id}/transfer-ownership": {
5328
+ "/v1/lines/{id}/convert-from-test": {
5059
5329
  parameters: {
5060
5330
  query?: never;
5061
5331
  header?: never;
@@ -5065,8 +5335,8 @@ export interface paths {
5065
5335
  get?: never;
5066
5336
  put?: never;
5067
5337
  /**
5068
- * Transfer a line to another iSnap user
5069
- * @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.
5070
5340
  */
5071
5341
  post: {
5072
5342
  parameters: {
@@ -5077,13 +5347,9 @@ export interface paths {
5077
5347
  };
5078
5348
  cookie?: never;
5079
5349
  };
5080
- requestBody?: {
5081
- content: {
5082
- "application/json": components["schemas"]["TransferOwnership"];
5083
- };
5084
- };
5350
+ requestBody?: never;
5085
5351
  responses: {
5086
- /** @description Ownership transferred */
5352
+ /** @description Line reverted to a rental line */
5087
5353
  200: {
5088
5354
  headers: {
5089
5355
  [name: string]: unknown;
@@ -8942,7 +9208,7 @@ export interface paths {
8942
9208
  put?: never;
8943
9209
  /**
8944
9210
  * Start a trial session
8945
- * @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.
8946
9212
  */
8947
9213
  post: {
8948
9214
  parameters: {
@@ -8984,6 +9250,15 @@ export interface paths {
8984
9250
  "application/json": components["schemas"]["ErrorEnvelope"];
8985
9251
  };
8986
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
+ };
8987
9262
  /** @description Too many requests — rate limit exceeded */
8988
9263
  429: {
8989
9264
  headers: {
@@ -10193,45 +10468,6 @@ export interface components {
10193
10468
  LineWatchList: {
10194
10469
  watches: components["schemas"]["LineWatch"][];
10195
10470
  };
10196
- DemoStart: {
10197
- /** Format: uuid */
10198
- session_id: string;
10199
- line: {
10200
- /** Format: uuid */
10201
- id: string;
10202
- phone_number: string;
10203
- billing_tier: string;
10204
- };
10205
- api_key: string | null;
10206
- };
10207
- DemoSendTest: {
10208
- success: boolean;
10209
- /** Format: uuid */
10210
- message_id: string;
10211
- };
10212
- DemoSession: {
10213
- /** Format: uuid */
10214
- session_id: string;
10215
- line: {
10216
- /** Format: uuid */
10217
- id: string;
10218
- phone_number: string;
10219
- billing_tier: string;
10220
- };
10221
- messages_sent: number;
10222
- daily_limit: number;
10223
- test_number: string | null;
10224
- completed: boolean;
10225
- expires_at: string | null;
10226
- created_at: string;
10227
- has_api_key: boolean;
10228
- };
10229
- DemoApiKey: {
10230
- key: string;
10231
- /** Format: uuid */
10232
- id: string;
10233
- prefix: string;
10234
- };
10235
10471
  MessageVolume: {
10236
10472
  dates: string[];
10237
10473
  counts: number[];
@@ -10863,9 +11099,6 @@ export interface components {
10863
11099
  devices: {
10864
11100
  available: number;
10865
11101
  ordered: number;
10866
- shipped: number;
10867
- received: number;
10868
- ready: number;
10869
11102
  total: number;
10870
11103
  };
10871
11104
  esims: {
@@ -10882,6 +11115,51 @@ export interface components {
10882
11115
  pendingAssembly: number;
10883
11116
  pendingTasks: number;
10884
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
+ };
10885
11163
  VADevice: {
10886
11164
  /** Format: uuid */
10887
11165
  id: string;
@@ -10892,6 +11170,8 @@ export interface components {
10892
11170
  /** Format: uuid */
10893
11171
  farmId: string | null;
10894
11172
  farmName: string | null;
11173
+ unitCostCents?: number | null;
11174
+ invoiceUrl?: string | null;
10895
11175
  createdAt: string;
10896
11176
  taskCompleted?: boolean;
10897
11177
  };
@@ -10899,6 +11179,15 @@ export interface components {
10899
11179
  devices: components["schemas"]["VADevice"][];
10900
11180
  total: number;
10901
11181
  };
11182
+ VADeviceModels: {
11183
+ models: {
11184
+ /** Format: uuid */
11185
+ id: string;
11186
+ name: string;
11187
+ /** @enum {string} */
11188
+ platform: "iphone" | "android";
11189
+ }[];
11190
+ };
10902
11191
  VAEsim: {
10903
11192
  /** Format: uuid */
10904
11193
  id: string;
@@ -10939,6 +11228,8 @@ export interface components {
10939
11228
  /** Format: uuid */
10940
11229
  assigneeId: string | null;
10941
11230
  /** Format: uuid */
11231
+ completedBy: string | null;
11232
+ /** Format: uuid */
10942
11233
  deviceId: string | null;
10943
11234
  /** Format: uuid */
10944
11235
  esimId: string | null;
@@ -11039,6 +11330,8 @@ export interface components {
11039
11330
  phone_number: string;
11040
11331
  area_code: string | null;
11041
11332
  country_code: string | null;
11333
+ state: string | null;
11334
+ state_name: string | null;
11042
11335
  /** @enum {string} */
11043
11336
  billing_tier: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool";
11044
11337
  /** @description True when the customer owns the underlying hardware (BYOD billing tiers). BYOD lines expose the full line-health surface (offline/degraded events, GET /v1/lines/{id}/health). Rental lines (false) only emit durable, actionable events to keep customers out of transient infrastructure noise they cannot act on. */
@@ -11055,6 +11348,8 @@ export interface components {
11055
11348
  metadata: {
11056
11349
  [key: string]: unknown;
11057
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;
11058
11353
  fulfillment_status?: string | null;
11059
11354
  };
11060
11355
  MyLines: {
@@ -11065,6 +11360,7 @@ export interface components {
11065
11360
  billing_tier: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android";
11066
11361
  area_code?: string;
11067
11362
  inbound_only?: boolean;
11363
+ as_test_line?: boolean;
11068
11364
  metadata?: {
11069
11365
  [key: string]: unknown;
11070
11366
  };
@@ -11467,7 +11763,7 @@ export interface components {
11467
11763
  next_cursor: string | null;
11468
11764
  };
11469
11765
  Webhook: {
11470
- /** Format: uuid */
11766
+ /** @example wh_3Kp8Rn9Fh2Lm5Qx7Vw1Yz4Bc */
11471
11767
  id: string;
11472
11768
  url: string;
11473
11769
  events?: unknown;
@@ -11483,7 +11779,7 @@ export interface components {
11483
11779
  * @description A concrete event type (e.g. `message.received`), a family wildcard (`line.*`), or the catch-all `*`.
11484
11780
  * @enum {string}
11485
11781
  */
11486
- 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.*";
11487
11783
  WebhookList: {
11488
11784
  webhooks: components["schemas"]["Webhook"][];
11489
11785
  };