@company-semantics/contracts 94.0.0 → 96.0.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.
@@ -1763,6 +1763,66 @@ export interface paths {
1763
1763
  patch?: never;
1764
1764
  trace?: never;
1765
1765
  };
1766
+ "/api/analysis-workflows/{id}/continue": {
1767
+ parameters: {
1768
+ query?: never;
1769
+ header?: never;
1770
+ path?: never;
1771
+ cookie?: never;
1772
+ };
1773
+ get?: never;
1774
+ put?: never;
1775
+ /**
1776
+ * Start another execution of a stopped analysis workflow
1777
+ * @description Reopens a STOPPED workflow in a new execution epoch and starts the execution its type serves for continue — only for a type whose execution support declares continue (otherwise 409 not_supported). Answers 202 when started; 409 not_stopped or execution_in_flight otherwise. Runtime posture: intent write, impersonation restricted (it spends model calls); the billing pre-flight runs before anything is created, and a refusal is the billing refusal envelope. An Idempotency-Key header replays the first answer for the same workflow and action. Org-scoped: a workflow in another workspace answers 404.
1778
+ */
1779
+ post: operations["continueAnalysisWorkflow"];
1780
+ delete?: never;
1781
+ options?: never;
1782
+ head?: never;
1783
+ patch?: never;
1784
+ trace?: never;
1785
+ };
1786
+ "/api/analysis-workflows/{id}/retry": {
1787
+ parameters: {
1788
+ query?: never;
1789
+ header?: never;
1790
+ path?: never;
1791
+ cookie?: never;
1792
+ };
1793
+ get?: never;
1794
+ put?: never;
1795
+ /**
1796
+ * Retry a failed analysis workflow in the same workflow
1797
+ * @description Reopens a FAILED workflow in a new execution epoch (never a new workflow id) and starts the execution its type serves for retry — only for a type whose execution support declares retry (otherwise 409 not_supported). Answers 202 when started; 409 not_failed or execution_in_flight otherwise. Runtime posture: intent write, impersonation restricted (it spends model calls); the billing pre-flight runs before anything is created, and a refusal is the billing refusal envelope. An Idempotency-Key header replays the first answer for the same workflow and action. Org-scoped: a workflow in another workspace answers 404.
1798
+ */
1799
+ post: operations["retryAnalysisWorkflow"];
1800
+ delete?: never;
1801
+ options?: never;
1802
+ head?: never;
1803
+ patch?: never;
1804
+ trace?: never;
1805
+ };
1806
+ "/api/analysis-workflows/{id}/run-again": {
1807
+ parameters: {
1808
+ query?: never;
1809
+ header?: never;
1810
+ path?: never;
1811
+ cookie?: never;
1812
+ };
1813
+ get?: never;
1814
+ put?: never;
1815
+ /**
1816
+ * Run a settled analysis workflow again as a new workflow
1817
+ * @description Launches a NEW workflow from the settled one’s parameters under the caller’s current authorization, recording relaunchedFrom, and anchors it in the launching conversation named by chatId so its settlement is delivered there. The old workflow is never written. Only for a type whose execution support declares runAgain (otherwise 409 not_supported); a workflow already open for the same launch answers 409 run_in_progress with its id — never joined, never duplicated. A conversation the caller may not write in answers 404 before anything is created. Runtime posture: intent write, impersonation restricted (it spends model calls); the billing pre-flight runs before anything is created, and a refusal is the billing refusal envelope. An Idempotency-Key header replays the first answer for the same workflow and action. Org-scoped: a workflow in another workspace answers 404.
1818
+ */
1819
+ post: operations["runAnalysisWorkflowAgain"];
1820
+ delete?: never;
1821
+ options?: never;
1822
+ head?: never;
1823
+ patch?: never;
1824
+ trace?: never;
1825
+ };
1766
1826
  "/api/affordances/state": {
1767
1827
  parameters: {
1768
1828
  query?: never;
@@ -7263,6 +7323,34 @@ export interface components {
7263
7323
  args: {
7264
7324
  executionId: string;
7265
7325
  };
7326
+ } | {
7327
+ /** @constant */
7328
+ id: "workflow.stop";
7329
+ args: {
7330
+ /** Format: uuid */
7331
+ workflowId: string;
7332
+ };
7333
+ } | {
7334
+ /** @constant */
7335
+ id: "workflow.continue";
7336
+ args: {
7337
+ /** Format: uuid */
7338
+ workflowId: string;
7339
+ };
7340
+ } | {
7341
+ /** @constant */
7342
+ id: "workflow.retry";
7343
+ args: {
7344
+ /** Format: uuid */
7345
+ workflowId: string;
7346
+ };
7347
+ } | {
7348
+ /** @constant */
7349
+ id: "workflow.runAgain";
7350
+ args: {
7351
+ /** Format: uuid */
7352
+ workflowId: string;
7353
+ };
7266
7354
  })[];
7267
7355
  } | {
7268
7356
  /** @constant */
@@ -7361,6 +7449,34 @@ export interface components {
7361
7449
  args: {
7362
7450
  executionId: string;
7363
7451
  };
7452
+ } | {
7453
+ /** @constant */
7454
+ id: "workflow.stop";
7455
+ args: {
7456
+ /** Format: uuid */
7457
+ workflowId: string;
7458
+ };
7459
+ } | {
7460
+ /** @constant */
7461
+ id: "workflow.continue";
7462
+ args: {
7463
+ /** Format: uuid */
7464
+ workflowId: string;
7465
+ };
7466
+ } | {
7467
+ /** @constant */
7468
+ id: "workflow.retry";
7469
+ args: {
7470
+ /** Format: uuid */
7471
+ workflowId: string;
7472
+ };
7473
+ } | {
7474
+ /** @constant */
7475
+ id: "workflow.runAgain";
7476
+ args: {
7477
+ /** Format: uuid */
7478
+ workflowId: string;
7479
+ };
7364
7480
  })[];
