@isnap/sdk 1.1.0-next.56 → 1.1.0-next.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/openapi.d.ts +480 -33
- package/package.json +1 -1
|
@@ -2615,7 +2615,7 @@ export interface paths {
|
|
|
2615
2615
|
get: {
|
|
2616
2616
|
parameters: {
|
|
2617
2617
|
query?: {
|
|
2618
|
-
billing_tier?: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool";
|
|
2618
|
+
billing_tier?: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool" | "shared_imessage";
|
|
2619
2619
|
status?: string;
|
|
2620
2620
|
assigned?: boolean | null;
|
|
2621
2621
|
fulfillment?: "pending" | "fulfilled";
|
|
@@ -2657,7 +2657,7 @@ export interface paths {
|
|
|
2657
2657
|
query?: {
|
|
2658
2658
|
page?: number;
|
|
2659
2659
|
limit?: number;
|
|
2660
|
-
billing_tier?: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool";
|
|
2660
|
+
billing_tier?: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool" | "shared_imessage";
|
|
2661
2661
|
};
|
|
2662
2662
|
header?: never;
|
|
2663
2663
|
path?: never;
|
|
@@ -2778,14 +2778,16 @@ export interface paths {
|
|
|
2778
2778
|
};
|
|
2779
2779
|
get: {
|
|
2780
2780
|
parameters: {
|
|
2781
|
-
query?:
|
|
2781
|
+
query?: {
|
|
2782
|
+
purpose?: "trial" | "shared";
|
|
2783
|
+
};
|
|
2782
2784
|
header?: never;
|
|
2783
2785
|
path?: never;
|
|
2784
2786
|
cookie?: never;
|
|
2785
2787
|
};
|
|
2786
2788
|
requestBody?: never;
|
|
2787
2789
|
responses: {
|
|
2788
|
-
/** @description Pool fleet summary + per-line trial/
|
|
2790
|
+
/** @description Pool fleet summary + per-line trial/binding/quota metrics + per-scope virtual/physical overcommit */
|
|
2789
2791
|
200: {
|
|
2790
2792
|
headers: {
|
|
2791
2793
|
[name: string]: unknown;
|
|
@@ -2827,6 +2829,82 @@ export interface paths {
|
|
|
2827
2829
|
patch?: never;
|
|
2828
2830
|
trace?: never;
|
|
2829
2831
|
};
|
|
2832
|
+
"/admin/lines/shared": {
|
|
2833
|
+
parameters: {
|
|
2834
|
+
query?: never;
|
|
2835
|
+
header?: never;
|
|
2836
|
+
path?: never;
|
|
2837
|
+
cookie?: never;
|
|
2838
|
+
};
|
|
2839
|
+
get?: never;
|
|
2840
|
+
put?: never;
|
|
2841
|
+
post: {
|
|
2842
|
+
parameters: {
|
|
2843
|
+
query?: never;
|
|
2844
|
+
header?: never;
|
|
2845
|
+
path?: never;
|
|
2846
|
+
cookie?: never;
|
|
2847
|
+
};
|
|
2848
|
+
requestBody?: {
|
|
2849
|
+
content: {
|
|
2850
|
+
"application/json": components["schemas"]["AdminMintSharedLineBody"];
|
|
2851
|
+
};
|
|
2852
|
+
};
|
|
2853
|
+
responses: {
|
|
2854
|
+
/** @description Virtual shared line minted for the target customer */
|
|
2855
|
+
201: {
|
|
2856
|
+
headers: {
|
|
2857
|
+
[name: string]: unknown;
|
|
2858
|
+
};
|
|
2859
|
+
content: {
|
|
2860
|
+
"application/json": components["schemas"]["Line"];
|
|
2861
|
+
};
|
|
2862
|
+
};
|
|
2863
|
+
};
|
|
2864
|
+
};
|
|
2865
|
+
delete?: never;
|
|
2866
|
+
options?: never;
|
|
2867
|
+
head?: never;
|
|
2868
|
+
patch?: never;
|
|
2869
|
+
trace?: never;
|
|
2870
|
+
};
|
|
2871
|
+
"/admin/pool-lines/{id}/demote": {
|
|
2872
|
+
parameters: {
|
|
2873
|
+
query?: never;
|
|
2874
|
+
header?: never;
|
|
2875
|
+
path?: never;
|
|
2876
|
+
cookie?: never;
|
|
2877
|
+
};
|
|
2878
|
+
get?: never;
|
|
2879
|
+
put?: never;
|
|
2880
|
+
post: {
|
|
2881
|
+
parameters: {
|
|
2882
|
+
query?: never;
|
|
2883
|
+
header?: never;
|
|
2884
|
+
path: {
|
|
2885
|
+
id: string;
|
|
2886
|
+
};
|
|
2887
|
+
cookie?: never;
|
|
2888
|
+
};
|
|
2889
|
+
requestBody?: never;
|
|
2890
|
+
responses: {
|
|
2891
|
+
/** @description Pool line demoted to a rental line (blocked while live trials or active bindings exist) */
|
|
2892
|
+
200: {
|
|
2893
|
+
headers: {
|
|
2894
|
+
[name: string]: unknown;
|
|
2895
|
+
};
|
|
2896
|
+
content: {
|
|
2897
|
+
"application/json": components["schemas"]["DemotePoolLine"];
|
|
2898
|
+
};
|
|
2899
|
+
};
|
|
2900
|
+
};
|
|
2901
|
+
};
|
|
2902
|
+
delete?: never;
|
|
2903
|
+
options?: never;
|
|
2904
|
+
head?: never;
|
|
2905
|
+
patch?: never;
|
|
2906
|
+
trace?: never;
|
|
2907
|
+
};
|
|
2830
2908
|
"/admin/activation-codes/{code}/status": {
|
|
2831
2909
|
parameters: {
|
|
2832
2910
|
query?: never;
|
|
@@ -4443,7 +4521,7 @@ export interface paths {
|
|
|
4443
4521
|
get: {
|
|
4444
4522
|
parameters: {
|
|
4445
4523
|
query?: {
|
|
4446
|
-
billing_tier?: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool";
|
|
4524
|
+
billing_tier?: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool" | "shared_imessage";
|
|
4447
4525
|
area_code?: string;
|
|
4448
4526
|
country_code?: string;
|
|
4449
4527
|
/** @description US state filter — 2-letter code or full name. */
|
|
@@ -4877,6 +4955,118 @@ export interface paths {
|
|
|
4877
4955
|
patch?: never;
|
|
4878
4956
|
trace?: never;
|
|
4879
4957
|
};
|
|
4958
|
+
"/v1/lines/shared": {
|
|
4959
|
+
parameters: {
|
|
4960
|
+
query?: never;
|
|
4961
|
+
header?: never;
|
|
4962
|
+
path?: never;
|
|
4963
|
+
cookie?: never;
|
|
4964
|
+
};
|
|
4965
|
+
get?: never;
|
|
4966
|
+
put?: never;
|
|
4967
|
+
/**
|
|
4968
|
+
* Mint a virtual shared-outbound line
|
|
4969
|
+
* @description Mint a customer-owned VIRTUAL line on the shared-outbound plan (billing_tier `shared_imessage`): no dedicated hardware, no phone number of its own — sends are proxied onto the shared physical iMessage fleet, with a per-contact physical number resolved at send time. Minted directly `active` with no per-line Stripe subscription (wholesale is metered end-of-month on the active virtual-line count). Wholesale-partner only in v1; direct-customer callers get 402 until self-serve checkout ships (an admin can provision one for them in the meantime). Optional `metadata` is persisted and echoed on `line.*` webhooks. Supports `Idempotency-Key` — every mint creates a fresh billable line, so retries MUST carry the same key to avoid double-minting.
|
|
4970
|
+
*/
|
|
4971
|
+
post: {
|
|
4972
|
+
parameters: {
|
|
4973
|
+
query?: never;
|
|
4974
|
+
header?: never;
|
|
4975
|
+
path?: never;
|
|
4976
|
+
cookie?: never;
|
|
4977
|
+
};
|
|
4978
|
+
requestBody?: {
|
|
4979
|
+
content: {
|
|
4980
|
+
"application/json": components["schemas"]["MintSharedLine"];
|
|
4981
|
+
};
|
|
4982
|
+
};
|
|
4983
|
+
responses: {
|
|
4984
|
+
/** @description Virtual shared line minted */
|
|
4985
|
+
201: {
|
|
4986
|
+
headers: {
|
|
4987
|
+
[name: string]: unknown;
|
|
4988
|
+
};
|
|
4989
|
+
content: {
|
|
4990
|
+
"application/json": {
|
|
4991
|
+
/** @enum {boolean} */
|
|
4992
|
+
success: true;
|
|
4993
|
+
data: components["schemas"]["Line"];
|
|
4994
|
+
trace_id: string;
|
|
4995
|
+
request_id: string;
|
|
4996
|
+
};
|
|
4997
|
+
};
|
|
4998
|
+
};
|
|
4999
|
+
/** @description Bad request — validation failed */
|
|
5000
|
+
400: {
|
|
5001
|
+
headers: {
|
|
5002
|
+
[name: string]: unknown;
|
|
5003
|
+
};
|
|
5004
|
+
content: {
|
|
5005
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
5006
|
+
};
|
|
5007
|
+
};
|
|
5008
|
+
/** @description Unauthenticated — missing or invalid bearer token */
|
|
5009
|
+
401: {
|
|
5010
|
+
headers: {
|
|
5011
|
+
[name: string]: unknown;
|
|
5012
|
+
};
|
|
5013
|
+
content: {
|
|
5014
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
5015
|
+
};
|
|
5016
|
+
};
|
|
5017
|
+
/** @description Payment required — no billing relationship entitles this call */
|
|
5018
|
+
402: {
|
|
5019
|
+
headers: {
|
|
5020
|
+
[name: string]: unknown;
|
|
5021
|
+
};
|
|
5022
|
+
content: {
|
|
5023
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
5024
|
+
};
|
|
5025
|
+
};
|
|
5026
|
+
/** @description Forbidden — caller authenticated but not allowed */
|
|
5027
|
+
403: {
|
|
5028
|
+
headers: {
|
|
5029
|
+
[name: string]: unknown;
|
|
5030
|
+
};
|
|
5031
|
+
content: {
|
|
5032
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
5033
|
+
};
|
|
5034
|
+
};
|
|
5035
|
+
/** @description Conflict — concurrent or terminal state */
|
|
5036
|
+
409: {
|
|
5037
|
+
headers: {
|
|
5038
|
+
[name: string]: unknown;
|
|
5039
|
+
};
|
|
5040
|
+
content: {
|
|
5041
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
5042
|
+
};
|
|
5043
|
+
};
|
|
5044
|
+
/** @description Too many requests — rate limit exceeded */
|
|
5045
|
+
429: {
|
|
5046
|
+
headers: {
|
|
5047
|
+
[name: string]: unknown;
|
|
5048
|
+
};
|
|
5049
|
+
content: {
|
|
5050
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
5051
|
+
};
|
|
5052
|
+
};
|
|
5053
|
+
/** @description Internal server error */
|
|
5054
|
+
500: {
|
|
5055
|
+
headers: {
|
|
5056
|
+
[name: string]: unknown;
|
|
5057
|
+
};
|
|
5058
|
+
content: {
|
|
5059
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
5060
|
+
};
|
|
5061
|
+
};
|
|
5062
|
+
};
|
|
5063
|
+
};
|
|
5064
|
+
delete?: never;
|
|
5065
|
+
options?: never;
|
|
5066
|
+
head?: never;
|
|
5067
|
+
patch?: never;
|
|
5068
|
+
trace?: never;
|
|
5069
|
+
};
|
|
4880
5070
|
"/v1/lines/{id}/reserve": {
|
|
4881
5071
|
parameters: {
|
|
4882
5072
|
query?: never;
|
|
@@ -8810,6 +9000,173 @@ export interface paths {
|
|
|
8810
9000
|
patch?: never;
|
|
8811
9001
|
trace?: never;
|
|
8812
9002
|
};
|
|
9003
|
+
"/v1/chats": {
|
|
9004
|
+
parameters: {
|
|
9005
|
+
query?: never;
|
|
9006
|
+
header?: never;
|
|
9007
|
+
path?: never;
|
|
9008
|
+
cookie?: never;
|
|
9009
|
+
};
|
|
9010
|
+
/**
|
|
9011
|
+
* List chats
|
|
9012
|
+
* @description Cursor-paginated list of the caller's conversations, newest activity first. Filter by `line_id`. On shared-plan (virtual) lines each chat carries `outbound_number` — the physical number currently serving that contact (null once the binding is released; the next outbound is assigned a fresh number). Non-shared lines always carry `outbound_number: null`. Accepts an API key (`isnap_*`) or a dashboard JWT; line-scoped API keys only see chats of the lines in their allowlist.
|
|
9013
|
+
*/
|
|
9014
|
+
get: {
|
|
9015
|
+
parameters: {
|
|
9016
|
+
query?: {
|
|
9017
|
+
line_id?: string;
|
|
9018
|
+
limit?: number;
|
|
9019
|
+
cursor?: string;
|
|
9020
|
+
since?: string;
|
|
9021
|
+
until?: string;
|
|
9022
|
+
};
|
|
9023
|
+
header?: never;
|
|
9024
|
+
path?: never;
|
|
9025
|
+
cookie?: never;
|
|
9026
|
+
};
|
|
9027
|
+
requestBody?: never;
|
|
9028
|
+
responses: {
|
|
9029
|
+
/** @description Chat list */
|
|
9030
|
+
200: {
|
|
9031
|
+
headers: {
|
|
9032
|
+
[name: string]: unknown;
|
|
9033
|
+
};
|
|
9034
|
+
content: {
|
|
9035
|
+
"application/json": components["schemas"]["ChatListEnvelope"];
|
|
9036
|
+
};
|
|
9037
|
+
};
|
|
9038
|
+
/** @description Bad request — validation failed */
|
|
9039
|
+
400: {
|
|
9040
|
+
headers: {
|
|
9041
|
+
[name: string]: unknown;
|
|
9042
|
+
};
|
|
9043
|
+
content: {
|
|
9044
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9045
|
+
};
|
|
9046
|
+
};
|
|
9047
|
+
/** @description Unauthenticated — missing or invalid bearer token */
|
|
9048
|
+
401: {
|
|
9049
|
+
headers: {
|
|
9050
|
+
[name: string]: unknown;
|
|
9051
|
+
};
|
|
9052
|
+
content: {
|
|
9053
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9054
|
+
};
|
|
9055
|
+
};
|
|
9056
|
+
/** @description Too many requests — rate limit exceeded */
|
|
9057
|
+
429: {
|
|
9058
|
+
headers: {
|
|
9059
|
+
[name: string]: unknown;
|
|
9060
|
+
};
|
|
9061
|
+
content: {
|
|
9062
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9063
|
+
};
|
|
9064
|
+
};
|
|
9065
|
+
/** @description Internal server error */
|
|
9066
|
+
500: {
|
|
9067
|
+
headers: {
|
|
9068
|
+
[name: string]: unknown;
|
|
9069
|
+
};
|
|
9070
|
+
content: {
|
|
9071
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9072
|
+
};
|
|
9073
|
+
};
|
|
9074
|
+
};
|
|
9075
|
+
};
|
|
9076
|
+
put?: never;
|
|
9077
|
+
post?: never;
|
|
9078
|
+
delete?: never;
|
|
9079
|
+
options?: never;
|
|
9080
|
+
head?: never;
|
|
9081
|
+
patch?: never;
|
|
9082
|
+
trace?: never;
|
|
9083
|
+
};
|
|
9084
|
+
"/v1/chats/{chat_id}": {
|
|
9085
|
+
parameters: {
|
|
9086
|
+
query?: never;
|
|
9087
|
+
header?: never;
|
|
9088
|
+
path?: never;
|
|
9089
|
+
cookie?: never;
|
|
9090
|
+
};
|
|
9091
|
+
/**
|
|
9092
|
+
* Get a chat
|
|
9093
|
+
* @description Fetch a single conversation by its `chat_<base62>` id. Same shape as the list items, including `outbound_number` for shared-plan lines. Cross-account and out-of-scope ids resolve 404 (no existence leak).
|
|
9094
|
+
*/
|
|
9095
|
+
get: {
|
|
9096
|
+
parameters: {
|
|
9097
|
+
query?: never;
|
|
9098
|
+
header?: never;
|
|
9099
|
+
path: {
|
|
9100
|
+
chat_id: string;
|
|
9101
|
+
};
|
|
9102
|
+
cookie?: never;
|
|
9103
|
+
};
|
|
9104
|
+
requestBody?: never;
|
|
9105
|
+
responses: {
|
|
9106
|
+
/** @description Chat */
|
|
9107
|
+
200: {
|
|
9108
|
+
headers: {
|
|
9109
|
+
[name: string]: unknown;
|
|
9110
|
+
};
|
|
9111
|
+
content: {
|
|
9112
|
+
"application/json": components["schemas"]["ChatEnvelope"];
|
|
9113
|
+
};
|
|
9114
|
+
};
|
|
9115
|
+
/** @description Bad request — validation failed */
|
|
9116
|
+
400: {
|
|
9117
|
+
headers: {
|
|
9118
|
+
[name: string]: unknown;
|
|
9119
|
+
};
|
|
9120
|
+
content: {
|
|
9121
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9122
|
+
};
|
|
9123
|
+
};
|
|
9124
|
+
/** @description Unauthenticated — missing or invalid bearer token */
|
|
9125
|
+
401: {
|
|
9126
|
+
headers: {
|
|
9127
|
+
[name: string]: unknown;
|
|
9128
|
+
};
|
|
9129
|
+
content: {
|
|
9130
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9131
|
+
};
|
|
9132
|
+
};
|
|
9133
|
+
/** @description Not found */
|
|
9134
|
+
404: {
|
|
9135
|
+
headers: {
|
|
9136
|
+
[name: string]: unknown;
|
|
9137
|
+
};
|
|
9138
|
+
content: {
|
|
9139
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9140
|
+
};
|
|
9141
|
+
};
|
|
9142
|
+
/** @description Too many requests — rate limit exceeded */
|
|
9143
|
+
429: {
|
|
9144
|
+
headers: {
|
|
9145
|
+
[name: string]: unknown;
|
|
9146
|
+
};
|
|
9147
|
+
content: {
|
|
9148
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9149
|
+
};
|
|
9150
|
+
};
|
|
9151
|
+
/** @description Internal server error */
|
|
9152
|
+
500: {
|
|
9153
|
+
headers: {
|
|
9154
|
+
[name: string]: unknown;
|
|
9155
|
+
};
|
|
9156
|
+
content: {
|
|
9157
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
9158
|
+
};
|
|
9159
|
+
};
|
|
9160
|
+
};
|
|
9161
|
+
};
|
|
9162
|
+
put?: never;
|
|
9163
|
+
post?: never;
|
|
9164
|
+
delete?: never;
|
|
9165
|
+
options?: never;
|
|
9166
|
+
head?: never;
|
|
9167
|
+
patch?: never;
|
|
9168
|
+
trace?: never;
|
|
9169
|
+
};
|
|
8813
9170
|
"/v1/chats/{chat_id}/share-contact-card": {
|
|
8814
9171
|
parameters: {
|
|
8815
9172
|
query?: never;
|
|
@@ -10908,6 +11265,10 @@ export interface components {
|
|
|
10908
11265
|
/** @enum {string} */
|
|
10909
11266
|
ownership: "pool";
|
|
10910
11267
|
/** @enum {string} */
|
|
11268
|
+
pool_purpose: "trial" | "shared";
|
|
11269
|
+
/** Format: uuid */
|
|
11270
|
+
owner_user_id: string | null;
|
|
11271
|
+
/** @enum {string} */
|
|
10911
11272
|
platform: "imessage";
|
|
10912
11273
|
status: string;
|
|
10913
11274
|
monthly_price: number;
|
|
@@ -10920,10 +11281,53 @@ export interface components {
|
|
|
10920
11281
|
CreatePoolLineBody: {
|
|
10921
11282
|
/** Format: uuid */
|
|
10922
11283
|
line_id?: string;
|
|
11284
|
+
/**
|
|
11285
|
+
* @default trial
|
|
11286
|
+
* @enum {string}
|
|
11287
|
+
*/
|
|
11288
|
+
purpose: "trial" | "shared";
|
|
11289
|
+
/** Format: uuid */
|
|
11290
|
+
owner_user_id?: string;
|
|
10923
11291
|
phone_number?: string;
|
|
10924
11292
|
area_code?: string;
|
|
10925
11293
|
country_code?: string;
|
|
10926
11294
|
};
|
|
11295
|
+
Line: {
|
|
11296
|
+
id: string;
|
|
11297
|
+
phone_number: string;
|
|
11298
|
+
area_code: string | null;
|
|
11299
|
+
country_code: string | null;
|
|
11300
|
+
state: string | null;
|
|
11301
|
+
state_name: string | null;
|
|
11302
|
+
/** @enum {string} */
|
|
11303
|
+
billing_tier: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool" | "shared_imessage";
|
|
11304
|
+
/** @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. */
|
|
11305
|
+
byod: boolean;
|
|
11306
|
+
/** @description True when the line is inbound-only: it may only message a handle that has messaged it first (a recipient who has never contacted the line is rejected with 403 outbound_first_forbidden). Inbound-only is a cheaper rental-tier variant (Bloo parity); always false on BYOD/pool lines. */
|
|
11307
|
+
inbound_only: boolean;
|
|
11308
|
+
capabilities?: unknown;
|
|
11309
|
+
status: string;
|
|
11310
|
+
monthly_price: number;
|
|
11311
|
+
stripe_subscription_id: string | null;
|
|
11312
|
+
activated_at: string | null;
|
|
11313
|
+
expires_at: string | null;
|
|
11314
|
+
created_at: string;
|
|
11315
|
+
metadata: {
|
|
11316
|
+
[key: string]: unknown;
|
|
11317
|
+
} | null;
|
|
11318
|
+
/** @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. */
|
|
11319
|
+
test_line: boolean;
|
|
11320
|
+
/** @description True when the line is a virtual shared-plan line (billing_tier shared_imessage): customer-owned, no dedicated hardware, phone_number empty — sends are proxied onto the shared physical iMessage fleet. Line-scoped API keys, webhooks and per-line quota apply to it like any other line. */
|
|
11321
|
+
shared: boolean;
|
|
11322
|
+
fulfillment_status?: string | null;
|
|
11323
|
+
};
|
|
11324
|
+
AdminMintSharedLineBody: {
|
|
11325
|
+
metadata?: {
|
|
11326
|
+
[key: string]: unknown;
|
|
11327
|
+
};
|
|
11328
|
+
/** Format: uuid */
|
|
11329
|
+
user_id: string;
|
|
11330
|
+
};
|
|
10927
11331
|
PoolLinesMonitor: {
|
|
10928
11332
|
summary: {
|
|
10929
11333
|
total_lines: number;
|
|
@@ -10932,14 +11336,20 @@ export interface components {
|
|
|
10932
11336
|
active_trials: number;
|
|
10933
11337
|
dormant_trials: number;
|
|
10934
11338
|
pairing_pending_trials: number;
|
|
11339
|
+
active_bindings: number;
|
|
10935
11340
|
};
|
|
10936
11341
|
lines: components["schemas"]["PoolLineMonitorItem"][];
|
|
11342
|
+
overcommit: components["schemas"]["PoolOvercommitScope"][];
|
|
10937
11343
|
};
|
|
10938
11344
|
PoolLineMonitorItem: {
|
|
10939
11345
|
/** Format: uuid */
|
|
10940
11346
|
id: string;
|
|
10941
11347
|
public_id: string;
|
|
10942
11348
|
phone_number: string | null;
|
|
11349
|
+
/** @enum {string} */
|
|
11350
|
+
purpose: "trial" | "shared";
|
|
11351
|
+
/** Format: uuid */
|
|
11352
|
+
owner_user_id: string | null;
|
|
10943
11353
|
status: string;
|
|
10944
11354
|
health_state: string;
|
|
10945
11355
|
/** Format: uuid */
|
|
@@ -10948,9 +11358,36 @@ export interface components {
|
|
|
10948
11358
|
active_trials: number;
|
|
10949
11359
|
dormant_trials: number;
|
|
10950
11360
|
pairing_pending_trials: number;
|
|
11361
|
+
active_bindings: number;
|
|
11362
|
+
daily_new_used: number;
|
|
11363
|
+
daily_new_limit: number;
|
|
11364
|
+
daily_new_headroom: number;
|
|
11365
|
+
last_activity_at: string | null;
|
|
10951
11366
|
messages_24h: number;
|
|
10952
11367
|
created_at: string;
|
|
10953
11368
|
};
|
|
11369
|
+
PoolOvercommitScope: {
|
|
11370
|
+
/** @enum {string} */
|
|
11371
|
+
scope: "global" | "partner";
|
|
11372
|
+
/** Format: uuid */
|
|
11373
|
+
owner_user_id: string | null;
|
|
11374
|
+
active_virtual_lines: number;
|
|
11375
|
+
physical_lines: number;
|
|
11376
|
+
ratio: number | null;
|
|
11377
|
+
};
|
|
11378
|
+
DemotePoolLine: {
|
|
11379
|
+
/** Format: uuid */
|
|
11380
|
+
id: string;
|
|
11381
|
+
public_id: string;
|
|
11382
|
+
/** @enum {string} */
|
|
11383
|
+
ownership: "rental";
|
|
11384
|
+
pool_purpose: unknown;
|
|
11385
|
+
status: string;
|
|
11386
|
+
monthly_price: number;
|
|
11387
|
+
/** Format: uuid */
|
|
11388
|
+
owner_user_id: string | null;
|
|
11389
|
+
updated_at: string;
|
|
11390
|
+
};
|
|
10954
11391
|
ActivationCodeStatus: {
|
|
10955
11392
|
consumed: boolean;
|
|
10956
11393
|
consumedAt: string | null;
|
|
@@ -11325,33 +11762,6 @@ export interface components {
|
|
|
11325
11762
|
page: number;
|
|
11326
11763
|
limit: number;
|
|
11327
11764
|
};
|
|
11328
|
-
Line: {
|
|
11329
|
-
id: string;
|
|
11330
|
-
phone_number: string;
|
|
11331
|
-
area_code: string | null;
|
|
11332
|
-
country_code: string | null;
|
|
11333
|
-
state: string | null;
|
|
11334
|
-
state_name: string | null;
|
|
11335
|
-
/** @enum {string} */
|
|
11336
|
-
billing_tier: "rental_iphone" | "rental_android" | "byod_imessage" | "byod_android" | "shared_pool";
|
|
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. */
|
|
11338
|
-
byod: boolean;
|
|
11339
|
-
/** @description True when the line is inbound-only: it may only message a handle that has messaged it first (a recipient who has never contacted the line is rejected with 403 outbound_first_forbidden). Inbound-only is a cheaper rental-tier variant (Bloo parity); always false on BYOD/pool lines. */
|
|
11340
|
-
inbound_only: boolean;
|
|
11341
|
-
capabilities?: unknown;
|
|
11342
|
-
status: string;
|
|
11343
|
-
monthly_price: number;
|
|
11344
|
-
stripe_subscription_id: string | null;
|
|
11345
|
-
activated_at: string | null;
|
|
11346
|
-
expires_at: string | null;
|
|
11347
|
-
created_at: string;
|
|
11348
|
-
metadata: {
|
|
11349
|
-
[key: string]: unknown;
|
|
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;
|
|
11353
|
-
fulfillment_status?: string | null;
|
|
11354
|
-
};
|
|
11355
11765
|
MyLines: {
|
|
11356
11766
|
lines: components["schemas"]["Line"][];
|
|
11357
11767
|
};
|
|
@@ -11365,6 +11775,11 @@ export interface components {
|
|
|
11365
11775
|
[key: string]: unknown;
|
|
11366
11776
|
};
|
|
11367
11777
|
};
|
|
11778
|
+
MintSharedLine: {
|
|
11779
|
+
metadata?: {
|
|
11780
|
+
[key: string]: unknown;
|
|
11781
|
+
};
|
|
11782
|
+
};
|
|
11368
11783
|
ActivateLine: {
|
|
11369
11784
|
inbound_only?: boolean;
|
|
11370
11785
|
};
|
|
@@ -11779,7 +12194,7 @@ export interface components {
|
|
|
11779
12194
|
* @description A concrete event type (e.g. `message.received`), a family wildcard (`line.*`), or the catch-all `*`.
|
|
11780
12195
|
* @enum {string}
|
|
11781
12196
|
*/
|
|
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.*";
|
|
12197
|
+
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" | "binding.released" | "pre_order.fulfilled" | "pre_order.cancelled" | "pre_order.refunded" | "webhook.test" | "*" | "message.*" | "reaction.*" | "line.*" | "typing_indicator.*" | "trial.*" | "binding.*" | "webhook.*";
|
|
11783
12198
|
WebhookList: {
|
|
11784
12199
|
webhooks: components["schemas"]["Webhook"][];
|
|
11785
12200
|
};
|
|
@@ -11952,6 +12367,38 @@ export interface components {
|
|
|
11952
12367
|
/** @example 1 */
|
|
11953
12368
|
calling_code: string;
|
|
11954
12369
|
};
|
|
12370
|
+
ChatListEnvelope: {
|
|
12371
|
+
/** @enum {boolean} */
|
|
12372
|
+
success: true;
|
|
12373
|
+
data: components["schemas"]["ChatList"];
|
|
12374
|
+
trace_id: string;
|
|
12375
|
+
request_id: string;
|
|
12376
|
+
};
|
|
12377
|
+
ChatList: {
|
|
12378
|
+
items: components["schemas"]["Chat"][];
|
|
12379
|
+
has_more: boolean;
|
|
12380
|
+
next_cursor: string | null;
|
|
12381
|
+
};
|
|
12382
|
+
Chat: {
|
|
12383
|
+
/** @example chat_5h7FqK2mNpQ8rT3vW9xY1zA4b */
|
|
12384
|
+
id: string;
|
|
12385
|
+
line_id: string;
|
|
12386
|
+
contact_handle: string;
|
|
12387
|
+
/** @description Shared-plan lines only: the physical number currently serving this contact (the active binding). Null when no binding is active — e.g. after inactivity release, in which case the next outbound is assigned a fresh number — and always null on non-shared lines. */
|
|
12388
|
+
outbound_number: string | null;
|
|
12389
|
+
last_message_at: string;
|
|
12390
|
+
message_count: number;
|
|
12391
|
+
unread_count: number;
|
|
12392
|
+
created_at: string;
|
|
12393
|
+
updated_at: string;
|
|
12394
|
+
};
|
|
12395
|
+
ChatEnvelope: {
|
|
12396
|
+
/** @enum {boolean} */
|
|
12397
|
+
success: true;
|
|
12398
|
+
data: components["schemas"]["Chat"];
|
|
12399
|
+
trace_id: string;
|
|
12400
|
+
request_id: string;
|
|
12401
|
+
};
|
|
11955
12402
|
ShareContactCardEnvelope: {
|
|
11956
12403
|
/** @enum {boolean} */
|
|
11957
12404
|
success: true;
|