@axivoy/api 1.49.0 → 1.61.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.
@@ -4678,7 +4678,7 @@ export interface paths {
4678
4678
  put?: never;
4679
4679
  /**
4680
4680
  * Driver live status
4681
- * @description For each driver: is the truck moving or stopped (from GPS) and what the driver's log says (Driving, On duty, Off duty, Sleeper, Yard move, Personal conveyance, ELD app offline), with drive, shift and week hours left, the clock left now and when he is ready again while resting, an active violation flag and any disagreement between truck and log. For a driver on a load with a Live ETA: road time, clock left at arrival and the margin against the next stop's appointment, and, where the tenant has split sleeper suggestions on and he is at risk of being late, whether a split sleeper would get him there on time (a suggestion; the driver decides when he rests). No coordinates.
4681
+ * @description For each driver: is the truck moving or stopped (from GPS) and what the driver's log says (Driving, On duty, Off duty, Sleeper, Yard move, Personal conveyance, ELD app offline), with drive, shift and week hours left, the clock left now and when he is ready again while resting, an active violation flag and any disagreement between truck and log. For a driver on a load with a Live ETA: road time, clock left at arrival and the margin against the next stop's appointment, and, where the tenant has split sleeper suggestions on and he is at risk of being late, whether a split sleeper would get him there on time (a suggestion; the driver decides when he rests). The trip outlook says whether he makes every stop left on the load, and which stop is projected late or out of his hours first; while a stop is late, the ways to make every stop: a longer rest until a suggested time (with the range that works), a full reset during a long wait at a stop, or, where the tenant has split sleeper suggestions on and his hours check out, a split sleeper across the trip with its steps (a suggestion; the driver decides when he rests). No coordinates.
4682
4682
  *
4683
4683
  * Kind: `read`. Errors use the envelope `{error: {code, reason, message, fields}}`.
4684
4684
  */
@@ -15887,6 +15887,50 @@ export interface paths {
15887
15887
  patch?: never;
15888
15888
  trace?: never;
15889
15889
  };
15890
+ "/ops/system.integrations.business_verification.get": {
15891
+ parameters: {
15892
+ query?: never;
15893
+ header?: never;
15894
+ path?: never;
15895
+ cookie?: never;
15896
+ };
15897
+ get?: never;
15898
+ put?: never;
15899
+ /**
15900
+ * Business verification
15901
+ * @description The legal business details phone carriers check before the company can text: status (draft, in review, verified, needs changes), legal name, business type, industry, website, address, the authorized contact, whether an EIN is on file, which filings use it, and the carrier's reason when it needs changes. Never returns the EIN.
15902
+ *
15903
+ * Kind: `read`. Errors use the envelope `{error: {code, reason, message, fields}}`.
15904
+ */
15905
+ post: operations["ops.system.integrations.business_verification.get"];
15906
+ delete?: never;
15907
+ options?: never;
15908
+ head?: never;
15909
+ patch?: never;
15910
+ trace?: never;
15911
+ };
15912
+ "/ops/system.integrations.communications.email_status.get": {
15913
+ parameters: {
15914
+ query?: never;
15915
+ header?: never;
15916
+ path?: never;
15917
+ cookie?: never;
15918
+ };
15919
+ get?: never;
15920
+ put?: never;
15921
+ /**
15922
+ * Email sending status
15923
+ * @description Whether Axivoy sends email for the company: available, on or off, the from address and whether it is the platform default, and whether delivery is live or held for review in test mode.
15924
+ *
15925
+ * Kind: `read`. Errors use the envelope `{error: {code, reason, message, fields}}`.
15926
+ */
15927
+ post: operations["ops.system.integrations.communications.email_status.get"];
15928
+ delete?: never;
15929
+ options?: never;
15930
+ head?: never;
15931
+ patch?: never;
15932
+ trace?: never;
15933
+ };
15890
15934
  "/ops/system.integrations.communications.inbound_messages.get": {
15891
15935
  parameters: {
15892
15936
  query?: never;
@@ -16107,6 +16151,28 @@ export interface paths {
16107
16151
  patch?: never;
16108
16152
  trace?: never;
16109
16153
  };
16154
+ "/ops/system.integrations.sms_registration.get": {
16155
+ parameters: {
16156
+ query?: never;
16157
+ header?: never;
16158
+ path?: never;
16159
+ cookie?: never;
16160
+ };
16161
+ get?: never;
16162
+ put?: never;
16163
+ /**
16164
+ * Texting registration status
16165
+ * @description The company's texting registration (A2P 10DLC): whether texting runs on a number Axivoy registered or one the company brought, the current status and each step, the sending number, when it was submitted and approved, and the carrier's reason when a step was rejected. Never returns the registration form (EIN, contact name, email or phone).
16166
+ *
16167
+ * Kind: `read`. Errors use the envelope `{error: {code, reason, message, fields}}`.
16168
+ */
16169
+ post: operations["ops.system.integrations.sms_registration.get"];
16170
+ delete?: never;
16171
+ options?: never;
16172
+ head?: never;
16173
+ patch?: never;
16174
+ trace?: never;
16175
+ };
16110
16176
  "/ops/system.settings.planned_mileage.list": {
16111
16177
  parameters: {
16112
16178
  query?: never;
@@ -17812,7 +17878,7 @@ export interface paths {
17812
17878
  put?: never;
17813
17879
  /**
17814
17880
  * Turn on calls for a phone number
17815
- * @description Sends calls for one of the company's phone numbers to Axivoy. A number at another provider is marked as needing manual setup.
17881
+ * @description Sends calls for one of the company's phone numbers to Axivoy. A number at another provider is marked as needing manual setup. A number whose calls go somewhere else today needs replace_elsewhere.
17816
17882
  *
17817
17883
  * Kind: `mutate`. Errors use the envelope `{error: {code, reason, message, fields}}`.
17818
17884
  */
@@ -17834,7 +17900,7 @@ export interface paths {
17834
17900
  put?: never;
17835
17901
  /**
17836
17902
  * Phone numbers
17837
- * @description The company's phone numbers for calls, with where each came from (texting number, rented, transferred in, added manually), its status and whether it is the main number callers see.
17903
+ * @description The company's phone numbers, with where each came from (texting number, rented, transferred in, added manually), its status, what happens to calls and texts to it, and whether it is the main number callers see.
17838
17904
  *
17839
17905
  * Kind: `read`. Errors use the envelope `{error: {code, reason, message, fields}}`.
17840
17906
  */
@@ -17878,7 +17944,7 @@ export interface paths {
17878
17944
  put?: never;
17879
17945
  /**
17880
17946
  * Set the main phone number
17881
- * @description Makes an active phone number the main number, the one people see when the company calls them from Axivoy.
17947
+ * @description Makes an active phone number the main number, the one people see when the company calls them from Axivoy. When its texts are on, new texts go from it too.
17882
17948
  *
17883
17949
  * Kind: `mutate`. Errors use the envelope `{error: {code, reason, message, fields}}`.
17884
17950
  */
@@ -17889,6 +17955,50 @@ export interface paths {
17889
17955
  patch?: never;
17890
17956
  trace?: never;
17891
17957
  };
17958
+ "/ops/voice.numbers.texting.disable": {
17959
+ parameters: {
17960
+ query?: never;
17961
+ header?: never;
17962
+ path?: never;
17963
+ cookie?: never;
17964
+ };
17965
+ get?: never;
17966
+ put?: never;
17967
+ /**
17968
+ * Turn off texting for a phone number
17969
+ * @description Stops texts going out from one of the company's phone numbers. Texts to it still reach the Inbox, and replies go from the main texting number. Refused for the main texting number; make another texting number main first.
17970
+ *
17971
+ * Kind: `mutate`. Errors use the envelope `{error: {code, reason, message, fields}}`.
17972
+ */
17973
+ post: operations["ops.voice.numbers.texting.disable"];
17974
+ delete?: never;
17975
+ options?: never;
17976
+ head?: never;
17977
+ patch?: never;
17978
+ trace?: never;
17979
+ };
17980
+ "/ops/voice.numbers.texting.enable": {
17981
+ parameters: {
17982
+ query?: never;
17983
+ header?: never;
17984
+ path?: never;
17985
+ cookie?: never;
17986
+ };
17987
+ get?: never;
17988
+ put?: never;
17989
+ /**
17990
+ * Turn on texting for a phone number
17991
+ * @description Lets one of the company's phone numbers send and receive texts under the company's approved texting registration. Refused while the registration is not active, when the number is in another calling account, or when the registration is at its number limit.
17992
+ *
17993
+ * Kind: `mutate`. Errors use the envelope `{error: {code, reason, message, fields}}`.
17994
+ */
17995
+ post: operations["ops.voice.numbers.texting.enable"];
17996
+ delete?: never;
17997
+ options?: never;
17998
+ head?: never;
17999
+ patch?: never;
18000
+ trace?: never;
18001
+ };
17892
18002
  "/ops/voice.port_in.cancel": {
17893
18003
  parameters: {
17894
18004
  query?: never;
@@ -18693,6 +18803,34 @@ export interface webhooks {
18693
18803
  patch?: never;
18694
18804
  trace?: never;
18695
18805
  };
18806
+ "driver_live_status.trip_at_risk_started": {
18807
+ parameters: {
18808
+ query?: never;
18809
+ header?: never;
18810
+ path?: never;
18811
+ cookie?: never;
18812
+ };
18813
+ get?: never;
18814
+ put?: never;
18815
+ /**
18816
+ * Trip at risk
18817
+ * @description A stop left on a driver's trip is projected late, or out of his hours, even with every rest it needs. An estimate from his ELD clocks and the route, not his hours.
18818
+ *
18819
+ * Version 1. Delivered at least once; dedupe by `id`.
18820
+ *
18821
+ * Read the current record with `drivers.live_status.list` using `fetch.input`.
18822
+ *
18823
+ * Subscriptions can filter on: `driver_user_id` (Driver), `load_id` (Load), `stop_id` (Stop), `minutes_late` (Minutes late).
18824
+ *
18825
+ * Verify `Axivoy-Signature` before trusting the body; answer 2xx within 10 seconds. Failed tries retry at 1 minute, 10 minutes, 1 hour, 6 hours and 16 hours; replay any delivery from the last 30 days with `webhooks.deliveries.replay`.
18826
+ */
18827
+ post: operations["events.driver_live_status.trip_at_risk_started"];
18828
+ delete?: never;
18829
+ options?: never;
18830
+ head?: never;
18831
+ patch?: never;
18832
+ trace?: never;
18833
+ };
18696
18834
  "fleet.acquisition.started": {
18697
18835
  parameters: {
18698
18836
  query?: never;
@@ -53000,6 +53138,8 @@ export interface operations {
53000
53138
  log?: "driving" | "on_duty" | "off_duty" | "sleeper" | "yard_move" | "personal_conveyance" | "waiting_time" | "disconnected" | null;
53001
53139
  /** @description Only drivers whose truck and log disagree. */
53002
53140
  mismatch_only?: boolean | null;
53141
+ /** @description Only drivers whose trip is at risk (trip_at_risk_since set; it stays set through 30 minutes of runs that are not, so a trip at the grace edge stays listed). */
53142
+ at_risk_only?: boolean | null;
53003
53143
  /** @description Cursor from the previous page's next_cursor. */
53004
53144
  cursor?: string | null;
53005
53145
  /** @description Rows per page (default 25). */
@@ -53199,9 +53339,25 @@ export interface operations {
53199
53339
  eta_at?: string | null;
53200
53340
  /** @description Road time to the stop. */
53201
53341
  road_seconds?: number | null;
53202
- /** @description Hours left at arrival; negative when he runs out first. */
53342
+ /**
53343
+ * Format: date-time
53344
+ * @description The arrival the margin is judged from. When drive, shift and week left at departure each cover road_seconds: the Live ETA while live, else departure (now, or ready_at while he rests) plus road time. Otherwise the earliest legal arrival with every reset, 34-hour restart and 30-minute break the road needs (an estimate, never his hours). Null without road time, while Stale or Off route, on site, or with no plan (unknown ruleset, or the week runs out with no restart).
53345
+ */
53346
+ projected_at?: string | null;
53347
+ /** @description The rests in projected_at, set only when it plans a reset or restart. Conservative: no split sleeper, no hours back after midnight, no exemptions. */
53348
+ rests_on_the_way?: {
53349
+ /** @description Full resets (10-hour property, 8-hour passenger) planned before the stop. */
53350
+ resets: number;
53351
+ /** @description 30-minute breaks planned before the stop. */
53352
+ breaks: number;
53353
+ /** @description A 34-hour restart is planned before the stop. */
53354
+ restart: boolean;
53355
+ /** @description The smallest of drive, shift and week left at arrival after those rests. */
53356
+ clock_left_after_rests_seconds: number;
53357
+ } | null;
53358
+ /** @description Hours left at arrival without a reset; negative when he runs out first. */
53203
53359
  clock_left_seconds?: number | null;
53204
- /** @description Stopped while his limiting clock still runs. */
53360
+ /** @description Stopped while his limiting clock still runs and he is not resting toward a ready time (clock_left_seconds then counts from after that rest and holds still). */
53205
53361
  clock_dropping: boolean;
53206
53362
  /** @description appointment, window or none. */
53207
53363
  appointment_kind: string;
@@ -53210,9 +53366,9 @@ export interface operations {
53210
53366
  * @description The instant the on-time rule judges against.
53211
53367
  */
53212
53368
  expected_at?: string | null;
53213
- /** @description Projected arrival minus expected_at in minutes; negative is early. */
53369
+ /** @description projected_at minus expected_at in minutes; negative is early. */
53214
53370
  minutes_vs_appointment?: number | null;
53215
- /** @description early, on_time or late; null without an appointment or a trustworthy arrival. */
53371
+ /** @description early, on_time or late, judged from projected_at; null without an appointment or a projected_at. */
53216
53372
  on_time?: string | null;
53217
53373
  /** @description Split sleeper suggestion, set only when the tenant setting is on and he is at risk of being late. A suggestion to talk through with the driver; he decides when he rests. */
53218
53374
  split_plan?: {
@@ -53243,7 +53399,7 @@ export interface operations {
53243
53399
  rest_after_stop_minutes?: number | null;
53244
53400
  /**
53245
53401
  * Format: date-time
53246
- * @description Arrival without a split (with a full reset where his clock ends).
53402
+ * @description Arrival without a split: projected_at, with every rest the road needs.
53247
53403
  */
53248
53404
  full_reset_arrives_at?: string | null;
53249
53405
  /** @description no_plan (no split arrives on time) or hours_not_confirmed (Axivoy's replay of his hours does not match the ELD's, or has not checked the latest snapshot). */
@@ -53253,6 +53409,147 @@ export interface operations {
53253
53409
  /** @description Axivoy minus the ELD for that figure. */
53254
53410
  unconfirmed_difference_seconds?: number | null;
53255
53411
  } | null;
53412
+ /**
53413
+ * Format: date-time
53414
+ * @description On site: when he arrived at the stop. Null otherwise, or before the stop records an arrival.
53415
+ */
53416
+ arrived_at?: string | null;
53417
+ /** @description On site: arrived_at minus expected_at in minutes, judged by the on-time rule with the tenant grace; negative is early. Null without an appointment or arrived_at. */
53418
+ arrived_minutes_vs_appointment?: number | null;
53419
+ } | null;
53420
+ /** @description Does he make every stop left on this trip? Set for a driver with live clocks and a Live ETA on an in-progress load, while the outlook is for that load and next stop. An estimate from his ELD clocks and the route, not his hours: 2 hours at each stop, rests as soon as his hours run out. */
53421
+ trip_outlook?: {
53422
+ /**
53423
+ * Format: date-time
53424
+ * @description The projector run that last changed it.
53425
+ */
53426
+ as_of: string;
53427
+ /** @description on_track, late (a stop is projected late with every rest it needs), no_plan (a stop is beyond his hours: unknown ruleset, or the week runs out with no restart) or unknown (a leg has no routed miles before any late stop). */
53428
+ verdict: string;
53429
+ /** @description A co-driver is on the load: walked with no rests, so a stop is late only if it is late even then. */
53430
+ team: boolean;
53431
+ /**
53432
+ * Format: date-time
53433
+ * @description When the trip turned late or no plan; clears after 30 minutes of runs that are not.
53434
+ */
53435
+ at_risk_since?: string | null;
53436
+ /** @description Every stop left, the next stop first. */
53437
+ stops: {
53438
+ /** @description The stop. */
53439
+ stop_id: number;
53440
+ /** @description Its number on the load page. */
53441
+ position?: number | null;
53442
+ /** @description How many stops the load page numbers. */
53443
+ of?: number | null;
53444
+ /** @description pickup, delivery or waypoint. */
53445
+ type?: string | null;
53446
+ /** @description The stop's company name, at most 40 characters. */
53447
+ name?: string | null;
53448
+ /**
53449
+ * Format: date-time
53450
+ * @description The instant the on-time rule judges against.
53451
+ */
53452
+ expected_at?: string | null;
53453
+ /**
53454
+ * Format: date-time
53455
+ * @description Projected arrival with every rest it needs; on site, when he arrived. Null beyond his hours or after a leg without routed miles.
53456
+ */
53457
+ arrives_at?: string | null;
53458
+ /** @description arrives_at minus expected_at in minutes; negative is early. */
53459
+ minutes_vs_appointment?: number | null;
53460
+ /** @description early, on_time or late, with the tenant grace; null without an appointment or an arrival. */
53461
+ on_time?: string | null;
53462
+ /** @description Full resets planned on the leg to this stop. */
53463
+ resets_before: number;
53464
+ /** @description A 34-hour restart is planned on the leg to this stop. */
53465
+ restart_before: boolean;
53466
+ /** @description The smallest of drive, shift and week left at arrival; null on a team load or without hours. */
53467
+ clock_left_seconds?: number | null;
53468
+ /** @description His hours run out before this stop with no plan. */
53469
+ beyond_hours: boolean;
53470
+ /** @description The leg to this stop (or one before it) has no routed miles, so it is not timed. */
53471
+ no_routed_miles: boolean;
53472
+ }[];
53473
+ /** @description Set while the verdict is late: the ways to make every stop, best first (the larger smallest margin, then fewer added rest hours), at most one per kind, a split last; empty when no single change does; null until searched. A split only while the tenant has split sleeper suggestions on and Axivoy's replay of his hours matches the ELD. A suggestion to talk through with the driver; he decides when he rests. */
53474
+ ways?: {
53475
+ /** @description longer_rest (hold one full reset or 34-hour restart until rest_until), rest_at_stop (log the wait for stop_id's scheduled start Off duty or Sleeper, a full reset) or split (a split sleeper pair across the trip, in steps). */
53476
+ kind: string;
53477
+ /** @description reset or restart: the rest held longer; reset for rest_at_stop; split for split. */
53478
+ rest_kind: string;
53479
+ /** @description longer_rest: the rest held is the one he is in now. split: the first period is the rest he is in now, held longer. */
53480
+ resting_now: boolean;
53481
+ /** @description longer_rest: the first stop after the rest held. rest_at_stop: the stop he waits at. split: the stop at or before which the first period falls. */
53482
+ stop_id: number;
53483
+ /**
53484
+ * Format: date-time
53485
+ * @description When the rest starts (null when he is resting now and the ledger has no start). split: when the first period starts.
53486
+ */
53487
+ rest_starts_at?: string | null;
53488
+ /**
53489
+ * Format: date-time
53490
+ * @description longer_rest: when the rest would end without the change. Null for rest_at_stop and split.
53491
+ */
53492
+ rest_planned_until?: string | null;
53493
+ /**
53494
+ * Format: date-time
53495
+ * @description longer_rest: the suggested end, the middle of the range that works, on 15 minutes. rest_at_stop: when the stop's work starts. split: when the second period ends.
53496
+ */
53497
+ rest_until: string;
53498
+ /**
53499
+ * Format: date-time
53500
+ * @description longer_rest: the earliest end that makes every stop. Null for rest_at_stop and split.
53501
+ */
53502
+ rest_until_earliest?: string | null;
53503
+ /**
53504
+ * Format: date-time
53505
+ * @description longer_rest: the latest end that makes every stop. Null for rest_at_stop and split.
53506
+ */
53507
+ rest_until_latest?: string | null;
53508
+ /** @description The stops the change moves, in route order. */
53509
+ arrivals: {
53510
+ /** @description The stop. */
53511
+ stop_id: number;
53512
+ /**
53513
+ * Format: date-time
53514
+ * @description Projected arrival with the change.
53515
+ */
53516
+ arrives_at: string;
53517
+ /** @description arrives_at minus expected_at in minutes; negative is early. */
53518
+ minutes_vs_appointment?: number | null;
53519
+ }[];
53520
+ /** @description The smallest of drive, shift and week left at the last stop with the change. */
53521
+ clock_left_at_last_stop_seconds?: number | null;
53522
+ /** @description split: the plan in order, through the end of the second period. Null for the other kinds. */
53523
+ steps?: {
53524
+ /** @description reset or restart (the full rest the split starts after), drive, or rest (a 30-minute break or a period of the pair). */
53525
+ kind: string;
53526
+ /** @description For a rest: sleeper or off_duty. */
53527
+ status?: string | null;
53528
+ /**
53529
+ * Format: date-time
53530
+ * @description When the step starts.
53531
+ */
53532
+ starts_at: string;
53533
+ /** @description Length in minutes. */
53534
+ minutes: number;
53535
+ /** @description A drive: the stop it reaches. A period at a stop: that stop. */
53536
+ stop_id?: number | null;
53537
+ /** @description For a rest: road, wait (the sleeper in the wait for the stop's scheduled start) or after_work (after the stop's work). */
53538
+ place?: string | null;
53539
+ }[] | null;
53540
+ /** @description split with one new period: the qualifying rest he already took that it pairs with. Null otherwise. */
53541
+ pairs_with?: {
53542
+ /** @description Length in minutes. */
53543
+ minutes: number;
53544
+ /**
53545
+ * Format: date-time
53546
+ * @description When it started.
53547
+ */
53548
+ started_at: string;
53549
+ /** @description It was in the sleeper (else off duty). */
53550
+ sleeper: boolean;
53551
+ } | null;
53552
+ }[] | null;
53256
53553
  } | null;
53257
53554
  /** @description True on a tombstone (the row was deleted or recycled); other fields are absent. */
53258
53555
  deleted?: boolean | null;
@@ -136515,6 +136812,294 @@ export interface operations {
136515
136812
  };
136516
136813
  };
136517
136814
  };
136815
+ "ops.system.integrations.business_verification.get": {
136816
+ parameters: {
136817
+ query?: never;
136818
+ header?: {
136819
+ /** @description Replays the first result when the same call is retried. Send one per user intent on writes. */
136820
+ "Idempotency-Key"?: string;
136821
+ /** @description Send `true` to run every check without changing anything. The answer is `{"dry_run": {"outcome": "would_run" | "would_propose", "input": {...}}}`. */
136822
+ "Axivoy-Dry-Run"?: "true" | "false";
136823
+ };
136824
+ path?: never;
136825
+ cookie?: never;
136826
+ };
136827
+ requestBody?: {
136828
+ content: {
136829
+ /** @example {} */
136830
+ "application/json": Record<string, never>;
136831
+ };
136832
+ };
136833
+ responses: {
136834
+ /** @description The operation ran. */
136835
+ 200: {
136836
+ headers: {
136837
+ [name: string]: unknown;
136838
+ };
136839
+ content: {
136840
+ /**
136841
+ * @example {
136842
+ * "result": {
136843
+ * "status": "submitted",
136844
+ * "status_label": "In review",
136845
+ * "legal_name": "Acme Trucking LLC",
136846
+ * "business_type": "Limited liability company (LLC)",
136847
+ * "industry": "Transportation and logistics",
136848
+ * "website": "https://acme.example",
136849
+ * "address": "123 Main St, Dallas, TX 75201, US",
136850
+ * "ein_on_file": true,
136851
+ * "adopted": false,
136852
+ * "used_by": [
136853
+ * {
136854
+ * "key": "texting_registration",
136855
+ * "label": "Texting registration"
136856
+ * }
136857
+ * ],
136858
+ * "submitted_at": "2026-10-24T07:05:06Z",
136859
+ * "approved_at": null,
136860
+ * "contact_name": "Sam Rep",
136861
+ * "contact_title": "Owner",
136862
+ * "contact_email": "ops@acme.example",
136863
+ * "contact_phone": "+15551234567",
136864
+ * "rejection_reason": null
136865
+ * }
136866
+ * }
136867
+ */
136868
+ "application/json": {
136869
+ result: {
136870
+ /** @description not_started, draft, submitted (in review), approved (verified) or rejected (needs changes) */
136871
+ status: string;
136872
+ /** @description The status in the operator's words */
136873
+ status_label: string;
136874
+ /** @description Legal business name as registered */
136875
+ legal_name?: string | null;
136876
+ /** @description Business type, in words */
136877
+ business_type?: string | null;
136878
+ /** @description Industry, in words */
136879
+ industry?: string | null;
136880
+ /** @description Public website */
136881
+ website?: string | null;
136882
+ /** @description Registered business address on one line */
136883
+ address?: string | null;
136884
+ /** @description Whether an EIN is stored (the EIN itself is never returned) */
136885
+ ein_on_file: boolean;
136886
+ /** @description Whether it was verified before Axivoy and confirmed by Axivoy */
136887
+ adopted: boolean;
136888
+ /** @description Filings that rely on this verification */
136889
+ used_by: {
136890
+ /** @description Filing key, e.g. texting_registration */
136891
+ key: string;
136892
+ /** @description Filing name */
136893
+ label: string;
136894
+ }[];
136895
+ /**
136896
+ * Format: date-time
136897
+ * @description When it was sent to carriers
136898
+ */
136899
+ submitted_at?: string | null;
136900
+ /**
136901
+ * Format: date-time
136902
+ * @description When carriers verified it
136903
+ */
136904
+ approved_at?: string | null;
136905
+ /** @description Authorized contact name */
136906
+ contact_name?: string | null;
136907
+ /** @description Authorized contact title */
136908
+ contact_title?: string | null;
136909
+ /** @description Authorized contact email */
136910
+ contact_email?: string | null;
136911
+ /** @description Authorized contact phone (E.164) */
136912
+ contact_phone?: string | null;
136913
+ /** @description The carrier's reason when it needs changes */
136914
+ rejection_reason?: string | null;
136915
+ };
136916
+ };
136917
+ };
136918
+ };
136919
+ 202: components["responses"]["Proposal"];
136920
+ /** @description Refused: credits_exhausted. */
136921
+ 402: {
136922
+ headers: {
136923
+ [name: string]: unknown;
136924
+ };
136925
+ content: {
136926
+ "application/json": components["schemas"]["OperationError"];
136927
+ };
136928
+ };
136929
+ /** @description Refused: not_permitted, not_available, authority_off, data_class_blocked. */
136930
+ 403: {
136931
+ headers: {
136932
+ [name: string]: unknown;
136933
+ };
136934
+ content: {
136935
+ "application/json": components["schemas"]["OperationError"];
136936
+ };
136937
+ };
136938
+ /** @description Refused: not_found. */
136939
+ 404: {
136940
+ headers: {
136941
+ [name: string]: unknown;
136942
+ };
136943
+ content: {
136944
+ "application/json": components["schemas"]["OperationError"];
136945
+ };
136946
+ };
136947
+ /** @description Refused: idempotency_conflict, stale_state. */
136948
+ 409: {
136949
+ headers: {
136950
+ [name: string]: unknown;
136951
+ };
136952
+ content: {
136953
+ "application/json": components["schemas"]["OperationError"];
136954
+ };
136955
+ };
136956
+ /** @description Refused: operation_retired. */
136957
+ 410: {
136958
+ headers: {
136959
+ [name: string]: unknown;
136960
+ };
136961
+ content: {
136962
+ "application/json": components["schemas"]["OperationError"];
136963
+ };
136964
+ };
136965
+ /** @description Refused: invalid_input, domain_rule. */
136966
+ 422: {
136967
+ headers: {
136968
+ [name: string]: unknown;
136969
+ };
136970
+ content: {
136971
+ "application/json": components["schemas"]["OperationError"];
136972
+ };
136973
+ };
136974
+ /** @description Refused: rate_limited. */
136975
+ 429: {
136976
+ headers: {
136977
+ [name: string]: unknown;
136978
+ };
136979
+ content: {
136980
+ "application/json": components["schemas"]["OperationError"];
136981
+ };
136982
+ };
136983
+ };
136984
+ };
136985
+ "ops.system.integrations.communications.email_status.get": {
136986
+ parameters: {
136987
+ query?: never;
136988
+ header?: {
136989
+ /** @description Replays the first result when the same call is retried. Send one per user intent on writes. */
136990
+ "Idempotency-Key"?: string;
136991
+ /** @description Send `true` to run every check without changing anything. The answer is `{"dry_run": {"outcome": "would_run" | "would_propose", "input": {...}}}`. */
136992
+ "Axivoy-Dry-Run"?: "true" | "false";
136993
+ };
136994
+ path?: never;
136995
+ cookie?: never;
136996
+ };
136997
+ requestBody?: {
136998
+ content: {
136999
+ /** @example {} */
137000
+ "application/json": Record<string, never>;
137001
+ };
137002
+ };
137003
+ responses: {
137004
+ /** @description The operation ran. */
137005
+ 200: {
137006
+ headers: {
137007
+ [name: string]: unknown;
137008
+ };
137009
+ content: {
137010
+ /**
137011
+ * @example {
137012
+ * "result": {
137013
+ * "available": true,
137014
+ * "active": false,
137015
+ * "from_email": "hello@axivoy.test",
137016
+ * "from_is_platform_default": true,
137017
+ * "delivery_mode": "sandbox"
137018
+ * }
137019
+ * }
137020
+ */
137021
+ "application/json": {
137022
+ result: {
137023
+ /** @description Whether the platform can send email for companies */
137024
+ available: boolean;
137025
+ /** @description Whether Axivoy sends email for this company */
137026
+ active: boolean;
137027
+ /** @description The address emails come from */
137028
+ from_email?: string | null;
137029
+ /** @description Whether that address is Axivoy's default rather than the company's own domain */
137030
+ from_is_platform_default: boolean;
137031
+ /** @description live (emails go out) or sandbox (test mode: held for review in the Message log) */
137032
+ delivery_mode: string;
137033
+ };
137034
+ };
137035
+ };
137036
+ };
137037
+ 202: components["responses"]["Proposal"];
137038
+ /** @description Refused: credits_exhausted. */
137039
+ 402: {
137040
+ headers: {
137041
+ [name: string]: unknown;
137042
+ };
137043
+ content: {
137044
+ "application/json": components["schemas"]["OperationError"];
137045
+ };
137046
+ };
137047
+ /** @description Refused: not_permitted, not_available, authority_off, data_class_blocked. */
137048
+ 403: {
137049
+ headers: {
137050
+ [name: string]: unknown;
137051
+ };
137052
+ content: {
137053
+ "application/json": components["schemas"]["OperationError"];
137054
+ };
137055
+ };
137056
+ /** @description Refused: not_found. */
137057
+ 404: {
137058
+ headers: {
137059
+ [name: string]: unknown;
137060
+ };
137061
+ content: {
137062
+ "application/json": components["schemas"]["OperationError"];
137063
+ };
137064
+ };
137065
+ /** @description Refused: idempotency_conflict, stale_state. */
137066
+ 409: {
137067
+ headers: {
137068
+ [name: string]: unknown;
137069
+ };
137070
+ content: {
137071
+ "application/json": components["schemas"]["OperationError"];
137072
+ };
137073
+ };
137074
+ /** @description Refused: operation_retired. */
137075
+ 410: {
137076
+ headers: {
137077
+ [name: string]: unknown;
137078
+ };
137079
+ content: {
137080
+ "application/json": components["schemas"]["OperationError"];
137081
+ };
137082
+ };
137083
+ /** @description Refused: invalid_input, domain_rule. */
137084
+ 422: {
137085
+ headers: {
137086
+ [name: string]: unknown;
137087
+ };
137088
+ content: {
137089
+ "application/json": components["schemas"]["OperationError"];
137090
+ };
137091
+ };
137092
+ /** @description Refused: rate_limited. */
137093
+ 429: {
137094
+ headers: {
137095
+ [name: string]: unknown;
137096
+ };
137097
+ content: {
137098
+ "application/json": components["schemas"]["OperationError"];
137099
+ };
137100
+ };
137101
+ };
137102
+ };
136518
137103
  "ops.system.integrations.communications.inbound_messages.get": {
136519
137104
  parameters: {
136520
137105
  query?: never;
@@ -140058,6 +140643,190 @@ export interface operations {
140058
140643
  };
140059
140644
  };
140060
140645
  };
140646
+ "ops.system.integrations.sms_registration.get": {
140647
+ parameters: {
140648
+ query?: never;
140649
+ header?: {
140650
+ /** @description Replays the first result when the same call is retried. Send one per user intent on writes. */
140651
+ "Idempotency-Key"?: string;
140652
+ /** @description Send `true` to run every check without changing anything. The answer is `{"dry_run": {"outcome": "would_run" | "would_propose", "input": {...}}}`. */
140653
+ "Axivoy-Dry-Run"?: "true" | "false";
140654
+ };
140655
+ path?: never;
140656
+ cookie?: never;
140657
+ };
140658
+ requestBody?: {
140659
+ content: {
140660
+ /** @example {} */
140661
+ "application/json": Record<string, never>;
140662
+ };
140663
+ };
140664
+ responses: {
140665
+ /** @description The operation ran. */
140666
+ 200: {
140667
+ headers: {
140668
+ [name: string]: unknown;
140669
+ };
140670
+ content: {
140671
+ /**
140672
+ * @example {
140673
+ * "result": {
140674
+ * "registered": true,
140675
+ * "mode": "automated",
140676
+ * "status": "brand_pending",
140677
+ * "status_label": "Brand review pending",
140678
+ * "sending_number": null,
140679
+ * "submitted_at": "2026-10-24T07:05:06Z",
140680
+ * "approved_at": null,
140681
+ * "rejection_reason": null,
140682
+ * "steps": [
140683
+ * {
140684
+ * "key": "draft",
140685
+ * "label": "Draft",
140686
+ * "state": "done"
140687
+ * },
140688
+ * {
140689
+ * "key": "profile_submitted",
140690
+ * "label": "Business profile submitted",
140691
+ * "state": "done"
140692
+ * },
140693
+ * {
140694
+ * "key": "brand_pending",
140695
+ * "label": "Brand review pending",
140696
+ * "state": "current"
140697
+ * },
140698
+ * {
140699
+ * "key": "brand_approved",
140700
+ * "label": "Brand approved",
140701
+ * "state": "pending"
140702
+ * },
140703
+ * {
140704
+ * "key": "campaign_pending",
140705
+ * "label": "Campaign review pending",
140706
+ * "state": "pending"
140707
+ * },
140708
+ * {
140709
+ * "key": "campaign_verified",
140710
+ * "label": "Campaign verified",
140711
+ * "state": "pending"
140712
+ * },
140713
+ * {
140714
+ * "key": "number_active",
140715
+ * "label": "Number provisioned",
140716
+ * "state": "pending"
140717
+ * },
140718
+ * {
140719
+ * "key": "active",
140720
+ * "label": "Active",
140721
+ * "state": "pending"
140722
+ * }
140723
+ * ]
140724
+ * }
140725
+ * }
140726
+ */
140727
+ "application/json": {
140728
+ result: {
140729
+ /** @description Whether a registration exists (in progress or approved) */
140730
+ registered: boolean;
140731
+ /** @description automated (Axivoy registered it) or external (the company brought a registered number) */
140732
+ mode?: string | null;
140733
+ /** @description Registration status key */
140734
+ status?: string | null;
140735
+ /** @description The status in the operator's words */
140736
+ status_label?: string | null;
140737
+ /** @description The number texts are sent from (E.164) */
140738
+ sending_number?: string | null;
140739
+ /**
140740
+ * Format: date-time
140741
+ * @description When it was sent to carriers
140742
+ */
140743
+ submitted_at?: string | null;
140744
+ /**
140745
+ * Format: date-time
140746
+ * @description When carriers approved it
140747
+ */
140748
+ approved_at?: string | null;
140749
+ /** @description The carrier's reason when a step was rejected */
140750
+ rejection_reason?: string | null;
140751
+ /** @description Each registration step in order */
140752
+ steps: {
140753
+ /** @description Step key */
140754
+ key: string;
140755
+ /** @description Step name */
140756
+ label: string;
140757
+ /** @description done, current, failed or pending */
140758
+ state: string;
140759
+ }[];
140760
+ };
140761
+ };
140762
+ };
140763
+ };
140764
+ 202: components["responses"]["Proposal"];
140765
+ /** @description Refused: credits_exhausted. */
140766
+ 402: {
140767
+ headers: {
140768
+ [name: string]: unknown;
140769
+ };
140770
+ content: {
140771
+ "application/json": components["schemas"]["OperationError"];
140772
+ };
140773
+ };
140774
+ /** @description Refused: not_permitted, not_available, authority_off, data_class_blocked. */
140775
+ 403: {
140776
+ headers: {
140777
+ [name: string]: unknown;
140778
+ };
140779
+ content: {
140780
+ "application/json": components["schemas"]["OperationError"];
140781
+ };
140782
+ };
140783
+ /** @description Refused: not_found. */
140784
+ 404: {
140785
+ headers: {
140786
+ [name: string]: unknown;
140787
+ };
140788
+ content: {
140789
+ "application/json": components["schemas"]["OperationError"];
140790
+ };
140791
+ };
140792
+ /** @description Refused: idempotency_conflict, stale_state. */
140793
+ 409: {
140794
+ headers: {
140795
+ [name: string]: unknown;
140796
+ };
140797
+ content: {
140798
+ "application/json": components["schemas"]["OperationError"];
140799
+ };
140800
+ };
140801
+ /** @description Refused: operation_retired. */
140802
+ 410: {
140803
+ headers: {
140804
+ [name: string]: unknown;
140805
+ };
140806
+ content: {
140807
+ "application/json": components["schemas"]["OperationError"];
140808
+ };
140809
+ };
140810
+ /** @description Refused: invalid_input, domain_rule. */
140811
+ 422: {
140812
+ headers: {
140813
+ [name: string]: unknown;
140814
+ };
140815
+ content: {
140816
+ "application/json": components["schemas"]["OperationError"];
140817
+ };
140818
+ };
140819
+ /** @description Refused: rate_limited. */
140820
+ 429: {
140821
+ headers: {
140822
+ [name: string]: unknown;
140823
+ };
140824
+ content: {
140825
+ "application/json": components["schemas"]["OperationError"];
140826
+ };
140827
+ };
140828
+ };
140829
+ };
140061
140830
  "ops.system.settings.planned_mileage.list": {
140062
140831
  parameters: {
140063
140832
  query?: never;
@@ -149152,6 +149921,8 @@ export interface operations {
149152
149921
  * @enum {string|null}
149153
149922
  */
149154
149923
  direction?: "incoming" | "outgoing" | "missed" | null;
149924
+ /** @description True: only incoming calls where the caller left a voicemail. Combines with direction, so outgoing returns nothing. */
149925
+ voicemail?: boolean | null;
149155
149926
  /** @description Only calls handled by this person. */
149156
149927
  handled_by_user_id?: number | null;
149157
149928
  /**
@@ -151098,7 +151869,312 @@ export interface operations {
151098
151869
  };
151099
151870
  };
151100
151871
  };
151101
- "ops.voice.menus.duplicate_builtin": {
151872
+ "ops.voice.menus.duplicate_builtin": {
151873
+ parameters: {
151874
+ query?: never;
151875
+ header?: {
151876
+ /** @description Replays the first result when the same call is retried. Send one per user intent on writes. */
151877
+ "Idempotency-Key"?: string;
151878
+ /** @description Send `true` to run every check without changing anything. The answer is `{"dry_run": {"outcome": "would_run" | "would_propose", "input": {...}}}`. */
151879
+ "Axivoy-Dry-Run"?: "true" | "false";
151880
+ };
151881
+ path?: never;
151882
+ cookie?: never;
151883
+ };
151884
+ requestBody?: {
151885
+ content: {
151886
+ /**
151887
+ * @example {
151888
+ * "name": "Main line (custom)"
151889
+ * }
151890
+ */
151891
+ "application/json": {
151892
+ /** @description Name for the copy; empty uses "Axivoy carrier main line (copy)" */
151893
+ name?: string | null;
151894
+ };
151895
+ };
151896
+ };
151897
+ responses: {
151898
+ /** @description The operation ran. */
151899
+ 200: {
151900
+ headers: {
151901
+ [name: string]: unknown;
151902
+ };
151903
+ content: {
151904
+ /**
151905
+ * @example {
151906
+ * "result": {
151907
+ * "menu_id": 2,
151908
+ * "fingerprint": "1"
151909
+ * }
151910
+ * }
151911
+ */
151912
+ "application/json": {
151913
+ result: {
151914
+ /** @description The new phone menu draft */
151915
+ menu_id: number;
151916
+ /** @description Pass this to the first change of the draft */
151917
+ fingerprint: string;
151918
+ };
151919
+ };
151920
+ };
151921
+ };
151922
+ 202: components["responses"]["Proposal"];
151923
+ /** @description Refused: credits_exhausted. */
151924
+ 402: {
151925
+ headers: {
151926
+ [name: string]: unknown;
151927
+ };
151928
+ content: {
151929
+ "application/json": components["schemas"]["OperationError"];
151930
+ };
151931
+ };
151932
+ /** @description Refused: not_permitted, not_available, authority_off, data_class_blocked. */
151933
+ 403: {
151934
+ headers: {
151935
+ [name: string]: unknown;
151936
+ };
151937
+ content: {
151938
+ "application/json": components["schemas"]["OperationError"];
151939
+ };
151940
+ };
151941
+ /** @description Refused: not_found. */
151942
+ 404: {
151943
+ headers: {
151944
+ [name: string]: unknown;
151945
+ };
151946
+ content: {
151947
+ "application/json": components["schemas"]["OperationError"];
151948
+ };
151949
+ };
151950
+ /** @description Refused: idempotency_conflict, stale_state. */
151951
+ 409: {
151952
+ headers: {
151953
+ [name: string]: unknown;
151954
+ };
151955
+ content: {
151956
+ "application/json": components["schemas"]["OperationError"];
151957
+ };
151958
+ };
151959
+ /** @description Refused: operation_retired. */
151960
+ 410: {
151961
+ headers: {
151962
+ [name: string]: unknown;
151963
+ };
151964
+ content: {
151965
+ "application/json": components["schemas"]["OperationError"];
151966
+ };
151967
+ };
151968
+ /** @description Refused: invalid_input, domain_rule. */
151969
+ 422: {
151970
+ headers: {
151971
+ [name: string]: unknown;
151972
+ };
151973
+ content: {
151974
+ "application/json": components["schemas"]["OperationError"];
151975
+ };
151976
+ };
151977
+ /** @description Refused: rate_limited. */
151978
+ 429: {
151979
+ headers: {
151980
+ [name: string]: unknown;
151981
+ };
151982
+ content: {
151983
+ "application/json": components["schemas"]["OperationError"];
151984
+ };
151985
+ };
151986
+ };
151987
+ };
151988
+ "ops.voice.menus.get": {
151989
+ parameters: {
151990
+ query?: never;
151991
+ header?: {
151992
+ /** @description Replays the first result when the same call is retried. Send one per user intent on writes. */
151993
+ "Idempotency-Key"?: string;
151994
+ /** @description Send `true` to run every check without changing anything. The answer is `{"dry_run": {"outcome": "would_run" | "would_propose", "input": {...}}}`. */
151995
+ "Axivoy-Dry-Run"?: "true" | "false";
151996
+ };
151997
+ path?: never;
151998
+ cookie?: never;
151999
+ };
152000
+ requestBody?: {
152001
+ content: {
152002
+ /**
152003
+ * @example {
152004
+ * "menu_id": 1
152005
+ * }
152006
+ */
152007
+ "application/json": {
152008
+ /** @description The phone menu (from voice.menus.list) */
152009
+ menu_id: number;
152010
+ };
152011
+ };
152012
+ };
152013
+ responses: {
152014
+ /** @description The operation ran. */
152015
+ 200: {
152016
+ headers: {
152017
+ [name: string]: unknown;
152018
+ };
152019
+ content: {
152020
+ /**
152021
+ * @example {
152022
+ * "result": {
152023
+ * "menu_id": 1,
152024
+ * "name": "Main line (day)",
152025
+ * "status": "draft",
152026
+ * "fingerprint": "7",
152027
+ * "start_step_id": "greeting_1",
152028
+ * "steps": [
152029
+ * {
152030
+ * "step_id": "greeting_1",
152031
+ * "kind": "greeting",
152032
+ * "label": "Greeting",
152033
+ * "summary": "Thanks for calling Lakeshore Freight.",
152034
+ * "settings_json": "{\"text\":\"Thanks for calling Lakeshore Freight.\"}",
152035
+ * "connections": [
152036
+ * {
152037
+ * "branch": "next",
152038
+ * "label": "",
152039
+ * "target_step_id": "hangup_1",
152040
+ * "required": true
152041
+ * }
152042
+ * ]
152043
+ * },
152044
+ * {
152045
+ * "step_id": "hangup_1",
152046
+ * "kind": "hangup",
152047
+ * "label": "Hang up",
152048
+ * "summary": "The call ends",
152049
+ * "settings_json": "{\"text\":\"Goodbye.\"}",
152050
+ * "connections": []
152051
+ * }
152052
+ * ],
152053
+ * "issues": [],
152054
+ * "version": null
152055
+ * }
152056
+ * }
152057
+ */
152058
+ "application/json": {
152059
+ result: {
152060
+ /** @description The phone menu */
152061
+ menu_id: number;
152062
+ /** @description Menu name */
152063
+ name: string;
152064
+ /** @description draft, published (live) or archived */
152065
+ status: string;
152066
+ /** @description Pass this to the next change of this menu */
152067
+ fingerprint: string;
152068
+ /** @description The step callers hear first; null for an empty menu */
152069
+ start_step_id?: string | null;
152070
+ /** @description Draft steps */
152071
+ steps: {
152072
+ /** @description Step id */
152073
+ step_id: string;
152074
+ /** @description Step kind: greeting, menu, hours, transfer_number, ring_all, voicemail_simple, hangup, goto_flow, ring_group, voicemail_box, transfer_user, ring_department, voicemail_department, queue, collect, condition */
152075
+ kind: string;
152076
+ /** @description The step as shown on the canvas */
152077
+ label: string;
152078
+ /** @description One line about what the step does */
152079
+ summary: string;
152080
+ /** @description The step settings as JSON */
152081
+ settings_json: string;
152082
+ /** @description Where each connection leads */
152083
+ connections: {
152084
+ /** @description Connection key, for example 1, next, timeout, no_answer */
152085
+ branch: string;
152086
+ /** @description Connection label, for example "Press 1: Dispatch" */
152087
+ label: string;
152088
+ /** @description Where it leads; null when not connected */
152089
+ target_step_id?: string | null;
152090
+ /** @description Whether it must be connected before publishing */
152091
+ required: boolean;
152092
+ }[];
152093
+ }[];
152094
+ /** @description Problems left in the draft */
152095
+ issues: {
152096
+ /** @description The step with the problem; null for the whole menu */
152097
+ step_id?: string | null;
152098
+ /** @description Stable problem code */
152099
+ code: string;
152100
+ /** @description The problem in the editor's words */
152101
+ message: string;
152102
+ /** @description Whether it stops publishing */
152103
+ blocking: boolean;
152104
+ }[];
152105
+ /** @description The newest live version; null before the first publish */
152106
+ version?: number | null;
152107
+ };
152108
+ };
152109
+ };
152110
+ };
152111
+ 202: components["responses"]["Proposal"];
152112
+ /** @description Refused: credits_exhausted. */
152113
+ 402: {
152114
+ headers: {
152115
+ [name: string]: unknown;
152116
+ };
152117
+ content: {
152118
+ "application/json": components["schemas"]["OperationError"];
152119
+ };
152120
+ };
152121
+ /** @description Refused: not_permitted, not_available, authority_off, data_class_blocked. */
152122
+ 403: {
152123
+ headers: {
152124
+ [name: string]: unknown;
152125
+ };
152126
+ content: {
152127
+ "application/json": components["schemas"]["OperationError"];
152128
+ };
152129
+ };
152130
+ /** @description Refused: not_found. */
152131
+ 404: {
152132
+ headers: {
152133
+ [name: string]: unknown;
152134
+ };
152135
+ content: {
152136
+ "application/json": components["schemas"]["OperationError"];
152137
+ };
152138
+ };
152139
+ /** @description Refused: idempotency_conflict, stale_state. */
152140
+ 409: {
152141
+ headers: {
152142
+ [name: string]: unknown;
152143
+ };
152144
+ content: {
152145
+ "application/json": components["schemas"]["OperationError"];
152146
+ };
152147
+ };
152148
+ /** @description Refused: operation_retired. */
152149
+ 410: {
152150
+ headers: {
152151
+ [name: string]: unknown;
152152
+ };
152153
+ content: {
152154
+ "application/json": components["schemas"]["OperationError"];
152155
+ };
152156
+ };
152157
+ /** @description Refused: invalid_input, domain_rule. */
152158
+ 422: {
152159
+ headers: {
152160
+ [name: string]: unknown;
152161
+ };
152162
+ content: {
152163
+ "application/json": components["schemas"]["OperationError"];
152164
+ };
152165
+ };
152166
+ /** @description Refused: rate_limited. */
152167
+ 429: {
152168
+ headers: {
152169
+ [name: string]: unknown;
152170
+ };
152171
+ content: {
152172
+ "application/json": components["schemas"]["OperationError"];
152173
+ };
152174
+ };
152175
+ };
152176
+ };
152177
+ "ops.voice.menus.list": {
151102
152178
  parameters: {
151103
152179
  query?: never;
151104
152180
  header?: {
@@ -151112,14 +152188,17 @@ export interface operations {
151112
152188
  };
151113
152189
  requestBody?: {
151114
152190
  content: {
151115
- /**
151116
- * @example {
151117
- * "name": "Main line (custom)"
151118
- * }
151119
- */
152191
+ /** @example {} */
151120
152192
  "application/json": {
151121
- /** @description Name for the copy; empty uses "Axivoy carrier main line (copy)" */
151122
- name?: string | null;
152193
+ /** @description Cursor from the previous page's next_cursor. */
152194
+ cursor?: string | null;
152195
+ /** @description Rows per page (default 25). */
152196
+ limit?: number | null;
152197
+ /**
152198
+ * Format: date-time
152199
+ * @description Only rows changed at or after this instant, oldest change first, with deleted rows as tombstones.
152200
+ */
152201
+ updated_since?: string | null;
151123
152202
  };
151124
152203
  };
151125
152204
  };
@@ -151133,17 +152212,42 @@ export interface operations {
151133
152212
  /**
151134
152213
  * @example {
151135
152214
  * "result": {
151136
- * "menu_id": 2,
151137
- * "fingerprint": "1"
152215
+ * "items": [
152216
+ * {
152217
+ * "id": 1,
152218
+ * "name": "Main line (day)",
152219
+ * "status": "published",
152220
+ * "version": 1,
152221
+ * "numbers_count": 0,
152222
+ * "built_in": false,
152223
+ * "deleted": null
152224
+ * }
152225
+ * ],
152226
+ * "next_cursor": null
151138
152227
  * }
151139
152228
  * }
151140
152229
  */
151141
152230
  "application/json": {
151142
152231
  result: {
151143
- /** @description The new phone menu draft */
151144
- menu_id: number;
151145
- /** @description Pass this to the first change of the draft */
151146
- fingerprint: string;
152232
+ /** @description One page of rows. */
152233
+ items: {
152234
+ /** @description The row's id. */
152235
+ id: number;
152236
+ /** @description Menu name */
152237
+ name: string;
152238
+ /** @description draft, published (live) or archived */
152239
+ status: string;
152240
+ /** @description The newest live version; null before the first publish */
152241
+ version?: number | null;
152242
+ /** @description How many phone numbers answer with this menu */
152243
+ numbers_count: number;
152244
+ /** @description Whether Axivoy manages the menu (the built-in carrier main line); built-in menus cannot be changed, only used or duplicated with voice.menus.duplicate_builtin */
152245
+ built_in: boolean;
152246
+ /** @description True on a tombstone (the row was deleted or recycled); other fields are absent. */
152247
+ deleted?: boolean | null;
152248
+ }[];
152249
+ /** @description Pass as cursor for the next page; null on the last page. */
152250
+ next_cursor?: string | null;
151147
152251
  };
151148
152252
  };
151149
152253
  };
@@ -151214,7 +152318,7 @@ export interface operations {
151214
152318
  };
151215
152319
  };
151216
152320
  };
151217
- "ops.voice.menus.get": {
152321
+ "ops.voice.menus.publish": {
151218
152322
  parameters: {
151219
152323
  query?: never;
151220
152324
  header?: {
@@ -151230,12 +152334,15 @@ export interface operations {
151230
152334
  content: {
151231
152335
  /**
151232
152336
  * @example {
151233
- * "menu_id": 1
152337
+ * "menu_id": 1,
152338
+ * "fingerprint": "7"
151234
152339
  * }
151235
152340
  */
151236
152341
  "application/json": {
151237
152342
  /** @description The phone menu (from voice.menus.list) */
151238
152343
  menu_id: number;
152344
+ /** @description The fingerprint the editor last read; a different one refuses stale_state */
152345
+ fingerprint: string;
151239
152346
  };
151240
152347
  };
151241
152348
  };
@@ -151250,37 +152357,8 @@ export interface operations {
151250
152357
  * @example {
151251
152358
  * "result": {
151252
152359
  * "menu_id": 1,
151253
- * "name": "Main line (day)",
151254
- * "status": "draft",
151255
- * "fingerprint": "7",
151256
- * "start_step_id": "greeting_1",
151257
- * "steps": [
151258
- * {
151259
- * "step_id": "greeting_1",
151260
- * "kind": "greeting",
151261
- * "label": "Greeting",
151262
- * "summary": "Thanks for calling Lakeshore Freight.",
151263
- * "settings_json": "{\"text\":\"Thanks for calling Lakeshore Freight.\"}",
151264
- * "connections": [
151265
- * {
151266
- * "branch": "next",
151267
- * "label": "",
151268
- * "target_step_id": "hangup_1",
151269
- * "required": true
151270
- * }
151271
- * ]
151272
- * },
151273
- * {
151274
- * "step_id": "hangup_1",
151275
- * "kind": "hangup",
151276
- * "label": "Hang up",
151277
- * "summary": "The call ends",
151278
- * "settings_json": "{\"text\":\"Goodbye.\"}",
151279
- * "connections": []
151280
- * }
151281
- * ],
151282
- * "issues": [],
151283
- * "version": null
152360
+ * "version": 1,
152361
+ * "message": "Version 1 of Main line (day) is live."
151284
152362
  * }
151285
152363
  * }
151286
152364
  */
@@ -151288,51 +152366,10 @@ export interface operations {
151288
152366
  result: {
151289
152367
  /** @description The phone menu */
151290
152368
  menu_id: number;
151291
- /** @description Menu name */
151292
- name: string;
151293
- /** @description draft, published (live) or archived */
151294
- status: string;
151295
- /** @description Pass this to the next change of this menu */
151296
- fingerprint: string;
151297
- /** @description The step callers hear first; null for an empty menu */
151298
- start_step_id?: string | null;
151299
- /** @description Draft steps */
151300
- steps: {
151301
- /** @description Step id */
151302
- step_id: string;
151303
- /** @description Step kind: greeting, menu, hours, transfer_number, ring_all, voicemail_simple, hangup, goto_flow, ring_group, voicemail_box, transfer_user, ring_department, voicemail_department, queue, collect, condition */
151304
- kind: string;
151305
- /** @description The step as shown on the canvas */
151306
- label: string;
151307
- /** @description One line about what the step does */
151308
- summary: string;
151309
- /** @description The step settings as JSON */
151310
- settings_json: string;
151311
- /** @description Where each connection leads */
151312
- connections: {
151313
- /** @description Connection key, for example 1, next, timeout, no_answer */
151314
- branch: string;
151315
- /** @description Connection label, for example "Press 1: Dispatch" */
151316
- label: string;
151317
- /** @description Where it leads; null when not connected */
151318
- target_step_id?: string | null;
151319
- /** @description Whether it must be connected before publishing */
151320
- required: boolean;
151321
- }[];
151322
- }[];
151323
- /** @description Problems left in the draft */
151324
- issues: {
151325
- /** @description The step with the problem; null for the whole menu */
151326
- step_id?: string | null;
151327
- /** @description Stable problem code */
151328
- code: string;
151329
- /** @description The problem in the editor's words */
151330
- message: string;
151331
- /** @description Whether it stops publishing */
151332
- blocking: boolean;
151333
- }[];
151334
- /** @description The newest live version; null before the first publish */
151335
- version?: number | null;
152369
+ /** @description The version number now live */
152370
+ version: number;
152371
+ /** @description What happened, in the operator's words */
152372
+ message: string;
151336
152373
  };
151337
152374
  };
151338
152375
  };
@@ -151403,7 +152440,7 @@ export interface operations {
151403
152440
  };
151404
152441
  };
151405
152442
  };
151406
- "ops.voice.menus.list": {
152443
+ "ops.voice.menus.update": {
151407
152444
  parameters: {
151408
152445
  query?: never;
151409
152446
  header?: {
@@ -151417,17 +152454,19 @@ export interface operations {
151417
152454
  };
151418
152455
  requestBody?: {
151419
152456
  content: {
151420
- /** @example {} */
152457
+ /**
152458
+ * @example {
152459
+ * "menu_id": 1,
152460
+ * "name": "Main line (day)"
152461
+ * }
152462
+ */
151421
152463
  "application/json": {
151422
- /** @description Cursor from the previous page's next_cursor. */
151423
- cursor?: string | null;
151424
- /** @description Rows per page (default 25). */
151425
- limit?: number | null;
151426
- /**
151427
- * Format: date-time
151428
- * @description Only rows changed at or after this instant, oldest change first, with deleted rows as tombstones.
151429
- */
151430
- updated_since?: string | null;
152464
+ /** @description The phone menu (from voice.menus.list) */
152465
+ menu_id: number;
152466
+ /** @description Menu name */
152467
+ name: string;
152468
+ /** @description What the menu is for */
152469
+ description?: string | null;
151431
152470
  };
151432
152471
  };
151433
152472
  };
@@ -151441,42 +152480,17 @@ export interface operations {
151441
152480
  /**
151442
152481
  * @example {
151443
152482
  * "result": {
151444
- * "items": [
151445
- * {
151446
- * "id": 1,
151447
- * "name": "Main line (day)",
151448
- * "status": "published",
151449
- * "version": 1,
151450
- * "numbers_count": 0,
151451
- * "built_in": false,
151452
- * "deleted": null
151453
- * }
151454
- * ],
151455
- * "next_cursor": null
152483
+ * "menu_id": 1,
152484
+ * "message": "Phone menu Main line (day) saved."
151456
152485
  * }
151457
152486
  * }
151458
152487
  */
151459
152488
  "application/json": {
151460
152489
  result: {
151461
- /** @description One page of rows. */
151462
- items: {
151463
- /** @description The row's id. */
151464
- id: number;
151465
- /** @description Menu name */
151466
- name: string;
151467
- /** @description draft, published (live) or archived */
151468
- status: string;
151469
- /** @description The newest live version; null before the first publish */
151470
- version?: number | null;
151471
- /** @description How many phone numbers answer with this menu */
151472
- numbers_count: number;
151473
- /** @description Whether Axivoy manages the menu (the built-in carrier main line); built-in menus cannot be changed, only used or duplicated with voice.menus.duplicate_builtin */
151474
- built_in: boolean;
151475
- /** @description True on a tombstone (the row was deleted or recycled); other fields are absent. */
151476
- deleted?: boolean | null;
151477
- }[];
151478
- /** @description Pass as cursor for the next page; null on the last page. */
151479
- next_cursor?: string | null;
152490
+ /** @description The phone menu */
152491
+ menu_id: number;
152492
+ /** @description What happened, in the operator's words */
152493
+ message: string;
151480
152494
  };
151481
152495
  };
151482
152496
  };
@@ -151547,7 +152561,7 @@ export interface operations {
151547
152561
  };
151548
152562
  };
151549
152563
  };
151550
- "ops.voice.menus.publish": {
152564
+ "ops.voice.numbers.assign_menu": {
151551
152565
  parameters: {
151552
152566
  query?: never;
151553
152567
  header?: {
@@ -151563,15 +152577,20 @@ export interface operations {
151563
152577
  content: {
151564
152578
  /**
151565
152579
  * @example {
151566
- * "menu_id": 1,
151567
- * "fingerprint": "7"
152580
+ * "number_id": 1,
152581
+ * "menu_id": 1
151568
152582
  * }
151569
152583
  */
151570
152584
  "application/json": {
151571
- /** @description The phone menu (from voice.menus.list) */
151572
- menu_id: number;
151573
- /** @description The fingerprint the editor last read; a different one refuses stale_state */
151574
- fingerprint: string;
152585
+ /** @description The phone number (from voice.numbers.list) */
152586
+ number_id: number;
152587
+ /** @description The phone menu; empty for none */
152588
+ menu_id?: number | null;
152589
+ /**
152590
+ * @description Use a built-in Axivoy menu instead of menu_id, for example carrier_main_line
152591
+ * @enum {string|null}
152592
+ */
152593
+ builtin_key?: "carrier_main_line" | null;
151575
152594
  };
151576
152595
  };
151577
152596
  };
@@ -151585,18 +152604,18 @@ export interface operations {
151585
152604
  /**
151586
152605
  * @example {
151587
152606
  * "result": {
152607
+ * "number_id": 1,
151588
152608
  * "menu_id": 1,
151589
- * "version": 1,
151590
- * "message": "Version 1 of Main line (day) is live."
152609
+ * "message": "Calls to this number now hear Main line (day)."
151591
152610
  * }
151592
152611
  * }
151593
152612
  */
151594
152613
  "application/json": {
151595
152614
  result: {
151596
- /** @description The phone menu */
151597
- menu_id: number;
151598
- /** @description The version number now live */
151599
- version: number;
152615
+ /** @description The phone number */
152616
+ number_id: number;
152617
+ /** @description The phone menu it answers with; null for none */
152618
+ menu_id?: number | null;
151600
152619
  /** @description What happened, in the operator's words */
151601
152620
  message: string;
151602
152621
  };
@@ -151669,7 +152688,7 @@ export interface operations {
151669
152688
  };
151670
152689
  };
151671
152690
  };
151672
- "ops.voice.menus.update": {
152691
+ "ops.voice.numbers.enable": {
151673
152692
  parameters: {
151674
152693
  query?: never;
151675
152694
  header?: {
@@ -151685,17 +152704,14 @@ export interface operations {
151685
152704
  content: {
151686
152705
  /**
151687
152706
  * @example {
151688
- * "menu_id": 1,
151689
- * "name": "Main line (day)"
152707
+ * "number_id": 1
151690
152708
  * }
151691
152709
  */
151692
152710
  "application/json": {
151693
- /** @description The phone menu (from voice.menus.list) */
151694
- menu_id: number;
151695
- /** @description Menu name */
151696
- name: string;
151697
- /** @description What the menu is for */
151698
- description?: string | null;
152711
+ /** @description The phone number (from voice.numbers.list) */
152712
+ number_id: number;
152713
+ /** @description True replaces call handling set up outside Axivoy (the number's calls go to another host today); default false */
152714
+ replace_elsewhere?: boolean | null;
151699
152715
  };
151700
152716
  };
151701
152717
  };
@@ -151709,15 +152725,18 @@ export interface operations {
151709
152725
  /**
151710
152726
  * @example {
151711
152727
  * "result": {
151712
- * "menu_id": 1,
151713
- * "message": "Phone menu Main line (day) saved."
152728
+ * "number_id": 1,
152729
+ * "needs_setup": false,
152730
+ * "message": "Calls to (312) 555-1505 now come to Axivoy."
151714
152731
  * }
151715
152732
  * }
151716
152733
  */
151717
152734
  "application/json": {
151718
152735
  result: {
151719
- /** @description The phone menu */
151720
- menu_id: number;
152736
+ /** @description The enabled phone number */
152737
+ number_id: number;
152738
+ /** @description Whether the company must forward calls from its own provider */
152739
+ needs_setup: boolean;
151721
152740
  /** @description What happened, in the operator's words */
151722
152741
  message: string;
151723
152742
  };
@@ -151790,7 +152809,7 @@ export interface operations {
151790
152809
  };
151791
152810
  };
151792
152811
  };
151793
- "ops.voice.numbers.assign_menu": {
152812
+ "ops.voice.numbers.list": {
151794
152813
  parameters: {
151795
152814
  query?: never;
151796
152815
  header?: {
@@ -151804,22 +152823,17 @@ export interface operations {
151804
152823
  };
151805
152824
  requestBody?: {
151806
152825
  content: {
151807
- /**
151808
- * @example {
151809
- * "number_id": 1,
151810
- * "menu_id": 1
151811
- * }
151812
- */
152826
+ /** @example {} */
151813
152827
  "application/json": {
151814
- /** @description The phone number (from voice.numbers.list) */
151815
- number_id: number;
151816
- /** @description The phone menu; empty for none */
151817
- menu_id?: number | null;
152828
+ /** @description Cursor from the previous page's next_cursor. */
152829
+ cursor?: string | null;
152830
+ /** @description Rows per page (default 25). */
152831
+ limit?: number | null;
151818
152832
  /**
151819
- * @description Use a built-in Axivoy menu instead of menu_id, for example carrier_main_line
151820
- * @enum {string|null}
152833
+ * Format: date-time
152834
+ * @description Only rows changed at or after this instant, oldest change first, with deleted rows as tombstones.
151821
152835
  */
151822
- builtin_key?: "carrier_main_line" | null;
152836
+ updated_since?: string | null;
151823
152837
  };
151824
152838
  };
151825
152839
  };
@@ -151833,20 +152847,65 @@ export interface operations {
151833
152847
  /**
151834
152848
  * @example {
151835
152849
  * "result": {
151836
- * "number_id": 1,
151837
- * "menu_id": 1,
151838
- * "message": "Calls to this number now hear Main line (day)."
152850
+ * "items": [
152851
+ * {
152852
+ * "id": 1,
152853
+ * "number": "+13125558041",
152854
+ * "source": "sms_registration",
152855
+ * "status": "calls_off",
152856
+ * "status_label": "Calls not turned on",
152857
+ * "is_main": false,
152858
+ * "calls": "off",
152859
+ * "calls_elsewhere_host": null,
152860
+ * "texts": "needs_registration",
152861
+ * "texting_error": null,
152862
+ * "is_main_texting_number": false,
152863
+ * "texting_registration": "none",
152864
+ * "deleted": null
152865
+ * }
152866
+ * ],
152867
+ * "next_cursor": null
151839
152868
  * }
151840
152869
  * }
151841
152870
  */
151842
152871
  "application/json": {
151843
152872
  result: {
151844
- /** @description The phone number */
151845
- number_id: number;
151846
- /** @description The phone menu it answers with; null for none */
151847
- menu_id?: number | null;
151848
- /** @description What happened, in the operator's words */
151849
- message: string;
152873
+ /** @description One page of rows. */
152874
+ items: {
152875
+ /** @description The row's id. */
152876
+ id: number;
152877
+ /** @description The number in +1 format */
152878
+ number: string;
152879
+ /** @description sms_registration, rented, ported or external */
152880
+ source: string;
152881
+ /** @description active, needs_setup, calls_off, setting_up, rent_failed, porting_in, pending_port_out */
152882
+ status: string;
152883
+ /** @description The status in the page's words */
152884
+ status_label: string;
152885
+ /** @description Whether calls from Axivoy show this number */
152886
+ is_main: boolean;
152887
+ /** @description What Axivoy does with calls to it: on, off, needs_setup or elsewhere */
152888
+ calls: string;
152889
+ /** @description Where its calls go today when calls is elsewhere (host only) */
152890
+ calls_elsewhere_host?: string | null;
152891
+ /** @description What Axivoy does with texts: on, failed, needs_registration, receive_only (texts reach the Inbox, replies go from the main number) or not_connected */
152892
+ texts: string;
152893
+ /** @description Why turning on texting failed, when texts is failed */
152894
+ texting_error?: string | null;
152895
+ /** @description Whether new texts go from this number */
152896
+ is_main_texting_number: boolean;
152897
+ /** @description The company's texting registration: none, in_progress or active (the same on every number) */
152898
+ texting_registration: string;
152899
+ /**
152900
+ * Format: date-time
152901
+ * @description Set when the number moved to Axivoy: it is read-only and texts to it reach the company until then
152902
+ */
152903
+ handed_over_until?: string | null;
152904
+ /** @description True on a tombstone (the row was deleted or recycled); other fields are absent. */
152905
+ deleted?: boolean | null;
152906
+ }[];
152907
+ /** @description Pass as cursor for the next page; null on the last page. */
152908
+ next_cursor?: string | null;
151850
152909
  };
151851
152910
  };
151852
152911
  };
@@ -151917,7 +152976,7 @@ export interface operations {
151917
152976
  };
151918
152977
  };
151919
152978
  };
151920
- "ops.voice.numbers.enable": {
152979
+ "ops.voice.numbers.search": {
151921
152980
  parameters: {
151922
152981
  query?: never;
151923
152982
  header?: {
@@ -151933,12 +152992,12 @@ export interface operations {
151933
152992
  content: {
151934
152993
  /**
151935
152994
  * @example {
151936
- * "number_id": 1
152995
+ * "area_code": "312"
151937
152996
  * }
151938
152997
  */
151939
152998
  "application/json": {
151940
- /** @description The phone number (from voice.numbers.list) */
151941
- number_id: number;
152999
+ /** @description Three-digit US area code, for example 312 */
153000
+ area_code?: string | null;
151942
153001
  };
151943
153002
  };
151944
153003
  };
@@ -151952,20 +153011,30 @@ export interface operations {
151952
153011
  /**
151953
153012
  * @example {
151954
153013
  * "result": {
151955
- * "number_id": 1,
151956
- * "needs_setup": false,
151957
- * "message": "Calls to (312) 555-1505 now come to Axivoy."
153014
+ * "numbers": [
153015
+ * {
153016
+ * "number": "+13125550100",
153017
+ * "display": "(312) 555-0100",
153018
+ * "locality": "Springfield",
153019
+ * "region": "IL"
153020
+ * }
153021
+ * ]
151958
153022
  * }
151959
153023
  * }
151960
153024
  */
151961
153025
  "application/json": {
151962
153026
  result: {
151963
- /** @description The enabled phone number */
151964
- number_id: number;
151965
- /** @description Whether the company must forward calls from its own provider */
151966
- needs_setup: boolean;
151967
- /** @description What happened, in the operator's words */
151968
- message: string;
153027
+ /** @description Numbers available to rent */
153028
+ numbers: {
153029
+ /** @description The number in +1 format */
153030
+ number: string;
153031
+ /** @description The number as people write it */
153032
+ display: string;
153033
+ /** @description City */
153034
+ locality?: string | null;
153035
+ /** @description State */
153036
+ region?: string | null;
153037
+ }[];
151969
153038
  };
151970
153039
  };
151971
153040
  };
@@ -152036,7 +153105,7 @@ export interface operations {
152036
153105
  };
152037
153106
  };
152038
153107
  };
152039
- "ops.voice.numbers.list": {
153108
+ "ops.voice.numbers.set_default": {
152040
153109
  parameters: {
152041
153110
  query?: never;
152042
153111
  header?: {
@@ -152050,17 +153119,14 @@ export interface operations {
152050
153119
  };
152051
153120
  requestBody?: {
152052
153121
  content: {
152053
- /** @example {} */
153122
+ /**
153123
+ * @example {
153124
+ * "number_id": 2
153125
+ * }
153126
+ */
152054
153127
  "application/json": {
152055
- /** @description Cursor from the previous page's next_cursor. */
152056
- cursor?: string | null;
152057
- /** @description Rows per page (default 25). */
152058
- limit?: number | null;
152059
- /**
152060
- * Format: date-time
152061
- * @description Only rows changed at or after this instant, oldest change first, with deleted rows as tombstones.
152062
- */
152063
- updated_since?: string | null;
153128
+ /** @description The phone number (from voice.numbers.list) */
153129
+ number_id: number;
152064
153130
  };
152065
153131
  };
152066
153132
  };
@@ -152074,42 +153140,23 @@ export interface operations {
152074
153140
  /**
152075
153141
  * @example {
152076
153142
  * "result": {
152077
- * "items": [
152078
- * {
152079
- * "id": 1,
152080
- * "number": "+13125551505",
152081
- * "source": "sms_registration",
152082
- * "status": "calls_off",
152083
- * "status_label": "Calls not turned on",
152084
- * "is_main": false,
152085
- * "deleted": null
152086
- * }
152087
- * ],
152088
- * "next_cursor": null
153143
+ * "number_id": 2,
153144
+ * "is_main": true,
153145
+ * "texts_from_this_number": true,
153146
+ * "message": "(312) 555-0141 is now the main number. New texts go from this number."
152089
153147
  * }
152090
153148
  * }
152091
153149
  */
152092
153150
  "application/json": {
152093
153151
  result: {
152094
- /** @description One page of rows. */
152095
- items: {
152096
- /** @description The row's id. */
152097
- id: number;
152098
- /** @description The number in +1 format */
152099
- number: string;
152100
- /** @description sms_registration, rented, ported or external */
152101
- source: string;
152102
- /** @description active, needs_setup, calls_off, setting_up, rent_failed, porting_in, pending_port_out */
152103
- status: string;
152104
- /** @description The status in the page's words */
152105
- status_label: string;
152106
- /** @description Whether calls from Axivoy show this number */
152107
- is_main: boolean;
152108
- /** @description True on a tombstone (the row was deleted or recycled); other fields are absent. */
152109
- deleted?: boolean | null;
152110
- }[];
152111
- /** @description Pass as cursor for the next page; null on the last page. */
152112
- next_cursor?: string | null;
153152
+ /** @description The new main phone number */
153153
+ number_id: number;
153154
+ /** @description Always true on success */
153155
+ is_main: boolean;
153156
+ /** @description Whether new texts now go from this number (true only when its texts are on) */
153157
+ texts_from_this_number: boolean;
153158
+ /** @description What happened, in the operator's words */
153159
+ message: string;
152113
153160
  };
152114
153161
  };
152115
153162
  };
@@ -152180,7 +153227,7 @@ export interface operations {
152180
153227
  };
152181
153228
  };
152182
153229
  };
152183
- "ops.voice.numbers.search": {
153230
+ "ops.voice.numbers.texting.disable": {
152184
153231
  parameters: {
152185
153232
  query?: never;
152186
153233
  header?: {
@@ -152196,12 +153243,12 @@ export interface operations {
152196
153243
  content: {
152197
153244
  /**
152198
153245
  * @example {
152199
- * "area_code": "312"
153246
+ * "number_id": 2
152200
153247
  * }
152201
153248
  */
152202
153249
  "application/json": {
152203
- /** @description Three-digit US area code, for example 312 */
152204
- area_code?: string | null;
153250
+ /** @description The phone number (from voice.numbers.list) */
153251
+ number_id: number;
152205
153252
  };
152206
153253
  };
152207
153254
  };
@@ -152215,30 +153262,20 @@ export interface operations {
152215
153262
  /**
152216
153263
  * @example {
152217
153264
  * "result": {
152218
- * "numbers": [
152219
- * {
152220
- * "number": "+13125550100",
152221
- * "display": "(312) 555-0100",
152222
- * "locality": "Springfield",
152223
- * "region": "IL"
152224
- * }
152225
- * ]
153265
+ * "number_id": 2,
153266
+ * "texts": "receive_only",
153267
+ * "message": "Texts from (312) 555-0141 stopped. Texts to it still reach your Inbox; replies go from your main number."
152226
153268
  * }
152227
153269
  * }
152228
153270
  */
152229
153271
  "application/json": {
152230
153272
  result: {
152231
- /** @description Numbers available to rent */
152232
- numbers: {
152233
- /** @description The number in +1 format */
152234
- number: string;
152235
- /** @description The number as people write it */
152236
- display: string;
152237
- /** @description City */
152238
- locality?: string | null;
152239
- /** @description State */
152240
- region?: string | null;
152241
- }[];
153273
+ /** @description The phone number */
153274
+ number_id: number;
153275
+ /** @description The number's texts state after the change: on, failed, needs_registration, receive_only or not_connected */
153276
+ texts: string;
153277
+ /** @description What happened, in the operator's words */
153278
+ message: string;
152242
153279
  };
152243
153280
  };
152244
153281
  };
@@ -152309,7 +153346,7 @@ export interface operations {
152309
153346
  };
152310
153347
  };
152311
153348
  };
152312
- "ops.voice.numbers.set_default": {
153349
+ "ops.voice.numbers.texting.enable": {
152313
153350
  parameters: {
152314
153351
  query?: never;
152315
153352
  header?: {
@@ -152325,7 +153362,7 @@ export interface operations {
152325
153362
  content: {
152326
153363
  /**
152327
153364
  * @example {
152328
- * "number_id": 1
153365
+ * "number_id": 2
152329
153366
  * }
152330
153367
  */
152331
153368
  "application/json": {
@@ -152344,18 +153381,18 @@ export interface operations {
152344
153381
  /**
152345
153382
  * @example {
152346
153383
  * "result": {
152347
- * "number_id": 1,
152348
- * "is_main": true,
152349
- * "message": "(312) 555-1505 is now the main number."
153384
+ * "number_id": 2,
153385
+ * "texts": "on",
153386
+ * "message": "Texts on for (312) 555-0141."
152350
153387
  * }
152351
153388
  * }
152352
153389
  */
152353
153390
  "application/json": {
152354
153391
  result: {
152355
- /** @description The new main phone number */
153392
+ /** @description The phone number */
152356
153393
  number_id: number;
152357
- /** @description Always true on success */
152358
- is_main: boolean;
153394
+ /** @description The number's texts state after the change: on, failed, needs_registration, receive_only or not_connected */
153395
+ texts: string;
152359
153396
  /** @description What happened, in the operator's words */
152360
153397
  message: string;
152361
153398
  };
@@ -156391,6 +157428,116 @@ export interface operations {
156391
157428
  };
156392
157429
  };
156393
157430
  };
157431
+ "events.driver_live_status.trip_at_risk_started": {
157432
+ parameters: {
157433
+ query?: never;
157434
+ header: {
157435
+ /** @description `t=<unix seconds>,v1=<hex>`: HMAC-SHA256 of `{t}.{raw body}` with the endpoint secret. For 24 hours after a secret rotation a second `v1=` signed with the old secret follows. Compare in constant time and reject a `t` older than 300 seconds. */
157436
+ "Axivoy-Signature": string;
157437
+ /** @description Delivery id, the same on every retry of this delivery. */
157438
+ "Axivoy-Webhook-Id": string;
157439
+ /** @description The event `id`; dedupe on it. */
157440
+ "Axivoy-Event-Id": string;
157441
+ /** @description The event key, for example `load.created`. */
157442
+ "Axivoy-Event-Type": string;
157443
+ /** @description `true` on test sends from Settings, which also carry `"test": true` in the body. */
157444
+ "Axivoy-Test"?: string;
157445
+ };
157446
+ path?: never;
157447
+ cookie?: never;
157448
+ };
157449
+ requestBody: {
157450
+ content: {
157451
+ /**
157452
+ * @example {
157453
+ * "id": "0192f3a4-5b6c-7d8e-9f01-23456789abcd",
157454
+ * "type": "driver_live_status.trip_at_risk_started",
157455
+ * "version": 1,
157456
+ * "occurred_at": "2026-10-01T15:04:05Z",
157457
+ * "effective_at": "2026-10-01T15:04:05Z",
157458
+ * "tenant": 1,
157459
+ * "subject": {
157460
+ * "type": "user",
157461
+ * "id": 14
157462
+ * },
157463
+ * "sequence": 1,
157464
+ * "facts": {
157465
+ * "driver_user_id": 14,
157466
+ * "load_id": 3,
157467
+ * "stop_id": 3,
157468
+ * "minutes_late": null
157469
+ * },
157470
+ * "causation": {
157471
+ * "invocation_id": null,
157472
+ * "event_id": null,
157473
+ * "subscription_id": null
157474
+ * },
157475
+ * "chain_depth": 0,
157476
+ * "fetch": {
157477
+ * "operation": "drivers.live_status.list",
157478
+ * "input": {
157479
+ * "driver_user_ids": [
157480
+ * 14
157481
+ * ]
157482
+ * }
157483
+ * }
157484
+ * }
157485
+ */
157486
+ "application/json": {
157487
+ /** @description Event id; the same on every delivery of this event. */
157488
+ id: string;
157489
+ /** @constant */
157490
+ type: "driver_live_status.trip_at_risk_started";
157491
+ /** @constant */
157492
+ version: 1;
157493
+ /** Format: date-time */
157494
+ occurred_at: string;
157495
+ /**
157496
+ * Format: date-time
157497
+ * @description When it counts operationally; differs from `occurred_at` for back-dated facts.
157498
+ */
157499
+ effective_at: string;
157500
+ /** @description Workspace id. */
157501
+ tenant: number;
157502
+ subject: {
157503
+ type: string;
157504
+ id: number | string;
157505
+ };
157506
+ /** @description Increases per subject; apply events for one subject in this order. */
157507
+ sequence: number;
157508
+ facts: {
157509
+ driver_user_id: number;
157510
+ load_id: number;
157511
+ /** @description The first stop projected late or out of his hours. */
157512
+ stop_id: number;
157513
+ /** @description Null when the stop is out of his hours. */
157514
+ minutes_late?: number | null;
157515
+ };
157516
+ causation: {
157517
+ invocation_id?: string | null;
157518
+ event_id?: string | null;
157519
+ subscription_id?: number | null;
157520
+ };
157521
+ chain_depth: number;
157522
+ fetch: {
157523
+ operation?: string;
157524
+ input?: Record<string, never>;
157525
+ } | null;
157526
+ /** @description Present and `true` only on test sends. */
157527
+ test?: boolean;
157528
+ };
157529
+ };
157530
+ };
157531
+ responses: {
157532
+ /** @description Received. Any other answer, a redirect or no answer within 10 seconds fails the try. */
157533
+ "2XX": {
157534
+ headers: {
157535
+ [name: string]: unknown;
157536
+ };
157537
+ content?: never;
157538
+ };
157539
+ };
157540
+ };
156394
157541
  "events.fleet.acquisition.started": {
156395
157542
  parameters: {
156396
157543
  query?: never;