7365
7481
  } | {
7366
7482
  /** @constant */
@@ -7461,6 +7577,34 @@ export interface components {
7461
7577
  args: {
7462
7578
  executionId: string;
7463
7579
  };
7580
+ } | {
7581
+ /** @constant */
7582
+ id: "workflow.stop";
7583
+ args: {
7584
+ /** Format: uuid */
7585
+ workflowId: string;
7586
+ };
7587
+ } | {
7588
+ /** @constant */
7589
+ id: "workflow.continue";
7590
+ args: {
7591
+ /** Format: uuid */
7592
+ workflowId: string;
7593
+ };
7594
+ } | {
7595
+ /** @constant */
7596
+ id: "workflow.retry";
7597
+ args: {
7598
+ /** Format: uuid */
7599
+ workflowId: string;
7600
+ };
7601
+ } | {
7602
+ /** @constant */
7603
+ id: "workflow.runAgain";
7604
+ args: {
7605
+ /** Format: uuid */
7606
+ workflowId: string;
7607
+ };
7464
7608
  })[];
7465
7609
  } | {
7466
7610
  /** @constant */
@@ -7561,6 +7705,34 @@ export interface components {
7561
7705
  args: {
7562
7706
  executionId: string;
7563
7707
  };
7708
+ } | {
7709
+ /** @constant */
7710
+ id: "workflow.stop";
7711
+ args: {
7712
+ /** Format: uuid */
7713
+ workflowId: string;
7714
+ };
7715
+ } | {
7716
+ /** @constant */
7717
+ id: "workflow.continue";
7718
+ args: {
7719
+ /** Format: uuid */
7720
+ workflowId: string;
7721
+ };
7722
+ } | {
7723
+ /** @constant */
7724
+ id: "workflow.retry";
7725
+ args: {
7726
+ /** Format: uuid */
7727
+ workflowId: string;
7728
+ };
7729
+ } | {
7730
+ /** @constant */
7731
+ id: "workflow.runAgain";
7732
+ args: {
7733
+ /** Format: uuid */
7734
+ workflowId: string;
7735
+ };
7564
7736
  })[];
7565
7737
  }) | null;
7566
7738
  error?: string;
@@ -7586,10 +7758,44 @@ export interface components {
7586
7758
  /** @enum {string} */
7587
7759
  result: "delivered" | "deferred" | "busy" | "skipped" | "not_settled";
7588
7760
  };
