@alvera-ai/platform-sdk 0.17.0 → 0.18.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 (83) hide show
  1. package/.agent/AGENTS.md +82 -144
  2. package/.agent/account_management.md +2 -2
  3. package/.agent/action_logs.md +4 -4
  4. package/.agent/ai_agents.md +28 -21
  5. package/.agent/ai_sandbox.md +49 -39
  6. package/.agent/connected_apps.md +3 -3
  7. package/.agent/cookbook/_fixtures/README.md +1 -1
  8. package/.agent/cookbook/_fixtures/{foundation → organic-marketing}/_lead_submissions_foundation_generic_table.liquid +1 -1
  9. package/.agent/cookbook/_fixtures/organic-marketing/_lead_submissions_foundation_legal_entity.liquid +80 -0
  10. package/.agent/cookbook/_fixtures/{foundation → organic-marketing}/_lead_submissions_foundation_mdm.liquid +2 -1
  11. package/.agent/cookbook/_fixtures/payments-compliance/_compliance_screenings_generic_table.liquid +57 -0
  12. package/.agent/cookbook/_fixtures/payments-compliance/_compliance_screenings_legal_entity.liquid +30 -0
  13. package/.agent/cookbook/_fixtures/payments-compliance/_compliance_screenings_mdm.liquid +44 -0
  14. package/.agent/cookbook/_fixtures/payments-compliance/_payment_accounts_generic_table.liquid +57 -0
  15. package/.agent/cookbook/_fixtures/payments-compliance/_payment_accounts_legal_entity.liquid +36 -0
  16. package/.agent/cookbook/_fixtures/payments-compliance/_payment_accounts_mdm.liquid +41 -0
  17. package/.agent/cookbook/_fixtures/primary-care-feedback/_cahps_appointments_generic_table.liquid +70 -0
  18. package/.agent/cookbook/_fixtures/primary-care-feedback/_cahps_appointments_legal_entity.liquid +52 -0
  19. package/.agent/cookbook/_fixtures/primary-care-feedback/_cahps_appointments_mdm.liquid +42 -0
  20. package/.agent/cookbook/_fixtures/subscription-saas/_customers_subscription_generic_table.liquid +38 -0
  21. package/.agent/cookbook/_fixtures/subscription-saas/_customers_subscription_legal_entity.liquid +48 -0
  22. package/.agent/cookbook/_fixtures/subscription-saas/_customers_subscription_mdm.liquid +49 -0
  23. package/.agent/cookbook/organic-marketing.md +2801 -0
  24. package/.agent/cookbook/payments-compliance.md +2180 -0
  25. package/.agent/cookbook/primary-care.md +2175 -0
  26. package/.agent/cookbook/subscription-saas.md +2403 -0
  27. package/.agent/data_activation_clients.md +65 -52
  28. package/.agent/datalakes.md +338 -171
  29. package/.agent/errors.md +3 -3
  30. package/.agent/generic_tables.md +151 -62
  31. package/.agent/interoperability_contracts.md +57 -22
  32. package/.agent/mdm.md +136 -153
  33. package/.agent/messages.md +36 -34
  34. package/.agent/mock-services.md +1 -1
  35. package/.agent/mutations.md +2 -2
  36. package/.agent/templates.md +14 -13
  37. package/.agent/tools.md +63 -21
  38. package/.agent/type_naming.md +13 -13
  39. package/.agent/workflows.md +99 -53
  40. package/README.md +2 -2
  41. package/dist/bin/platform-sdk.mjs +33 -47
  42. package/dist/bin/platform-sdk.mjs.map +1 -1
  43. package/dist/index.d.mts +565 -379
  44. package/dist/index.d.mts.map +1 -1
  45. package/dist/index.mjs +494 -59
  46. package/dist/index.mjs.map +1 -1
  47. package/package.json +4 -3
  48. package/.agent/cookbook/_fixtures/foundation/_lead_submissions_foundation_legal_entity.liquid +0 -88
  49. package/.agent/cookbook/_fixtures/healthcare/_cahps_appointments_healthcare_appointment.liquid +0 -47
  50. package/.agent/cookbook/_fixtures/healthcare/_cahps_appointments_healthcare_mdm.liquid +0 -24
  51. package/.agent/cookbook/_fixtures/healthcare/_cahps_appointments_healthcare_patient.liquid +0 -38
  52. package/.agent/cookbook/_fixtures/payments/_compliance_screenings_payments_compliance_screening.liquid +0 -59
  53. package/.agent/cookbook/_fixtures/payments/_compliance_screenings_payments_mdm.liquid +0 -36
  54. package/.agent/cookbook/_fixtures/payments/_payment_accounts_payments_mdm.liquid +0 -30
  55. package/.agent/cookbook/_fixtures/payments/_payment_accounts_payments_payment_account.liquid +0 -55
  56. package/.agent/cookbook/_fixtures/subscription/_customers_subscription_mdm.liquid +0 -20
  57. package/.agent/cookbook/_setup/foundation.md +0 -359
  58. package/.agent/cookbook/_setup/healthcare.md +0 -361
  59. package/.agent/cookbook/_setup/payments.md +0 -365
  60. package/.agent/cookbook/_setup/subscription.md +0 -364
  61. package/.agent/cookbook/action-status-updaters.md +0 -278
  62. package/.agent/cookbook/ai-agent-invoke.md +0 -279
  63. package/.agent/cookbook/appointment-review-sms-workflow.md +0 -801
  64. package/.agent/cookbook/birthday-greeting-sms-trigger.md +0 -696
  65. package/.agent/cookbook/bulk-ingest.md +0 -302
  66. package/.agent/cookbook/contact-us-triage-with-llm.md +0 -663
  67. package/.agent/cookbook/dunning-sms-for-delinquent.md +0 -659
  68. package/.agent/cookbook/generic-tables.md +0 -244
  69. package/.agent/cookbook/invite-team.md +0 -200
  70. package/.agent/cookbook/kyc-notification-on-account-activation.md +0 -661
  71. package/.agent/cookbook/marketing-campaign-send.md +0 -1044
  72. package/.agent/cookbook/paginated-restapi-poller.md +0 -383
  73. package/.agent/cookbook/rest-fetch.md +0 -273
  74. package/.agent/cookbook/sanctions-screening-with-agent-review.md +0 -773
  75. package/.agent/cookbook/score-leads-with-llm-categorization.md +0 -665
  76. package/.agent/cookbook/system-templates.md +0 -165
  77. package/.agent/cookbook/talk-to-data.md +0 -178
  78. package/.agent/cookbook/triage-prospects-by-priority.md +0 -571
  79. package/.agent/cookbook/welcome-sms-for-customers.md +0 -647
  80. /package/.agent/cookbook/_fixtures/{healthcare → primary-care-feedback}/memorandum-of-association-01.png +0 -0
  81. /package/.agent/cookbook/_fixtures/{healthcare → primary-care-feedback}/sample_two_page.pdf +0 -0
  82. /package/.agent/cookbook/_fixtures/{subscription → subscription-saas}/_customers_subscription_customer.liquid +0 -0
  83. /package/.agent/cookbook/_fixtures/{subscription → subscription-saas}/stripe_customers_batch1.csv +0 -0
