@insurance-broker/api-client 5.23.0 → 5.25.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 +442 -0
  2. package/package.json +1 -1
package/dist/schema.d.ts CHANGED
@@ -3252,6 +3252,50 @@ export interface paths {
3252
3252
  patch?: never;
3253
3253
  trace?: never;
3254
3254
  };
3255
+ "/api/v1/customers/imports/{id}/commitment": {
3256
+ parameters: {
3257
+ query?: never;
3258
+ header?: never;
3259
+ path?: never;
3260
+ cookie?: never;
3261
+ };
3262
+ get?: never;
3263
+ put?: never;
3264
+ /**
3265
+ * Asks for a validated customer import to be committed, every row or none
3266
+ * @description Accepted only from `Validated`. Moves the run to `Committing` and answers `202` with it; the commit then runs in the background and ends `Committed` (one `Invited` customer per row, with its legacy source and reference and no invitation), `CommitRefused` (nothing written; `commitRefusalReason` says why, and a row that failed the commit's re-check is `Refused` with its reasons), or `CommitFailed` (nothing written, after the commit stalled). Read the run to follow it.
3267
+ *
3268
+ * **Requires `If-Match`** with the run's `concurrencyToken`. Without it, or with `*`, `428`; a token that is no longer current is `409` with problem type `urn:brokerplatform:problem:concurrency-conflict` — read the run again. `409` with problem type `urn:brokerplatform:problem:import-run-state-conflict` when the run is not `Validated`; its `runStatus` says what it is. `404` when the run is not this broker's.
3269
+ */
3270
+ post: operations["CommitCustomerImport"];
3271
+ delete?: never;
3272
+ options?: never;
3273
+ head?: never;
3274
+ patch?: never;
3275
+ trace?: never;
3276
+ };
3277
+ "/api/v1/customers/imports/{id}/abandonment": {
3278
+ parameters: {
3279
+ query?: never;
3280
+ header?: never;
3281
+ path?: never;
3282
+ cookie?: never;
3283
+ };
3284
+ get?: never;
3285
+ put?: never;
3286
+ /**
3287
+ * Abandons a customer import that has not been committed
3288
+ * @description Accepted only from `Staged` or `Validated`. Ends the run `Abandoned`, removes every value the file held, and frees this broker's import slot; the report (line numbers, outcomes and reasons) stays readable. Answers `200` with the run.
3289
+ *
3290
+ * **Requires `If-Match`** with the run's `concurrencyToken`. Without it, or with `*`, `428`; a token that is no longer current is `409` with problem type `urn:brokerplatform:problem:concurrency-conflict`. `409` with problem type `urn:brokerplatform:problem:import-run-state-conflict` when the run has already ended — including `Refused`, which is already ended and purged — or is committing; its `runStatus` says what it is. `404` when the run is not this broker's.
3291
+ */
3292
+ post: operations["AbandonCustomerImport"];
3293
+ delete?: never;
3294
+ options?: never;
3295
+ head?: never;
3296
+ patch?: never;
3297
+ trace?: never;
3298
+ };
3255
3299
  "/api/v1/organisations": {
3256
3300
  parameters: {
3257
3301
  query?: never;
@@ -4591,6 +4635,71 @@ export interface paths {
4591
4635
  patch?: never;
4592
4636
  trace?: never;
4593
4637
  };
4638
+ "/api/v1/policies/imports": {
4639
+ parameters: {
4640
+ query?: never;
4641
+ header?: never;
4642
+ path?: never;
4643
+ cookie?: never;
4644
+ };
4645
+ /**
4646
+ * This broker's policy import runs, newest first
4647
+ * @description Paged by cursor, newest first (ADR-0031): pass `nextCursor` back as `cursor` until it is null. A cursor this list did not issue is a `400`.
4648
+ */
4649
+ get: operations["ListPolicyImports"];
4650
+ put?: never;
4651
+ /**
4652
+ * Uploads a file of policies to validate and import
4653
+ * @description Reads a CSV file of policies carried across from a previous system and stages every row as a new import run, answering `202` with the run in status `Staged`. Nothing is written to the policy records: each row is validated against the rules `POST /policies/imported` applies, and the whole file is committed later, all of it or none (ADR-0051).
4654
+ *
4655
+ * **The file.** One `multipart/form-data` file part. UTF-8 (a leading byte-order mark is tolerated), comma-delimited, RFC 4180 quoting, a header row naming `legacy_source`, `legacy_reference`, `customer_legacy_source`, `customer_legacy_reference`, `product_key`, `insurer_code` and `status`, and optionally `cover_start`, `cover_end`, `premium_amount`, `premium_currency`, `insurer_reference`, `insurer_confirmed_on` and `import_notes`, each at most once. Up to 50 further columns named `legacy.` followed by the previous system's own field name become the row's legacy metadata. Nothing else. Dates are `yyyy-MM-dd`; the premium is a plain decimal with a `.` point. The customer is named by the legacy pair it was imported under, the product by its key and the insurer by its code. At most 10,000 data rows and 5 MiB by default.
4656
+ *
4657
+ * **Refusals.** `413` when the file is larger than this broker accepts. `400` when the body is not multipart, and `400` with problem type `urn:brokerplatform:problem:import-file-refused` when the file cannot be read — invalid UTF-8, a NUL or other control character, a duplicate, unknown or missing header, more than 50 `legacy.` columns, a record whose field count differs from the header's, a misplaced or unclosed quote, more rows than allowed, no rows, or an unusable file name. That problem carries `fault` (`invalid-encoding`, `control-character`, `no-header`, `duplicate-header`, `unknown-column`, `missing-column`, `too-many-legacy-columns`, `field-count`, `misplaced-quote`, `unterminated-quote`, `too-many-rows`, `no-rows`, `no-file-part` or `file-name`) and, when the fault is on a line, `line`; its message names the line and never repeats the file's content. **A refused file creates no run.** `409` with problem type `urn:brokerplatform:problem:import-run-in-progress` when this broker already has a policy import staged, validated or committing — one at a time. `429` when this broker has used its policy upload budget: every admitted upload counts, including refused ones.
4658
+ */
4659
+ post: operations["UploadPolicyImport"];
4660
+ delete?: never;
4661
+ options?: never;
4662
+ head?: never;
4663
+ patch?: never;
4664
+ trace?: never;
4665
+ };
4666
+ "/api/v1/policies/imports/{id}": {
4667
+ parameters: {
4668
+ query?: never;
4669
+ header?: never;
4670
+ path?: never;
4671
+ cookie?: never;
4672
+ };
4673
+ /** One policy import run: its status, counts and who did what when */
4674
+ get: operations["GetPolicyImport"];
4675
+ put?: never;
4676
+ post?: never;
4677
+ delete?: never;
4678
+ options?: never;
4679
+ head?: never;
4680
+ patch?: never;
4681
+ trace?: never;
4682
+ };
4683
+ "/api/v1/policies/imports/{id}/rows": {
4684
+ parameters: {
4685
+ query?: never;
4686
+ header?: never;
4687
+ path?: never;
4688
+ cookie?: never;
4689
+ };
4690
+ /**
4691
+ * A policy import run's rows, in file order
4692
+ * @description Each row's line number in the file, its outcome, the policy it created once committed, and every reason it was refused — a column (`legacy.*` for the legacy columns taken together), a stable code and a fixed sentence, never a value from the file. The codes are those of `POST /policies/imported` (`required`, `too-long`, `invalid-format`, `premium-incomplete`, `premium-negative`, `cover-period-inverted`, `status-not-importable`, `evidence-required`, `evidence-not-allowed`, `legacy-metadata-too-large`, `unknown-customer`, `unknown-product`, `unknown-insurer`, `already-imported`) and two of a file's own: `invalid-character` and `duplicate-in-file`. Filter with `outcome` (`Pending`, `Accepted` or `Refused`). Paged by cursor in file order (ADR-0031). `404` when the run is not this broker's.
4693
+ */
4694
+ get: operations["ListPolicyImportRows"];
4695
+ put?: never;
4696
+ post?: never;
4697
+ delete?: never;
4698
+ options?: never;
4699
+ head?: never;
4700
+ patch?: never;
4701
+ trace?: never;
4702
+ };
4594
4703
  "/api/v1/policies/payment-gates": {
4595
4704
  parameters: {
4596
4705
  query?: never;
@@ -7186,6 +7295,8 @@ export interface components {
7186
7295
  commitRequestedAtUtc: null | string;
7187
7296
  /** Format: date-time */
7188
7297
  concludedAtUtc: null | string;
7298
+ commitRefusalReason: null | string;
7299
+ concurrencyToken: string;
7189
7300
  };
7190
7301
  CustomerImportUpload: {
7191
7302
  file: components["schemas"]["IFormFile"];
@@ -8954,6 +9065,54 @@ export interface components {
8954
9065
  PolicyDocumentUpload: {
8955
9066
  file: components["schemas"]["IFormFile"];
8956
9067
  };
9068
+ PolicyImportRowPage: {
9069
+ items: components["schemas"]["PolicyImportRowResponse"][];
9070
+ nextCursor: null | string;
9071
+ };
9072
+ PolicyImportRowReason: {
9073
+ column: string;
9074
+ code: string;
9075
+ message: string;
9076
+ };
9077
+ PolicyImportRowResponse: {
9078
+ /** Format: int32 */
9079
+ lineNumber: number;
9080
+ outcome: string;
9081
+ /** Format: uuid */
9082
+ policyId: null | string;
9083
+ reasons: components["schemas"]["PolicyImportRowReason"][];
9084
+ };
9085
+ PolicyImportRunPage: {
9086
+ items: components["schemas"]["PolicyImportRunResponse"][];
9087
+ nextCursor: null | string;
9088
+ };
9089
+ PolicyImportRunResponse: {
9090
+ /** Format: uuid */
9091
+ id: string;
9092
+ status: string;
9093
+ fileName: string;
9094
+ /** Format: int32 */
9095
+ rowCount: number;
9096
+ /** Format: int32 */
9097
+ acceptedCount: null | number;
9098
+ /** Format: int32 */
9099
+ refusedCount: null | number;
9100
+ /** Format: int32 */
9101
+ committedCount: null | number;
9102
+ submittedBySubjectId: string;
9103
+ /** Format: date-time */
9104
+ stagedAtUtc: string;
9105
+ /** Format: date-time */
9106
+ validatedAtUtc: null | string;
9107
+ commitRequestedBySubjectId: null | string;
9108
+ /** Format: date-time */
9109
+ commitRequestedAtUtc: null | string;
9110
+ /** Format: date-time */
9111
+ concludedAtUtc: null | string;
9112
+ };
9113
+ PolicyImportUpload: {
9114
+ file: components["schemas"]["IFormFile"];
9115
+ };
8957
9116
  PolicyPage: {
8958
9117
  items: components["schemas"]["PolicyResponse"][];
8959
9118
  nextCursor: null | string;
@@ -17454,6 +17613,124 @@ export interface operations {
17454
17613
  };
17455
17614
  };
17456
17615
  };
17616
+ CommitCustomerImport: {
17617
+ parameters: {
17618
+ query?: never;
17619
+ header: {
17620
+ /** @description Required. The concurrencyToken of the record as it was read, sent back unchanged. A write without it, or with *, is refused with 428; a token that is no longer current is refused with 409 (issue #517, client 5.0.0). */
17621
+ "If-Match": string;
17622
+ };
17623
+ path: {
17624
+ id: string;
17625
+ };
17626
+ cookie?: never;
17627
+ };
17628
+ requestBody?: never;
17629
+ responses: {
17630
+ /** @description Accepted */
17631
+ 202: {
17632
+ headers: {
17633
+ [name: string]: unknown;
17634
+ };
17635
+ content: {
17636
+ "application/json": components["schemas"]["CustomerImportRunResponse"];
17637
+ };
17638
+ };
17639
+ /** @description Bad Request */
17640
+ 400: {
17641
+ headers: {
17642
+ [name: string]: unknown;
17643
+ };
17644
+ content: {
17645
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
17646
+ };
17647
+ };
17648
+ /** @description Not Found */
17649
+ 404: {
17650
+ headers: {
17651
+ [name: string]: unknown;
17652
+ };
17653
+ content?: never;
17654
+ };
17655
+ /** @description Conflict. A type of urn:brokerplatform:problem:concurrency-conflict means someone else changed the record first and nothing was written: read it again and decide again. Any other type is a conflict this operation decided itself, and retrying it unchanged will not help. */
17656
+ 409: {
17657
+ headers: {
17658
+ [name: string]: unknown;
17659
+ };
17660
+ content: {
17661
+ "application/problem+json": components["schemas"]["ConcurrencyConflictProblem"] | components["schemas"]["ProblemDetails"];
17662
+ };
17663
+ };
17664
+ /** @description Precondition Required (RFC 6585). The request carried no If-Match, or carried If-Match: *, which protects nothing. Nothing was read or written. Read the record, then send its concurrencyToken as If-Match. */
17665
+ 428: {
17666
+ headers: {
17667
+ [name: string]: unknown;
17668
+ };
17669
+ content: {
17670
+ "application/problem+json": components["schemas"]["PreconditionRequiredProblem"];
17671
+ };
17672
+ };
17673
+ };
17674
+ };
17675
+ AbandonCustomerImport: {
17676
+ parameters: {
17677
+ query?: never;
17678
+ header: {
17679
+ /** @description Required. The concurrencyToken of the record as it was read, sent back unchanged. A write without it, or with *, is refused with 428; a token that is no longer current is refused with 409 (issue #517, client 5.0.0). */
17680
+ "If-Match": string;
17681
+ };
17682
+ path: {
17683
+ id: string;
17684
+ };
17685
+ cookie?: never;
17686
+ };
17687
+ requestBody?: never;
17688
+ responses: {
17689
+ /** @description OK */
17690
+ 200: {
17691
+ headers: {
17692
+ [name: string]: unknown;
17693
+ };
17694
+ content: {
17695
+ "application/json": components["schemas"]["CustomerImportRunResponse"];
17696
+ };
17697
+ };
17698
+ /** @description Bad Request */
17699
+ 400: {
17700
+ headers: {
17701
+ [name: string]: unknown;
17702
+ };
17703
+ content: {
17704
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
17705
+ };
17706
+ };
17707
+ /** @description Not Found */
17708
+ 404: {
17709
+ headers: {
17710
+ [name: string]: unknown;
17711
+ };
17712
+ content?: never;
17713
+ };
17714
+ /** @description Conflict. A type of urn:brokerplatform:problem:concurrency-conflict means someone else changed the record first and nothing was written: read it again and decide again. Any other type is a conflict this operation decided itself, and retrying it unchanged will not help. */
17715
+ 409: {
17716
+ headers: {
17717
+ [name: string]: unknown;
17718
+ };
17719
+ content: {
17720
+ "application/problem+json": components["schemas"]["ConcurrencyConflictProblem"] | components["schemas"]["ProblemDetails"];
17721
+ };
17722
+ };
17723
+ /** @description Precondition Required (RFC 6585). The request carried no If-Match, or carried If-Match: *, which protects nothing. Nothing was read or written. Read the record, then send its concurrencyToken as If-Match. */
17724
+ 428: {
17725
+ headers: {
17726
+ [name: string]: unknown;
17727
+ };
17728
+ content: {
17729
+ "application/problem+json": components["schemas"]["PreconditionRequiredProblem"];
17730
+ };
17731
+ };
17732
+ };
17733
+ };
17457
17734
  ListOrganisations: {
17458
17735
  parameters: {
17459
17736
  query?: {
@@ -21086,6 +21363,171 @@ export interface operations {
21086
21363
  };
21087
21364
  };
21088
21365
  };
21366
+ ListPolicyImports: {
21367
+ parameters: {
21368
+ query?: {
21369
+ cursor?: string;
21370
+ limit?: number | string;
21371
+ };
21372
+ header?: never;
21373
+ path?: never;
21374
+ cookie?: never;
21375
+ };
21376
+ requestBody?: never;
21377
+ responses: {
21378
+ /** @description OK */
21379
+ 200: {
21380
+ headers: {
21381
+ [name: string]: unknown;
21382
+ };
21383
+ content: {
21384
+ "application/json": components["schemas"]["PolicyImportRunPage"];
21385
+ };
21386
+ };
21387
+ /** @description Bad Request */
21388
+ 400: {
21389
+ headers: {
21390
+ [name: string]: unknown;
21391
+ };
21392
+ content: {
21393
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
21394
+ };
21395
+ };
21396
+ };
21397
+ };
21398
+ UploadPolicyImport: {
21399
+ parameters: {
21400
+ query?: never;
21401
+ header?: never;
21402
+ path?: never;
21403
+ cookie?: never;
21404
+ };
21405
+ requestBody: {
21406
+ content: {
21407
+ "multipart/form-data": components["schemas"]["PolicyImportUpload"];
21408
+ };
21409
+ };
21410
+ responses: {
21411
+ /** @description Accepted */
21412
+ 202: {
21413
+ headers: {
21414
+ [name: string]: unknown;
21415
+ };
21416
+ content: {
21417
+ "application/json": components["schemas"]["PolicyImportRunResponse"];
21418
+ };
21419
+ };
21420
+ /** @description Bad Request */
21421
+ 400: {
21422
+ headers: {
21423
+ [name: string]: unknown;
21424
+ };
21425
+ content: {
21426
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
21427
+ };
21428
+ };
21429
+ /** @description Conflict. A type of urn:brokerplatform:problem:concurrency-conflict means someone else changed the record first and nothing was written: read it again and decide again. Any other type is a conflict this operation decided itself, and retrying it unchanged will not help. */
21430
+ 409: {
21431
+ headers: {
21432
+ [name: string]: unknown;
21433
+ };
21434
+ content: {
21435
+ "application/problem+json": components["schemas"]["ConcurrencyConflictProblem"] | components["schemas"]["ProblemDetails"];
21436
+ };
21437
+ };
21438
+ /** @description Payload Too Large */
21439
+ 413: {
21440
+ headers: {
21441
+ [name: string]: unknown;
21442
+ };
21443
+ content: {
21444
+ "application/problem+json": components["schemas"]["ProblemDetails"];
21445
+ };
21446
+ };
21447
+ /** @description Too Many Requests (ADR-0051). Your organisation has used its budget of import uploads for this kind of record in the last day; every admitted upload counts, including ones refused because the file could not be read. Nothing was read and no import was started. budget is always tenant. Wait the number of seconds in Retry-After (also in retryAfterSeconds) before trying again. */
21448
+ 429: {
21449
+ headers: {
21450
+ /** @description Whole seconds to wait before retrying; at least 1. */
21451
+ "Retry-After": number;
21452
+ [name: string]: unknown;
21453
+ };
21454
+ content: {
21455
+ "application/problem+json": components["schemas"]["RateLimitedProblem"];
21456
+ };
21457
+ };
21458
+ };
21459
+ };
21460
+ GetPolicyImport: {
21461
+ parameters: {
21462
+ query?: never;
21463
+ header?: never;
21464
+ path: {
21465
+ id: string;
21466
+ };
21467
+ cookie?: never;
21468
+ };
21469
+ requestBody?: never;
21470
+ responses: {
21471
+ /** @description OK */
21472
+ 200: {
21473
+ headers: {
21474
+ [name: string]: unknown;
21475
+ };
21476
+ content: {
21477
+ "application/json": components["schemas"]["PolicyImportRunResponse"];
21478
+ };
21479
+ };
21480
+ /** @description Not Found */
21481
+ 404: {
21482
+ headers: {
21483
+ [name: string]: unknown;
21484
+ };
21485
+ content?: never;
21486
+ };
21487
+ };
21488
+ };
21489
+ ListPolicyImportRows: {
21490
+ parameters: {
21491
+ query?: {
21492
+ outcome?: string;
21493
+ cursor?: string;
21494
+ limit?: number | string;
21495
+ };
21496
+ header?: never;
21497
+ path: {
21498
+ id: string;
21499
+ };
21500
+ cookie?: never;
21501
+ };
21502
+ requestBody?: never;
21503
+ responses: {
21504
+ /** @description OK */
21505
+ 200: {
21506
+ headers: {
21507
+ [name: string]: unknown;
21508
+ };
21509
+ content: {
21510
+ "application/json": components["schemas"]["PolicyImportRowPage"];
21511
+ };
21512
+ };
21513
+ /** @description Bad Request */
21514
+ 400: {
21515
+ headers: {
21516
+ [name: string]: unknown;
21517
+ };
21518
+ content: {
21519
+ "application/problem+json": components["schemas"]["HttpValidationProblemDetails"];
21520
+ };
21521
+ };
21522
+ /** @description Not Found */
21523
+ 404: {
21524
+ headers: {
21525
+ [name: string]: unknown;
21526
+ };
21527
+ content?: never;
21528
+ };
21529
+ };
21530
+ };
21089
21531
  ReadPaymentGates: {
21090
21532
  parameters: {
21091
21533
  query?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insurance-broker/api-client",
3
- "version": "5.23.0",
3
+ "version": "5.25.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,