7761
+ WorkflowExecutionStartedResponse: {
7762
+ /** @constant */
7763
+ started: true;
7764
+ /** Format: uuid */
7765
+ workflowId: string;
7766
+ executionEpoch: number;
7767
+ /** @constant */
7768
+ state: "pending";
7769
+ };
7770
+ WorkflowExecutionRefusal: {
7771
+ /** @constant */
7772
+ refused: true;
7773
+ /** @enum {string} */
7774
+ reason: "not_stopped" | "not_failed" | "execution_in_flight" | "not_supported" | "run_in_progress";
7775
+ /** @enum {string} */
7776
+ state: "pending" | "running" | "draining" | "stopped" | "complete" | "failed";
7777
+ /** Format: uuid */
7778
+ workflowId: string;
7779
+ openWorkflowId?: string | null;
7780
+ };
7781
+ WorkflowRunAgainResponse: {
7782
+ /** @constant */
7783
+ launched: true;
7784
+ /** Format: uuid */
7785
+ workflowId: string;
7786
+ /** Format: uuid */
7787
+ relaunchedFrom: string;
7788
+ /** @constant */
7789
+ state: "pending";
7790
+ };
7791
+ RunAnalysisWorkflowAgainRequest: {
7792
+ /** Format: uuid */
7793
+ chatId: string;
7794
+ };
7589
7795
  AffordanceStateResponse: {
7590
7796
  entries: {
7591
7797
  /** @enum {string} */
7592
- id: "sourceSync.findFiles" | "integrations.connectGoogleDrive" | "sourceSync.enable" | "billing.open" | "orgStructure.reanalyze" | "hris.resyncDirectory" | "review.open" | "integrations.open" | "hris.connect" | "account.editProfile" | "workspace.openOrgSettings" | "sourceSync.addFile" | "sourceSync.openUpdate" | "orgStructure.openReview" | "chat.open" | "companyMd.openDoc" | "companyMd.openHistory" | "team.open" | "execution.open";
7798
+ id: "sourceSync.findFiles" | "integrations.connectGoogleDrive" | "sourceSync.enable" | "billing.open" | "orgStructure.reanalyze" | "hris.resyncDirectory" | "review.open" | "integrations.open" | "hris.connect" | "account.editProfile" | "workspace.openOrgSettings" | "sourceSync.addFile" | "sourceSync.openUpdate" | "orgStructure.openReview" | "chat.open" | "companyMd.openDoc" | "companyMd.openHistory" | "team.open" | "execution.open" | "workflow.stop" | "workflow.continue" | "workflow.retry" | "workflow.runAgain";
7593
7799
  /** @enum {string} */
7594
7800
  policy: "allowed" | "blocked";
7595
7801
  availability: {
@@ -8763,6 +8969,34 @@ export interface components {
8763
8969
  args: {
8764
8970
  executionId: string;
8765
8971
  };
8972
+ } | {
8973
+ /** @constant */
8974
+ id: "workflow.stop";
8975
+ args: {
8976
+ /** Format: uuid */
8977
+ workflowId: string;
8978
+ };
8979
+ } | {
8980
+ /** @constant */
8981
+ id: "workflow.continue";
8982
+ args: {
8983
+ /** Format: uuid */
8984
+ workflowId: string;
8985
+ };
8986
+ } | {
8987
+ /** @constant */
8988
+ id: "workflow.retry";
8989
+ args: {
8990
+ /** Format: uuid */
8991
+ workflowId: string;
8992
+ };
8993
+ } | {
8994
+ /** @constant */
8995
+ id: "workflow.runAgain";
8996
+ args: {
8997
+ /** Format: uuid */
8998
+ workflowId: string;
8999
+ };
8766
9000
  } | {
8767
9001
  /** @constant */
8768
9002
  id: "review.open";
@@ -8869,6 +9103,34 @@ export interface components {
8869
9103
  args: {
8870
9104
  executionId: string;
8871
9105
  };
9106
+ } | {
9107
+ /** @constant */
9108
+ id: "workflow.stop";
9109
+ args: {
9110
+ /** Format: uuid */
9111
+ workflowId: string;
9112
+ };
9113
+ } | {
9114
+ /** @constant */
9115
+ id: "workflow.continue";
9116
+ args: {
9117
+ /** Format: uuid */
9118
+ workflowId: string;
9119
+ };
9120
+ } | {
9121
+ /** @constant */
9122
+ id: "workflow.retry";
9123
+ args: {
9124
+ /** Format: uuid */
9125
+ workflowId: string;
9126
+ };
9127
+ } | {
9128
+ /** @constant */
9129
+ id: "workflow.runAgain";
9130
+ args: {
9131
+ /** Format: uuid */
9132
+ workflowId: string;
9133
+ };
8872
9134
  } | {
8873
9135
  /** @constant */
8874
9136
  id: "review.open";
@@ -10129,17 +10391,38 @@ export interface components {
10129
10391
  hostedSurchargeBps: number;
10130
10392
  byoFeeBps: number;
10131
10393
  priceBookVersion: string;
10394
+ /** Format: date-time */
10395
+ priceBookEffectiveAt: string;
10132
10396
  models: {
10133
10397
  /** @enum {string} */
10134
10398
  provider: "openai" | "anthropic";
10135
10399
  modelId: string;
10136
- inputPerMMicros: string;
10137
- outputPerMMicros: string;
10138
- cacheReadPerMMicros: string;
10139
- cacheWritePerMMicros: string;
10140
- reasoningPerMMicros: string;
10141
- hostedInputPerMMicros: string;
10142
- hostedOutputPerMMicros: string;
10400
+ aliases: string[];
10401
+ sourceUrl: string | null;
10402
+ retrievedOn: string | null;
10403
+ promptTierMeasure: ("input_incl_cache" | "input_excl_cache") | null;
10404
+ promptTokensCeiling: number | null;
10405
+ tiers: {
10406
+ /** @enum {string} */
10407
+ processingMode: "standard" | "batch" | "flex" | "fast" | "ultrafast";
10408
+ promptTokensAbove: number;
10409
+ reference: {
10410
+ inputPerMMicros: string;
10411
+ outputPerMMicros: string | null;
10412
+ cacheReadPerMMicros: string | null;
10413
+ cacheWritePerMMicros: string | null;
10414
+ cacheWrite1hPerMMicros: string | null;
10415
+ reasoningPerMMicros: string | null;
10416
+ };
10417
+ hosted: {
10418
+ inputPerMMicros: string;
10419
+ outputPerMMicros: string | null;
10420
+ cacheReadPerMMicros: string | null;
10421
+ cacheWritePerMMicros: string | null;
10422
+ cacheWrite1hPerMMicros: string | null;
10423
+ reasoningPerMMicros: string | null;
10424
+ };
10425
+ }[];
10143
10426
  }[];
10144
10427
  };
10145
10428
  SourceSyncDiscoveryRunResponse: {
@@ -14097,6 +14380,145 @@ export interface operations {
14097
14380
  };
14098
14381
  };
14099
14382
  };
14383
+ continueAnalysisWorkflow: {
14384
+ parameters: {
14385
+ query?: never;
14386
+ header?: never;
14387
+ path: {
14388
+ id: string;
14389
+ };
14390
+ cookie?: never;
14391
+ };
14392
+ requestBody?: never;
14393
+ responses: {
14394
+ /** @description Another execution of the same workflow is under way */
14395
+ 202: {
14396
+ headers: {
14397
+ [name: string]: unknown;
14398
+ };
14399
+ content: {
14400
+ "application/json": components["schemas"]["WorkflowExecutionStartedResponse"];
14401
+ };
14402
+ };
14403
+ /** @description The workflow id is not a uuid */
14404
+ 400: {
14405
+ headers: {
14406
+ [name: string]: unknown;
14407
+ };
14408
+ content?: never;
14409
+ };
14410
+ /** @description No such workflow in this workspace */
14411
+ 404: {
14412
+ headers: {
14413
+ [name: string]: unknown;
14414
+ };
14415
+ content?: never;
14416
+ };
14417
+ /** @description Nothing was started: the reason and the workflow’s authoritative current state */
14418
+ 409: {
14419
+ headers: {
14420
+ [name: string]: unknown;
14421
+ };
14422
+ content: {
14423
+ "application/json": components["schemas"]["WorkflowExecutionRefusal"];
14424
+ };
14425
+ };
14426
+ };
14427
+ };
14428
+ retryAnalysisWorkflow: {
14429
+ parameters: {
14430
+ query?: never;
14431
+ header?: never;
14432
+ path: {
14433
+ id: string;
14434
+ };
14435
+ cookie?: never;
14436
+ };
14437
+ requestBody?: never;
14438
+ responses: {
14439
+ /** @description Another execution of the same workflow is under way */
14440
+ 202: {
14441
+ headers: {
14442
+ [name: string]: unknown;
14443
+ };
14444
+ content: {
14445
+ "application/json": components["schemas"]["WorkflowExecutionStartedResponse"];
14446
+ };
14447
+ };
14448
+ /** @description The workflow id is not a uuid */
14449
+ 400: {
14450
+ headers: {
14451
+ [name: string]: unknown;
14452
+ };
14453
+ content?: never;
14454
+ };
14455
+ /** @description No such workflow in this workspace */
14456
+ 404: {
14457
+ headers: {
14458
+ [name: string]: unknown;
14459
+ };
14460
+ content?: never;
14461
+ };
14462
+ /** @description Nothing was started: the reason and the workflow’s authoritative current state */
14463
+ 409: {
14464
+ headers: {
14465
+ [name: string]: unknown;
14466
+ };
14467
+ content: {
14468
+ "application/json": components["schemas"]["WorkflowExecutionRefusal"];
14469
+ };
14470
+ };
14471
+ };
14472
+ };
14473
+ runAnalysisWorkflowAgain: {
14474
+ parameters: {
14475
+ query?: never;
14476
+ header?: never;
14477
+ path: {
14478
+ id: string;
14479
+ };
14480
+ cookie?: never;
14481
+ };
14482
+ requestBody: {
14483
+ content: {
14484
+ "application/json": components["schemas"]["RunAnalysisWorkflowAgainRequest"];
14485
+ };
14486
+ };
14487
+ responses: {
14488
+ /** @description A new workflow was launched and anchored in the conversation */
14489
+ 202: {
14490
+ headers: {
14491
+ [name: string]: unknown;
14492
+ };
14493
+ content: {
14494
+ "application/json": components["schemas"]["WorkflowRunAgainResponse"];
14495
+ };
14496
+ };
14497
+ /** @description The workflow id or the chat id is not a uuid */
14498
+ 400: {
14499
+ headers: {
14500
+ [name: string]: unknown;
14501
+ };
14502
+ content?: never;
14503
+ };
14504
+ /** @description No such workflow, or no such conversation the caller may write in */
14505
+ 404: {
14506
+ headers: {
14507
+ [name: string]: unknown;
14508
+ };
14509
+ content?: never;
14510
+ };
14511
+ /** @description Nothing was started: the reason and the workflow’s authoritative current state */
14512
+ 409: {
14513
+ headers: {
14514
+ [name: string]: unknown;
14515
+ };
14516
+ content: {
14517
+ "application/json": components["schemas"]["WorkflowExecutionRefusal"];
14518
+ };
14519
+ };
14520
+ };
14521
+ };
14100
14522
  getAffordanceState: {
14101
14523
  parameters: {
14102
14524
  query: {
@@ -18,7 +18,8 @@ What it publishes:
18
18
  - **Closed enums**, each an `as const` tuple with a union type and a `z.enum`
19
19
  built from the same tuple: credential source, funding mode, platform status,
20
20
  AI pause reason, ledger entry type, reservation state, settlement basis,
21
- top-up kind and status, token dimension, principal kind, and provider.
21
+ top-up kind and status, token dimension, principal kind, provider, processing
22
+ mode and prompt tier measure.
22
23
  - **Derived tables.** `SEAT_BILLABILITY`, the mapping from principal kind to
23
24
  seat billability, and `TokenDimensionsSchema`, one integer count per token
24
25
  dimension.
@@ -99,6 +100,41 @@ owner is always its owner contradicts ADR-BE-296, and nothing imported them.
99
100
  who paid and was never credited, and `succeeded` and `credited` stay distinct
100
101
  in `TOP_UP_STATUSES` so that gap is visible to an operator.
101
102
 
103
+ ## Price list card (ADR slug price-list-tiers)
104
+
105
+ `PriceListSchema` publishes one card per model (`PriceListModelSchema`), not one
106
+ flat rate row. The card mirrors the provider's own pricing structure, so a
107
+ customer can check every charge against the provider's published page.
108
+
109
+ - **A card is `tiers[]`**: one `PriceListTierSchema` entry per
110
+ (`processingMode`, `promptTokensAbove`). Each tier carries the provider's
111
+ `reference` rates and the `hosted` rates derived from them, both as
112
+ `PriceListRatesSchema` (micro-USD per million tokens). Every priced model has a
113
+ `standard` tier at `promptTokensAbove: 0`; a request whose prompt is above a
114
+ tier's threshold pays that tier's rates on every dimension.
115
+ - **A processing mode is an explicit provider rate set, never a multiplier we
116
+ derive.** `PROCESSING_MODES` names the sets (standard, batch, flex, fast,
117
+ ultrafast); a mode's rates are the provider's published numbers, because
118
+ providers do not price modes by a clean factor (OpenAI gpt-4o Fast is 1.7x
119
+ Standard).
120
+ - **`null` means the provider publishes no separate rate** for that dimension —
121
+ never `"0"`. An input-side null (cache read, cache write) bills at the tier's
122
+ input rate, which is what the provider charges. `cacheWrite1hPerMMicros` is
123
+ published for transparency; the backend refuses 1-hour-TTL requests until a
124
+ usage axis exists for it (`TokenDimensionsSchema` is unchanged).
125
+ - **A model with more than one tier names its `promptTierMeasure`**
126
+ (`PROMPT_TIER_MEASURES`): what the provider counts to choose the tier. An
127
+ ambiguous provider rule is never guessed; the long tier stays unpublished and
128
+ `promptTokensCeiling` refuses prompts above the published range.
129
+ - **An id is listed once** per price list: as a card's `modelId` or as one
130
+ card's `aliases` entry, never both.
131
+ - **Corrections publish a new price-book version; history is never
132
+ recomputed.** `priceBookEffectiveAt` says when a version took effect,
133
+ `PriceBookVersionListSchema` lists every version that has ever priced a
134
+ charge, and `PriceListQuerySchema` selects one by label (omit for the active
135
+ version). The query schema is the one request-side shape here, published
136
+ because the version label is part of the price list's public promise.
137
+
102
138
  <!-- BEGIN GENERATED: readme-public-api — derived from code by `pnpm readme-api`. Do not edit. -->
103
139
 
104
140
  ## Public API
@@ -169,14 +205,30 @@ owner is always its owner contradicts ADR-BE-296, and nothing imported them.
169
205
  - `OrgBillingOverview` _(type)_ — Everything the org's billing page needs, in one response.
170
206
  - `OrgBillingOverviewSchema` — Everything the org's billing page needs, in ONE response.
171
207
  - `PRINCIPAL_KINDS` — WHAT KIND of thing an org membership represents.
208
+ - `PROCESSING_MODES` — How a provider processes a request, which selects the rate set it is billed at.
209
+ - `PROMPT_TIER_MEASURES` — What a provider counts to decide which prompt-length tier a request pays.
172
210
  - `PortalSessionResponse` _(type)_ — A Stripe customer-portal session to send the customer to.
173
211
  - `PortalSessionResponseSchema` — A Stripe customer-portal session to send the customer to.
212
+ - `PriceBookVersionList` _(type)_ — The price book's version history, newest first.
213
+ - `PriceBookVersionListSchema` — The price book's version history, newest first.
214
+ - `PriceBookVersionSummary` _(type)_ — One published price-book version.
215
+ - `PriceBookVersionSummarySchema` — One published price-book version, newest first in the list.
174
216
  - `PriceList` _(type)_ — The published price book, versioned.
175
- - `PriceListModel` _(type)_ — One priced model.
176
- - `PriceListModelSchema` — One priced model.
217
+ - `PriceListModel` _(type)_ — One priced model's card: provenance, aliases and tiers per mode.
218
+ - `PriceListModelSchema` — One priced model's card: its provenance, the ids it serves, and its tiers per processing mode.
219
+ - `PriceListQuery` _(type)_ — The price-list query: an optional version label, else the active one.
220
+ - `PriceListQuerySchema` — `GET /api/billing/price-list?version=<label>` — omit for the active version.
221
+ - `PriceListRates` _(type)_ — One rate set, micro-USD per million tokens; null = no separate rate.
222
+ - `PriceListRatesSchema` — One rate set, micro-USD PER MILLION tokens.
177
223
  - `PriceListSchema` — The published price book, versioned.
224
+ - `PriceListTier` _(type)_ — One tier of one processing mode: reference and hosted rates.
225
+ - `PriceListTierSchema` — One tier of one processing mode.
178
226
  - `PrincipalKind` _(type)_ — What kind of thing an org membership represents.
179
227
  - `PrincipalKindSchema`
228
+ - `ProcessingMode` _(type)_
229
+ - `ProcessingModeSchema`
230
+ - `PromptTierMeasure` _(type)_
231
+ - `PromptTierMeasureSchema`
180
232
  - `ProviderKeyList` _(type)_ — Every provider the org could configure a key for.
181
233
  - `ProviderKeyListSchema` — Every provider the org could configure a key for, configured or not.
182
234
  - `ProviderKeyStatus` _(type)_ — What an org may see about one of its own provider keys.