package/dist/index.mjs CHANGED
@@ -817,6 +817,23 @@ const platformApiDatalakeControllerTextToSql = (options) => (options.client ?? c
817
817
  }
818
818
  });
819
819
  /**
820
+ * Get the advanced migrations catalog as markdown
821
+ *
822
+ * Returns one page of this datalake's advanced migrations, rendered as markdown for AI context. Accepts the same pagination, filtering and ordering parameters as `index`; each migration appears with its version, checksum and both SQL statements.
823
+ */
824
+ const platformApiAdvancedMigrationControllerMetadata = (options) => (options.client ?? client).get({
825
+ querySerializer: { parameters: { filters: { array: { style: "deepObject" } } } },
826
+ security: [{
827
+ name: "X-API-Key",
828
+ type: "apiKey"
829
+ }, {
830
+ scheme: "bearer",
831
+ type: "http"
832
+ }],
833
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/advanced-migrations/metadata",
834
+ ...options
835
+ });
836
+ /**
820
837
  * Verify an X-API-Key credential
821
838
  *
822
839
  * Returns the API-key session's tenant, role, and key information — the
@@ -841,21 +858,31 @@ const platformApiSessionControllerVerifyApiKey = (options) => (options?.client ?
841
858
  /**
842
859
  * Enqueue datalake migrations
843
860
  *
844
- * Enqueues a `DatalakeMigrationWorker` Oban job that brings the datalake's
845
- * per-tenant database to the current schema version. Required after
846
- * `POST /datalakes`, which only persists the metadata row — it does NOT
847
- * run migrations against the per-tenant DB. Without this step, every
848
- * downstream resource that touches per-datalake tables
849
- * (`data_activation_logs`, MDM tables, dataset tables) will fail with
850
- * `relation … does not exist`.
861
+ * Enqueues a `Platform.Datalakes.Workers.Migrator` Oban job that brings the
862
+ * datalake's per-tenant database to the current schema version, **and one
863
+ * more for every lake derived from it**. Asking a *derived* lake to migrate
864
+ * enqueues only that lake. Required after `POST /datalakes`, which only
865
+ * persists the metadata row — it does NOT run migrations against the
866
+ * per-tenant DB. Without this step, every downstream resource that touches
867
+ * per-datalake tables (`data_activation_logs`, MDM tables, dataset tables)
868
+ * will fail with `relation … does not exist`.
851
869
  *
852
- * Asynchronous: returns 202 Accepted as soon as the job is enqueued.
870
+ * Asynchronous: returns 202 Accepted as soon as the jobs are enqueued.
853
871
  * Callers poll `GET /datalakes/:id` and watch for `status: :ready`.
854
- * Idempotent at the job level — re-enqueueing on a migrated datalake
855
- * is a no-op once the worker completes.
856
872
  *
857
- * The LiveView "Migrate Datalake" button calls the same migrator
858
- * synchronously inside the LiveView process.
873
+ * **The response describes one job — this datalake's own.** It is the first
874
+ * of the batch; the derived lakes' jobs queue behind it and are not reported
875
+ * here.
876
+ *
877
+ * Deduplicated rather than idempotent: uniqueness is keyed on
878
+ * `(datalake_id, mode)` across incomplete states, so a second call while the
879
+ * first job is still queued or executing comes back with **that** job instead
880
+ * of inserting a new one — `job_id` and `enqueued_at` are then the earlier
881
+ * job's, and `status` still reads `enqueued`. Once the job has completed a
882
+ * fresh one is inserted, runs, and finds nothing left to migrate.
883
+ *
884
+ * The LiveView "Migrate Datalake" button enqueues the same jobs through the
885
+ * same helper. Neither path migrates inside the calling process.
859
886
  *
860
887
  * Requires a tenant-scoped Bearer with membership role `admin`.
861
888
  *
@@ -985,7 +1012,7 @@ const platformApiDataActivationClientControllerUpdate = (options) => (options.cl
985
1012
  /**
986
1013
  * Create datalake download link
987
1014
  *
988
- * Returns a presigned GET URL for an object stored in one of the datalake's cloud storage buckets (regulated or unregulated). Typical use: read a `DACRawLogFile.object_key` (`s3://bucket/key`) off a data-activation log row, split it into `bucket` and `key`, then POST here to obtain a short-lived download URL.
1015
+ * Returns a presigned GET URL for an object stored in one of the datalake's cloud storage buckets (raw or tokenized). Typical use: read a `DACRawLogFile.object_key` (`s3://bucket/key`) off a data-activation log row, split it into `bucket` and `key`, then POST here to obtain a short-lived download URL.
989
1016
  */
