@insurance-broker/api-client 1.46.0 → 1.47.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.
Files changed (2) hide show
  1. package/dist/schema.d.ts +169 -0
  2. package/package.json +1 -1
package/dist/schema.d.ts CHANGED
@@ -628,6 +628,56 @@ export interface paths {
628
628
  patch?: never;
629
629
  trace?: never;
630
630
  };
631
+ "/api/v1/exports/obligations": {
632
+ parameters: {
633
+ query?: never;
634
+ header?: never;
635
+ path?: never;
636
+ cookie?: never;
637
+ };
638
+ get?: never;
639
+ put?: never;
640
+ /**
641
+ * Export this broker's obligations book to CSV or PDF
642
+ * @description RPT-004, under ADM-008's control. Produces a file of exactly the rows `GET /obligations` would return for the same view and filters — no more — and returns the bytes in the response.
643
+ *
644
+ * **Every export is logged before the file is handed over.** A receipt row and an audit entry naming what was exported, by whom, how much and a SHA-256 of the exact bytes are committed in one transaction first; if that commit fails, no data leaves. The receipts are readable at `GET /exports` under a separate key.
645
+ *
646
+ * **Nothing is stored.** The bytes are produced for this response and never written to the object store, so there is no link to fetch later and no file to orphan (ADR-0038 section 7 and section 11). The price is a ceiling: a selection of more than 5000 charges is refused with a `422` naming the count, and the caller narrows by customer, by policy or by view.
647
+ *
648
+ * **A PDF stops far sooner — 500 charges.** It is laid out one paragraph per charge and rendered under a lock the whole process shares, so a hundred-page one would be paid for by every other tenant's documents. The `422` names the format and its own ceiling; the same selection as a CSV carries the full amount.
649
+ *
650
+ * **`customerId` and `policyId` are filters and never authorisation.** The broker is the one in scope; another broker's charges are invisible rather than forbidden.
651
+ */
652
+ post: operations["ExportObligations"];
653
+ delete?: never;
654
+ options?: never;
655
+ head?: never;
656
+ patch?: never;
657
+ trace?: never;
658
+ };
659
+ "/api/v1/exports": {
660
+ parameters: {
661
+ query?: never;
662
+ header?: never;
663
+ path?: never;
664
+ cookie?: never;
665
+ };
666
+ /**
667
+ * What this broker has taken out of the platform, newest first
668
+ * @description ADM-008's logged half, and what SEC-008's alerting reads. One row per export: the dataset, the view, the format, the row count, the byte count, a SHA-256 of the bytes, the filters that were applied, and who produced it — paged by cursor, newest first (ADR-0031).
669
+ *
670
+ * **No row offers the file back.** The bytes were never stored, so there is nothing to re-download; a log entry that handed out a second copy would be a second export with none of the controls that governed the first.
671
+ */
672
+ get: operations["ListExportReceipts"];
673
+ put?: never;
674
+ post?: never;
675
+ delete?: never;
676
+ options?: never;
677
+ head?: never;
678
+ patch?: never;
679
+ trace?: never;
680
+ };
631
681
  "/api/v1/insurers": {
632
682
  parameters: {
633
683
  query?: never;
@@ -5519,6 +5569,39 @@ export interface components {
5519
5569
  source: string;
5520
5570
  isResolved: boolean;
5521
5571
  };
5572
+ ExportObligationsRequest: {
5573
+ view: null | string;
5574
+ format: null | string;
5575
+ /** Format: uuid */
5576
+ customerId: null | string;
5577
+ /** Format: uuid */
5578
+ policyId: null | string;
5579
+ };
5580
+ ExportReceiptPage: {
5581
+ items: components["schemas"]["ExportReceiptResponse"][];
5582
+ nextCursor: null | string;
5583
+ };
5584
+ ExportReceiptResponse: {
5585
+ /** Format: uuid */
5586
+ id: string;
5587
+ subject: string;
5588
+ view: string;
5589
+ format: string;
5590
+ /** Format: int32 */
5591
+ rowCount: number | string;
5592
+ /** Format: int64 */
5593
+ byteCount: number | string;
5594
+ contentSha256: string;
5595
+ /** Format: uuid */
5596
+ customerId: null | string;
5597
+ /** Format: uuid */
5598
+ policyId: null | string;
5599
+ /** Format: date */
5600
+ measuredOn: string;
5601
+ /** Format: date-time */
5602
+ producedAtUtc: string;
5603
+ producedBySubjectId: string;
5604
+ };
5522
5605
  FormDefinitionResponse: {
5523
5606
  /** Format: uuid */
5524
5607
  id: string;
@@ -8328,6 +8411,92 @@ export interface operations {
8328
8411
  };
8329
8412
  };
8330
8413
  };
8414
+ ExportObligations: {
8415
+ parameters: {
8416
+ query?: never;
8417
+ header?: never;
8418
+ path?: never;
8419
+ cookie?: never;
8420
+ };
8421
+ requestBody: {
8422
+ content: {
8423
+ "application/json": components["schemas"]["ExportObligationsRequest"];
8424
+ };
8425
+ };
8426
+ responses: {
8427
+ /** @description OK */
8428
+ 200: {
8429
+ headers: {
8430
+ [name: string]: unknown;
8431
+ };
8432
+ content?: never;
8433
+ };
8434
+ /** @description Bad Request */
8435
+ 400: {
8436
+ headers: {
8437
+ [name: string]: unknown;
8438
+ };
8439
+ content: {
8440
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
8441
+ };
8442
+ };
8443
+ /** @description Forbidden */
8444
+ 403: {
8445
+ headers: {
8446
+ [name: string]: unknown;
8447
+ };
8448
+ content?: never;
8449
+ };
8450
+ /** @description Unprocessable Entity */
8451
+ 422: {
8452
+ headers: {
8453
+ [name: string]: unknown;
8454
+ };
8455
+ content: {
8456
+ "application/problem+json": components["schemas"]["ProblemDetails"];
8457
+ };
8458
+ };
8459
+ };
8460
+ };
8461
+ ListExportReceipts: {
8462
+ parameters: {
8463
+ query?: {
8464
+ cursor?: string;
8465
+ limit?: number | string;
8466
+ };
8467
+ header?: never;
8468
+ path?: never;
8469
+ cookie?: never;
8470
+ };
8471
+ requestBody?: never;
8472
+ responses: {
8473
+ /** @description OK */
8474
+ 200: {
8475
+ headers: {
8476
+ [name: string]: unknown;
8477
+ };
8478
+ content: {
8479
+ "application/json": components["schemas"]["ExportReceiptPage"];
8480
+ };
8481
+ };
8482
+ /** @description Bad Request */
8483
+ 400: {
8484
+ headers: {
8485
+ [name: string]: unknown;
8486
+ };
8487
+ content: {
8488
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
8489
+ };
8490
+ };
8491
+ /** @description Forbidden */
8492
+ 403: {
8493
+ headers: {
8494
+ [name: string]: unknown;
8495
+ };
8496
+ content?: never;
8497
+ };
8498
+ };
8499
+ };
8331
8500
  ListInsurers: {
8332
8501
  parameters: {
8333
8502
  query?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insurance-broker/api-client",
3
- "version": "1.46.0",
3
+ "version": "1.47.0",
4
4
  "description": "Generated TypeScript client for the Insurance Broker Platform API. Do not edit by hand: regenerate with scripts/update-api-contract.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,