@isnap/sdk 2.2.0-next.213 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -2
- package/README.md +3 -7
- package/dist/generated/openapi.d.ts +9 -36
- package/dist/resources/lines.d.ts +12 -36
- package/dist/resources/lines.d.ts.map +1 -1
- package/dist/resources/lines.js +12 -36
- package/dist/resources/lines.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -38,8 +38,6 @@ All notable changes to `@isnap/sdk` will be documented in this file. The format
|
|
|
38
38
|
- **`verifyWebhook` verifies the Standard Webhooks headers only** (`webhook-id` / `webhook-timestamp` / `webhook-signature`, WHA-3658) — breaking, MAJOR (`2.0.0`). The fallback to the `X-iSnap-Signature` / `X-iSnap-Timestamp` pair is removed, because iSnap no longer sends those headers: a request that carries only them is now rejected with `WebhookSignatureError` (`Missing webhook-id header`). The key derivation no longer strips a `whs_` prefix either; only `whsec_` secrets, the only kind iSnap mints, verify. Unchanged: the `[newSecret, oldSecret]` rotation array, the `tolerance` option and its 300 s default, case-insensitive header reads, and the return value. A caller that already receives iSnap deliveries needs no code change, since every delivery since `1.4.0` carries the standard headers.
|
|
39
39
|
|
|
40
40
|
### Changed
|
|
41
|
-
- **An owned test line is billed like a rental line** (WHA-3701, API `2.27.0`). `lines.convertToTest()` no longer stops billing: the test line stays on the wholesale partner's end-of-month invoice as the outbound product whatever its platform, on the same billing dates (`anniversary_at` and `billing_anchor_at` are kept), and `Line.monthly_price` reads that price (27500) instead of `0`. `lines.convertFromTest()` therefore leaves the bill unchanged. `lines.convertToTest()` now refuses an inbound line (`ConflictError`, 409 `test_line_not_inbound_only`: move it to outbound with `setVariant` first) and a line with a pending cancellation (409 `line_cancellation_pending`: `uncancel` first). `lines.terminate()` of a test line leaves the instant it ended as the line's `cancel_at`, and a line transferred to a wholesale partner carries the transfer instant as `activated_at`. No SDK code changes: the generated types and the JSDoc of `convertToTest`, `convertFromTest`, `cancel` and `transferOwnership` carry the new wording.
|
|
42
|
-
- **`lines.assign()`, `lines.convertToTest()` and `lines.convertFromTest()` are wholesale-partner only** (WHA-3692, API `2.26.0`). A direct (non-wholesale) account is rejected with `PaymentRequiredError` (402 `checkout_required`) and nothing is reserved or converted. `assign()` refuses a direct account with or without `as_test_line`. `lines.transferOwnership()` of a line that is not billed per line (an owned test line, another pool line, a virtual shared line) to a non-wholesale recipient is a `ConflictError` (409 `line_recipient_not_wholesale`). `lines.terminate()` now ends an owned test line once no live trial rides it, which is otherwise a `ConflictError` (409 `test_line_in_use`). No SDK code changes: the existing error classes surface these refusals.
|
|
43
41
|
- `src/generated/openapi.d.ts` is now generated from the **published** contract. `packages/backend/openapi.json` carries only the partner-facing `/v1/*` surface, so the internal operator routes (`/admin`, `/va`, `/farm-ops`, `/kam`, `/auth`, …) and the bridge-only `/v1/device/*` contract — plus every schema reachable only from them — are no longer emitted into the SDK types. Those routes are the dashboard, the ops back-office and the device bridge; none of them is part of the partner contract this SDK wraps, and no `ISnapClient` method referenced their types, so no documented method changes shape.
|
|
44
42
|
- **`AppDownloadEntry.version` is now `string | null`** (API `1.15.0`, WHA-2538) — source-breaking for a consumer that renders `apps.manifest()`'s `version` without narrowing, which is the point. The field used to be a per-deployment configured string tied to no artifact: staging advertised `0.1.0-staging` for both platforms while the Mac ran `0.0.209` and the update channel published `0.0.x`, so the number could not be installed and the two platforms agreed only because both read one env value. It is now read from the release feed beside the artifact the download URL resolves to, and is `null` when that feed publishes nothing. Render the absence; do not substitute a number, and do not treat `null` as an error. It is also no longer the same string `byod.pair` returns as `bridge_version`.
|
|
45
43
|
|
package/README.md
CHANGED
|
@@ -182,20 +182,16 @@ if (health.status !== 'ok') {
|
|
|
182
182
|
|
|
183
183
|
## Wholesale + test lines
|
|
184
184
|
|
|
185
|
-
Wholesale partners mint their own billable shared lines and can
|
|
185
|
+
Wholesale partners mint their own billable shared lines and can park a line in a non-billable test state:
|
|
186
186
|
|
|
187
187
|
```ts
|
|
188
188
|
const line = await client.lines.mintShared() // POST /v1/lines/shared — a NEW billable line every call
|
|
189
|
-
await client.lines.convertToTest(
|
|
190
|
-
await client.lines.convertFromTest(
|
|
189
|
+
await client.lines.convertToTest(line.id) // stop billing — park as a test line
|
|
190
|
+
await client.lines.convertFromTest(line.id) // resume billing
|
|
191
191
|
```
|
|
192
192
|
|
|
193
193
|
`mintShared()` is wholesale-partner only in v1: a direct (non-wholesale) customer is rejected with `PaymentRequiredError` (402) and a scoped API key with `PermissionDeniedError` (403). Each call mints a distinct line — the SDK's auto `Idempotency-Key` only dedupes that one call's internal retries, so a caller-level retry must reuse the same `opts.idempotencyKey` to avoid minting twice.
|
|
194
194
|
|
|
195
|
-
A test line is **billed like a rental line**: it stays on your end-of-month invoice as the outbound product, on the same billing dates, so `convertToTest()` then `convertFromTest()` leaves your bill unchanged. Its `monthly_price` reads that price. `convertToTest()` refuses an inbound line (move it to outbound first) and a line with a pending cancellation (uncancel it first); end a test line with `client.lines.terminate(id)`.
|
|
196
|
-
|
|
197
|
-
`convertToTest()` and `convertFromTest()` are wholesale-partner only too, like `lines.assign()`: a direct account is rejected with `PaymentRequiredError` (402 `checkout_required`), and runs its trials on the global pool with `client.trial.init()`.
|
|
198
|
-
|
|
199
195
|
## Errors
|
|
200
196
|
|
|
201
197
|
All API errors extend `APIError` and carry `status`, `code`, `message`, `traceId`, `requestId`. Subclasses match the §6 contract codes:
|
|
@@ -726,7 +726,7 @@ export interface paths {
|
|
|
726
726
|
put?: never;
|
|
727
727
|
/**
|
|
728
728
|
* Atomically reserve + activate a line
|
|
729
|
-
* @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→activate
|
|
729
|
+
* @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). Every call takes one more line out of stock and makes it yours, so a retry MUST carry the same `Idempotency-Key` as the call it retries: the same key with the same body replays the first response instead of assigning a second line.
|
|
730
730
|
*/
|
|
731
731
|
post: {
|
|
732
732
|
parameters: {
|
|
@@ -777,15 +777,6 @@ export interface paths {
|
|
|
777
777
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
778
778
|
};
|
|
779
779
|
};
|
|
780
|
-
/** @description Payment required — no billing relationship entitles this call */
|
|
781
|
-
402: {
|
|
782
|
-
headers: {
|
|
783
|
-
[name: string]: unknown;
|
|
784
|
-
};
|
|
785
|
-
content: {
|
|
786
|
-
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
787
|
-
};
|
|
788
|
-
};
|
|
789
780
|
/** @description Forbidden — caller authenticated but not allowed */
|
|
790
781
|
403: {
|
|
791
782
|
headers: {
|
|
@@ -1216,7 +1207,7 @@ export interface paths {
|
|
|
1216
1207
|
put?: never;
|
|
1217
1208
|
/**
|
|
1218
1209
|
* Transfer a line to another iSnap user
|
|
1219
|
-
* @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.
|
|
1210
|
+
* @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.
|
|
1220
1211
|
*/
|
|
1221
1212
|
post: {
|
|
1222
1213
|
parameters: {
|
|
@@ -1330,7 +1321,7 @@ export interface paths {
|
|
|
1330
1321
|
put?: never;
|
|
1331
1322
|
/**
|
|
1332
1323
|
* Convert an owned rental line into a test line
|
|
1333
|
-
* @description Flip a
|
|
1324
|
+
* @description Flip a rental line you own into an owned test line that backs trials in your own pool (ownership → pool; test lines are free, so the deprecated monthly_price reads 0). Rejected on byod lines, lines you do not own, and lines carrying an active subscription.
|
|
1334
1325
|
*/
|
|
1335
1326
|
post: {
|
|
1336
1327
|
parameters: {
|
|
@@ -1376,15 +1367,6 @@ export interface paths {
|
|
|
1376
1367
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
1377
1368
|
};
|
|
1378
1369
|
};
|
|
1379
|
-
/** @description Payment required — no billing relationship entitles this call */
|
|
1380
|
-
402: {
|
|
1381
|
-
headers: {
|
|
1382
|
-
[name: string]: unknown;
|
|
1383
|
-
};
|
|
1384
|
-
content: {
|
|
1385
|
-
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
1386
|
-
};
|
|
1387
|
-
};
|
|
1388
1370
|
/** @description Forbidden — caller authenticated but not allowed */
|
|
1389
1371
|
403: {
|
|
1390
1372
|
headers: {
|
|
@@ -1449,7 +1431,7 @@ export interface paths {
|
|
|
1449
1431
|
put?: never;
|
|
1450
1432
|
/**
|
|
1451
1433
|
* Revert an owned test line back to a rental line
|
|
1452
|
-
* @description Symmetric to convert-to-test: flip an owned test line back to a rental line (ownership → rental
|
|
1434
|
+
* @description Symmetric to convert-to-test: flip an owned test line back to a rental line (ownership → rental; monthly_price reads the rental tier price again, derived — nothing is stored). Rejected while the test line still hosts live trials, since reverting would strand them.
|
|
1453
1435
|
*/
|
|
1454
1436
|
post: {
|
|
1455
1437
|
parameters: {
|
|
@@ -1495,15 +1477,6 @@ export interface paths {
|
|
|
1495
1477
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
1496
1478
|
};
|
|
1497
1479
|
};
|
|
1498
|
-
/** @description Payment required — no billing relationship entitles this call */
|
|
1499
|
-
402: {
|
|
1500
|
-
headers: {
|
|
1501
|
-
[name: string]: unknown;
|
|
1502
|
-
};
|
|
1503
|
-
content: {
|
|
1504
|
-
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
1505
|
-
};
|
|
1506
|
-
};
|
|
1507
1480
|
/** @description Forbidden — caller authenticated but not allowed */
|
|
1508
1481
|
403: {
|
|
1509
1482
|
headers: {
|
|
@@ -1768,7 +1741,7 @@ export interface paths {
|
|
|
1768
1741
|
put?: never;
|
|
1769
1742
|
/**
|
|
1770
1743
|
* Terminate a line you own
|
|
1771
|
-
* @description Permanently END an active line the caller owns — the self-serve counterpart to the admin terminate. Use this when your own customer cancels: `/release` only returns a *reserved* marketplace line to the shelf, while this ends a live `rental` line or a virtual `shared` line for good. The line flips to the terminal `cancelled` status and keeps its owner (who held it when it died is history, not a shelf return); queued messages fail with `carrier_terminated`, shared-fleet bindings are released (`binding.released`), device sessions are revoked, and `line.disconnected` fires with `reason: customer_initiated`. Billing stops in both shapes: a per-line Stripe subscription is cancelled immediately (not at period end), and a wholesale partner's end-of-month active-line count drops the line in the same breath. Dedicated hardware goes back to iSnap stock — the eSIM and Apple ID are recycled, never scrapped, because a customer ending a rental says nothing about whether the carrier plan is still good. **Idempotent**: terminating an already-terminated line returns 200 with the line unchanged and fires nothing a second time. Only an `active` or `suspended` line — the ones you are actually being billed for — is terminable: a merely `reserved` line is a 15-minute hold you give back with `/release`, and a `provisioning` pre-order line is cancelled through `/v1/pre-orders/{id}/cancel`. A BYOD line is terminable like any other: its device session is revoked, so the bridge or phone stops serving it, and it leaves the billable set; a direct customer's slot is freed for a new pairing.
|
|
1744
|
+
* @description Permanently END an active line the caller owns — the self-serve counterpart to the admin terminate. Use this when your own customer cancels: `/release` only returns a *reserved* marketplace line to the shelf, while this ends a live `rental` line or a virtual `shared` line for good. The line flips to the terminal `cancelled` status and keeps its owner (who held it when it died is history, not a shelf return); queued messages fail with `carrier_terminated`, shared-fleet bindings are released (`binding.released`), device sessions are revoked, and `line.disconnected` fires with `reason: customer_initiated`. Billing stops in both shapes: a per-line Stripe subscription is cancelled immediately (not at period end), and a wholesale partner's end-of-month active-line count drops the line in the same breath. Dedicated hardware goes back to iSnap stock — the eSIM and Apple ID are recycled, never scrapped, because a customer ending a rental says nothing about whether the carrier plan is still good. **Idempotent**: terminating an already-terminated line returns 200 with the line unchanged and fires nothing a second time. Only an `active` or `suspended` line — the ones you are actually being billed for — is terminable: a merely `reserved` line is a 15-minute hold you give back with `/release`, and a `provisioning` pre-order line is cancelled through `/v1/pre-orders/{id}/cancel`. A BYOD line is terminable like any other: its device session is revoked, so the bridge or phone stops serving it, and it leaves the billable set; a direct customer's slot is freed for a new pairing. Owned test lines are refused (403) until converted back with `/convert-from-test`.
|
|
1772
1745
|
*/
|
|
1773
1746
|
post: {
|
|
1774
1747
|
parameters: {
|
|
@@ -7720,15 +7693,15 @@ export interface components {
|
|
|
7720
7693
|
status: string;
|
|
7721
7694
|
/**
|
|
7722
7695
|
* @deprecated
|
|
7723
|
-
* @description Deprecated — derived from the line tier
|
|
7696
|
+
* @description Deprecated — derived from the line tier (0 for pool and owned test lines). The price a customer actually pays lives on the Stripe subscription (GET /v1/billing/subscriptions) or the pre-order amount. Removed at the next MAJOR.
|
|
7724
7697
|
*/
|
|
7725
7698
|
monthly_price: number;
|
|
7726
7699
|
stripe_subscription_id: string | null;
|
|
7727
7700
|
activated_at: string | null;
|
|
7728
7701
|
expires_at: string | null;
|
|
7729
|
-
/** @description The day you took this line, and therefore the day of the month it renews on: billed once per month at this instant, never prorated. Stamped when the line becomes yours
|
|
7702
|
+
/** @description The day you took this line, and therefore the day of the month it renews on: billed once per month at this instant, never prorated. Stamped when the line becomes yours; `null` means the line has no per-line anniversary — a direct customer's line renews on its Stripe subscription's own anchor, and a pool line is billed to nobody. Set it explicitly with POST /v1/lines/{id}/anniversary for a line you migrated from your own system, whose real start date iSnap cannot know. */
|
|
7730
7703
|
anniversary_at: string | null;
|
|
7731
|
-
/** @description The anniversary occurrence at which iSnap will END this line, set by POST /v1/lines/{id}/cancel and cleared by POST /v1/lines/{id}/uncancel. The line stays fully active and usable until this instant — the month is already paid for and is never prorated — and iSnap terminates it itself when the date arrives. `null` means the line is not cancelled. It survives the termination it schedules, so a `cancelled` line still says which date ended it.
|
|
7704
|
+
/** @description The anniversary occurrence at which iSnap will END this line, set by POST /v1/lines/{id}/cancel and cleared by POST /v1/lines/{id}/uncancel. The line stays fully active and usable until this instant — the month is already paid for and is never prorated — and iSnap terminates it itself when the date arrives. `null` means the line is not cancelled. It survives the termination it schedules, so a `cancelled` line still says which date ended it. */
|
|
7732
7705
|
cancel_at: string | null;
|
|
7733
7706
|
/** @description The billing anchor you stated for this line — the date the customer who pays for it is billed on. Every line that customer holds moves on this same date, so their period and your invoice advance together. `null` means you stated nothing, NOT that the line has no billing date: it then falls back to the activation instant, which is how every line was billed before anchors existed. Set it at provisioning (`POST /v1/pre-orders`, `POST /v1/lines/{id}/activate`) or change it later with `PATCH /v1/lines/{id}` — a change takes effect at the NEXT anchor and never rewrites a period already billed. */
|
|
7734
7707
|
billing_anchor_at: string | null;
|
|
@@ -7743,7 +7716,7 @@ export interface components {
|
|
|
7743
7716
|
metadata: {
|
|
7744
7717
|
[key: string]: unknown;
|
|
7745
7718
|
} | null;
|
|
7746
|
-
/** @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.
|
|
7719
|
+
/** @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. Test lines are free: monthly_price is 0, like every pool line. */
|
|
7747
7720
|
test_line: boolean;
|
|
7748
7721
|
/** @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. */
|
|
7749
7722
|
shared: boolean;
|
|
@@ -35,13 +35,6 @@ export declare class LinesResource extends BaseResource {
|
|
|
35
35
|
* `POST /v1/lines/assign` — atomically find an available line matching
|
|
36
36
|
* the requested billing tier (and optional area code), reserve it, and
|
|
37
37
|
* activate it on the calling account in a single round-trip.
|
|
38
|
-
*
|
|
39
|
-
* **Wholesale partners only**, `as_test_line` included: the line carries no
|
|
40
|
-
* per-line subscription and is billed on the end-of-month count. A direct
|
|
41
|
-
* (non-wholesale) account is rejected with `PaymentRequiredError` (402
|
|
42
|
-
* `checkout_required`) and nothing is reserved; it buys a line through
|
|
43
|
-
* `POST /v1/billing/checkout` and runs trials with `client.trial.init()`.
|
|
44
|
-
* A line-scoped API key is rejected first, with `PermissionDeniedError` (403).
|
|
45
38
|
*/
|
|
46
39
|
assign(body: AssignLineBody, opts?: RequestOptions): Promise<Line>;
|
|
47
40
|
/**
|
|
@@ -103,12 +96,10 @@ export declare class LinesResource extends BaseResource {
|
|
|
103
96
|
* A BYOD line is terminable like any other: its device session is revoked,
|
|
104
97
|
* so the bridge or phone stops serving it, and it leaves the billable set.
|
|
105
98
|
*
|
|
106
|
-
*
|
|
107
|
-
* (`
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* other pool line; `NotFoundError` (404) — a line that does not exist, or one
|
|
111
|
-
* you do not own (the same code for both, so nothing leaks).
|
|
99
|
+
* Refusals: `PermissionDeniedError` (403 `pool_line_not_terminable`) — an
|
|
100
|
+
* owned test line must go through `convertFromTest()` first; `NotFoundError`
|
|
101
|
+
* (404) — a line that does not exist, or one you do not own (the same code for
|
|
102
|
+
* both, so nothing leaks).
|
|
112
103
|
*
|
|
113
104
|
* `body` defaults to `{}` (not `undefined`) so the request always carries
|
|
114
105
|
* `Content-Type: application/json`; the route's body is optional and the
|
|
@@ -140,9 +131,8 @@ export declare class LinesResource extends BaseResource {
|
|
|
140
131
|
* now with `terminate()`. `ConflictError` (409
|
|
141
132
|
* `line_not_customer_cancellable`) — only an `active` or `suspended` line can
|
|
142
133
|
* be cancelled. `PermissionDeniedError` (403 `pool_line_not_cancellable`) — an
|
|
143
|
-
* owned test line
|
|
144
|
-
*
|
|
145
|
-
* shared and BYOD lines are all cancellable. `NotFoundError` (404) — a line that does not exist,
|
|
134
|
+
* owned test line has no per-line anniversary. Rental, shared and BYOD lines
|
|
135
|
+
* are all cancellable. `NotFoundError` (404) — a line that does not exist,
|
|
146
136
|
* or one you do not own (the same code for both, so nothing leaks).
|
|
147
137
|
*/
|
|
148
138
|
cancel(id: string, opts?: RequestOptions): Promise<Line>;
|
|
@@ -175,34 +165,20 @@ export declare class LinesResource extends BaseResource {
|
|
|
175
165
|
/**
|
|
176
166
|
* `POST /v1/lines/{id}/transfer-ownership` — reassign a line to a
|
|
177
167
|
* different end-user account without re-pairing the underlying device.
|
|
178
|
-
* A line with no subscription of its own (an owned test line, another pool
|
|
179
|
-
* line, a virtual shared line) can only go to a wholesale partner: any other
|
|
180
|
-
* recipient is a `ConflictError` (409 `line_recipient_not_wholesale`).
|
|
181
168
|
*/
|
|
182
169
|
transferOwnership(id: string, body: TransferOwnershipBody, opts?: RequestOptions): Promise<Line>;
|
|
183
170
|
/**
|
|
184
171
|
* `POST /v1/lines/{id}/convert-to-test` — convert a line into a test line.
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
* `terminate()`.
|
|
189
|
-
* Wholesale partners only: a direct account is rejected with
|
|
190
|
-
* `PaymentRequiredError` (402 `checkout_required`). Rejected with
|
|
191
|
-
* `ConflictError` (409) for byod lines, a line you do not own, a line with
|
|
192
|
-
* an active subscription, an inbound line (`test_line_not_inbound_only`:
|
|
193
|
-
* move it to outbound with `setVariant` first) and a line with a pending
|
|
194
|
-
* cancellation (`line_cancellation_pending`: `uncancel` first); a line the
|
|
195
|
-
* caller cannot see is a masked `NotFoundError` (404).
|
|
172
|
+
* Rejected with `ConflictError` (409) for byod lines, a line you do not own,
|
|
173
|
+
* or a line with an active subscription; a line the caller cannot see is a
|
|
174
|
+
* masked `NotFoundError` (404).
|
|
196
175
|
*/
|
|
197
176
|
convertToTest(id: string, opts?: RequestOptions): Promise<Line>;
|
|
198
177
|
/**
|
|
199
178
|
* `POST /v1/lines/{id}/convert-from-test` — convert a test line back to a
|
|
200
|
-
* normal line.
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
* `PaymentRequiredError` (402 `checkout_required`). Rejected with
|
|
204
|
-
* `ConflictError` (409) while the test line still hosts live trials; a line
|
|
205
|
-
* the caller cannot see is a masked `NotFoundError` (404).
|
|
179
|
+
* normal line. Rejected with `ConflictError` (409) while the test line still
|
|
180
|
+
* hosts live trials; a line the caller cannot see is a masked
|
|
181
|
+
* `NotFoundError` (404).
|
|
206
182
|
*/
|
|
207
183
|
convertFromTest(id: string, opts?: RequestOptions): Promise<Line>;
|
|
208
184
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../src/resources/lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAChD,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;AACxD,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAA;AACtD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAA;AAChE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAA;AACpE,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAA;AAC9E,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAA;AAC9D,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAA;AACxE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAA;AACtE,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAA;AAChF,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAA;AACxE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AACtE,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAA;AACpF,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAA;AAC5D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAA;AAClE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAA;AAE1E,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAC1F,MAAM,MAAM,cAAc,GAAG,WAAW,CACtC,KAAK,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAC5D,CAAA;AAED,qBAAa,aAAc,SAAQ,YAAY;IAC7C;;;;;OAKG;IACH,IAAI,CAAC,KAAK,GAAE,cAAmB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO1E,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD,qFAAqF;IACrF,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD
|
|
1
|
+
{"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../src/resources/lines.ts"],"names":[],"mappings":"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"}
|
package/dist/resources/lines.js
CHANGED
|
@@ -24,13 +24,6 @@ export class LinesResource extends BaseResource {
|
|
|
24
24
|
* `POST /v1/lines/assign` — atomically find an available line matching
|
|
25
25
|
* the requested billing tier (and optional area code), reserve it, and
|
|
26
26
|
* activate it on the calling account in a single round-trip.
|
|
27
|
-
*
|
|
28
|
-
* **Wholesale partners only**, `as_test_line` included: the line carries no
|
|
29
|
-
* per-line subscription and is billed on the end-of-month count. A direct
|
|
30
|
-
* (non-wholesale) account is rejected with `PaymentRequiredError` (402
|
|
31
|
-
* `checkout_required`) and nothing is reserved; it buys a line through
|
|
32
|
-
* `POST /v1/billing/checkout` and runs trials with `client.trial.init()`.
|
|
33
|
-
* A line-scoped API key is rejected first, with `PermissionDeniedError` (403).
|
|
34
27
|
*/
|
|
35
28
|
assign(body, opts) {
|
|
36
29
|
return this.client.request('POST', '/v1/lines/assign', body, opts);
|
|
@@ -102,12 +95,10 @@ export class LinesResource extends BaseResource {
|
|
|
102
95
|
* A BYOD line is terminable like any other: its device session is revoked,
|
|
103
96
|
* so the bridge or phone stops serving it, and it leaves the billable set.
|
|
104
97
|
*
|
|
105
|
-
*
|
|
106
|
-
* (`
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
* other pool line; `NotFoundError` (404) — a line that does not exist, or one
|
|
110
|
-
* you do not own (the same code for both, so nothing leaks).
|
|
98
|
+
* Refusals: `PermissionDeniedError` (403 `pool_line_not_terminable`) — an
|
|
99
|
+
* owned test line must go through `convertFromTest()` first; `NotFoundError`
|
|
100
|
+
* (404) — a line that does not exist, or one you do not own (the same code for
|
|
101
|
+
* both, so nothing leaks).
|
|
111
102
|
*
|
|
112
103
|
* `body` defaults to `{}` (not `undefined`) so the request always carries
|
|
113
104
|
* `Content-Type: application/json`; the route's body is optional and the
|
|
@@ -141,9 +132,8 @@ export class LinesResource extends BaseResource {
|
|
|
141
132
|
* now with `terminate()`. `ConflictError` (409
|
|
142
133
|
* `line_not_customer_cancellable`) — only an `active` or `suspended` line can
|
|
143
134
|
* be cancelled. `PermissionDeniedError` (403 `pool_line_not_cancellable`) — an
|
|
144
|
-
* owned test line
|
|
145
|
-
*
|
|
146
|
-
* shared and BYOD lines are all cancellable. `NotFoundError` (404) — a line that does not exist,
|
|
135
|
+
* owned test line has no per-line anniversary. Rental, shared and BYOD lines
|
|
136
|
+
* are all cancellable. `NotFoundError` (404) — a line that does not exist,
|
|
147
137
|
* or one you do not own (the same code for both, so nothing leaks).
|
|
148
138
|
*/
|
|
149
139
|
cancel(id, opts) {
|
|
@@ -182,38 +172,24 @@ export class LinesResource extends BaseResource {
|
|
|
182
172
|
/**
|
|
183
173
|
* `POST /v1/lines/{id}/transfer-ownership` — reassign a line to a
|
|
184
174
|
* different end-user account without re-pairing the underlying device.
|
|
185
|
-
* A line with no subscription of its own (an owned test line, another pool
|
|
186
|
-
* line, a virtual shared line) can only go to a wholesale partner: any other
|
|
187
|
-
* recipient is a `ConflictError` (409 `line_recipient_not_wholesale`).
|
|
188
175
|
*/
|
|
189
176
|
transferOwnership(id, body, opts) {
|
|
190
177
|
return this.client.request('POST', `/v1/lines/${encodeURIComponent(id)}/transfer-ownership`, body, opts);
|
|
191
178
|
}
|
|
192
179
|
/**
|
|
193
180
|
* `POST /v1/lines/{id}/convert-to-test` — convert a line into a test line.
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
* `terminate()`.
|
|
198
|
-
* Wholesale partners only: a direct account is rejected with
|
|
199
|
-
* `PaymentRequiredError` (402 `checkout_required`). Rejected with
|
|
200
|
-
* `ConflictError` (409) for byod lines, a line you do not own, a line with
|
|
201
|
-
* an active subscription, an inbound line (`test_line_not_inbound_only`:
|
|
202
|
-
* move it to outbound with `setVariant` first) and a line with a pending
|
|
203
|
-
* cancellation (`line_cancellation_pending`: `uncancel` first); a line the
|
|
204
|
-
* caller cannot see is a masked `NotFoundError` (404).
|
|
181
|
+
* Rejected with `ConflictError` (409) for byod lines, a line you do not own,
|
|
182
|
+
* or a line with an active subscription; a line the caller cannot see is a
|
|
183
|
+
* masked `NotFoundError` (404).
|
|
205
184
|
*/
|
|
206
185
|
convertToTest(id, opts) {
|
|
207
186
|
return this.client.request('POST', `/v1/lines/${encodeURIComponent(id)}/convert-to-test`, undefined, opts);
|
|
208
187
|
}
|
|
209
188
|
/**
|
|
210
189
|
* `POST /v1/lines/{id}/convert-from-test` — convert a test line back to a
|
|
211
|
-
* normal line.
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
* `PaymentRequiredError` (402 `checkout_required`). Rejected with
|
|
215
|
-
* `ConflictError` (409) while the test line still hosts live trials; a line
|
|
216
|
-
* the caller cannot see is a masked `NotFoundError` (404).
|
|
190
|
+
* normal line. Rejected with `ConflictError` (409) while the test line still
|
|
191
|
+
* hosts live trials; a line the caller cannot see is a masked
|
|
192
|
+
* `NotFoundError` (404).
|
|
217
193
|
*/
|
|
218
194
|
convertFromTest(id, opts) {
|
|
219
195
|
return this.client.request('POST', `/v1/lines/${encodeURIComponent(id)}/convert-from-test`, undefined, opts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../../src/resources/lines.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAwBxC,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC7C;;;;;OAKG;IACH,IAAI,CAAC,QAAwB,EAAE,EAAE,IAAqB;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAW,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE;YAClE,GAAG,IAAI;YACP,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;SACpC,CAAC,CAAA;IACJ,CAAC;IAED,uEAAuE;IACvE,QAAQ,CAAC,IAAqB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAU,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IAC7E,CAAC;IAED,qFAAqF;IACrF,GAAG,CAAC,EAAU,EAAE,IAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAO,KAAK,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACjG,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../../src/resources/lines.ts"],"names":[],"mappings":"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"}
|