990
1017
  const platformApiDatalakeControllerCreateDownloadLink = (options) => (options.client ?? client).post({
991
1018
  security: [{
@@ -1050,7 +1077,7 @@ const platformApiDatalakeControllerShow = (options) => (options.client ?? client
1050
1077
  * can resend a full manifest unchanged.
1051
1078
  *
1052
1079
  * The platform performs the same gates as create before persisting: DB
1053
- * connection probes against every regulated/unregulated reader/writer
1080
+ * connection probes against every raw/tokenized reader/writer
1054
1081
  * declared in the body, plus a cloud-storage reachability probe. Any
1055
1082
  * probe failure surfaces as `422 Unprocessable Entity` with the failing
1056
1083
  * field annotated in the changeset.
@@ -1343,7 +1370,7 @@ const platformApiWorkflowRunControllerCancel = (options) => (options.client ?? c
1343
1370
  /**
1344
1371
  * Create datalake upload link
1345
1372
  *
1346
- * Returns a presigned PUT URL for uploading a file (NDJSON or CSV) directly to the datalake's regulated cloud storage. The returned key lives under `uploads/<datalake_id>/` and can be passed to downstream endpoints (e.g. data activation client ingest-file) that accept a pre-uploaded storage key.
1373
+ * Returns a presigned PUT URL for uploading a file (NDJSON or CSV) directly to the datalake's raw cloud storage. The returned key lives under `uploads/<datalake_id>/` and can be passed to downstream endpoints (e.g. data activation client ingest-file) that accept a pre-uploaded storage key.
1347
1374
  */
1348
1375
  const platformApiDatalakeControllerCreateUploadLink = (options) => (options.client ?? client).post({
1349
1376
  querySerializer: { parameters: { filters: { array: { style: "deepObject" } } } },
@@ -1566,12 +1593,12 @@ const platformApiActionStatusUpdaterControllerRefresh = (options) => (options.cl
1566
1593
  * Resolve a short URL token to a page
1567
1594
  *
1568
1595
  * Given a connected app slug and a Puid short URL token, resolves the token to
1569
- * the pre-stored route path and MDM subject ID. The Cloudflare app calls this
1596
+ * the pre-stored route path and legal entity id. The Cloudflare app calls this
1570
1597
  * endpoint when a customer clicks a short URL, forwarding the original client
1571
1598
  * headers (user-agent, IP, country) in the request body.
1572
1599
  *
1573
1600
  * When the page token is linked to a message (via workflow action execution),
1574
- * the regulated message details (raw body, channel, status) are included in
1601
+ * the raw message details (raw body, channel, status) are included in
1575
1602
  * the response.
1576
1603
  *
1577
1604
  * **Requires X-API-Key authentication.**
@@ -1625,9 +1652,9 @@ const platformApiDatalakeControllerChecksum = (options) => (options.client ?? cl
1625
1652
  *
1626
1653
  * | Field | Bucket | Body |
1627
1654
  * | --------------- | ------------ | ---------------------------------------------------------------------------------------- |
1628
- * | `key` (response)| regulated | the raw JSON payload uploaded by THIS request |
1629
- * | `input_files` | regulated | source artifacts consumed by the batch (one per ingest call merged into the batch) |
1630
- * | `output_files` | mixed | merged NDJSON archives, one `{object_key, mode}` per bucket (`regulated` + `unregulated`)|
1655
+ * | `key` (response)| raw | the raw JSON payload uploaded by THIS request |
1656
+ * | `input_files` | raw | source artifacts consumed by the batch (one per ingest call merged into the batch) |
1657
+ * | `output_files` | raw | the merged NDJSON archive as `{object_key, mode}` |
1631
1658
  *
1632
1659
  * ### Fetching diagnostic artifacts
1633
1660
  *
@@ -1635,24 +1662,35 @@ const platformApiDatalakeControllerChecksum = (options) => (options.client ?? cl
1635
1662
  * (`POST /api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/download-link`):
1636
1663
  *
1637
1664
  * # raw payload that this ingest call uploaded
1638
- * { "bucket": "<regulated>", "key": "<response.key>" }
1665
+ * { "bucket": "<raw>", "key": "<response.key>" }
1639
1666
  *
1640
- * # per-bucket merged archive (after batch completes)
1641
- * { "bucket": "<regulated|unregulated>", "key": "<output_files[i].object_key>" }
1667
+ * # merged archive (after batch completes)
1668
+ * { "bucket": "<raw>", "key": "<output_files[0].object_key>" }
1642
1669
  *
1643
- * `output_files[i].mode` tells you which bucket each archive lives in
1644
- * (`regulated` for raw attrs, `unregulated` for tokenized). The regulated /
1645
- * unregulated bucket names are exposed on the datalake response as
1646
- * `regulated_cloud_storage.bucket` / `unregulated_cloud_storage.bucket`.
1670
+ * The lake has one bucket, so there is one archive and
1671
+ * `output_files[0].mode` is always `raw`. The bucket name is exposed on the
1672
+ * datalake response as `cloud_storage.bucket`.
1647
1673
  *
1648
1674
  * ### Failure surfacing
1649
1675
  *
1650
1676
  * On a `{:error, _}` ingest response the platform returns `422` with an
1651
- * `error` string. For pipeline failures (per-row Oban job exceptions),
1652
- * the DataActivationLog row's `rows_ingested` will be lower than the
1653
- * submitted count; per-row diagnostics live in the Oban job table
1654
- * (`oban_jobs.errors`) keyed by `batch_id`. There is no `error.json`
1655
- * artifact on the DAC path — that convention is workflow-only.
1677
+ * `error` string.
1678
+ *
1679
+ * For pipeline failures (a row the contract refused), read the
1680
+ * `DataActivationLog` row's **`status` and `error`**: a refused row moves
1681
+ * `status` to `partial` and writes the reason into `error`. Those two are the
1682
+ * failure signal.
1683
+ *
1684
+ * **`rows_ingested` is not.** It is seeded to the submitted total when the
1685
+ * batch is enqueued and is never lowered — a batch that took ten rows and
1686
+ * persisted nine still reads ten. `dataset_updated`, maintained by a database
1687
+ * trigger, counts only the rows whose checksum actually changed, so it sits
1688
+ * below `rows_ingested` on clean batches too and cannot be used to infer a
1689
+ * failure either.
1690
+ *
1691
+ * Per-row diagnostics live in the Oban job table (`oban_jobs.errors`) keyed by
1692
+ * `batch_id`. There is no `error.json` artifact on the DAC path — that
1693
+ * convention is workflow-only.
1656
1694
  *
1657
1695
  */
1658
1696
  const platformApiDataActivationClientControllerIngest = (options) => (options.client ?? client).post({
@@ -1721,6 +1759,43 @@ const platformApiActionStatusUpdaterControllerUpdate = (options) => (options.cli
1721
1759
  }
1722
1760
  });
1723
1761
  /**
1762
+ * List advanced migrations
1763
+ *
1764
+ * Returns a paginated list of the datalake's advanced migrations, oldest version first. A migration belongs to exactly one datalake, so this is the whole list for it.
1765
+ */
1766
+ const platformApiAdvancedMigrationControllerIndex = (options) => (options.client ?? client).get({
1767
+ querySerializer: { parameters: { filters: { array: { style: "deepObject" } } } },
1768
+ security: [{
1769
+ name: "X-API-Key",
1770
+ type: "apiKey"
1771
+ }, {
1772
+ scheme: "bearer",
1773
+ type: "http"
1774
+ }],
1775
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/advanced-migrations",
1776
+ ...options
1777
+ });
1778
+ /**
1779
+ * Create an advanced migration
1780
+ *
1781
+ * Writes a new advanced migration for the datalake. It is stored, not executed — the migrator applies it on the datalake's next migration run, in version order. The version is assigned by the platform; `datalake_id` comes from the URL, not the body.
1782
+ */
1783
+ const platformApiAdvancedMigrationControllerCreate = (options) => (options.client ?? client).post({
1784
+ security: [{
1785
+ name: "X-API-Key",
1786
+ type: "apiKey"
1787
+ }, {
1788
+ scheme: "bearer",
1789
+ type: "http"
1790
+ }],
1791
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/advanced-migrations",
1792
+ ...options,
1793
+ headers: {
1794
+ "Content-Type": "application/json",
1795
+ ...options.headers
1796
+ }
1797
+ });
1798
+ /**
1724
1799
  * Tools catalog as markdown
1725
1800
  *
1726
1801
  * Returns one page of the tools catalog for the current datalake, rendered as markdown. Accepts the same pagination, filtering, and ordering parameters as `index`; each tool appears with its wrapper fields, body-side schema, and the test-invocation block. The page's pagination state is written into a narrative line at the top of the body. Trailing `Shared Types` section documents `TemplateConfig` + Solid filters.
@@ -1802,27 +1877,31 @@ const platformApiWorkflowRunControllerShow = (options) => (options.client ?? cli
1802
1877
  ...options
1803
1878
  });
1804
1879
  /**
1805
- * List industry-registered datasets for the datalake
1880
+ * List the datasets the platform registers
1806
1881
  *
1807
- * Returns the **industry-registered** dataset name strings for this
1808
- * datalake's `data_domain` — e.g. `patient`, `appointment` for
1809
- * healthcare; `legal_entity`, `beneficial_owner` for foundation. Each
1810
- * name is a valid argument to
1882
+ * Returns the dataset name strings the platform registers:
1883
+ * `action_log`, `beneficial_owner`, `document`, `legal_entity`, `message`.
1884
+ * Each name is a valid argument to
1811
1885
  * `GET /api/v1/datasets/:dataset_type/metadata` for the rendered
1812
1886
  * schema docs, and to `GET /api/v1/datasets/:dataset_type/search` for
1813
1887
  * row data.
1814
1888
  *
1889
+ * **The list does not vary by datalake or by tenant.** It is the key set of a
1890
+ * literal map in `Platform.Datasets`, read through
1891
+ * `Platform.Datasets.registered_datasets/0` — every datalake answers the same
1892
+ * five names, and the datalake in the path scopes the request for
1893
+ * authorisation only. There is no per-industry registry behind it.
1894
+ *
1815
1895
  * **This endpoint does not list user-defined generic tables.** Concern
1816
1896
  * separation: generic tables are CRUD-able resources with their own
1817
1897
  * lifecycle and live under
1818
1898
  * `GET /api/v1/tenants/:tenant_slug/datalakes/:datalake_slug/generic-tables`.
1819
1899
  * To enumerate the full set of queryable datasets a caller must hit
1820
- * both endpoints (`system-datasets` for industry built-ins and
1900
+ * both endpoints (`system-datasets` for the platform-registered five and
1821
1901
  * `generic-tables` for operator-defined ones). Each surface owns one
1822
1902
  * concern: enumeration here, lifecycle there.
1823
1903
  *
1824
- * Pure read — no DB access on the platform side. Derived from
1825
- * `Platform.Dataset.get_registered_datasets/1`.
1904
+ * Pure read — no DB access on the platform side.
1826
1905
  *
1827
1906
  */
1828
1907
  const platformApiDatalakeControllerSystemDatasets = (options) => (options.client ?? client).get({
@@ -2028,7 +2107,7 @@ const platformApiDatasetControllerSearch = (options) => (options.client ?? clien
2028
2107
  /**
2029
2108
  * Create and execute a SQL search for a dataset
2030
2109
  *
2031
- * Creates a `UserSearch` row, runs `INSERT INTO search_results SELECT ... WHERE <search_query>` against the regulated schema, and returns the `UserSearch` resource (including `status`, `results_count`, and `error_message`). The session's `data_access_mode` controls which schema is queried.
2110
+ * Creates a `UserSearch` row, runs `INSERT INTO search_results SELECT ... WHERE <search_query>` against the lake, and returns the `UserSearch` resource (including `status`, `results_count`, and `error_message`). The session's `data_access_mode` controls which schema is queried.
2032
2111
  */
2033
2112
  const platformApiDatasetControllerCreateUserSearch = (options) => (options.client ?? client).post({
2034
2113
  security: [{
@@ -2046,6 +2125,45 @@ const platformApiDatasetControllerCreateUserSearch = (options) => (options.clien
2046
2125
  }
2047
2126
  });
2048
2127
  /**
2128
+ * How far each table in a derived lake's copy has got
2129
+ *
2130
+ * Every table the tokenized or redacted copy carries, and how far each one has
2131
+ * got. The same list, in the same words, that the platform's own Tokenization
2132
+ * screen shows — a table reading `copying` there never reads something else here.
2133
+ *
2134
+ * **Every table, not only the ones behind.** A caller cannot ask to re-copy a
2135
+ * table it cannot see, and a table someone merely suspects has to be listed even
2136
+ * when the copy says it is fine.
2137
+ *
2138
+ * Only `caught_up` has arrived. `finished_copy` sounds like it has and has not:
2139
+ * the first pass is done and the changes since have not been applied yet, so a
2140
+ * table sitting there is still behind.
2141
+ *
2142
+ * For tables that are behind, `resync_empties` says what `POST .../resync` would
2143
+ * actually empty — the table plus anything that points at it. Postgres will not
2144
+ * empty a table anything references, so re-copying a parent means re-copying its
2145
+ * children too, and a caller offering that action should be able to say how many
2146
+ * before it happens.
2147
+ *
2148
+ * `:mode` is `tokenized` or `redacted` and names the COPY. The path names the
2149
+ * primary lake, because a derived lake is reached by naming its primary and a
2150
+ * data-access mode — it has a slug, but a slug is not an address.
2151
+ *
2152
+ * Requires a tenant-scoped Bearer with membership role `admin`.
2153
+ *
2154
+ */
2155
+ const platformApiDatalakeControllerDerivedLakeTables = (options) => (options.client ?? client).get({
2156
+ security: [{
2157
+ name: "X-API-Key",
2158
+ type: "apiKey"
2159
+ }, {
2160
+ scheme: "bearer",
2161
+ type: "http"
2162
+ }],
2163
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/tokenization/{mode}/tables",
2164
+ ...options
2165
+ });
2166
+ /**
2049
2167
  * Compute the drift checksum for a generic table config
2050
2168
  *
2051
2169
  * Returns the server-computed drift fingerprint a create/update would stamp for the submitted config, without persisting anything. `alvera plan` posts the operator's desired config here and compares the result against the deployed table's `checksum` (from GET) to decide absent / unchanged / edited.
@@ -2627,9 +2745,29 @@ const platformApiAgenticWorkflowOperationsControllerBatchLogsIndex = (options) =
2627
2745
  ...options
2628
2746
  });
2629
2747
  /**
2748
+ * Compute the drift checksum for an advanced migration config
2749
+ *
2750
+ * Returns the server-computed drift fingerprint a create/replace would stamp for the submitted config, without persisting anything. `alvera plan` posts the desired config here and compares the result against the stored `checksum` (from GET) to decide absent / unchanged / edited. The version is server-assigned and is deliberately not part of the fingerprint.
2751
+ */
2752
+ const platformApiAdvancedMigrationControllerChecksum = (options) => (options.client ?? client).post({
2753
+ security: [{
2754
+ name: "X-API-Key",
2755
+ type: "apiKey"
2756
+ }, {
2757
+ scheme: "bearer",
2758
+ type: "http"
2759
+ }],
2760
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/advanced-migrations/checksum",
2761
+ ...options,
2762
+ headers: {
2763
+ "Content-Type": "application/json",
2764
+ ...options.headers
2765
+ }
2766
+ });
2767
+ /**
2630
2768
  * Get datalakes catalog as markdown
2631
2769
  *
2632
- * Returns one page of the datalake catalog for the tenant, rendered as markdown — each entry carries slug, name, data_domain, status, repo_version and points at the per-datalake metadata endpoint for the full domain inventory. Accepts the same pagination, filtering, and ordering parameters as the datalake `index`; the page's pagination state is written into a narrative line at the top.
2770
+ * Returns one page of the datalake catalog for the tenant, rendered as markdown — each entry carries slug, name, status, repo_version and points at the per-datalake metadata endpoint for the full domain inventory. Accepts the same pagination, filtering, and ordering parameters as the datalake `index`; the page's pagination state is written into a narrative line at the top.
2633
2771
  */
2634
2772
  const platformApiDatalakeControllerMetadata = (options) => (options.client ?? client).get({
2635
2773
  querySerializer: { parameters: { filters: { array: { style: "deepObject" } } } },
@@ -2644,6 +2782,54 @@ const platformApiDatalakeControllerMetadata = (options) => (options.client ?? cl
2644
2782
  ...options
2645
2783
  });
2646
2784
  /**
2785
+ * Empty one table in a derived lake's copy and copy it again
2786
+ *
2787
+ * The repair for a table that stopped arriving because the copy already held
2788
+ * rows it was being sent. Restarting the copy cannot fix that one — it restarts a
2789
+ * worker and discards nothing, so a copy that broke on a row it cannot insert
2790
+ * breaks on the same row again.
2791
+ *
2792
+ * **It empties the table, then copies it from the start.** Every row in a derived
2793
+ * lake can be produced again from the original, which is what makes emptying one
2794
+ * a repair rather than a loss. Nothing is written to the original lake — the only
2795
+ * thing that changes there is which tables its publication names, and only for
2796
+ * the tables being repaired.
2797
+ *
2798
+ * **It may empty more than one table.** Postgres will not empty a table anything
2799
+ * points at, however few rows the referencing tables hold, so repairing a parent
2800
+ * empties its children too — all of them re-copied by the same run. The response
2801
+ * says exactly which tables were emptied, and `GET .../tables` says beforehand.
2802
+ *
2803
+ * **It refuses a name it did not give you.** The table must be one this copy
2804
+ * carries or one the original can send. That gate is what stands between a typo
2805
+ * and an emptied table.
2806
+ *
2807
+ * **It does not roll back.** A failure part-way leaves the table empty and says
2808
+ * so, because the rows to put back are the ones that broke the copy in the first
2809
+ * place.
2810
+ *
2811
+ * Returns **202**: a fresh first pass has started and finishes later. Poll
2812
+ * `GET .../tables` and wait for the table to read `caught_up`.
2813
+ *
2814
+ * Requires a tenant-scoped Bearer with membership role `admin`.
2815
+ *
2816
+ */
2817
+ const platformApiDatalakeControllerResyncTable = (options) => (options.client ?? client).post({
2818
+ security: [{
2819
+ name: "X-API-Key",
2820
+ type: "apiKey"
2821
+ }, {
2822
+ scheme: "bearer",
2823
+ type: "http"
2824
+ }],
2825
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/tokenization/{mode}/resync",
2826
+ ...options,
2827
+ headers: {
2828
+ "Content-Type": "application/json",
2829
+ ...options.headers
2830
+ }
2831
+ });
2832
+ /**
2647
2833
  * Single action status updater metadata as markdown
2648
2834
  *
2649
2835
  * Returns markdown for one action status updater — wrapper + cron + updater body + template configs + bound tools. Drill into a bound tool's full metadata via `GET /datalakes/:datalake_slug/tools/:id/metadata`.
@@ -2771,12 +2957,12 @@ const platformApiDataActivationClientControllerCreate = (options) => (options.cl
2771
2957
  }
2772
2958
  });
2773
2959
  /**
2774
- * Verify subject identity
2960
+ * Verify legal entity identity
2775
2961
  *
2776
- * Verify a subject's identity against their master record using the
2962
+ * Verify a legal entity's identity against its master record using the
2777
2963
  * datalake's data-domain matching rules.
2778
2964
  *
2779
- * The body carries `subject_id` plus the subject's identity fields in the
2965
+ * The body carries `legal_entity_id` plus the legal entity's identity fields in the
2780
2966
  * **datalake's native vocabulary** — see the `MDMVerifyRequest` schema for
2781
2967
  * the field set per data domain (person identity, company identity, and
2782
2968
  * universal fields such as `identifiers`/`phone`/`email`). String fields are
@@ -2879,6 +3065,61 @@ const platformApiDatasetControllerDatasetMetadata = (options) => (options.client
2879
3065
  ...options
2880
3066
  });
2881
3067
  /**
3068
+ * Turn tokenization on for a datalake
3069
+ *
3070
+ * Provisions the two lakes derived from a raw one — the tokenized lake and
3071
+ * the redacted lake — and enqueues a migration for each. Returns the raw
3072
+ * lake with `derived_datalakes` preloaded.
3073
+ *
3074
+ * **Tokenization does not run in production, and needs a manual flag to
3075
+ * enable.** The setting naming where the derived databases run exists in
3076
+ * development and test configuration and nowhere else, so in an environment
3077
+ * where nobody has stood those databases up and pointed the platform at them,
3078
+ * this call cannot succeed — the two databases have to exist first. The
3079
+ * console's button is gated on the same check and does not render there.
3080
+ *
3081
+ * **Intended as both or neither** — they are created, destroyed and paid for
3082
+ * together. **Not atomic today.** The two are provisioned in sequence and each
3083
+ * commits on its own, so a run that provisions the tokenized lake and then
3084
+ * cannot provision the redacted one reports the failure and leaves the first in
3085
+ * place. Making the pair transactional is filed tech debt.
3086
+ *
3087
+ * A caller that gets an error here should re-read the lake and check
3088
+ * `derived_datalakes` rather than assume nothing was created. Note that the
3089
+ * console's "Turn on tokenization" button only appears when there are none, so a
3090
+ * half-provisioned lake is repaired through this endpoint or not at all.
3091
+ *
3092
+ * **Idempotent.** Already-provisioned lakes are returned exactly as they are,
3093
+ * so this is safe to call twice.
3094
+ *
3095
+ * The migration is not optional and not a second call: a derived lake is
3096
+ * provisioned EMPTY, and it needs the same tables the primary has before a
3097
+ * single row can land in it. Migrating is what labels its columns and starts
3098
+ * the copy. Those migrations are asynchronous — poll `GET /datalakes` and
3099
+ * watch the derived lakes for `status: :ready`.
3100
+ *
3101
+ * A derived lake is otherwise fully managed: nothing writes to one but the
3102
+ * replication apply, and there is no endpoint that creates, configures or
3103
+ * deletes one directly.
3104
+ *
3105
+ * The LiveView "Turn on tokenization" button does the same two things in the
3106
+ * same order.
3107
+ *
3108
+ * Requires a tenant-scoped Bearer with membership role `admin`.
3109
+ *
3110
+ */
3111
+ const platformApiDatalakeControllerProvisionTokenization = (options) => (options.client ?? client).post({
3112
+ security: [{
3113
+ name: "X-API-Key",
3114
+ type: "apiKey"
3115
+ }, {
3116
+ scheme: "bearer",
3117
+ type: "http"
3118
+ }],
3119
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/tokenization",
3120
+ ...options
3121
+ });
3122
+ /**
2882
3123
  * Delete a connected app
2883
3124
  *
2884
3125
  * Deletes a connected app (addressed by id) within the authenticated datalake. For managed apps, infrastructure cleanup is queued before the record is removed.
@@ -3020,7 +3261,7 @@ const platformApiToolControllerChecksum = (options) => (options.client ?? client
3020
3261
  /**
3021
3262
  * Get single system template details as markdown
3022
3263
  *
3023
- * Returns markdown for one system template, identified by its basename (`filename`) + `intent` query parameter. The datalake's `data_domain` (derived from `:datalake_slug`) is combined with `intent` to compute the search prefix; the server then resolves `filename` uniquely under that prefix. Out-of-domain templates are unreachable by URL construction. Returns 404 if no match, 409 if the basename is ambiguous within the resolved scope.
3264
+ * Returns markdown for one system template, identified by its basename (`filename`) + `intent` query parameter. The datalake (derived from `:datalake_slug`) is combined with `intent` to compute the search prefix; the server then resolves `filename` uniquely under that prefix. Out-of-domain templates are unreachable by URL construction. Returns 404 if no match, 409 if the basename is ambiguous within the resolved scope.
3024
3265
  */
3025
3266
  const platformApiTemplatesControllerMetadataDetails = (options) => (options.client ?? client).get({
3026
3267
  security: [{
@@ -3100,7 +3341,7 @@ const platformApiDatalakeControllerExecuteSql = (options) => (options.client ??
3100
3341
  * ## Per-step artifacts (audit trail)
3101
3342
  *
3102
3343
  * Each per-row WorkflowExecutionLog (WEL) writes a fixed set of JSON
3103
- * artifacts to the datalake's regulated cloud-storage bucket. The path is
3344
+ * artifacts to the datalake's cloud-storage bucket. The path is
3104
3345
  * deterministic and convention-driven — there is no separate listing
3105
3346
  * endpoint:
3106
3347
  *
@@ -3125,13 +3366,13 @@ const platformApiDatalakeControllerExecuteSql = (options) => (options.client ??
3125
3366
  *
3126
3367
  * Use the standard datalake download-link endpoint
3127
3368
  * (`POST /api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/download-link`)
3128
- * with `bucket = <regulated bucket>` and the convention key above. Example:
3369
+ * with `bucket = <the datalake's bucket>` and the convention key above. Example:
3129
3370
  *
3130
3371
  * POST /api/v1/tenants/acme/datalakes/clinical/download-link
3131
- * { "bucket": "clinical-regulated", "key": "workflows/<wf_id>/executions/<wel_id>/error.json" }
3372
+ * { "bucket": "clinical-lake", "key": "workflows/<wf_id>/executions/<wel_id>/error.json" }
3132
3373
  *
3133
- * The response carries a short-lived signed URL. The regulated bucket is
3134
- * exposed on the datalake response as `regulated_cloud_storage.bucket`.
3374
+ * The response carries a short-lived signed URL. The raw bucket is
3375
+ * exposed on the datalake response as `cloud_storage.bucket`.
3135
3376
  *
3136
3377
  */
3137
3378
  const platformApiAgenticWorkflowOperationsControllerRunWorkflow = (options) => (options.client ?? client).post({
@@ -3218,9 +3459,14 @@ const platformApiAgenticWorkflowOperationsControllerBatchLogStart = (options) =>
3218
3459
  *
3219
3460
  * Returns a single execution log with action execution details. Each action
3220
3461
  * execution log carries a `message_body` virtual field populated from the
3221
- * datalake message linked via `message_id`. The `data_access_mode` query
3222
- * parameter selects which datalake schema is read for the body — defaults
3223
- * to the session's `data_access_mode` ceiling.
3462
+ * datalake message linked via `message_id`.
3463
+ *
3464
+ * **This surface is raw-only.** There is one message body, nothing masks it,
3465
+ * and the message is read from the raw lake. The endpoint used to take a
3466
+ * `data_access_mode` query parameter and publish it as selecting which
3467
+ * database was read; it was checked in a function guard and never used, and
3468
+ * because the guard consumed the variable no unused-variable warning was ever
3469
+ * emitted. It is gone rather than made to work.
3224
3470
  *
3225
3471
  */
3226
3472
  const platformApiAgenticWorkflowOperationsControllerWorkflowLogShow = (options) => (options.client ?? client).get({
@@ -3235,6 +3481,22 @@ const platformApiAgenticWorkflowOperationsControllerWorkflowLogShow = (options)
3235
3481
  ...options
3236
3482
  });
3237
3483
  /**
3484
+ * Get one advanced migration as markdown
3485
+ *
3486
+ * Returns a single advanced migration rendered as markdown for AI context.
3487
+ */
3488
+ const platformApiAdvancedMigrationControllerMetadataDetails = (options) => (options.client ?? client).get({
3489
+ security: [{
3490
+ name: "X-API-Key",
3491
+ type: "apiKey"
3492
+ }, {
3493
+ scheme: "bearer",
3494
+ type: "http"
3495
+ }],
3496
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/advanced-migrations/{id}/metadata",
3497
+ ...options
3498
+ });
3499
+ /**
3238
3500
  * Delete an interoperability contract
3239
3501
  *
3240
3502
  * Deletes a contract (addressed by id). System-created contracts are rejected with 422. DAC mappings to this contract are removed via DB cascade.
@@ -3290,9 +3552,61 @@ const platformApiInteroperabilityContractControllerUpdate = (options) => (option
3290
3552
  }
3291
3553
  });
3292
3554
  /**
3555
+ * Delete an advanced migration
3556
+ *
3557
+ * Deletes an advanced migration that has not yet run. Returns 409 Conflict once it has been applied — the log of it running is tied to it, so deleting it would erase the record that it ever happened.
3558
+ */
3559
+ const platformApiAdvancedMigrationControllerDelete = (options) => (options.client ?? client).delete({
3560
+ security: [{
3561
+ name: "X-API-Key",
3562
+ type: "apiKey"
3563
+ }, {
3564
+ scheme: "bearer",
3565
+ type: "http"
3566
+ }],
3567
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/advanced-migrations/{id}",
3568
+ ...options
3569
+ });
3570
+ /**
3571
+ * Get an advanced migration
3572
+ *
3573
+ * Returns one advanced migration by id within the datalake. A migration belonging to another datalake answers 404 rather than revealing that it exists.
3574
+ */
3575
+ const platformApiAdvancedMigrationControllerShow = (options) => (options.client ?? client).get({
3576
+ security: [{
3577
+ name: "X-API-Key",
3578
+ type: "apiKey"
3579
+ }, {
3580
+ scheme: "bearer",
3581
+ type: "http"
3582
+ }],
3583
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/advanced-migrations/{id}",
3584
+ ...options
3585
+ });
3586
+ /**
3587
+ * Replace an advanced migration
3588
+ *
3589
+ * Replaces an advanced migration that has not yet run. Returns 409 Conflict once it has been applied — a statement that has already executed against a lake cannot be rewritten after the fact, because the rewritten text would no longer describe what happened.
3590
+ */
3591
+ const platformApiAdvancedMigrationControllerUpdate = (options) => (options.client ?? client).put({
3592
+ security: [{
3593
+ name: "X-API-Key",
3594
+ type: "apiKey"
3595
+ }, {
3596
+ scheme: "bearer",
3597
+ type: "http"
3598
+ }],
3599
+ url: "/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/advanced-migrations/{id}",
3600
+ ...options,
3601
+ headers: {
3602
+ "Content-Type": "application/json",
3603
+ ...options.headers
3604
+ }
3605
+ });
3606
+ /**
3293
3607
  * Delete a generic table
3294
3608
  *
3295
- * Deletes a custom generic table addressed by id. Guarded: returns 409 Conflict when the backing table still holds rows — delete the rows first. When empty, drops both physical tables (regulated + unregulated) and removes the metadata.
3609
+ * Deletes a custom generic table addressed by id. Guarded: returns 409 Conflict when the backing table still holds rows — delete the rows first. When empty, drops both physical tables and removes the metadata.
3296
3610
  */
3297
3611
  const platformApiGenericTableControllerDelete = (options) => (options.client ?? client).delete({
3298
3612
  security: [{
@@ -3324,7 +3638,7 @@ const platformApiGenericTableControllerShow = (options) => (options.client ?? cl
3324
3638
  /**
3325
3639
  * Update a generic table
3326
3640
  *
3327
- * Full-replace update of a custom generic table, addressed by id within the datalake. Every field in the request is required (PUT semantics) — the same body shape as create, so `alvera apply` can resend a full manifest to reconcile drift. Re-runs the regulated mirror + migration for the new column set.
3641
+ * Full-replace update of a custom generic table, addressed by id within the datalake. Every field in the request is required (PUT semantics) — the same body shape as create, so `alvera apply` can resend a full manifest to reconcile drift. Re-runs the mirror + migration for the new column set.
3328
3642
  */
3329
3643
  const platformApiGenericTableControllerUpdate = (options) => (options.client ?? client).put({
3330
3644
  security: [{
@@ -3344,7 +3658,21 @@ const platformApiGenericTableControllerUpdate = (options) => (options.client ??
3344
3658
  /**
3345
3659
  * Run a contract against a payload (sandbox)
3346
3660
  *
3347
- * Runs the contract's `filter → transform → mdm_input` pipeline against the supplied JSON row. Stateless — no DB writes. Use for template authoring/testing.
3661
+ * Runs three of the contract's pipeline stages — `filter → transform →
3662
+ * mdm_input` — against the supplied JSON row. Stateless: no DB writes, no MDM
3663
+ * resolution, no upsert. Use for template authoring/testing.
3664
+ *
3665
+ * **It does not run AI agent enrichment, and ingestion does.** The real
3666
+ * pipeline is `filter → ai_agent_enrichment → transform → mdm_input →
3667
+ * mdm.resolve → upsert`, and enrichment is what puts each attached agent's
3668
+ * parsed output under `enrichment.<agent_slug>` before the transform sees the
3669
+ * row. This endpoint hands the raw payload straight to **both** the transform
3670
+ * and the mdm_input render — ingestion hands each of them the enriched row —
3671
+ * so on a contract with agents attached every `{{ enrichment.… }}` reference
3672
+ * renders blank here and renders filled in production. Neither a transform
3673
+ * template nor an mdm_input template that reads enrichment can be proven
3674
+ * correct on this endpoint.
3675
+ *
3348
3676
  */
3349
3677
  const platformApiInteroperabilityContractControllerRun = (options) => (options.client ?? client).post({
3350
3678
  querySerializer: { parameters: { filters: { array: { style: "deepObject" } } } },
@@ -3658,6 +3986,10 @@ function _buildApi(myClient) {
3658
3986
  verifyApiKey: () => platformApiSessionControllerVerifyApiKey({
3659
3987
  client: myClient,
3660
3988
  throwOnError: true
3989
+ }),
3990
+ delete: () => platformApiSessionControllerDelete({
3991
+ client: myClient,
3992
+ throwOnError: true
3661
3993
  })
3662
3994
  },
3663
3995
  admin: {
@@ -3820,6 +4152,7 @@ function _buildApi(myClient) {
3820
4152
  metadata: (tenantSlug, query) => platformApiDatalakeControllerMetadata({
3821
4153
  path: { tenant_slug: tenantSlug },
3822
4154
  query,
4155
+ querySerializer: bracketQuerySerializer,
3823
4156
  client: myClient,
3824
4157
  throwOnError: true
3825
4158
  }),
@@ -3847,6 +4180,33 @@ function _buildApi(myClient) {
3847
4180
  client: myClient,
3848
4181
  throwOnError: true
3849
4182
  }),
4183
+ provisionTokenization: (tenantSlug, datalakeSlug) => platformApiDatalakeControllerProvisionTokenization({
4184
+ path: {
4185
+ tenant_slug: tenantSlug,
4186
+ datalake_slug: datalakeSlug
4187
+ },
4188
+ client: myClient,
4189
+ throwOnError: true
4190
+ }),
4191
+ derivedLakeTables: (tenantSlug, datalakeSlug, mode) => platformApiDatalakeControllerDerivedLakeTables({
4192
+ path: {
4193
+ tenant_slug: tenantSlug,
4194
+ datalake_slug: datalakeSlug,
4195
+ mode
4196
+ },
4197
+ client: myClient,
4198
+ throwOnError: true
4199
+ }),
4200
+ resyncTable: (tenantSlug, datalakeSlug, mode, body) => platformApiDatalakeControllerResyncTable({
4201
+ path: {
4202
+ tenant_slug: tenantSlug,
4203
+ datalake_slug: datalakeSlug,
4204
+ mode
4205
+ },
4206
+ body,
4207
+ client: myClient,
4208
+ throwOnError: true
4209
+ }),
3850
4210
  createUploadLink: (tenantSlug, datalakeSlug, body) => platformApiDatalakeControllerCreateUploadLink({
3851
4211
  path: {
3852
4212
  tenant_slug: tenantSlug,
@@ -3890,6 +4250,82 @@ function _buildApi(myClient) {
3890
4250
  });
3891
4251
  }
3892
4252
  },
4253
+ advancedMigrations: {
4254
+ list: (tenantSlug, datalakeSlug, query) => platformApiAdvancedMigrationControllerIndex({
4255
+ path: {
4256
+ tenant_slug: tenantSlug,
4257
+ datalake_slug: datalakeSlug
4258
+ },
4259
+ query,
4260
+ querySerializer: bracketQuerySerializer,
4261
+ client: myClient,
4262
+ throwOnError: true
4263
+ }),
4264
+ get: (tenantSlug, datalakeSlug, id) => platformApiAdvancedMigrationControllerShow({
4265
+ path: {
4266
+ tenant_slug: tenantSlug,
4267
+ datalake_slug: datalakeSlug,
4268
+ id
4269
+ },
4270
+ client: myClient,
4271
+ throwOnError: true
4272
+ }),
4273
+ create: (tenantSlug, datalakeSlug, body) => platformApiAdvancedMigrationControllerCreate({
4274
+ path: {
4275
+ tenant_slug: tenantSlug,
4276
+ datalake_slug: datalakeSlug
4277
+ },
4278
+ body,
4279
+ client: myClient,
4280
+ throwOnError: true
4281
+ }),
4282
+ update: (tenantSlug, datalakeSlug, id, body) => platformApiAdvancedMigrationControllerUpdate({
4283
+ path: {
4284
+ tenant_slug: tenantSlug,
4285
+ datalake_slug: datalakeSlug,
4286
+ id
4287
+ },
4288
+ body,
4289
+ client: myClient,
4290
+ throwOnError: true
4291
+ }),
4292
+ delete: (tenantSlug, datalakeSlug, id) => platformApiAdvancedMigrationControllerDelete({
4293
+ path: {
4294
+ tenant_slug: tenantSlug,
4295
+ datalake_slug: datalakeSlug,
4296
+ id
4297
+ },
4298
+ client: myClient,
4299
+ throwOnError: true
4300
+ }),
4301
+ checksum: (tenantSlug, datalakeSlug, body) => platformApiAdvancedMigrationControllerChecksum({
4302
+ path: {
4303
+ tenant_slug: tenantSlug,
4304
+ datalake_slug: datalakeSlug
4305
+ },
4306
+ body,
4307
+ client: myClient,
4308
+ throwOnError: true
4309
+ }),
4310
+ metadata: (tenantSlug, datalakeSlug, query) => platformApiAdvancedMigrationControllerMetadata({
4311
+ path: {
4312
+ tenant_slug: tenantSlug,
4313
+ datalake_slug: datalakeSlug
4314
+ },
4315
+ query,
4316
+ client: myClient,
4317
+ throwOnError: true
4318
+ }),
4319
+ metadataDetails: (tenantSlug, datalakeSlug, id) => platformApiAdvancedMigrationControllerMetadataDetails({
4320
+ path: {
4321
+ tenant_slug: tenantSlug,
4322
+ datalake_slug: datalakeSlug,
4323
+ id
4324
+ },
4325
+ client: myClient,
4326
+ throwOnError: true
4327
+ })
4328
+ },
3893
4329
  dataSources: {
3894
4330
  list: (tenantSlug, datalakeSlug, query) => platformApiDataSourceControllerIndex({
3895
4331
  path: {
@@ -4818,14 +5254,13 @@ function _buildApi(myClient) {
4818
5254
  client: myClient,
4819
5255
  throwOnError: true
4820
5256
  }),
4821
- get: (tenantSlug, datalakeSlug, workflowSlug, id, opts) => platformApiAgenticWorkflowOperationsControllerWorkflowLogShow({
5257
+ get: (tenantSlug, datalakeSlug, workflowSlug, id) => platformApiAgenticWorkflowOperationsControllerWorkflowLogShow({
4822
5258
  path: {
4823
5259
  tenant_slug: tenantSlug,
4824
5260
  datalake_slug: datalakeSlug,
4825
5261
  workflow_slug: workflowSlug,
4826
5262
  id
4827
5263
  },
4828
- ...opts?.dataAccessMode ? { query: { data_access_mode: opts.dataAccessMode } } : {},
4829
5264
  client: myClient,
4830
5265
  throwOnError: true
4831
5266
  }),