@persei/perseed-api 5.0.23 → 5.0.24

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 (93) hide show
  1. package/dist/client.cjs +57 -0
  2. package/dist/client.cjs.map +1 -1
  3. package/dist/client.mjs +57 -0
  4. package/dist/client.mjs.map +1 -1
  5. package/dist/dates.helper-CDM5aEJG.cjs.map +1 -1
  6. package/dist/dates.helper-XRCJ_UAQ.js.map +1 -1
  7. package/dist/dates.schema-BqkBcmM6.js +18 -0
  8. package/dist/dates.schema-BqkBcmM6.js.map +1 -0
  9. package/dist/dates.schema-npKpToAJ.cjs +17 -0
  10. package/dist/dates.schema-npKpToAJ.cjs.map +1 -0
  11. package/dist/ecosystem-container-widget.cjs +1 -1
  12. package/dist/ecosystem-container-widget.mjs +1 -1
  13. package/dist/ecosystem-process-log.cjs +234 -0
  14. package/dist/ecosystem-process-log.cjs.map +1 -0
  15. package/dist/ecosystem-process-log.d.ts +1 -0
  16. package/dist/ecosystem-process-log.mjs +234 -0
  17. package/dist/ecosystem-process-log.mjs.map +1 -0
  18. package/dist/global-dates.cjs +5 -6
  19. package/dist/global-dates.cjs.map +1 -1
  20. package/dist/global-dates.mjs +5 -6
  21. package/dist/global-dates.mjs.map +1 -1
  22. package/dist/lib/src/generated/client.d.ts +267 -0
  23. package/dist/lib/src/generated/client.d.ts.map +1 -1
  24. package/dist/src/Services/ProcessLogService.d.ts.map +1 -1
  25. package/dist/src/Services/QueryService.d.ts.map +1 -1
  26. package/dist/src/app.d.ts +2 -2
  27. package/dist/src/app.d.ts.map +1 -1
  28. package/dist/src/controllers/IntrospectionController.d.ts.map +1 -1
  29. package/dist/src/models/project/Displayer.d.ts.map +1 -1
  30. package/dist/src/models/project/DisplayerMeta.d.ts +2 -1
  31. package/dist/src/models/project/DisplayerMeta.d.ts.map +1 -1
  32. package/dist/src/models/project/QuestionariesInfo.d.ts +2 -1
  33. package/dist/src/models/project/QuestionariesInfo.d.ts.map +1 -1
  34. package/dist/src/schemas/process_log/create_process_log_payload.schema.json +20 -1
  35. package/dist/src/schemas/process_log/types.d.ts +19 -5
  36. package/dist/src/schemas/process_log/types.d.ts.map +1 -1
  37. package/dist/src/test/test-helpers.d.ts +12 -0
  38. package/dist/src/test/test-helpers.d.ts.map +1 -1
  39. package/dist/src/v2/modules/ecosystem/action-system/action-system.service/automatic-trigger.service.d.ts +4 -4
  40. package/dist/src/v2/modules/ecosystem/action-system/action-system.service/manual-trigger-engine.service.d.ts.map +1 -1
  41. package/dist/src/v2/modules/ecosystem/action-system/action-system.service/manual-trigger.service.d.ts +8 -8
  42. package/dist/src/v2/modules/ecosystem/action-system/action-system.service/trigger-engine.service.d.ts +27 -1
  43. package/dist/src/v2/modules/ecosystem/action-system/action-system.service/trigger-engine.service.d.ts.map +1 -1
  44. package/dist/src/v2/modules/ecosystem/action-system/index.d.ts +1 -1
  45. package/dist/src/v2/modules/ecosystem/action-system/index.d.ts.map +1 -1
  46. package/dist/src/v2/modules/ecosystem/alert/alert.controller.d.ts +3 -3
  47. package/dist/src/v2/modules/ecosystem/alert/alert.controller.d.ts.map +1 -1
  48. package/dist/src/v2/modules/ecosystem/alert/alert.model.d.ts +15 -2
  49. package/dist/src/v2/modules/ecosystem/alert/alert.model.d.ts.map +1 -1
  50. package/dist/src/v2/modules/ecosystem/alert/alert.schema.d.ts +14 -5
  51. package/dist/src/v2/modules/ecosystem/alert/alert.schema.d.ts.map +1 -1
  52. package/dist/src/v2/modules/ecosystem/alert/alert.service.d.ts.map +1 -1
  53. package/dist/src/v2/modules/ecosystem/alert/index.d.ts +1 -1
  54. package/dist/src/v2/modules/ecosystem/alert/index.d.ts.map +1 -1
  55. package/dist/src/v2/modules/ecosystem/process-log/index.d.ts +4 -1
  56. package/dist/src/v2/modules/ecosystem/process-log/index.d.ts.map +1 -1
  57. package/dist/src/v2/modules/ecosystem/process-log/lib.d.ts +2 -0
  58. package/dist/src/v2/modules/ecosystem/process-log/lib.d.ts.map +1 -0
  59. package/dist/src/v2/modules/ecosystem/process-log/process-log.controller.d.ts +5 -0
  60. package/dist/src/v2/modules/ecosystem/process-log/process-log.controller.d.ts.map +1 -0
  61. package/dist/src/v2/modules/ecosystem/process-log/process-log.controller.e2e.d.ts +2 -0
  62. package/dist/src/v2/modules/ecosystem/process-log/process-log.controller.e2e.d.ts.map +1 -0
  63. package/dist/src/v2/modules/ecosystem/process-log/process-log.controller.test.d.ts +2 -0
  64. package/dist/src/v2/modules/ecosystem/process-log/process-log.controller.test.d.ts.map +1 -0
  65. package/dist/src/v2/modules/ecosystem/process-log/process-log.model.d.ts +29 -2
  66. package/dist/src/v2/modules/ecosystem/process-log/process-log.model.d.ts.map +1 -1
  67. package/dist/src/v2/modules/ecosystem/process-log/process-log.schema.d.ts +115 -0
  68. package/dist/src/v2/modules/ecosystem/process-log/process-log.schema.d.ts.map +1 -0
  69. package/dist/src/v2/modules/ecosystem/process-log/process-log.service.d.ts +16 -0
  70. package/dist/src/v2/modules/ecosystem/process-log/process-log.service.d.ts.map +1 -1
  71. package/dist/src/v2/modules/global/dates/{dates.helper.d.ts → dates.helper/dates.helper.d.ts} +1 -1
  72. package/dist/src/v2/modules/global/dates/dates.helper/dates.helper.d.ts.map +1 -0
  73. package/dist/src/v2/modules/global/dates/dates.helper/dates.helper.test.d.ts.map +1 -0
  74. package/dist/src/v2/modules/global/dates/dates.helper/decoding-validator.helper.d.ts +75 -0
  75. package/dist/src/v2/modules/global/dates/dates.helper/decoding-validator.helper.d.ts.map +1 -0
  76. package/dist/src/v2/modules/global/dates/dates.helper/decoding-validator.helper.test.d.ts +2 -0
  77. package/dist/src/v2/modules/global/dates/dates.helper/decoding-validator.helper.test.d.ts.map +1 -0
  78. package/dist/src/v2/modules/global/dates/dates.helper/index.d.ts +3 -0
  79. package/dist/src/v2/modules/global/dates/dates.helper/index.d.ts.map +1 -0
  80. package/dist/src/v2/modules/global/dates/dates.schema.d.ts +23 -0
  81. package/dist/src/v2/modules/global/dates/dates.schema.d.ts.map +1 -1
  82. package/dist/src/v2/routes/v2/ecosystem/_ecosystemName/alert/index.d.ts +1 -1
  83. package/dist/src/v2/routes/v2/ecosystem/_ecosystemName/project/_projectName/alert/index.d.ts +1 -1
  84. package/dist/src/v2/routes/v2/ecosystem/_ecosystemName/project/_projectName/process-log/index.d.ts +3 -0
  85. package/dist/src/v2/routes/v2/ecosystem/_ecosystemName/project/_projectName/process-log/index.d.ts.map +1 -0
  86. package/dist/v1/perseed-api.cjs +0 -7
  87. package/dist/v1/perseed-api.cjs.map +1 -1
  88. package/dist/v1/perseed-api.mjs +0 -7
  89. package/dist/v1/perseed-api.mjs.map +1 -1
  90. package/package.json +1 -1
  91. package/dist/src/v2/modules/global/dates/dates.helper.d.ts.map +0 -1
  92. package/dist/src/v2/modules/global/dates/dates.helper.test.d.ts.map +0 -1
  93. /package/dist/src/v2/modules/global/dates/{dates.helper.test.d.ts → dates.helper/dates.helper.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"client.cjs","sources":["../src/client/customFetch.ts","../src/generated/client.ts"],"sourcesContent":["/**\n * Orval mutator for the generated fetch client (`src/generated/client.ts`).\n *\n * Centralizes base URL composition, `Authorization` header injection, and\n * response decoding/error handling for every generated operation, so\n * consumers (the `front` repo) can call the generated functions directly\n * without a bespoke glue layer (see `front/packages/perseed-api-client/src/generatedClient.ts`,\n * which this replaces — api's owner requested moving this logic here in MR !109).\n */\n\n/**\n * Thrown by {@link customFetch} when the response status is not in the 2xx range. Carries the\n * HTTP `status` and the parsed error body (when present) so consumers can branch on the failure\n * without having to re-parse anything (e.g. the front's `isEndpointUnavailable`).\n */\nexport class GeneratedClientError extends Error {\n status: number\n body?: unknown\n\n constructor(status: number, body?: unknown) {\n super(`Request failed with status ${status}`)\n // Restores the prototype chain: TS compiles `extends Error` (a native built-in) down to a\n // plain `Error.call(this, ...)` invocation for non-native-class targets/emit. `Error` called\n // this way returns a *new* plain `Error` object (since it's truthy, `super(...)`'s implicit\n // `|| this` picks it over `this`), so without this line the resulting instance's prototype is\n // `Error.prototype`, not `GeneratedClientError.prototype` — breaking `instanceof\n // GeneratedClientError` even though the object was constructed via `new GeneratedClientError(...)`.\n // This is TypeScript's documented caveat for extending built-ins:\n // https://github.com/microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, GeneratedClientError.prototype)\n this.name = 'GeneratedClientError'\n this.status = status\n this.body = body\n }\n}\n\nexport interface ClientRuntimeConfig {\n /** Absolute base URL of the API, e.g. `https://api.perseed.eu`. */\n baseUrl: string\n /**\n * Returns the session token to use for the *current* call, or `undefined` if unauthenticated.\n * A function (not a static token) so the runtime always reads the token in effect at call\n * time — avoiding a stale-token capture without depending on React or any specific state\n * management.\n */\n getToken?: () => string | undefined\n}\n\nlet runtimeConfig: ClientRuntimeConfig | undefined\n\n/** Configures the base URL and token accessor used by every generated operation. */\nexport function configureGeneratedClient(cfg: ClientRuntimeConfig): void {\n runtimeConfig = cfg\n}\n\nfunction getRuntimeConfig(): ClientRuntimeConfig {\n if (!runtimeConfig) {\n throw new Error(\n 'Generated API client used before configuration. Call configureGeneratedClient({ baseUrl, getToken }) first.',\n )\n }\n return runtimeConfig\n}\n\n/**\n * Mutator invoked by every generated operation in `src/generated/client.ts`. Composes the\n * absolute URL from the configured base URL, injects `Authorization: Bearer <token>` when a\n * token is available, performs the request, and decodes the response the same way the previous\n * front-side `fetchGenerated` did (null body for 204/205/304, JSON otherwise). A non-2xx response\n * throws a {@link GeneratedClientError} instead of resolving, so callers get a rejected promise\n * for every failed request.\n *\n * `T` here is orval's own per-operation response union (e.g. `listActionsResponse`, shaped as\n * `{ data, status, headers }` discriminated by `status`), not the bare payload type — orval calls\n * this mutator as `customFetch<listActionsResponse>(url, init)` and uses its return value\n * directly as the operation's return value. Confirmed empirically by regenerating the client and\n * inspecting `src/generated/client.ts`. The cast below is unavoidable: at runtime we only know the\n * status/data/headers triple, not which member of the union it narrows to — that narrowing is the\n * server's contract with the generated types, not something this generic transport layer can (or\n * should) re-verify.\n */\nexport async function customFetch<T>(url: string, options: RequestInit): Promise<T> {\n const { baseUrl, getToken } = getRuntimeConfig()\n const token = getToken?.()\n\n const headers: Record<string, string> = { ...(options.headers as Record<string, string> | undefined) }\n if (token) {\n headers.Authorization = `Bearer ${token}`\n }\n\n const res = await fetch(`${baseUrl}${url}`, { ...options, headers })\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data = (body ? JSON.parse(body) : {}) as unknown\n\n if (!res.ok) {\n throw new GeneratedClientError(res.status, data)\n }\n\n return { data, status: res.status, headers: res.headers } as T\n}\n","/**\n * Generated by orval v7.21.0 🍺\n * Do not edit manually.\n * @fastify/swagger\n * OpenAPI spec version: 9.7.0\n */\nimport { customFetch } from '../client/customFetch'\nexport type ListAlertsEcosystemParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\n status?: ListAlertsEcosystemStatus\n /**\n * Severity of the alert, used to prioritise it\n */\n severity?: ListAlertsEcosystemSeverity\n /**\n * Filter by the user the alert is about\n */\n user_id?: number\n /**\n * Filter by the patient the alert is about\n */\n patient_id?: number\n /**\n * Filter by the type of the alert\n */\n alert_type_id?: number\n}\n\nexport type ListAlertsEcosystemStatus = (typeof ListAlertsEcosystemStatus)[keyof typeof ListAlertsEcosystemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystemStatus = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\nexport type ListAlertsEcosystemSeverity = (typeof ListAlertsEcosystemSeverity)[keyof typeof ListAlertsEcosystemSeverity]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystemSeverity = {\n info: 'info',\n low: 'low',\n medium: 'medium',\n high: 'high',\n critical: 'critical',\n} as const\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type ListAlertsEcosystem200ResultsItemProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type ListAlertsEcosystem200ResultsItemAlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type ListAlertsEcosystem200ResultsItemUserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type ListAlertsEcosystem200ResultsItemPatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type ListAlertsEcosystem200ResultsItemSeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type ListAlertsEcosystem200ResultsItemStatus =\n (typeof ListAlertsEcosystem200ResultsItemStatus)[keyof typeof ListAlertsEcosystem200ResultsItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem200ResultsItemStatus = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type ListAlertsEcosystem200ResultsItemTitle = string | null\n\n/**\n * Longer readable description\n */\nexport type ListAlertsEcosystem200ResultsItemSummary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type ListAlertsEcosystem200ResultsItemEmitterType =\n (typeof ListAlertsEcosystem200ResultsItemEmitterType)[keyof typeof ListAlertsEcosystem200ResultsItemEmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem200ResultsItemEmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type ListAlertsEcosystem200ResultsItemEmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type ListAlertsEcosystem200ResultsItemEmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type ListAlertsEcosystem200ResultsItemEmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type ListAlertsEcosystem200ResultsItemEmitter = {\n /** Kind of emitter that raised the alert */\n type: ListAlertsEcosystem200ResultsItemEmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: ListAlertsEcosystem200ResultsItemEmitterId\n /** Human readable name of the emitter */\n name?: ListAlertsEcosystem200ResultsItemEmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: ListAlertsEcosystem200ResultsItemEmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ListAlertsEcosystem200ResultsItemRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type ListAlertsEcosystem200ResultsItemRecipients = ListAlertsEcosystem200ResultsItemRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ListAlertsEcosystem200ResultsItemRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type ListAlertsEcosystem200ResultsItemRelatedEntities =\n | ListAlertsEcosystem200ResultsItemRelatedEntitiesAnyOfItem[]\n | null\n\nexport type ListAlertsEcosystem200ResultsItemPayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type ListAlertsEcosystem200ResultsItemPayload = ListAlertsEcosystem200ResultsItemPayloadAnyOf | null\n\nexport type ListAlertsEcosystem200ResultsItemMetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type ListAlertsEcosystem200ResultsItemMetadata = ListAlertsEcosystem200ResultsItemMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type ListAlertsEcosystem200ResultsItemTriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type ListAlertsEcosystem200ResultsItemViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type ListAlertsEcosystem200ResultsItemViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type ListAlertsEcosystem200ResultsItemResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type ListAlertsEcosystem200ResultsItemResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type ListAlertsEcosystem200ResultsItemResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type ListAlertsEcosystem200ResultsItemCreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type ListAlertsEcosystem200ResultsItem = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: ListAlertsEcosystem200ResultsItemProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: ListAlertsEcosystem200ResultsItemAlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: ListAlertsEcosystem200ResultsItemUserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: ListAlertsEcosystem200ResultsItemPatientId\n /** Severity of the alert. Null when not graded */\n severity?: ListAlertsEcosystem200ResultsItemSeverity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: ListAlertsEcosystem200ResultsItemStatus\n /** Short readable title */\n title?: ListAlertsEcosystem200ResultsItemTitle\n /** Longer readable description */\n summary?: ListAlertsEcosystem200ResultsItemSummary\n /** Who raised the alert */\n emitter: ListAlertsEcosystem200ResultsItemEmitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: ListAlertsEcosystem200ResultsItemRecipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: ListAlertsEcosystem200ResultsItemRelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: ListAlertsEcosystem200ResultsItemPayload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: ListAlertsEcosystem200ResultsItemMetadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: ListAlertsEcosystem200ResultsItemTriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: ListAlertsEcosystem200ResultsItemViewedAt\n /** User who first viewed the alert */\n viewed_by?: ListAlertsEcosystem200ResultsItemViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: ListAlertsEcosystem200ResultsItemResolvedAt\n /** User who resolved the alert */\n resolved_by?: ListAlertsEcosystem200ResultsItemResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: ListAlertsEcosystem200ResultsItemResolutionNote\n /** User who created the alert, when a user did */\n created_user?: ListAlertsEcosystem200ResultsItemCreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Paginated response\n */\nexport type ListAlertsEcosystem200 = {\n /** Array of items of the current page */\n results: ListAlertsEcosystem200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAlertsEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlertsEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlertsEcosystem403AllOfDebug\n}\n\nexport type ListAlertsEcosystem403AllOfThreeStatusCode =\n (typeof ListAlertsEcosystem403AllOfThreeStatusCode)[keyof typeof ListAlertsEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAlertsEcosystem403AllOfThreeError =\n (typeof ListAlertsEcosystem403AllOfThreeError)[keyof typeof ListAlertsEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAlertsEcosystem403AllOfThree = {\n statusCode: ListAlertsEcosystem403AllOfThreeStatusCode\n error: ListAlertsEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAlertsEcosystem403 = ListAlertsEcosystem403AllOf & ListAlertsEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAlertsEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlertsEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlertsEcosystem404AllOfDebug\n}\n\nexport type ListAlertsEcosystem404AllOfThreeStatusCode =\n (typeof ListAlertsEcosystem404AllOfThreeStatusCode)[keyof typeof ListAlertsEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAlertsEcosystem404AllOfThreeError =\n (typeof ListAlertsEcosystem404AllOfThreeError)[keyof typeof ListAlertsEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAlertsEcosystem404AllOfThree = {\n statusCode: ListAlertsEcosystem404AllOfThreeStatusCode\n error: ListAlertsEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAlertsEcosystem404 = ListAlertsEcosystem404AllOf & ListAlertsEcosystem404AllOfThree\n\nexport type CreateAlertEcosystemBodyAlertTypeId = number | null\n\nexport type CreateAlertEcosystemBodyUserId = number | null\n\nexport type CreateAlertEcosystemBodyPatientId = number | null\n\nexport type CreateAlertEcosystemBodySeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\nexport type CreateAlertEcosystemBodyTitle = string | null\n\nexport type CreateAlertEcosystemBodySummary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type CreateAlertEcosystemBodyEmitterType =\n (typeof CreateAlertEcosystemBodyEmitterType)[keyof typeof CreateAlertEcosystemBodyEmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystemBodyEmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type CreateAlertEcosystemBodyEmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type CreateAlertEcosystemBodyEmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type CreateAlertEcosystemBodyEmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type CreateAlertEcosystemBodyEmitter = {\n /** Kind of emitter that raised the alert */\n type: CreateAlertEcosystemBodyEmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: CreateAlertEcosystemBodyEmitterId\n /** Human readable name of the emitter */\n name?: CreateAlertEcosystemBodyEmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: CreateAlertEcosystemBodyEmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertEcosystemBodyRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type CreateAlertEcosystemBodyRecipients = CreateAlertEcosystemBodyRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertEcosystemBodyRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type CreateAlertEcosystemBodyRelatedEntities = CreateAlertEcosystemBodyRelatedEntitiesAnyOfItem[] | null\n\nexport type CreateAlertEcosystemBodyPayloadAnyOf = { [key: string]: unknown }\n\nexport type CreateAlertEcosystemBodyPayload = CreateAlertEcosystemBodyPayloadAnyOf | null\n\nexport type CreateAlertEcosystemBodyMetadataAnyOf = { [key: string]: unknown }\n\nexport type CreateAlertEcosystemBodyMetadata = CreateAlertEcosystemBodyMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC\n */\nexport type CreateAlertEcosystemBodyTriggeredAt = string | null\n\n/**\n * Payload to create an alert\n */\nexport type CreateAlertEcosystemBody = {\n alert_type_id?: CreateAlertEcosystemBodyAlertTypeId\n user_id?: CreateAlertEcosystemBodyUserId\n patient_id?: CreateAlertEcosystemBodyPatientId\n severity?: CreateAlertEcosystemBodySeverity\n title?: CreateAlertEcosystemBodyTitle\n summary?: CreateAlertEcosystemBodySummary\n /** Who raised the alert */\n emitter: CreateAlertEcosystemBodyEmitter\n recipients?: CreateAlertEcosystemBodyRecipients\n related_entities?: CreateAlertEcosystemBodyRelatedEntities\n payload?: CreateAlertEcosystemBodyPayload\n metadata?: CreateAlertEcosystemBodyMetadata\n /** @maxLength 255 */\n dedup_key?: string\n /** When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC */\n triggered_at?: CreateAlertEcosystemBodyTriggeredAt\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type CreateAlertEcosystem200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type CreateAlertEcosystem200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type CreateAlertEcosystem200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type CreateAlertEcosystem200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type CreateAlertEcosystem200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type CreateAlertEcosystem200Status =\n (typeof CreateAlertEcosystem200Status)[keyof typeof CreateAlertEcosystem200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type CreateAlertEcosystem200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type CreateAlertEcosystem200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type CreateAlertEcosystem200EmitterType =\n (typeof CreateAlertEcosystem200EmitterType)[keyof typeof CreateAlertEcosystem200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type CreateAlertEcosystem200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type CreateAlertEcosystem200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type CreateAlertEcosystem200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type CreateAlertEcosystem200Emitter = {\n /** Kind of emitter that raised the alert */\n type: CreateAlertEcosystem200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: CreateAlertEcosystem200EmitterId\n /** Human readable name of the emitter */\n name?: CreateAlertEcosystem200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: CreateAlertEcosystem200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertEcosystem200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type CreateAlertEcosystem200Recipients = CreateAlertEcosystem200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertEcosystem200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type CreateAlertEcosystem200RelatedEntities = CreateAlertEcosystem200RelatedEntitiesAnyOfItem[] | null\n\nexport type CreateAlertEcosystem200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type CreateAlertEcosystem200Payload = CreateAlertEcosystem200PayloadAnyOf | null\n\nexport type CreateAlertEcosystem200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type CreateAlertEcosystem200Metadata = CreateAlertEcosystem200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlertEcosystem200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlertEcosystem200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type CreateAlertEcosystem200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlertEcosystem200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type CreateAlertEcosystem200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type CreateAlertEcosystem200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type CreateAlertEcosystem200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type CreateAlertEcosystem200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: CreateAlertEcosystem200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: CreateAlertEcosystem200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: CreateAlertEcosystem200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: CreateAlertEcosystem200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: CreateAlertEcosystem200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: CreateAlertEcosystem200Status\n /** Short readable title */\n title?: CreateAlertEcosystem200Title\n /** Longer readable description */\n summary?: CreateAlertEcosystem200Summary\n /** Who raised the alert */\n emitter: CreateAlertEcosystem200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: CreateAlertEcosystem200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: CreateAlertEcosystem200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: CreateAlertEcosystem200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: CreateAlertEcosystem200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: CreateAlertEcosystem200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: CreateAlertEcosystem200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: CreateAlertEcosystem200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: CreateAlertEcosystem200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: CreateAlertEcosystem200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: CreateAlertEcosystem200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: CreateAlertEcosystem200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertEcosystem400AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertEcosystem400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertEcosystem400AllOfDebug\n}\n\nexport type CreateAlertEcosystem400AllOfThreeStatusCode =\n (typeof CreateAlertEcosystem400AllOfThreeStatusCode)[keyof typeof CreateAlertEcosystem400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type CreateAlertEcosystem400AllOfThreeError =\n (typeof CreateAlertEcosystem400AllOfThreeError)[keyof typeof CreateAlertEcosystem400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type CreateAlertEcosystem400AllOfThree = {\n statusCode: CreateAlertEcosystem400AllOfThreeStatusCode\n error: CreateAlertEcosystem400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type CreateAlertEcosystem400 = CreateAlertEcosystem400AllOf & CreateAlertEcosystem400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertEcosystem403AllOfDebug\n}\n\nexport type CreateAlertEcosystem403AllOfThreeStatusCode =\n (typeof CreateAlertEcosystem403AllOfThreeStatusCode)[keyof typeof CreateAlertEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAlertEcosystem403AllOfThreeError =\n (typeof CreateAlertEcosystem403AllOfThreeError)[keyof typeof CreateAlertEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAlertEcosystem403AllOfThree = {\n statusCode: CreateAlertEcosystem403AllOfThreeStatusCode\n error: CreateAlertEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAlertEcosystem403 = CreateAlertEcosystem403AllOf & CreateAlertEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertEcosystem404AllOfDebug\n}\n\nexport type CreateAlertEcosystem404AllOfThreeStatusCode =\n (typeof CreateAlertEcosystem404AllOfThreeStatusCode)[keyof typeof CreateAlertEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAlertEcosystem404AllOfThreeError =\n (typeof CreateAlertEcosystem404AllOfThreeError)[keyof typeof CreateAlertEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAlertEcosystem404AllOfThree = {\n statusCode: CreateAlertEcosystem404AllOfThreeStatusCode\n error: CreateAlertEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAlertEcosystem404 = CreateAlertEcosystem404AllOf & CreateAlertEcosystem404AllOfThree\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type GetAlertEcosystem200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type GetAlertEcosystem200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type GetAlertEcosystem200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type GetAlertEcosystem200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type GetAlertEcosystem200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type GetAlertEcosystem200Status = (typeof GetAlertEcosystem200Status)[keyof typeof GetAlertEcosystem200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type GetAlertEcosystem200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type GetAlertEcosystem200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type GetAlertEcosystem200EmitterType =\n (typeof GetAlertEcosystem200EmitterType)[keyof typeof GetAlertEcosystem200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type GetAlertEcosystem200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type GetAlertEcosystem200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type GetAlertEcosystem200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type GetAlertEcosystem200Emitter = {\n /** Kind of emitter that raised the alert */\n type: GetAlertEcosystem200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: GetAlertEcosystem200EmitterId\n /** Human readable name of the emitter */\n name?: GetAlertEcosystem200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: GetAlertEcosystem200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type GetAlertEcosystem200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type GetAlertEcosystem200Recipients = GetAlertEcosystem200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type GetAlertEcosystem200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type GetAlertEcosystem200RelatedEntities = GetAlertEcosystem200RelatedEntitiesAnyOfItem[] | null\n\nexport type GetAlertEcosystem200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type GetAlertEcosystem200Payload = GetAlertEcosystem200PayloadAnyOf | null\n\nexport type GetAlertEcosystem200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type GetAlertEcosystem200Metadata = GetAlertEcosystem200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type GetAlertEcosystem200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type GetAlertEcosystem200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type GetAlertEcosystem200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type GetAlertEcosystem200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type GetAlertEcosystem200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type GetAlertEcosystem200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type GetAlertEcosystem200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type GetAlertEcosystem200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: GetAlertEcosystem200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: GetAlertEcosystem200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: GetAlertEcosystem200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: GetAlertEcosystem200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: GetAlertEcosystem200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: GetAlertEcosystem200Status\n /** Short readable title */\n title?: GetAlertEcosystem200Title\n /** Longer readable description */\n summary?: GetAlertEcosystem200Summary\n /** Who raised the alert */\n emitter: GetAlertEcosystem200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: GetAlertEcosystem200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: GetAlertEcosystem200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: GetAlertEcosystem200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: GetAlertEcosystem200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: GetAlertEcosystem200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: GetAlertEcosystem200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: GetAlertEcosystem200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: GetAlertEcosystem200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: GetAlertEcosystem200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: GetAlertEcosystem200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: GetAlertEcosystem200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetAlertEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlertEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlertEcosystem403AllOfDebug\n}\n\nexport type GetAlertEcosystem403AllOfThreeStatusCode =\n (typeof GetAlertEcosystem403AllOfThreeStatusCode)[keyof typeof GetAlertEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAlertEcosystem403AllOfThreeError =\n (typeof GetAlertEcosystem403AllOfThreeError)[keyof typeof GetAlertEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAlertEcosystem403AllOfThree = {\n statusCode: GetAlertEcosystem403AllOfThreeStatusCode\n error: GetAlertEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAlertEcosystem403 = GetAlertEcosystem403AllOf & GetAlertEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAlertEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlertEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlertEcosystem404AllOfDebug\n}\n\nexport type GetAlertEcosystem404AllOfThreeStatusCode =\n (typeof GetAlertEcosystem404AllOfThreeStatusCode)[keyof typeof GetAlertEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAlertEcosystem404AllOfThreeError =\n (typeof GetAlertEcosystem404AllOfThreeError)[keyof typeof GetAlertEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAlertEcosystem404AllOfThree = {\n statusCode: GetAlertEcosystem404AllOfThreeStatusCode\n error: GetAlertEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAlertEcosystem404 = GetAlertEcosystem404AllOf & GetAlertEcosystem404AllOfThree\n\nexport type UpdateAlertEcosystemBodyAlertTypeId = number | null\n\nexport type UpdateAlertEcosystemBodyUserId = number | null\n\nexport type UpdateAlertEcosystemBodyPatientId = number | null\n\nexport type UpdateAlertEcosystemBodySeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\nexport type UpdateAlertEcosystemBodyTitle = string | null\n\nexport type UpdateAlertEcosystemBodySummary = string | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertEcosystemBodyRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type UpdateAlertEcosystemBodyRecipients = UpdateAlertEcosystemBodyRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertEcosystemBodyRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type UpdateAlertEcosystemBodyRelatedEntities = UpdateAlertEcosystemBodyRelatedEntitiesAnyOfItem[] | null\n\nexport type UpdateAlertEcosystemBodyPayloadAnyOf = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystemBodyPayload = UpdateAlertEcosystemBodyPayloadAnyOf | null\n\nexport type UpdateAlertEcosystemBodyMetadataAnyOf = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystemBodyMetadata = UpdateAlertEcosystemBodyMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC\n */\nexport type UpdateAlertEcosystemBodyTriggeredAt = string | null\n\n/**\n * Payload to update an alert. Every field is optional. `emitter` cannot be changed after creation\n */\nexport type UpdateAlertEcosystemBody = {\n alert_type_id?: UpdateAlertEcosystemBodyAlertTypeId\n user_id?: UpdateAlertEcosystemBodyUserId\n patient_id?: UpdateAlertEcosystemBodyPatientId\n severity?: UpdateAlertEcosystemBodySeverity\n title?: UpdateAlertEcosystemBodyTitle\n summary?: UpdateAlertEcosystemBodySummary\n recipients?: UpdateAlertEcosystemBodyRecipients\n related_entities?: UpdateAlertEcosystemBodyRelatedEntities\n payload?: UpdateAlertEcosystemBodyPayload\n metadata?: UpdateAlertEcosystemBodyMetadata\n /** @maxLength 255 */\n dedup_key?: string\n /** When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC */\n triggered_at?: UpdateAlertEcosystemBodyTriggeredAt\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type UpdateAlertEcosystem200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type UpdateAlertEcosystem200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type UpdateAlertEcosystem200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type UpdateAlertEcosystem200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type UpdateAlertEcosystem200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type UpdateAlertEcosystem200Status =\n (typeof UpdateAlertEcosystem200Status)[keyof typeof UpdateAlertEcosystem200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type UpdateAlertEcosystem200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type UpdateAlertEcosystem200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type UpdateAlertEcosystem200EmitterType =\n (typeof UpdateAlertEcosystem200EmitterType)[keyof typeof UpdateAlertEcosystem200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type UpdateAlertEcosystem200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type UpdateAlertEcosystem200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type UpdateAlertEcosystem200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type UpdateAlertEcosystem200Emitter = {\n /** Kind of emitter that raised the alert */\n type: UpdateAlertEcosystem200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: UpdateAlertEcosystem200EmitterId\n /** Human readable name of the emitter */\n name?: UpdateAlertEcosystem200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: UpdateAlertEcosystem200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertEcosystem200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type UpdateAlertEcosystem200Recipients = UpdateAlertEcosystem200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertEcosystem200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type UpdateAlertEcosystem200RelatedEntities = UpdateAlertEcosystem200RelatedEntitiesAnyOfItem[] | null\n\nexport type UpdateAlertEcosystem200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type UpdateAlertEcosystem200Payload = UpdateAlertEcosystem200PayloadAnyOf | null\n\nexport type UpdateAlertEcosystem200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type UpdateAlertEcosystem200Metadata = UpdateAlertEcosystem200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlertEcosystem200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlertEcosystem200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type UpdateAlertEcosystem200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlertEcosystem200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type UpdateAlertEcosystem200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type UpdateAlertEcosystem200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type UpdateAlertEcosystem200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type UpdateAlertEcosystem200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: UpdateAlertEcosystem200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: UpdateAlertEcosystem200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: UpdateAlertEcosystem200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: UpdateAlertEcosystem200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: UpdateAlertEcosystem200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: UpdateAlertEcosystem200Status\n /** Short readable title */\n title?: UpdateAlertEcosystem200Title\n /** Longer readable description */\n summary?: UpdateAlertEcosystem200Summary\n /** Who raised the alert */\n emitter: UpdateAlertEcosystem200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: UpdateAlertEcosystem200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: UpdateAlertEcosystem200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: UpdateAlertEcosystem200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: UpdateAlertEcosystem200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: UpdateAlertEcosystem200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: UpdateAlertEcosystem200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: UpdateAlertEcosystem200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: UpdateAlertEcosystem200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: UpdateAlertEcosystem200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: UpdateAlertEcosystem200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: UpdateAlertEcosystem200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertEcosystem400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystem400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertEcosystem400AllOfDebug\n}\n\nexport type UpdateAlertEcosystem400AllOfThreeStatusCode =\n (typeof UpdateAlertEcosystem400AllOfThreeStatusCode)[keyof typeof UpdateAlertEcosystem400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAlertEcosystem400AllOfThreeError =\n (typeof UpdateAlertEcosystem400AllOfThreeError)[keyof typeof UpdateAlertEcosystem400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAlertEcosystem400AllOfThree = {\n statusCode: UpdateAlertEcosystem400AllOfThreeStatusCode\n error: UpdateAlertEcosystem400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAlertEcosystem400 = UpdateAlertEcosystem400AllOf & UpdateAlertEcosystem400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertEcosystem403AllOfDebug\n}\n\nexport type UpdateAlertEcosystem403AllOfThreeStatusCode =\n (typeof UpdateAlertEcosystem403AllOfThreeStatusCode)[keyof typeof UpdateAlertEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAlertEcosystem403AllOfThreeError =\n (typeof UpdateAlertEcosystem403AllOfThreeError)[keyof typeof UpdateAlertEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAlertEcosystem403AllOfThree = {\n statusCode: UpdateAlertEcosystem403AllOfThreeStatusCode\n error: UpdateAlertEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAlertEcosystem403 = UpdateAlertEcosystem403AllOf & UpdateAlertEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertEcosystem404AllOfDebug\n}\n\nexport type UpdateAlertEcosystem404AllOfThreeStatusCode =\n (typeof UpdateAlertEcosystem404AllOfThreeStatusCode)[keyof typeof UpdateAlertEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAlertEcosystem404AllOfThreeError =\n (typeof UpdateAlertEcosystem404AllOfThreeError)[keyof typeof UpdateAlertEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAlertEcosystem404AllOfThree = {\n statusCode: UpdateAlertEcosystem404AllOfThreeStatusCode\n error: UpdateAlertEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAlertEcosystem404 = UpdateAlertEcosystem404AllOf & UpdateAlertEcosystem404AllOfThree\n\n/**\n * Optional note explaining the resolution\n */\nexport type ResolveAlertEcosystemBodyResolutionNote = string | null\n\n/**\n * Payload to resolve an alert\n */\nexport type ResolveAlertEcosystemBody = {\n /** Optional note explaining the resolution */\n resolution_note?: ResolveAlertEcosystemBodyResolutionNote\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type ResolveAlertEcosystem200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type ResolveAlertEcosystem200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type ResolveAlertEcosystem200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type ResolveAlertEcosystem200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type ResolveAlertEcosystem200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type ResolveAlertEcosystem200Status =\n (typeof ResolveAlertEcosystem200Status)[keyof typeof ResolveAlertEcosystem200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type ResolveAlertEcosystem200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type ResolveAlertEcosystem200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type ResolveAlertEcosystem200EmitterType =\n (typeof ResolveAlertEcosystem200EmitterType)[keyof typeof ResolveAlertEcosystem200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type ResolveAlertEcosystem200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type ResolveAlertEcosystem200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type ResolveAlertEcosystem200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type ResolveAlertEcosystem200Emitter = {\n /** Kind of emitter that raised the alert */\n type: ResolveAlertEcosystem200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: ResolveAlertEcosystem200EmitterId\n /** Human readable name of the emitter */\n name?: ResolveAlertEcosystem200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: ResolveAlertEcosystem200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ResolveAlertEcosystem200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type ResolveAlertEcosystem200Recipients = ResolveAlertEcosystem200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ResolveAlertEcosystem200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type ResolveAlertEcosystem200RelatedEntities = ResolveAlertEcosystem200RelatedEntitiesAnyOfItem[] | null\n\nexport type ResolveAlertEcosystem200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type ResolveAlertEcosystem200Payload = ResolveAlertEcosystem200PayloadAnyOf | null\n\nexport type ResolveAlertEcosystem200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type ResolveAlertEcosystem200Metadata = ResolveAlertEcosystem200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlertEcosystem200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlertEcosystem200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type ResolveAlertEcosystem200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlertEcosystem200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type ResolveAlertEcosystem200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type ResolveAlertEcosystem200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type ResolveAlertEcosystem200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type ResolveAlertEcosystem200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: ResolveAlertEcosystem200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: ResolveAlertEcosystem200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: ResolveAlertEcosystem200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: ResolveAlertEcosystem200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: ResolveAlertEcosystem200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: ResolveAlertEcosystem200Status\n /** Short readable title */\n title?: ResolveAlertEcosystem200Title\n /** Longer readable description */\n summary?: ResolveAlertEcosystem200Summary\n /** Who raised the alert */\n emitter: ResolveAlertEcosystem200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: ResolveAlertEcosystem200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: ResolveAlertEcosystem200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: ResolveAlertEcosystem200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: ResolveAlertEcosystem200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: ResolveAlertEcosystem200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: ResolveAlertEcosystem200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: ResolveAlertEcosystem200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: ResolveAlertEcosystem200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: ResolveAlertEcosystem200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: ResolveAlertEcosystem200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: ResolveAlertEcosystem200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlertEcosystem400AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlertEcosystem400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlertEcosystem400AllOfDebug\n}\n\nexport type ResolveAlertEcosystem400AllOfThreeStatusCode =\n (typeof ResolveAlertEcosystem400AllOfThreeStatusCode)[keyof typeof ResolveAlertEcosystem400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type ResolveAlertEcosystem400AllOfThreeError =\n (typeof ResolveAlertEcosystem400AllOfThreeError)[keyof typeof ResolveAlertEcosystem400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type ResolveAlertEcosystem400AllOfThree = {\n statusCode: ResolveAlertEcosystem400AllOfThreeStatusCode\n error: ResolveAlertEcosystem400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type ResolveAlertEcosystem400 = ResolveAlertEcosystem400AllOf & ResolveAlertEcosystem400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlertEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlertEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlertEcosystem403AllOfDebug\n}\n\nexport type ResolveAlertEcosystem403AllOfThreeStatusCode =\n (typeof ResolveAlertEcosystem403AllOfThreeStatusCode)[keyof typeof ResolveAlertEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ResolveAlertEcosystem403AllOfThreeError =\n (typeof ResolveAlertEcosystem403AllOfThreeError)[keyof typeof ResolveAlertEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ResolveAlertEcosystem403AllOfThree = {\n statusCode: ResolveAlertEcosystem403AllOfThreeStatusCode\n error: ResolveAlertEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ResolveAlertEcosystem403 = ResolveAlertEcosystem403AllOf & ResolveAlertEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlertEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlertEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlertEcosystem404AllOfDebug\n}\n\nexport type ResolveAlertEcosystem404AllOfThreeStatusCode =\n (typeof ResolveAlertEcosystem404AllOfThreeStatusCode)[keyof typeof ResolveAlertEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ResolveAlertEcosystem404AllOfThreeError =\n (typeof ResolveAlertEcosystem404AllOfThreeError)[keyof typeof ResolveAlertEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ResolveAlertEcosystem404AllOfThree = {\n statusCode: ResolveAlertEcosystem404AllOfThreeStatusCode\n error: ResolveAlertEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ResolveAlertEcosystem404 = ResolveAlertEcosystem404AllOf & ResolveAlertEcosystem404AllOfThree\n\nexport type ListAlertTypesParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\n/**\n * Longer explanation of what this type covers\n */\nexport type ListAlertTypes200ResultsItemDescription = string | null\n\n/**\n * User who created the type, when a user did\n */\nexport type ListAlertTypes200ResultsItemCreatedUser = number | null\n\n/**\n * A kind of alert, as a named catalog entry of the ecosystem\n */\nexport type ListAlertTypes200ResultsItem = {\n /** Unique identifier of the alert type */\n id: number\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n /** Longer explanation of what this type covers */\n description?: ListAlertTypes200ResultsItemDescription\n /** User who created the type, when a user did */\n created_user?: ListAlertTypes200ResultsItemCreatedUser\n /** When the row was created */\n created_at?: string\n /** When the row was last modified */\n mod_time?: string\n}\n\n/**\n * Paginated response\n */\nexport type ListAlertTypes200 = {\n /** Array of items of the current page */\n results: ListAlertTypes200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAlertTypes403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlertTypes403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlertTypes403AllOfDebug\n}\n\nexport type ListAlertTypes403AllOfThreeStatusCode =\n (typeof ListAlertTypes403AllOfThreeStatusCode)[keyof typeof ListAlertTypes403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertTypes403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAlertTypes403AllOfThreeError =\n (typeof ListAlertTypes403AllOfThreeError)[keyof typeof ListAlertTypes403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertTypes403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAlertTypes403AllOfThree = {\n statusCode: ListAlertTypes403AllOfThreeStatusCode\n error: ListAlertTypes403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAlertTypes403 = ListAlertTypes403AllOf & ListAlertTypes403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAlertTypes404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlertTypes404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlertTypes404AllOfDebug\n}\n\nexport type ListAlertTypes404AllOfThreeStatusCode =\n (typeof ListAlertTypes404AllOfThreeStatusCode)[keyof typeof ListAlertTypes404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertTypes404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAlertTypes404AllOfThreeError =\n (typeof ListAlertTypes404AllOfThreeError)[keyof typeof ListAlertTypes404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertTypes404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAlertTypes404AllOfThree = {\n statusCode: ListAlertTypes404AllOfThreeStatusCode\n error: ListAlertTypes404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAlertTypes404 = ListAlertTypes404AllOf & ListAlertTypes404AllOfThree\n\nexport type CreateAlertTypeBodyDescription = string | null\n\n/**\n * Payload to create an alert type\n */\nexport type CreateAlertTypeBody = {\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n description?: CreateAlertTypeBodyDescription\n}\n\n/**\n * Longer explanation of what this type covers\n */\nexport type CreateAlertType200Description = string | null\n\n/**\n * User who created the type, when a user did\n */\nexport type CreateAlertType200CreatedUser = number | null\n\n/**\n * A kind of alert, as a named catalog entry of the ecosystem\n */\nexport type CreateAlertType200 = {\n /** Unique identifier of the alert type */\n id: number\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n /** Longer explanation of what this type covers */\n description?: CreateAlertType200Description\n /** User who created the type, when a user did */\n created_user?: CreateAlertType200CreatedUser\n /** When the row was created */\n created_at?: string\n /** When the row was last modified */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertType400AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertType400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertType400AllOfDebug\n}\n\nexport type CreateAlertType400AllOfThreeStatusCode =\n (typeof CreateAlertType400AllOfThreeStatusCode)[keyof typeof CreateAlertType400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type CreateAlertType400AllOfThreeError =\n (typeof CreateAlertType400AllOfThreeError)[keyof typeof CreateAlertType400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type CreateAlertType400AllOfThree = {\n statusCode: CreateAlertType400AllOfThreeStatusCode\n error: CreateAlertType400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type CreateAlertType400 = CreateAlertType400AllOf & CreateAlertType400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertType403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertType403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertType403AllOfDebug\n}\n\nexport type CreateAlertType403AllOfThreeStatusCode =\n (typeof CreateAlertType403AllOfThreeStatusCode)[keyof typeof CreateAlertType403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAlertType403AllOfThreeError =\n (typeof CreateAlertType403AllOfThreeError)[keyof typeof CreateAlertType403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAlertType403AllOfThree = {\n statusCode: CreateAlertType403AllOfThreeStatusCode\n error: CreateAlertType403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAlertType403 = CreateAlertType403AllOf & CreateAlertType403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertType404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertType404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertType404AllOfDebug\n}\n\nexport type CreateAlertType404AllOfThreeStatusCode =\n (typeof CreateAlertType404AllOfThreeStatusCode)[keyof typeof CreateAlertType404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAlertType404AllOfThreeError =\n (typeof CreateAlertType404AllOfThreeError)[keyof typeof CreateAlertType404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAlertType404AllOfThree = {\n statusCode: CreateAlertType404AllOfThreeStatusCode\n error: CreateAlertType404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAlertType404 = CreateAlertType404AllOf & CreateAlertType404AllOfThree\n\n/**\n * Longer explanation of what this type covers\n */\nexport type GetAlertType200Description = string | null\n\n/**\n * User who created the type, when a user did\n */\nexport type GetAlertType200CreatedUser = number | null\n\n/**\n * A kind of alert, as a named catalog entry of the ecosystem\n */\nexport type GetAlertType200 = {\n /** Unique identifier of the alert type */\n id: number\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n /** Longer explanation of what this type covers */\n description?: GetAlertType200Description\n /** User who created the type, when a user did */\n created_user?: GetAlertType200CreatedUser\n /** When the row was created */\n created_at?: string\n /** When the row was last modified */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetAlertType403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlertType403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlertType403AllOfDebug\n}\n\nexport type GetAlertType403AllOfThreeStatusCode =\n (typeof GetAlertType403AllOfThreeStatusCode)[keyof typeof GetAlertType403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertType403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAlertType403AllOfThreeError =\n (typeof GetAlertType403AllOfThreeError)[keyof typeof GetAlertType403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertType403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAlertType403AllOfThree = {\n statusCode: GetAlertType403AllOfThreeStatusCode\n error: GetAlertType403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAlertType403 = GetAlertType403AllOf & GetAlertType403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAlertType404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlertType404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlertType404AllOfDebug\n}\n\nexport type GetAlertType404AllOfThreeStatusCode =\n (typeof GetAlertType404AllOfThreeStatusCode)[keyof typeof GetAlertType404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertType404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAlertType404AllOfThreeError =\n (typeof GetAlertType404AllOfThreeError)[keyof typeof GetAlertType404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertType404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAlertType404AllOfThree = {\n statusCode: GetAlertType404AllOfThreeStatusCode\n error: GetAlertType404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAlertType404 = GetAlertType404AllOf & GetAlertType404AllOfThree\n\nexport type UpdateAlertTypeBodyDescription = string | null\n\n/**\n * Payload to update an alert type. Every field is optional\n */\nexport type UpdateAlertTypeBody = {\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name?: string\n description?: UpdateAlertTypeBodyDescription\n}\n\n/**\n * Longer explanation of what this type covers\n */\nexport type UpdateAlertType200Description = string | null\n\n/**\n * User who created the type, when a user did\n */\nexport type UpdateAlertType200CreatedUser = number | null\n\n/**\n * A kind of alert, as a named catalog entry of the ecosystem\n */\nexport type UpdateAlertType200 = {\n /** Unique identifier of the alert type */\n id: number\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n /** Longer explanation of what this type covers */\n description?: UpdateAlertType200Description\n /** User who created the type, when a user did */\n created_user?: UpdateAlertType200CreatedUser\n /** When the row was created */\n created_at?: string\n /** When the row was last modified */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertType400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertType400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertType400AllOfDebug\n}\n\nexport type UpdateAlertType400AllOfThreeStatusCode =\n (typeof UpdateAlertType400AllOfThreeStatusCode)[keyof typeof UpdateAlertType400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAlertType400AllOfThreeError =\n (typeof UpdateAlertType400AllOfThreeError)[keyof typeof UpdateAlertType400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAlertType400AllOfThree = {\n statusCode: UpdateAlertType400AllOfThreeStatusCode\n error: UpdateAlertType400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAlertType400 = UpdateAlertType400AllOf & UpdateAlertType400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertType403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertType403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertType403AllOfDebug\n}\n\nexport type UpdateAlertType403AllOfThreeStatusCode =\n (typeof UpdateAlertType403AllOfThreeStatusCode)[keyof typeof UpdateAlertType403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAlertType403AllOfThreeError =\n (typeof UpdateAlertType403AllOfThreeError)[keyof typeof UpdateAlertType403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAlertType403AllOfThree = {\n statusCode: UpdateAlertType403AllOfThreeStatusCode\n error: UpdateAlertType403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAlertType403 = UpdateAlertType403AllOf & UpdateAlertType403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertType404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertType404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertType404AllOfDebug\n}\n\nexport type UpdateAlertType404AllOfThreeStatusCode =\n (typeof UpdateAlertType404AllOfThreeStatusCode)[keyof typeof UpdateAlertType404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAlertType404AllOfThreeError =\n (typeof UpdateAlertType404AllOfThreeError)[keyof typeof UpdateAlertType404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAlertType404AllOfThree = {\n statusCode: UpdateAlertType404AllOfThreeStatusCode\n error: UpdateAlertType404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAlertType404 = UpdateAlertType404AllOf & UpdateAlertType404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteAlertType200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteAlertType403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAlertType403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAlertType403AllOfDebug\n}\n\nexport type DeleteAlertType403AllOfThreeStatusCode =\n (typeof DeleteAlertType403AllOfThreeStatusCode)[keyof typeof DeleteAlertType403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAlertType403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteAlertType403AllOfThreeError =\n (typeof DeleteAlertType403AllOfThreeError)[keyof typeof DeleteAlertType403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAlertType403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteAlertType403AllOfThree = {\n statusCode: DeleteAlertType403AllOfThreeStatusCode\n error: DeleteAlertType403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteAlertType403 = DeleteAlertType403AllOf & DeleteAlertType403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteAlertType404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAlertType404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAlertType404AllOfDebug\n}\n\nexport type DeleteAlertType404AllOfThreeStatusCode =\n (typeof DeleteAlertType404AllOfThreeStatusCode)[keyof typeof DeleteAlertType404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAlertType404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteAlertType404AllOfThreeError =\n (typeof DeleteAlertType404AllOfThreeError)[keyof typeof DeleteAlertType404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAlertType404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteAlertType404AllOfThree = {\n statusCode: DeleteAlertType404AllOfThreeStatusCode\n error: DeleteAlertType404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteAlertType404 = DeleteAlertType404AllOf & DeleteAlertType404AllOfThree\n\nexport type ListActionsParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type ListActions200ResultsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type ListActions200ResultsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type ListActions200ResultsItemType =\n (typeof ListActions200ResultsItemType)[keyof typeof ListActions200ResultsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions200ResultsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type ListActions200ResultsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type ListActions200ResultsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: ListActions200ResultsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type ListActions200ResultsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type ListActions200ResultsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: ListActions200ResultsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type ListActions200ResultsItemConfigAnyOf = ListActions200ResultsItemConfigAnyOfAllOf &\n ListActions200ResultsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type ListActions200ResultsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type ListActions200ResultsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: ListActions200ResultsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: ListActions200ResultsItemName\n /** Executable mechanism of an action */\n type: ListActions200ResultsItemType\n /** Union of action configs, selected by actions.type */\n config: ListActions200ResultsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: ListActions200ResultsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Paginated response\n */\nexport type ListActions200 = {\n /** Array of items of the current page */\n results: ListActions200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListActions403AllOfDebug = { [key: string]: unknown }\n\nexport type ListActions403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListActions403AllOfDebug\n}\n\nexport type ListActions403AllOfThreeStatusCode =\n (typeof ListActions403AllOfThreeStatusCode)[keyof typeof ListActions403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListActions403AllOfThreeError =\n (typeof ListActions403AllOfThreeError)[keyof typeof ListActions403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListActions403AllOfThree = {\n statusCode: ListActions403AllOfThreeStatusCode\n error: ListActions403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListActions403 = ListActions403AllOf & ListActions403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListActions404AllOfDebug = { [key: string]: unknown }\n\nexport type ListActions404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListActions404AllOfDebug\n}\n\nexport type ListActions404AllOfThreeStatusCode =\n (typeof ListActions404AllOfThreeStatusCode)[keyof typeof ListActions404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListActions404AllOfThreeError =\n (typeof ListActions404AllOfThreeError)[keyof typeof ListActions404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListActions404AllOfThree = {\n statusCode: ListActions404AllOfThreeStatusCode\n error: ListActions404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListActions404 = ListActions404AllOf & ListActions404AllOfThree\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateActionBodyName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateActionBodyType = (typeof CreateActionBodyType)[keyof typeof CreateActionBodyType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateActionBodyType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateActionBodyConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateActionBodyConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateActionBodyConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateActionBodyConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateActionBodyConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateActionBodyConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateActionBodyConfigAnyOf = CreateActionBodyConfigAnyOfAllOf & CreateActionBodyConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateActionBodyRetentionDays = number | null\n\n/**\n * Payload used to create an action\n */\nexport type CreateActionBody = {\n /** Human-readable label of the action. Null when it has none */\n name?: CreateActionBodyName\n /** Executable mechanism of an action */\n type: CreateActionBodyType\n /** Union of action configs, selected by actions.type */\n config: CreateActionBodyConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateActionBodyRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type CreateAction200ProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateAction200Name = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateAction200Type = (typeof CreateAction200Type)[keyof typeof CreateAction200Type]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction200Type = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateAction200ConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateAction200ConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateAction200ConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateAction200ConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateAction200ConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateAction200ConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateAction200ConfigAnyOf = CreateAction200ConfigAnyOfAllOf & CreateAction200ConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAction200RetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type CreateAction200 = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: CreateAction200ProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: CreateAction200Name\n /** Executable mechanism of an action */\n type: CreateAction200Type\n /** Union of action configs, selected by actions.type */\n config: CreateAction200ConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAction200RetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateAction400AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAction400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAction400AllOfDebug\n}\n\nexport type CreateAction400AllOfThreeStatusCode =\n (typeof CreateAction400AllOfThreeStatusCode)[keyof typeof CreateAction400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type CreateAction400AllOfThreeError =\n (typeof CreateAction400AllOfThreeError)[keyof typeof CreateAction400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type CreateAction400AllOfThree = {\n statusCode: CreateAction400AllOfThreeStatusCode\n error: CreateAction400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type CreateAction400 = CreateAction400AllOf & CreateAction400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAction403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAction403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAction403AllOfDebug\n}\n\nexport type CreateAction403AllOfThreeStatusCode =\n (typeof CreateAction403AllOfThreeStatusCode)[keyof typeof CreateAction403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAction403AllOfThreeError =\n (typeof CreateAction403AllOfThreeError)[keyof typeof CreateAction403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAction403AllOfThree = {\n statusCode: CreateAction403AllOfThreeStatusCode\n error: CreateAction403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAction403 = CreateAction403AllOf & CreateAction403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAction404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAction404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAction404AllOfDebug\n}\n\nexport type CreateAction404AllOfThreeStatusCode =\n (typeof CreateAction404AllOfThreeStatusCode)[keyof typeof CreateAction404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAction404AllOfThreeError =\n (typeof CreateAction404AllOfThreeError)[keyof typeof CreateAction404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAction404AllOfThree = {\n statusCode: CreateAction404AllOfThreeStatusCode\n error: CreateAction404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAction404 = CreateAction404AllOf & CreateAction404AllOfThree\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type GetAction200ProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type GetAction200Name = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type GetAction200Type = (typeof GetAction200Type)[keyof typeof GetAction200Type]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction200Type = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type GetAction200ConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type GetAction200ConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: GetAction200ConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type GetAction200ConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type GetAction200ConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: GetAction200ConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type GetAction200ConfigAnyOf = GetAction200ConfigAnyOfAllOf & GetAction200ConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type GetAction200RetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type GetAction200 = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: GetAction200ProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: GetAction200Name\n /** Executable mechanism of an action */\n type: GetAction200Type\n /** Union of action configs, selected by actions.type */\n config: GetAction200ConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: GetAction200RetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type GetAction403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAction403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAction403AllOfDebug\n}\n\nexport type GetAction403AllOfThreeStatusCode =\n (typeof GetAction403AllOfThreeStatusCode)[keyof typeof GetAction403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAction403AllOfThreeError = (typeof GetAction403AllOfThreeError)[keyof typeof GetAction403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAction403AllOfThree = {\n statusCode: GetAction403AllOfThreeStatusCode\n error: GetAction403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAction403 = GetAction403AllOf & GetAction403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAction404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAction404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAction404AllOfDebug\n}\n\nexport type GetAction404AllOfThreeStatusCode =\n (typeof GetAction404AllOfThreeStatusCode)[keyof typeof GetAction404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAction404AllOfThreeError = (typeof GetAction404AllOfThreeError)[keyof typeof GetAction404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAction404AllOfThree = {\n statusCode: GetAction404AllOfThreeStatusCode\n error: GetAction404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAction404 = GetAction404AllOf & GetAction404AllOfThree\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateActionBodyName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateActionBodyType = (typeof UpdateActionBodyType)[keyof typeof UpdateActionBodyType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateActionBodyType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateActionBodyConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateActionBodyConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateActionBodyConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateActionBodyConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateActionBodyConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateActionBodyConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateActionBodyConfigAnyOf = UpdateActionBodyConfigAnyOfAllOf & UpdateActionBodyConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateActionBodyRetentionDays = number | null\n\n/**\n * Payload used to update an action\n */\nexport type UpdateActionBody = {\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateActionBodyName\n /** Executable mechanism of an action */\n type?: UpdateActionBodyType\n /** Union of action configs, selected by actions.type */\n config?: UpdateActionBodyConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateActionBodyRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateAction200ProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateAction200Name = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateAction200Type = (typeof UpdateAction200Type)[keyof typeof UpdateAction200Type]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction200Type = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateAction200ConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateAction200ConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateAction200ConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateAction200ConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateAction200ConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateAction200ConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateAction200ConfigAnyOf = UpdateAction200ConfigAnyOfAllOf & UpdateAction200ConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAction200RetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type UpdateAction200 = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateAction200ProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateAction200Name\n /** Executable mechanism of an action */\n type: UpdateAction200Type\n /** Union of action configs, selected by actions.type */\n config: UpdateAction200ConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAction200RetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateAction400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAction400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAction400AllOfDebug\n}\n\nexport type UpdateAction400AllOfThreeStatusCode =\n (typeof UpdateAction400AllOfThreeStatusCode)[keyof typeof UpdateAction400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAction400AllOfThreeError =\n (typeof UpdateAction400AllOfThreeError)[keyof typeof UpdateAction400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAction400AllOfThree = {\n statusCode: UpdateAction400AllOfThreeStatusCode\n error: UpdateAction400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAction400 = UpdateAction400AllOf & UpdateAction400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAction403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAction403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAction403AllOfDebug\n}\n\nexport type UpdateAction403AllOfThreeStatusCode =\n (typeof UpdateAction403AllOfThreeStatusCode)[keyof typeof UpdateAction403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAction403AllOfThreeError =\n (typeof UpdateAction403AllOfThreeError)[keyof typeof UpdateAction403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAction403AllOfThree = {\n statusCode: UpdateAction403AllOfThreeStatusCode\n error: UpdateAction403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAction403 = UpdateAction403AllOf & UpdateAction403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAction404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAction404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAction404AllOfDebug\n}\n\nexport type UpdateAction404AllOfThreeStatusCode =\n (typeof UpdateAction404AllOfThreeStatusCode)[keyof typeof UpdateAction404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAction404AllOfThreeError =\n (typeof UpdateAction404AllOfThreeError)[keyof typeof UpdateAction404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAction404AllOfThree = {\n statusCode: UpdateAction404AllOfThreeStatusCode\n error: UpdateAction404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAction404 = UpdateAction404AllOf & UpdateAction404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteAction200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteAction403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAction403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAction403AllOfDebug\n}\n\nexport type DeleteAction403AllOfThreeStatusCode =\n (typeof DeleteAction403AllOfThreeStatusCode)[keyof typeof DeleteAction403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAction403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteAction403AllOfThreeError =\n (typeof DeleteAction403AllOfThreeError)[keyof typeof DeleteAction403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAction403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteAction403AllOfThree = {\n statusCode: DeleteAction403AllOfThreeStatusCode\n error: DeleteAction403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteAction403 = DeleteAction403AllOf & DeleteAction403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteAction404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAction404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAction404AllOfDebug\n}\n\nexport type DeleteAction404AllOfThreeStatusCode =\n (typeof DeleteAction404AllOfThreeStatusCode)[keyof typeof DeleteAction404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAction404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteAction404AllOfThreeError =\n (typeof DeleteAction404AllOfThreeError)[keyof typeof DeleteAction404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAction404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteAction404AllOfThree = {\n statusCode: DeleteAction404AllOfThreeStatusCode\n error: DeleteAction404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteAction404 = DeleteAction404AllOf & DeleteAction404AllOfThree\n\nexport type ListAvailableActionsParams = {\n /**\n * Patient identifier used to evaluate each action questionnaire's dependency conditions (DependenceCRF.conditionsMatch). When omitted, all action questionnaire ids are returned without dependency filtering.\n */\n patientId?: number\n}\n\n/**\n * List of applicable action questionnaire ids\n */\nexport type ListAvailableActions200 = {\n /** Form names (ids) of the action questionnaires applicable to the patient */\n results: string[]\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAvailableActions403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAvailableActions403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAvailableActions403AllOfDebug\n}\n\nexport type ListAvailableActions403AllOfThreeStatusCode =\n (typeof ListAvailableActions403AllOfThreeStatusCode)[keyof typeof ListAvailableActions403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableActions403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAvailableActions403AllOfThreeError =\n (typeof ListAvailableActions403AllOfThreeError)[keyof typeof ListAvailableActions403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableActions403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAvailableActions403AllOfThree = {\n statusCode: ListAvailableActions403AllOfThreeStatusCode\n error: ListAvailableActions403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAvailableActions403 = ListAvailableActions403AllOf & ListAvailableActions403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAvailableActions404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAvailableActions404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAvailableActions404AllOfDebug\n}\n\nexport type ListAvailableActions404AllOfThreeStatusCode =\n (typeof ListAvailableActions404AllOfThreeStatusCode)[keyof typeof ListAvailableActions404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableActions404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAvailableActions404AllOfThreeError =\n (typeof ListAvailableActions404AllOfThreeError)[keyof typeof ListAvailableActions404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableActions404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAvailableActions404AllOfThree = {\n statusCode: ListAvailableActions404AllOfThreeStatusCode\n error: ListAvailableActions404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAvailableActions404 = ListAvailableActions404AllOf & ListAvailableActions404AllOfThree\n\nexport type ListAlertsParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\n status?: ListAlertsStatus\n /**\n * Severity of the alert, used to prioritise it\n */\n severity?: ListAlertsSeverity\n /**\n * Filter by the user the alert is about\n */\n user_id?: number\n /**\n * Filter by the patient the alert is about\n */\n patient_id?: number\n /**\n * Filter by the type of the alert\n */\n alert_type_id?: number\n}\n\nexport type ListAlertsStatus = (typeof ListAlertsStatus)[keyof typeof ListAlertsStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsStatus = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\nexport type ListAlertsSeverity = (typeof ListAlertsSeverity)[keyof typeof ListAlertsSeverity]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsSeverity = {\n info: 'info',\n low: 'low',\n medium: 'medium',\n high: 'high',\n critical: 'critical',\n} as const\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type ListAlerts200ResultsItemProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type ListAlerts200ResultsItemAlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type ListAlerts200ResultsItemUserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type ListAlerts200ResultsItemPatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type ListAlerts200ResultsItemSeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type ListAlerts200ResultsItemStatus =\n (typeof ListAlerts200ResultsItemStatus)[keyof typeof ListAlerts200ResultsItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts200ResultsItemStatus = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type ListAlerts200ResultsItemTitle = string | null\n\n/**\n * Longer readable description\n */\nexport type ListAlerts200ResultsItemSummary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type ListAlerts200ResultsItemEmitterType =\n (typeof ListAlerts200ResultsItemEmitterType)[keyof typeof ListAlerts200ResultsItemEmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts200ResultsItemEmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type ListAlerts200ResultsItemEmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type ListAlerts200ResultsItemEmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type ListAlerts200ResultsItemEmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type ListAlerts200ResultsItemEmitter = {\n /** Kind of emitter that raised the alert */\n type: ListAlerts200ResultsItemEmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: ListAlerts200ResultsItemEmitterId\n /** Human readable name of the emitter */\n name?: ListAlerts200ResultsItemEmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: ListAlerts200ResultsItemEmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ListAlerts200ResultsItemRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type ListAlerts200ResultsItemRecipients = ListAlerts200ResultsItemRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ListAlerts200ResultsItemRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type ListAlerts200ResultsItemRelatedEntities = ListAlerts200ResultsItemRelatedEntitiesAnyOfItem[] | null\n\nexport type ListAlerts200ResultsItemPayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type ListAlerts200ResultsItemPayload = ListAlerts200ResultsItemPayloadAnyOf | null\n\nexport type ListAlerts200ResultsItemMetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type ListAlerts200ResultsItemMetadata = ListAlerts200ResultsItemMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type ListAlerts200ResultsItemTriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type ListAlerts200ResultsItemViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type ListAlerts200ResultsItemViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type ListAlerts200ResultsItemResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type ListAlerts200ResultsItemResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type ListAlerts200ResultsItemResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type ListAlerts200ResultsItemCreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type ListAlerts200ResultsItem = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: ListAlerts200ResultsItemProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: ListAlerts200ResultsItemAlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: ListAlerts200ResultsItemUserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: ListAlerts200ResultsItemPatientId\n /** Severity of the alert. Null when not graded */\n severity?: ListAlerts200ResultsItemSeverity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: ListAlerts200ResultsItemStatus\n /** Short readable title */\n title?: ListAlerts200ResultsItemTitle\n /** Longer readable description */\n summary?: ListAlerts200ResultsItemSummary\n /** Who raised the alert */\n emitter: ListAlerts200ResultsItemEmitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: ListAlerts200ResultsItemRecipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: ListAlerts200ResultsItemRelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: ListAlerts200ResultsItemPayload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: ListAlerts200ResultsItemMetadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: ListAlerts200ResultsItemTriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: ListAlerts200ResultsItemViewedAt\n /** User who first viewed the alert */\n viewed_by?: ListAlerts200ResultsItemViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: ListAlerts200ResultsItemResolvedAt\n /** User who resolved the alert */\n resolved_by?: ListAlerts200ResultsItemResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: ListAlerts200ResultsItemResolutionNote\n /** User who created the alert, when a user did */\n created_user?: ListAlerts200ResultsItemCreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Paginated response\n */\nexport type ListAlerts200 = {\n /** Array of items of the current page */\n results: ListAlerts200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAlerts403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlerts403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlerts403AllOfDebug\n}\n\nexport type ListAlerts403AllOfThreeStatusCode =\n (typeof ListAlerts403AllOfThreeStatusCode)[keyof typeof ListAlerts403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAlerts403AllOfThreeError =\n (typeof ListAlerts403AllOfThreeError)[keyof typeof ListAlerts403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAlerts403AllOfThree = {\n statusCode: ListAlerts403AllOfThreeStatusCode\n error: ListAlerts403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAlerts403 = ListAlerts403AllOf & ListAlerts403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAlerts404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlerts404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlerts404AllOfDebug\n}\n\nexport type ListAlerts404AllOfThreeStatusCode =\n (typeof ListAlerts404AllOfThreeStatusCode)[keyof typeof ListAlerts404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAlerts404AllOfThreeError =\n (typeof ListAlerts404AllOfThreeError)[keyof typeof ListAlerts404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAlerts404AllOfThree = {\n statusCode: ListAlerts404AllOfThreeStatusCode\n error: ListAlerts404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAlerts404 = ListAlerts404AllOf & ListAlerts404AllOfThree\n\nexport type CreateAlertBodyAlertTypeId = number | null\n\nexport type CreateAlertBodyUserId = number | null\n\nexport type CreateAlertBodyPatientId = number | null\n\nexport type CreateAlertBodySeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\nexport type CreateAlertBodyTitle = string | null\n\nexport type CreateAlertBodySummary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type CreateAlertBodyEmitterType = (typeof CreateAlertBodyEmitterType)[keyof typeof CreateAlertBodyEmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertBodyEmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type CreateAlertBodyEmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type CreateAlertBodyEmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type CreateAlertBodyEmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type CreateAlertBodyEmitter = {\n /** Kind of emitter that raised the alert */\n type: CreateAlertBodyEmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: CreateAlertBodyEmitterId\n /** Human readable name of the emitter */\n name?: CreateAlertBodyEmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: CreateAlertBodyEmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertBodyRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type CreateAlertBodyRecipients = CreateAlertBodyRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertBodyRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type CreateAlertBodyRelatedEntities = CreateAlertBodyRelatedEntitiesAnyOfItem[] | null\n\nexport type CreateAlertBodyPayloadAnyOf = { [key: string]: unknown }\n\nexport type CreateAlertBodyPayload = CreateAlertBodyPayloadAnyOf | null\n\nexport type CreateAlertBodyMetadataAnyOf = { [key: string]: unknown }\n\nexport type CreateAlertBodyMetadata = CreateAlertBodyMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC\n */\nexport type CreateAlertBodyTriggeredAt = string | null\n\n/**\n * Payload to create an alert\n */\nexport type CreateAlertBody = {\n alert_type_id?: CreateAlertBodyAlertTypeId\n user_id?: CreateAlertBodyUserId\n patient_id?: CreateAlertBodyPatientId\n severity?: CreateAlertBodySeverity\n title?: CreateAlertBodyTitle\n summary?: CreateAlertBodySummary\n /** Who raised the alert */\n emitter: CreateAlertBodyEmitter\n recipients?: CreateAlertBodyRecipients\n related_entities?: CreateAlertBodyRelatedEntities\n payload?: CreateAlertBodyPayload\n metadata?: CreateAlertBodyMetadata\n /** @maxLength 255 */\n dedup_key?: string\n /** When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC */\n triggered_at?: CreateAlertBodyTriggeredAt\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type CreateAlert200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type CreateAlert200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type CreateAlert200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type CreateAlert200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type CreateAlert200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type CreateAlert200Status = (typeof CreateAlert200Status)[keyof typeof CreateAlert200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type CreateAlert200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type CreateAlert200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type CreateAlert200EmitterType = (typeof CreateAlert200EmitterType)[keyof typeof CreateAlert200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type CreateAlert200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type CreateAlert200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type CreateAlert200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type CreateAlert200Emitter = {\n /** Kind of emitter that raised the alert */\n type: CreateAlert200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: CreateAlert200EmitterId\n /** Human readable name of the emitter */\n name?: CreateAlert200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: CreateAlert200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlert200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type CreateAlert200Recipients = CreateAlert200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlert200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type CreateAlert200RelatedEntities = CreateAlert200RelatedEntitiesAnyOfItem[] | null\n\nexport type CreateAlert200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type CreateAlert200Payload = CreateAlert200PayloadAnyOf | null\n\nexport type CreateAlert200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type CreateAlert200Metadata = CreateAlert200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlert200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlert200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type CreateAlert200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlert200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type CreateAlert200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type CreateAlert200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type CreateAlert200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type CreateAlert200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: CreateAlert200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: CreateAlert200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: CreateAlert200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: CreateAlert200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: CreateAlert200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: CreateAlert200Status\n /** Short readable title */\n title?: CreateAlert200Title\n /** Longer readable description */\n summary?: CreateAlert200Summary\n /** Who raised the alert */\n emitter: CreateAlert200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: CreateAlert200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: CreateAlert200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: CreateAlert200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: CreateAlert200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: CreateAlert200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: CreateAlert200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: CreateAlert200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: CreateAlert200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: CreateAlert200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: CreateAlert200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: CreateAlert200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateAlert400AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlert400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlert400AllOfDebug\n}\n\nexport type CreateAlert400AllOfThreeStatusCode =\n (typeof CreateAlert400AllOfThreeStatusCode)[keyof typeof CreateAlert400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type CreateAlert400AllOfThreeError =\n (typeof CreateAlert400AllOfThreeError)[keyof typeof CreateAlert400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type CreateAlert400AllOfThree = {\n statusCode: CreateAlert400AllOfThreeStatusCode\n error: CreateAlert400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type CreateAlert400 = CreateAlert400AllOf & CreateAlert400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlert403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlert403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlert403AllOfDebug\n}\n\nexport type CreateAlert403AllOfThreeStatusCode =\n (typeof CreateAlert403AllOfThreeStatusCode)[keyof typeof CreateAlert403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAlert403AllOfThreeError =\n (typeof CreateAlert403AllOfThreeError)[keyof typeof CreateAlert403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAlert403AllOfThree = {\n statusCode: CreateAlert403AllOfThreeStatusCode\n error: CreateAlert403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAlert403 = CreateAlert403AllOf & CreateAlert403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlert404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlert404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlert404AllOfDebug\n}\n\nexport type CreateAlert404AllOfThreeStatusCode =\n (typeof CreateAlert404AllOfThreeStatusCode)[keyof typeof CreateAlert404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAlert404AllOfThreeError =\n (typeof CreateAlert404AllOfThreeError)[keyof typeof CreateAlert404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAlert404AllOfThree = {\n statusCode: CreateAlert404AllOfThreeStatusCode\n error: CreateAlert404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAlert404 = CreateAlert404AllOf & CreateAlert404AllOfThree\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type GetAlert200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type GetAlert200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type GetAlert200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type GetAlert200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type GetAlert200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type GetAlert200Status = (typeof GetAlert200Status)[keyof typeof GetAlert200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type GetAlert200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type GetAlert200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type GetAlert200EmitterType = (typeof GetAlert200EmitterType)[keyof typeof GetAlert200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type GetAlert200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type GetAlert200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type GetAlert200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type GetAlert200Emitter = {\n /** Kind of emitter that raised the alert */\n type: GetAlert200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: GetAlert200EmitterId\n /** Human readable name of the emitter */\n name?: GetAlert200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: GetAlert200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type GetAlert200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type GetAlert200Recipients = GetAlert200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type GetAlert200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type GetAlert200RelatedEntities = GetAlert200RelatedEntitiesAnyOfItem[] | null\n\nexport type GetAlert200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type GetAlert200Payload = GetAlert200PayloadAnyOf | null\n\nexport type GetAlert200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type GetAlert200Metadata = GetAlert200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type GetAlert200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type GetAlert200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type GetAlert200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type GetAlert200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type GetAlert200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type GetAlert200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type GetAlert200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type GetAlert200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: GetAlert200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: GetAlert200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: GetAlert200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: GetAlert200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: GetAlert200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: GetAlert200Status\n /** Short readable title */\n title?: GetAlert200Title\n /** Longer readable description */\n summary?: GetAlert200Summary\n /** Who raised the alert */\n emitter: GetAlert200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: GetAlert200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: GetAlert200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: GetAlert200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: GetAlert200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: GetAlert200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: GetAlert200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: GetAlert200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: GetAlert200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: GetAlert200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: GetAlert200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: GetAlert200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetAlert403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlert403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlert403AllOfDebug\n}\n\nexport type GetAlert403AllOfThreeStatusCode =\n (typeof GetAlert403AllOfThreeStatusCode)[keyof typeof GetAlert403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAlert403AllOfThreeError = (typeof GetAlert403AllOfThreeError)[keyof typeof GetAlert403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAlert403AllOfThree = {\n statusCode: GetAlert403AllOfThreeStatusCode\n error: GetAlert403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAlert403 = GetAlert403AllOf & GetAlert403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAlert404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlert404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlert404AllOfDebug\n}\n\nexport type GetAlert404AllOfThreeStatusCode =\n (typeof GetAlert404AllOfThreeStatusCode)[keyof typeof GetAlert404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAlert404AllOfThreeError = (typeof GetAlert404AllOfThreeError)[keyof typeof GetAlert404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAlert404AllOfThree = {\n statusCode: GetAlert404AllOfThreeStatusCode\n error: GetAlert404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAlert404 = GetAlert404AllOf & GetAlert404AllOfThree\n\nexport type UpdateAlertBodyAlertTypeId = number | null\n\nexport type UpdateAlertBodyUserId = number | null\n\nexport type UpdateAlertBodyPatientId = number | null\n\nexport type UpdateAlertBodySeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\nexport type UpdateAlertBodyTitle = string | null\n\nexport type UpdateAlertBodySummary = string | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertBodyRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type UpdateAlertBodyRecipients = UpdateAlertBodyRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertBodyRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type UpdateAlertBodyRelatedEntities = UpdateAlertBodyRelatedEntitiesAnyOfItem[] | null\n\nexport type UpdateAlertBodyPayloadAnyOf = { [key: string]: unknown }\n\nexport type UpdateAlertBodyPayload = UpdateAlertBodyPayloadAnyOf | null\n\nexport type UpdateAlertBodyMetadataAnyOf = { [key: string]: unknown }\n\nexport type UpdateAlertBodyMetadata = UpdateAlertBodyMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC\n */\nexport type UpdateAlertBodyTriggeredAt = string | null\n\n/**\n * Payload to update an alert. Every field is optional. `emitter` cannot be changed after creation\n */\nexport type UpdateAlertBody = {\n alert_type_id?: UpdateAlertBodyAlertTypeId\n user_id?: UpdateAlertBodyUserId\n patient_id?: UpdateAlertBodyPatientId\n severity?: UpdateAlertBodySeverity\n title?: UpdateAlertBodyTitle\n summary?: UpdateAlertBodySummary\n recipients?: UpdateAlertBodyRecipients\n related_entities?: UpdateAlertBodyRelatedEntities\n payload?: UpdateAlertBodyPayload\n metadata?: UpdateAlertBodyMetadata\n /** @maxLength 255 */\n dedup_key?: string\n /** When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC */\n triggered_at?: UpdateAlertBodyTriggeredAt\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type UpdateAlert200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type UpdateAlert200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type UpdateAlert200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type UpdateAlert200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type UpdateAlert200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type UpdateAlert200Status = (typeof UpdateAlert200Status)[keyof typeof UpdateAlert200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type UpdateAlert200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type UpdateAlert200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type UpdateAlert200EmitterType = (typeof UpdateAlert200EmitterType)[keyof typeof UpdateAlert200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type UpdateAlert200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type UpdateAlert200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type UpdateAlert200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type UpdateAlert200Emitter = {\n /** Kind of emitter that raised the alert */\n type: UpdateAlert200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: UpdateAlert200EmitterId\n /** Human readable name of the emitter */\n name?: UpdateAlert200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: UpdateAlert200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlert200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type UpdateAlert200Recipients = UpdateAlert200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlert200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type UpdateAlert200RelatedEntities = UpdateAlert200RelatedEntitiesAnyOfItem[] | null\n\nexport type UpdateAlert200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type UpdateAlert200Payload = UpdateAlert200PayloadAnyOf | null\n\nexport type UpdateAlert200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type UpdateAlert200Metadata = UpdateAlert200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlert200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlert200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type UpdateAlert200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlert200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type UpdateAlert200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type UpdateAlert200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type UpdateAlert200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type UpdateAlert200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: UpdateAlert200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: UpdateAlert200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: UpdateAlert200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: UpdateAlert200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: UpdateAlert200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: UpdateAlert200Status\n /** Short readable title */\n title?: UpdateAlert200Title\n /** Longer readable description */\n summary?: UpdateAlert200Summary\n /** Who raised the alert */\n emitter: UpdateAlert200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: UpdateAlert200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: UpdateAlert200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: UpdateAlert200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: UpdateAlert200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: UpdateAlert200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: UpdateAlert200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: UpdateAlert200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: UpdateAlert200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: UpdateAlert200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: UpdateAlert200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: UpdateAlert200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlert400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlert400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlert400AllOfDebug\n}\n\nexport type UpdateAlert400AllOfThreeStatusCode =\n (typeof UpdateAlert400AllOfThreeStatusCode)[keyof typeof UpdateAlert400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAlert400AllOfThreeError =\n (typeof UpdateAlert400AllOfThreeError)[keyof typeof UpdateAlert400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAlert400AllOfThree = {\n statusCode: UpdateAlert400AllOfThreeStatusCode\n error: UpdateAlert400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAlert400 = UpdateAlert400AllOf & UpdateAlert400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlert403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlert403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlert403AllOfDebug\n}\n\nexport type UpdateAlert403AllOfThreeStatusCode =\n (typeof UpdateAlert403AllOfThreeStatusCode)[keyof typeof UpdateAlert403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAlert403AllOfThreeError =\n (typeof UpdateAlert403AllOfThreeError)[keyof typeof UpdateAlert403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAlert403AllOfThree = {\n statusCode: UpdateAlert403AllOfThreeStatusCode\n error: UpdateAlert403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAlert403 = UpdateAlert403AllOf & UpdateAlert403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlert404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlert404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlert404AllOfDebug\n}\n\nexport type UpdateAlert404AllOfThreeStatusCode =\n (typeof UpdateAlert404AllOfThreeStatusCode)[keyof typeof UpdateAlert404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAlert404AllOfThreeError =\n (typeof UpdateAlert404AllOfThreeError)[keyof typeof UpdateAlert404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAlert404AllOfThree = {\n statusCode: UpdateAlert404AllOfThreeStatusCode\n error: UpdateAlert404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAlert404 = UpdateAlert404AllOf & UpdateAlert404AllOfThree\n\n/**\n * Optional note explaining the resolution\n */\nexport type ResolveAlertBodyResolutionNote = string | null\n\n/**\n * Payload to resolve an alert\n */\nexport type ResolveAlertBody = {\n /** Optional note explaining the resolution */\n resolution_note?: ResolveAlertBodyResolutionNote\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type ResolveAlert200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type ResolveAlert200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type ResolveAlert200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type ResolveAlert200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type ResolveAlert200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type ResolveAlert200Status = (typeof ResolveAlert200Status)[keyof typeof ResolveAlert200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type ResolveAlert200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type ResolveAlert200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type ResolveAlert200EmitterType = (typeof ResolveAlert200EmitterType)[keyof typeof ResolveAlert200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type ResolveAlert200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type ResolveAlert200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type ResolveAlert200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type ResolveAlert200Emitter = {\n /** Kind of emitter that raised the alert */\n type: ResolveAlert200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: ResolveAlert200EmitterId\n /** Human readable name of the emitter */\n name?: ResolveAlert200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: ResolveAlert200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ResolveAlert200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type ResolveAlert200Recipients = ResolveAlert200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ResolveAlert200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type ResolveAlert200RelatedEntities = ResolveAlert200RelatedEntitiesAnyOfItem[] | null\n\nexport type ResolveAlert200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type ResolveAlert200Payload = ResolveAlert200PayloadAnyOf | null\n\nexport type ResolveAlert200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type ResolveAlert200Metadata = ResolveAlert200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlert200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlert200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type ResolveAlert200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlert200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type ResolveAlert200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type ResolveAlert200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type ResolveAlert200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type ResolveAlert200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: ResolveAlert200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: ResolveAlert200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: ResolveAlert200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: ResolveAlert200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: ResolveAlert200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: ResolveAlert200Status\n /** Short readable title */\n title?: ResolveAlert200Title\n /** Longer readable description */\n summary?: ResolveAlert200Summary\n /** Who raised the alert */\n emitter: ResolveAlert200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: ResolveAlert200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: ResolveAlert200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: ResolveAlert200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: ResolveAlert200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: ResolveAlert200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: ResolveAlert200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: ResolveAlert200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: ResolveAlert200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: ResolveAlert200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: ResolveAlert200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: ResolveAlert200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlert400AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlert400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlert400AllOfDebug\n}\n\nexport type ResolveAlert400AllOfThreeStatusCode =\n (typeof ResolveAlert400AllOfThreeStatusCode)[keyof typeof ResolveAlert400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type ResolveAlert400AllOfThreeError =\n (typeof ResolveAlert400AllOfThreeError)[keyof typeof ResolveAlert400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type ResolveAlert400AllOfThree = {\n statusCode: ResolveAlert400AllOfThreeStatusCode\n error: ResolveAlert400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type ResolveAlert400 = ResolveAlert400AllOf & ResolveAlert400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlert403AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlert403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlert403AllOfDebug\n}\n\nexport type ResolveAlert403AllOfThreeStatusCode =\n (typeof ResolveAlert403AllOfThreeStatusCode)[keyof typeof ResolveAlert403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ResolveAlert403AllOfThreeError =\n (typeof ResolveAlert403AllOfThreeError)[keyof typeof ResolveAlert403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ResolveAlert403AllOfThree = {\n statusCode: ResolveAlert403AllOfThreeStatusCode\n error: ResolveAlert403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ResolveAlert403 = ResolveAlert403AllOf & ResolveAlert403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlert404AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlert404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlert404AllOfDebug\n}\n\nexport type ResolveAlert404AllOfThreeStatusCode =\n (typeof ResolveAlert404AllOfThreeStatusCode)[keyof typeof ResolveAlert404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ResolveAlert404AllOfThreeError =\n (typeof ResolveAlert404AllOfThreeError)[keyof typeof ResolveAlert404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ResolveAlert404AllOfThree = {\n statusCode: ResolveAlert404AllOfThreeStatusCode\n error: ResolveAlert404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ResolveAlert404 = ResolveAlert404AllOf & ResolveAlert404AllOfThree\n\nexport type ListAutomaticTriggersParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * Return each trigger with its ordered `actions` resolved, in a single request\n */\n includeActions?: boolean\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfSource =\n (typeof ListAutomaticTriggers200ResultsItemAllOfSource)[keyof typeof ListAutomaticTriggers200ResultsItemAllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers200ResultsItemAllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOperation = 'create' | 'update' | 'delete' | null\n\nexport type ListAutomaticTriggers200ResultsItemAllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfConditions =\n ListAutomaticTriggers200ResultsItemAllOfConditionsAnyOf | null\n\nexport type ListAutomaticTriggers200ResultsItemAllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfRelations =\n ListAutomaticTriggers200ResultsItemAllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfRetentionDays = number | null\n\n/**\n * Automatic trigger definition (ecosystem level)\n */\nexport type ListAutomaticTriggers200ResultsItemAllOf = {\n /** Unique identifier of the automatic trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: ListAutomaticTriggers200ResultsItemAllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: ListAutomaticTriggers200ResultsItemAllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: ListAutomaticTriggers200ResultsItemAllOfDescription\n /** Source of the event that fires a trigger */\n source: ListAutomaticTriggers200ResultsItemAllOfSource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: ListAutomaticTriggers200ResultsItemAllOfTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: ListAutomaticTriggers200ResultsItemAllOfOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: ListAutomaticTriggers200ResultsItemAllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: ListAutomaticTriggers200ResultsItemAllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: ListAutomaticTriggers200ResultsItemAllOfRetentionDays\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType =\n (typeof ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType)[keyof typeof ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfDefault = {\n [key: string]: unknown\n}\n\n/**\n * Base fields shared by every action config\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload = {\n [key: string]: unknown\n}\n\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOf =\n ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOf &\n ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemName\n /** Executable mechanism of an action */\n type: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType\n /** Union of action configs, selected by actions.type */\n config: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethree = {\n /** Actions the trigger runs, in execution order */\n actions?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItem[]\n}\n\n/**\n * An automatic trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type ListAutomaticTriggers200ResultsItem = ListAutomaticTriggers200ResultsItemAllOf &\n ListAutomaticTriggers200ResultsItemAllOfOnethree\n\n/**\n * Paginated response\n */\nexport type ListAutomaticTriggers200 = {\n /** Array of items of the current page */\n results: ListAutomaticTriggers200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAutomaticTriggers403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAutomaticTriggers403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAutomaticTriggers403AllOfDebug\n}\n\nexport type ListAutomaticTriggers403AllOfThreeStatusCode =\n (typeof ListAutomaticTriggers403AllOfThreeStatusCode)[keyof typeof ListAutomaticTriggers403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAutomaticTriggers403AllOfThreeError =\n (typeof ListAutomaticTriggers403AllOfThreeError)[keyof typeof ListAutomaticTriggers403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAutomaticTriggers403AllOfThree = {\n statusCode: ListAutomaticTriggers403AllOfThreeStatusCode\n error: ListAutomaticTriggers403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAutomaticTriggers403 = ListAutomaticTriggers403AllOf & ListAutomaticTriggers403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAutomaticTriggers404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAutomaticTriggers404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAutomaticTriggers404AllOfDebug\n}\n\nexport type ListAutomaticTriggers404AllOfThreeStatusCode =\n (typeof ListAutomaticTriggers404AllOfThreeStatusCode)[keyof typeof ListAutomaticTriggers404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAutomaticTriggers404AllOfThreeError =\n (typeof ListAutomaticTriggers404AllOfThreeError)[keyof typeof ListAutomaticTriggers404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAutomaticTriggers404AllOfThree = {\n statusCode: ListAutomaticTriggers404AllOfThreeStatusCode\n error: ListAutomaticTriggers404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAutomaticTriggers404 = ListAutomaticTriggers404AllOf & ListAutomaticTriggers404AllOfThree\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type CreateAutomaticTriggerBodyName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type CreateAutomaticTriggerBodyDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type CreateAutomaticTriggerBodySource =\n (typeof CreateAutomaticTriggerBodySource)[keyof typeof CreateAutomaticTriggerBodySource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTriggerBodySource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type CreateAutomaticTriggerBodyTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type CreateAutomaticTriggerBodyOperation = 'create' | 'update' | 'delete' | null\n\nexport type CreateAutomaticTriggerBodyConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type CreateAutomaticTriggerBodyConditions = CreateAutomaticTriggerBodyConditionsAnyOf | null\n\nexport type CreateAutomaticTriggerBodyRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type CreateAutomaticTriggerBodyRelations = CreateAutomaticTriggerBodyRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTriggerBodyRetentionDays = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfType =\n (typeof CreateAutomaticTriggerBodyActionsItemAnyOfType)[keyof typeof CreateAutomaticTriggerBodyActionsItemAnyOfType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTriggerBodyActionsItemAnyOfType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOf =\n CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOf &\n CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfRetentionDays = number | null\n\n/**\n * Action created and linked in the same request\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOf = {\n /** Human-readable label of the action. Null when it has none */\n name?: CreateAutomaticTriggerBodyActionsItemAnyOfName\n /** Executable mechanism of an action */\n type: CreateAutomaticTriggerBodyActionsItemAnyOfType\n /** Union of action configs, selected by actions.type */\n config: CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTriggerBodyActionsItemAnyOfRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType =\n (typeof CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType)[keyof typeof CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf =\n CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf &\n CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroRetentionDays = number | null\n\n/**\n * Existing action updated and linked in the same request\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezero = {\n id: number\n /** Human-readable label of the action. Null when it has none */\n name?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroName\n /** Executable mechanism of an action */\n type?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType\n /** Union of action configs, selected by actions.type */\n config?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * An action a trigger runs: linked, created, or updated in place\n */\nexport type CreateAutomaticTriggerBodyActionsItem =\n | number\n | CreateAutomaticTriggerBodyActionsItemAnyOf\n | CreateAutomaticTriggerBodyActionsItemAnyOfOnezero\n\n/**\n * Payload used to create an automatic trigger, optionally with the actions it runs\n */\nexport type CreateAutomaticTriggerBody = {\n /** Human-readable label of the trigger. Null when it has none */\n name?: CreateAutomaticTriggerBodyName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: CreateAutomaticTriggerBodyDescription\n /** Source of the event that fires a trigger */\n source: CreateAutomaticTriggerBodySource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: CreateAutomaticTriggerBodyTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: CreateAutomaticTriggerBodyOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: CreateAutomaticTriggerBodyConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: CreateAutomaticTriggerBodyRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTriggerBodyRetentionDays\n /** Full ordered set of actions the trigger runs; the array position is the execution order. An empty array leaves the trigger with none */\n actions?: CreateAutomaticTriggerBodyActionsItem[]\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type CreateAutomaticTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type CreateAutomaticTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type CreateAutomaticTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type CreateAutomaticTrigger200AllOfSource =\n (typeof CreateAutomaticTrigger200AllOfSource)[keyof typeof CreateAutomaticTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type CreateAutomaticTrigger200AllOfTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type CreateAutomaticTrigger200AllOfOperation = 'create' | 'update' | 'delete' | null\n\nexport type CreateAutomaticTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type CreateAutomaticTrigger200AllOfConditions = CreateAutomaticTrigger200AllOfConditionsAnyOf | null\n\nexport type CreateAutomaticTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type CreateAutomaticTrigger200AllOfRelations = CreateAutomaticTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTrigger200AllOfRetentionDays = number | null\n\n/**\n * Automatic trigger definition (ecosystem level)\n */\nexport type CreateAutomaticTrigger200AllOf = {\n /** Unique identifier of the automatic trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: CreateAutomaticTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: CreateAutomaticTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: CreateAutomaticTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: CreateAutomaticTrigger200AllOfSource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: CreateAutomaticTrigger200AllOfTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: CreateAutomaticTrigger200AllOfOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: CreateAutomaticTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: CreateAutomaticTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTrigger200AllOfRetentionDays\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemType =\n (typeof CreateAutomaticTrigger200AllOfOnethreeActionsItemType)[keyof typeof CreateAutomaticTrigger200AllOfOnethreeActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger200AllOfOnethreeActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf =\n CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf &\n CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: CreateAutomaticTrigger200AllOfOnethreeActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: CreateAutomaticTrigger200AllOfOnethreeActionsItemName\n /** Executable mechanism of an action */\n type: CreateAutomaticTrigger200AllOfOnethreeActionsItemType\n /** Union of action configs, selected by actions.type */\n config: CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type CreateAutomaticTrigger200AllOfOnethree = {\n /** Actions the trigger runs, in execution order */\n actions?: CreateAutomaticTrigger200AllOfOnethreeActionsItem[]\n}\n\n/**\n * An automatic trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type CreateAutomaticTrigger200 = CreateAutomaticTrigger200AllOf & CreateAutomaticTrigger200AllOfOnethree\n\n/**\n * Debug information of the error\n */\nexport type CreateAutomaticTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAutomaticTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAutomaticTrigger403AllOfDebug\n}\n\nexport type CreateAutomaticTrigger403AllOfThreeStatusCode =\n (typeof CreateAutomaticTrigger403AllOfThreeStatusCode)[keyof typeof CreateAutomaticTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAutomaticTrigger403AllOfThreeError =\n (typeof CreateAutomaticTrigger403AllOfThreeError)[keyof typeof CreateAutomaticTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAutomaticTrigger403AllOfThree = {\n statusCode: CreateAutomaticTrigger403AllOfThreeStatusCode\n error: CreateAutomaticTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAutomaticTrigger403 = CreateAutomaticTrigger403AllOf & CreateAutomaticTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAutomaticTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAutomaticTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAutomaticTrigger404AllOfDebug\n}\n\nexport type CreateAutomaticTrigger404AllOfThreeStatusCode =\n (typeof CreateAutomaticTrigger404AllOfThreeStatusCode)[keyof typeof CreateAutomaticTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAutomaticTrigger404AllOfThreeError =\n (typeof CreateAutomaticTrigger404AllOfThreeError)[keyof typeof CreateAutomaticTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAutomaticTrigger404AllOfThree = {\n statusCode: CreateAutomaticTrigger404AllOfThreeStatusCode\n error: CreateAutomaticTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAutomaticTrigger404 = CreateAutomaticTrigger404AllOf & CreateAutomaticTrigger404AllOfThree\n\nexport type GetAutomaticTriggerParams = {\n /**\n * Return each trigger with its ordered `actions` resolved, in a single request\n */\n includeActions?: boolean\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type GetAutomaticTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type GetAutomaticTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type GetAutomaticTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type GetAutomaticTrigger200AllOfSource =\n (typeof GetAutomaticTrigger200AllOfSource)[keyof typeof GetAutomaticTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type GetAutomaticTrigger200AllOfTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type GetAutomaticTrigger200AllOfOperation = 'create' | 'update' | 'delete' | null\n\nexport type GetAutomaticTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type GetAutomaticTrigger200AllOfConditions = GetAutomaticTrigger200AllOfConditionsAnyOf | null\n\nexport type GetAutomaticTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type GetAutomaticTrigger200AllOfRelations = GetAutomaticTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type GetAutomaticTrigger200AllOfRetentionDays = number | null\n\n/**\n * Automatic trigger definition (ecosystem level)\n */\nexport type GetAutomaticTrigger200AllOf = {\n /** Unique identifier of the automatic trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: GetAutomaticTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: GetAutomaticTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: GetAutomaticTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: GetAutomaticTrigger200AllOfSource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: GetAutomaticTrigger200AllOfTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: GetAutomaticTrigger200AllOfOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: GetAutomaticTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: GetAutomaticTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: GetAutomaticTrigger200AllOfRetentionDays\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemType =\n (typeof GetAutomaticTrigger200AllOfOnethreeActionsItemType)[keyof typeof GetAutomaticTrigger200AllOfOnethreeActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger200AllOfOnethreeActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf =\n GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf &\n GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: GetAutomaticTrigger200AllOfOnethreeActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: GetAutomaticTrigger200AllOfOnethreeActionsItemName\n /** Executable mechanism of an action */\n type: GetAutomaticTrigger200AllOfOnethreeActionsItemType\n /** Union of action configs, selected by actions.type */\n config: GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: GetAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type GetAutomaticTrigger200AllOfOnethree = {\n /** Actions the trigger runs, in execution order */\n actions?: GetAutomaticTrigger200AllOfOnethreeActionsItem[]\n}\n\n/**\n * An automatic trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type GetAutomaticTrigger200 = GetAutomaticTrigger200AllOf & GetAutomaticTrigger200AllOfOnethree\n\n/**\n * Debug information of the error\n */\nexport type GetAutomaticTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAutomaticTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAutomaticTrigger403AllOfDebug\n}\n\nexport type GetAutomaticTrigger403AllOfThreeStatusCode =\n (typeof GetAutomaticTrigger403AllOfThreeStatusCode)[keyof typeof GetAutomaticTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAutomaticTrigger403AllOfThreeError =\n (typeof GetAutomaticTrigger403AllOfThreeError)[keyof typeof GetAutomaticTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAutomaticTrigger403AllOfThree = {\n statusCode: GetAutomaticTrigger403AllOfThreeStatusCode\n error: GetAutomaticTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAutomaticTrigger403 = GetAutomaticTrigger403AllOf & GetAutomaticTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAutomaticTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAutomaticTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAutomaticTrigger404AllOfDebug\n}\n\nexport type GetAutomaticTrigger404AllOfThreeStatusCode =\n (typeof GetAutomaticTrigger404AllOfThreeStatusCode)[keyof typeof GetAutomaticTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAutomaticTrigger404AllOfThreeError =\n (typeof GetAutomaticTrigger404AllOfThreeError)[keyof typeof GetAutomaticTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAutomaticTrigger404AllOfThree = {\n statusCode: GetAutomaticTrigger404AllOfThreeStatusCode\n error: GetAutomaticTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAutomaticTrigger404 = GetAutomaticTrigger404AllOf & GetAutomaticTrigger404AllOfThree\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type UpdateAutomaticTriggerBodyName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type UpdateAutomaticTriggerBodyDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type UpdateAutomaticTriggerBodySource =\n (typeof UpdateAutomaticTriggerBodySource)[keyof typeof UpdateAutomaticTriggerBodySource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTriggerBodySource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type UpdateAutomaticTriggerBodyTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type UpdateAutomaticTriggerBodyOperation = 'create' | 'update' | 'delete' | null\n\nexport type UpdateAutomaticTriggerBodyConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type UpdateAutomaticTriggerBodyConditions = UpdateAutomaticTriggerBodyConditionsAnyOf | null\n\nexport type UpdateAutomaticTriggerBodyRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type UpdateAutomaticTriggerBodyRelations = UpdateAutomaticTriggerBodyRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTriggerBodyRetentionDays = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfType =\n (typeof UpdateAutomaticTriggerBodyActionsItemAnyOfType)[keyof typeof UpdateAutomaticTriggerBodyActionsItemAnyOfType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTriggerBodyActionsItemAnyOfType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOf =\n UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOf &\n UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfRetentionDays = number | null\n\n/**\n * Action created and linked in the same request\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOf = {\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateAutomaticTriggerBodyActionsItemAnyOfName\n /** Executable mechanism of an action */\n type: UpdateAutomaticTriggerBodyActionsItemAnyOfType\n /** Union of action configs, selected by actions.type */\n config: UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTriggerBodyActionsItemAnyOfRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType =\n (typeof UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType)[keyof typeof UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf =\n UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf &\n UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroRetentionDays = number | null\n\n/**\n * Existing action updated and linked in the same request\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezero = {\n id: number\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroName\n /** Executable mechanism of an action */\n type?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType\n /** Union of action configs, selected by actions.type */\n config?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * An action a trigger runs: linked, created, or updated in place\n */\nexport type UpdateAutomaticTriggerBodyActionsItem =\n | number\n | UpdateAutomaticTriggerBodyActionsItemAnyOf\n | UpdateAutomaticTriggerBodyActionsItemAnyOfOnezero\n\n/**\n * Payload used to update an automatic trigger, optionally replacing the actions it runs\n */\nexport type UpdateAutomaticTriggerBody = {\n /** Human-readable label of the trigger. Null when it has none */\n name?: UpdateAutomaticTriggerBodyName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: UpdateAutomaticTriggerBodyDescription\n /** Source of the event that fires a trigger */\n source?: UpdateAutomaticTriggerBodySource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: UpdateAutomaticTriggerBodyTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: UpdateAutomaticTriggerBodyOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: UpdateAutomaticTriggerBodyConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: UpdateAutomaticTriggerBodyRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTriggerBodyRetentionDays\n /** Full ordered set of actions the trigger runs; the array position is the execution order. An empty array leaves the trigger with none */\n actions?: UpdateAutomaticTriggerBodyActionsItem[]\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateAutomaticTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type UpdateAutomaticTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type UpdateAutomaticTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type UpdateAutomaticTrigger200AllOfSource =\n (typeof UpdateAutomaticTrigger200AllOfSource)[keyof typeof UpdateAutomaticTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type UpdateAutomaticTrigger200AllOfTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type UpdateAutomaticTrigger200AllOfOperation = 'create' | 'update' | 'delete' | null\n\nexport type UpdateAutomaticTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type UpdateAutomaticTrigger200AllOfConditions = UpdateAutomaticTrigger200AllOfConditionsAnyOf | null\n\nexport type UpdateAutomaticTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type UpdateAutomaticTrigger200AllOfRelations = UpdateAutomaticTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTrigger200AllOfRetentionDays = number | null\n\n/**\n * Automatic trigger definition (ecosystem level)\n */\nexport type UpdateAutomaticTrigger200AllOf = {\n /** Unique identifier of the automatic trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateAutomaticTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: UpdateAutomaticTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: UpdateAutomaticTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: UpdateAutomaticTrigger200AllOfSource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: UpdateAutomaticTrigger200AllOfTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: UpdateAutomaticTrigger200AllOfOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: UpdateAutomaticTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: UpdateAutomaticTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTrigger200AllOfRetentionDays\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemType =\n (typeof UpdateAutomaticTrigger200AllOfOnethreeActionsItemType)[keyof typeof UpdateAutomaticTrigger200AllOfOnethreeActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger200AllOfOnethreeActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf =\n UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf &\n UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateAutomaticTrigger200AllOfOnethreeActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateAutomaticTrigger200AllOfOnethreeActionsItemName\n /** Executable mechanism of an action */\n type: UpdateAutomaticTrigger200AllOfOnethreeActionsItemType\n /** Union of action configs, selected by actions.type */\n config: UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type UpdateAutomaticTrigger200AllOfOnethree = {\n /** Actions the trigger runs, in execution order */\n actions?: UpdateAutomaticTrigger200AllOfOnethreeActionsItem[]\n}\n\n/**\n * An automatic trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type UpdateAutomaticTrigger200 = UpdateAutomaticTrigger200AllOf & UpdateAutomaticTrigger200AllOfOnethree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAutomaticTrigger400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAutomaticTrigger400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAutomaticTrigger400AllOfDebug\n}\n\nexport type UpdateAutomaticTrigger400AllOfThreeStatusCode =\n (typeof UpdateAutomaticTrigger400AllOfThreeStatusCode)[keyof typeof UpdateAutomaticTrigger400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAutomaticTrigger400AllOfThreeError =\n (typeof UpdateAutomaticTrigger400AllOfThreeError)[keyof typeof UpdateAutomaticTrigger400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAutomaticTrigger400AllOfThree = {\n statusCode: UpdateAutomaticTrigger400AllOfThreeStatusCode\n error: UpdateAutomaticTrigger400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAutomaticTrigger400 = UpdateAutomaticTrigger400AllOf & UpdateAutomaticTrigger400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAutomaticTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAutomaticTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAutomaticTrigger403AllOfDebug\n}\n\nexport type UpdateAutomaticTrigger403AllOfThreeStatusCode =\n (typeof UpdateAutomaticTrigger403AllOfThreeStatusCode)[keyof typeof UpdateAutomaticTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAutomaticTrigger403AllOfThreeError =\n (typeof UpdateAutomaticTrigger403AllOfThreeError)[keyof typeof UpdateAutomaticTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAutomaticTrigger403AllOfThree = {\n statusCode: UpdateAutomaticTrigger403AllOfThreeStatusCode\n error: UpdateAutomaticTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAutomaticTrigger403 = UpdateAutomaticTrigger403AllOf & UpdateAutomaticTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAutomaticTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAutomaticTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAutomaticTrigger404AllOfDebug\n}\n\nexport type UpdateAutomaticTrigger404AllOfThreeStatusCode =\n (typeof UpdateAutomaticTrigger404AllOfThreeStatusCode)[keyof typeof UpdateAutomaticTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAutomaticTrigger404AllOfThreeError =\n (typeof UpdateAutomaticTrigger404AllOfThreeError)[keyof typeof UpdateAutomaticTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAutomaticTrigger404AllOfThree = {\n statusCode: UpdateAutomaticTrigger404AllOfThreeStatusCode\n error: UpdateAutomaticTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAutomaticTrigger404 = UpdateAutomaticTrigger404AllOf & UpdateAutomaticTrigger404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteAutomaticTrigger200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteAutomaticTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAutomaticTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAutomaticTrigger403AllOfDebug\n}\n\nexport type DeleteAutomaticTrigger403AllOfThreeStatusCode =\n (typeof DeleteAutomaticTrigger403AllOfThreeStatusCode)[keyof typeof DeleteAutomaticTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAutomaticTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteAutomaticTrigger403AllOfThreeError =\n (typeof DeleteAutomaticTrigger403AllOfThreeError)[keyof typeof DeleteAutomaticTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAutomaticTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteAutomaticTrigger403AllOfThree = {\n statusCode: DeleteAutomaticTrigger403AllOfThreeStatusCode\n error: DeleteAutomaticTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteAutomaticTrigger403 = DeleteAutomaticTrigger403AllOf & DeleteAutomaticTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteAutomaticTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAutomaticTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAutomaticTrigger404AllOfDebug\n}\n\nexport type DeleteAutomaticTrigger404AllOfThreeStatusCode =\n (typeof DeleteAutomaticTrigger404AllOfThreeStatusCode)[keyof typeof DeleteAutomaticTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAutomaticTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteAutomaticTrigger404AllOfThreeError =\n (typeof DeleteAutomaticTrigger404AllOfThreeError)[keyof typeof DeleteAutomaticTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAutomaticTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteAutomaticTrigger404AllOfThree = {\n statusCode: DeleteAutomaticTrigger404AllOfThreeStatusCode\n error: DeleteAutomaticTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteAutomaticTrigger404 = DeleteAutomaticTrigger404AllOf & DeleteAutomaticTrigger404AllOfThree\n\nexport type ListDocumentsParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\n/**\n * Represents an uploaded document record\n */\nexport type ListDocuments200ResultsItemAllOf = {\n /** Unique identifier of the category */\n id: number\n /**\n * IP address of the user who uploaded the document\n * @maxLength 20\n */\n user_ip?: string\n /** Timestamp when the document was created */\n creation_time?: string\n /** User ID who created the document */\n creation_user?: number\n /** Timestamp when the document was last modified */\n mod_time?: string\n /** User ID who last modified the document */\n mod_user?: number\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n}\n\nexport type ListDocuments200ResultsItemAllOfTwoCategoriesItem = {\n /** Category ID */\n id: number\n /** Category name */\n name: string\n}\n\nexport type ListDocuments200ResultsItemAllOfTwo = {\n /** Categories linked to the document */\n categories?: ListDocuments200ResultsItemAllOfTwoCategoriesItem[]\n}\n\n/**\n * Document item returned in document listings\n */\nexport type ListDocuments200ResultsItem = ListDocuments200ResultsItemAllOf & ListDocuments200ResultsItemAllOfTwo\n\n/**\n * Paginated response\n */\nexport type ListDocuments200 = {\n /** Array of items of the current page */\n results: ListDocuments200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListDocuments403AllOfDebug = { [key: string]: unknown }\n\nexport type ListDocuments403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListDocuments403AllOfDebug\n}\n\nexport type ListDocuments403AllOfThreeStatusCode =\n (typeof ListDocuments403AllOfThreeStatusCode)[keyof typeof ListDocuments403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocuments403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListDocuments403AllOfThreeError =\n (typeof ListDocuments403AllOfThreeError)[keyof typeof ListDocuments403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocuments403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListDocuments403AllOfThree = {\n statusCode: ListDocuments403AllOfThreeStatusCode\n error: ListDocuments403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListDocuments403 = ListDocuments403AllOf & ListDocuments403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListDocuments404AllOfDebug = { [key: string]: unknown }\n\nexport type ListDocuments404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListDocuments404AllOfDebug\n}\n\nexport type ListDocuments404AllOfThreeStatusCode =\n (typeof ListDocuments404AllOfThreeStatusCode)[keyof typeof ListDocuments404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocuments404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListDocuments404AllOfThreeError =\n (typeof ListDocuments404AllOfThreeError)[keyof typeof ListDocuments404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocuments404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListDocuments404AllOfThree = {\n statusCode: ListDocuments404AllOfThreeStatusCode\n error: ListDocuments404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListDocuments404 = ListDocuments404AllOf & ListDocuments404AllOfThree\n\n/**\n * Payload used to create a new document record\n */\nexport type CreateDocumentBody = {\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /** Category IDs to associate with the document */\n category_ids?: number[]\n}\n\n/**\n * Represents an uploaded document record\n */\nexport type CreateDocument200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * IP address of the user who uploaded the document\n * @maxLength 20\n */\n user_ip?: string\n /** Timestamp when the document was created */\n creation_time?: string\n /** User ID who created the document */\n creation_user?: number\n /** Timestamp when the document was last modified */\n mod_time?: string\n /** User ID who last modified the document */\n mod_user?: number\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateDocument403AllOfDebug\n}\n\nexport type CreateDocument403AllOfThreeStatusCode =\n (typeof CreateDocument403AllOfThreeStatusCode)[keyof typeof CreateDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateDocument403AllOfThreeError =\n (typeof CreateDocument403AllOfThreeError)[keyof typeof CreateDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateDocument403AllOfThree = {\n statusCode: CreateDocument403AllOfThreeStatusCode\n error: CreateDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateDocument403 = CreateDocument403AllOf & CreateDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateDocument404AllOfDebug\n}\n\nexport type CreateDocument404AllOfThreeStatusCode =\n (typeof CreateDocument404AllOfThreeStatusCode)[keyof typeof CreateDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateDocument404AllOfThreeError =\n (typeof CreateDocument404AllOfThreeError)[keyof typeof CreateDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateDocument404AllOfThree = {\n statusCode: CreateDocument404AllOfThreeStatusCode\n error: CreateDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateDocument404 = CreateDocument404AllOf & CreateDocument404AllOfThree\n\n/**\n * Represents an uploaded document record\n */\nexport type GetDocument200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * IP address of the user who uploaded the document\n * @maxLength 20\n */\n user_ip?: string\n /** Timestamp when the document was created */\n creation_time?: string\n /** User ID who created the document */\n creation_user?: number\n /** Timestamp when the document was last modified */\n mod_time?: string\n /** User ID who last modified the document */\n mod_user?: number\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type GetDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetDocument403AllOfDebug\n}\n\nexport type GetDocument403AllOfThreeStatusCode =\n (typeof GetDocument403AllOfThreeStatusCode)[keyof typeof GetDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetDocument403AllOfThreeError =\n (typeof GetDocument403AllOfThreeError)[keyof typeof GetDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetDocument403AllOfThree = {\n statusCode: GetDocument403AllOfThreeStatusCode\n error: GetDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetDocument403 = GetDocument403AllOf & GetDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type GetDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetDocument404AllOfDebug\n}\n\nexport type GetDocument404AllOfThreeStatusCode =\n (typeof GetDocument404AllOfThreeStatusCode)[keyof typeof GetDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetDocument404AllOfThreeError =\n (typeof GetDocument404AllOfThreeError)[keyof typeof GetDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetDocument404AllOfThree = {\n statusCode: GetDocument404AllOfThreeStatusCode\n error: GetDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetDocument404 = GetDocument404AllOf & GetDocument404AllOfThree\n\n/**\n * Payload used to update a document record\n */\nexport type UpdateDocumentBody = {\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file?: string\n /** Hospital/clinic ID associated with the document */\n organization_unit?: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /** Category IDs to associate with the document */\n category_ids?: number[]\n}\n\n/**\n * Represents an uploaded document record\n */\nexport type UpdateDocument200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * IP address of the user who uploaded the document\n * @maxLength 20\n */\n user_ip?: string\n /** Timestamp when the document was created */\n creation_time?: string\n /** User ID who created the document */\n creation_user?: number\n /** Timestamp when the document was last modified */\n mod_time?: string\n /** User ID who last modified the document */\n mod_user?: number\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateDocument403AllOfDebug\n}\n\nexport type UpdateDocument403AllOfThreeStatusCode =\n (typeof UpdateDocument403AllOfThreeStatusCode)[keyof typeof UpdateDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateDocument403AllOfThreeError =\n (typeof UpdateDocument403AllOfThreeError)[keyof typeof UpdateDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateDocument403AllOfThree = {\n statusCode: UpdateDocument403AllOfThreeStatusCode\n error: UpdateDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateDocument403 = UpdateDocument403AllOf & UpdateDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateDocument404AllOfDebug\n}\n\nexport type UpdateDocument404AllOfThreeStatusCode =\n (typeof UpdateDocument404AllOfThreeStatusCode)[keyof typeof UpdateDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateDocument404AllOfThreeError =\n (typeof UpdateDocument404AllOfThreeError)[keyof typeof UpdateDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateDocument404AllOfThree = {\n statusCode: UpdateDocument404AllOfThreeStatusCode\n error: UpdateDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateDocument404 = UpdateDocument404AllOf & UpdateDocument404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteDocument200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteDocument403AllOfDebug\n}\n\nexport type DeleteDocument403AllOfThreeStatusCode =\n (typeof DeleteDocument403AllOfThreeStatusCode)[keyof typeof DeleteDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteDocument403AllOfThreeError =\n (typeof DeleteDocument403AllOfThreeError)[keyof typeof DeleteDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteDocument403AllOfThree = {\n statusCode: DeleteDocument403AllOfThreeStatusCode\n error: DeleteDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteDocument403 = DeleteDocument403AllOf & DeleteDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteDocument404AllOfDebug\n}\n\nexport type DeleteDocument404AllOfThreeStatusCode =\n (typeof DeleteDocument404AllOfThreeStatusCode)[keyof typeof DeleteDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteDocument404AllOfThreeError =\n (typeof DeleteDocument404AllOfThreeError)[keyof typeof DeleteDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteDocument404AllOfThree = {\n statusCode: DeleteDocument404AllOfThreeStatusCode\n error: DeleteDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteDocument404 = DeleteDocument404AllOf & DeleteDocument404AllOfThree\n\n/**\n * Payload used to associate a category with a document\n */\nexport type AddCategoryToDocumentBody = {\n /** Category ID to associate with the document */\n categoryId: number\n}\n\n/**\n * Response when the request is successful\n */\nexport type AddCategoryToDocument200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type AddCategoryToDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type AddCategoryToDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: AddCategoryToDocument403AllOfDebug\n}\n\nexport type AddCategoryToDocument403AllOfThreeStatusCode =\n (typeof AddCategoryToDocument403AllOfThreeStatusCode)[keyof typeof AddCategoryToDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AddCategoryToDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type AddCategoryToDocument403AllOfThreeError =\n (typeof AddCategoryToDocument403AllOfThreeError)[keyof typeof AddCategoryToDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AddCategoryToDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type AddCategoryToDocument403AllOfThree = {\n statusCode: AddCategoryToDocument403AllOfThreeStatusCode\n error: AddCategoryToDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type AddCategoryToDocument403 = AddCategoryToDocument403AllOf & AddCategoryToDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type AddCategoryToDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type AddCategoryToDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: AddCategoryToDocument404AllOfDebug\n}\n\nexport type AddCategoryToDocument404AllOfThreeStatusCode =\n (typeof AddCategoryToDocument404AllOfThreeStatusCode)[keyof typeof AddCategoryToDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AddCategoryToDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type AddCategoryToDocument404AllOfThreeError =\n (typeof AddCategoryToDocument404AllOfThreeError)[keyof typeof AddCategoryToDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AddCategoryToDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type AddCategoryToDocument404AllOfThree = {\n statusCode: AddCategoryToDocument404AllOfThreeStatusCode\n error: AddCategoryToDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type AddCategoryToDocument404 = AddCategoryToDocument404AllOf & AddCategoryToDocument404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type RemoveCategoryFromDocument200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type RemoveCategoryFromDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type RemoveCategoryFromDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: RemoveCategoryFromDocument403AllOfDebug\n}\n\nexport type RemoveCategoryFromDocument403AllOfThreeStatusCode =\n (typeof RemoveCategoryFromDocument403AllOfThreeStatusCode)[keyof typeof RemoveCategoryFromDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RemoveCategoryFromDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type RemoveCategoryFromDocument403AllOfThreeError =\n (typeof RemoveCategoryFromDocument403AllOfThreeError)[keyof typeof RemoveCategoryFromDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RemoveCategoryFromDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type RemoveCategoryFromDocument403AllOfThree = {\n statusCode: RemoveCategoryFromDocument403AllOfThreeStatusCode\n error: RemoveCategoryFromDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type RemoveCategoryFromDocument403 = RemoveCategoryFromDocument403AllOf & RemoveCategoryFromDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type RemoveCategoryFromDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type RemoveCategoryFromDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: RemoveCategoryFromDocument404AllOfDebug\n}\n\nexport type RemoveCategoryFromDocument404AllOfThreeStatusCode =\n (typeof RemoveCategoryFromDocument404AllOfThreeStatusCode)[keyof typeof RemoveCategoryFromDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RemoveCategoryFromDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type RemoveCategoryFromDocument404AllOfThreeError =\n (typeof RemoveCategoryFromDocument404AllOfThreeError)[keyof typeof RemoveCategoryFromDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RemoveCategoryFromDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type RemoveCategoryFromDocument404AllOfThree = {\n statusCode: RemoveCategoryFromDocument404AllOfThreeStatusCode\n error: RemoveCategoryFromDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type RemoveCategoryFromDocument404 = RemoveCategoryFromDocument404AllOf & RemoveCategoryFromDocument404AllOfThree\n\nexport type ListDocumentCategoriesParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\n/**\n * Document category data\n */\nexport type ListDocumentCategories200ResultsItemAllOf = {\n /** Unique identifier of the category */\n id: number\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\nexport type ListDocumentCategories200ResultsItemAllOfTwo = {\n /** Number of documents in this category */\n documents_count: number\n}\n\n/**\n * Document category list item\n */\nexport type ListDocumentCategories200ResultsItem = ListDocumentCategories200ResultsItemAllOf &\n ListDocumentCategories200ResultsItemAllOfTwo\n\n/**\n * Paginated response\n */\nexport type ListDocumentCategories200 = {\n /** Array of items of the current page */\n results: ListDocumentCategories200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListDocumentCategories403AllOfDebug = { [key: string]: unknown }\n\nexport type ListDocumentCategories403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListDocumentCategories403AllOfDebug\n}\n\nexport type ListDocumentCategories403AllOfThreeStatusCode =\n (typeof ListDocumentCategories403AllOfThreeStatusCode)[keyof typeof ListDocumentCategories403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocumentCategories403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListDocumentCategories403AllOfThreeError =\n (typeof ListDocumentCategories403AllOfThreeError)[keyof typeof ListDocumentCategories403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocumentCategories403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListDocumentCategories403AllOfThree = {\n statusCode: ListDocumentCategories403AllOfThreeStatusCode\n error: ListDocumentCategories403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListDocumentCategories403 = ListDocumentCategories403AllOf & ListDocumentCategories403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListDocumentCategories404AllOfDebug = { [key: string]: unknown }\n\nexport type ListDocumentCategories404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListDocumentCategories404AllOfDebug\n}\n\nexport type ListDocumentCategories404AllOfThreeStatusCode =\n (typeof ListDocumentCategories404AllOfThreeStatusCode)[keyof typeof ListDocumentCategories404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocumentCategories404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListDocumentCategories404AllOfThreeError =\n (typeof ListDocumentCategories404AllOfThreeError)[keyof typeof ListDocumentCategories404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocumentCategories404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListDocumentCategories404AllOfThree = {\n statusCode: ListDocumentCategories404AllOfThreeStatusCode\n error: ListDocumentCategories404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListDocumentCategories404 = ListDocumentCategories404AllOf & ListDocumentCategories404AllOfThree\n\n/**\n * Document category creation payload\n */\nexport type CreateDocumentCategoryBody = {\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\n/**\n * Document category data\n */\nexport type CreateDocumentCategory200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateDocumentCategory403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateDocumentCategory403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateDocumentCategory403AllOfDebug\n}\n\nexport type CreateDocumentCategory403AllOfThreeStatusCode =\n (typeof CreateDocumentCategory403AllOfThreeStatusCode)[keyof typeof CreateDocumentCategory403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocumentCategory403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateDocumentCategory403AllOfThreeError =\n (typeof CreateDocumentCategory403AllOfThreeError)[keyof typeof CreateDocumentCategory403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocumentCategory403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateDocumentCategory403AllOfThree = {\n statusCode: CreateDocumentCategory403AllOfThreeStatusCode\n error: CreateDocumentCategory403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateDocumentCategory403 = CreateDocumentCategory403AllOf & CreateDocumentCategory403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateDocumentCategory404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateDocumentCategory404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateDocumentCategory404AllOfDebug\n}\n\nexport type CreateDocumentCategory404AllOfThreeStatusCode =\n (typeof CreateDocumentCategory404AllOfThreeStatusCode)[keyof typeof CreateDocumentCategory404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocumentCategory404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateDocumentCategory404AllOfThreeError =\n (typeof CreateDocumentCategory404AllOfThreeError)[keyof typeof CreateDocumentCategory404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocumentCategory404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateDocumentCategory404AllOfThree = {\n statusCode: CreateDocumentCategory404AllOfThreeStatusCode\n error: CreateDocumentCategory404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateDocumentCategory404 = CreateDocumentCategory404AllOf & CreateDocumentCategory404AllOfThree\n\n/**\n * Document category data\n */\nexport type GetDocumentCategory200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetDocumentCategory403AllOfDebug = { [key: string]: unknown }\n\nexport type GetDocumentCategory403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetDocumentCategory403AllOfDebug\n}\n\nexport type GetDocumentCategory403AllOfThreeStatusCode =\n (typeof GetDocumentCategory403AllOfThreeStatusCode)[keyof typeof GetDocumentCategory403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocumentCategory403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetDocumentCategory403AllOfThreeError =\n (typeof GetDocumentCategory403AllOfThreeError)[keyof typeof GetDocumentCategory403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocumentCategory403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetDocumentCategory403AllOfThree = {\n statusCode: GetDocumentCategory403AllOfThreeStatusCode\n error: GetDocumentCategory403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetDocumentCategory403 = GetDocumentCategory403AllOf & GetDocumentCategory403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetDocumentCategory404AllOfDebug = { [key: string]: unknown }\n\nexport type GetDocumentCategory404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetDocumentCategory404AllOfDebug\n}\n\nexport type GetDocumentCategory404AllOfThreeStatusCode =\n (typeof GetDocumentCategory404AllOfThreeStatusCode)[keyof typeof GetDocumentCategory404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocumentCategory404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetDocumentCategory404AllOfThreeError =\n (typeof GetDocumentCategory404AllOfThreeError)[keyof typeof GetDocumentCategory404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocumentCategory404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetDocumentCategory404AllOfThree = {\n statusCode: GetDocumentCategory404AllOfThreeStatusCode\n error: GetDocumentCategory404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetDocumentCategory404 = GetDocumentCategory404AllOf & GetDocumentCategory404AllOfThree\n\n/**\n * Document category update payload\n */\nexport type UpdateDocumentCategoryBody = {\n /**\n * Name of the category\n * @maxLength 100\n */\n name?: string\n}\n\n/**\n * Document category data\n */\nexport type UpdateDocumentCategory200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateDocumentCategory403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateDocumentCategory403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateDocumentCategory403AllOfDebug\n}\n\nexport type UpdateDocumentCategory403AllOfThreeStatusCode =\n (typeof UpdateDocumentCategory403AllOfThreeStatusCode)[keyof typeof UpdateDocumentCategory403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocumentCategory403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateDocumentCategory403AllOfThreeError =\n (typeof UpdateDocumentCategory403AllOfThreeError)[keyof typeof UpdateDocumentCategory403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocumentCategory403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateDocumentCategory403AllOfThree = {\n statusCode: UpdateDocumentCategory403AllOfThreeStatusCode\n error: UpdateDocumentCategory403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateDocumentCategory403 = UpdateDocumentCategory403AllOf & UpdateDocumentCategory403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateDocumentCategory404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateDocumentCategory404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateDocumentCategory404AllOfDebug\n}\n\nexport type UpdateDocumentCategory404AllOfThreeStatusCode =\n (typeof UpdateDocumentCategory404AllOfThreeStatusCode)[keyof typeof UpdateDocumentCategory404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocumentCategory404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateDocumentCategory404AllOfThreeError =\n (typeof UpdateDocumentCategory404AllOfThreeError)[keyof typeof UpdateDocumentCategory404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocumentCategory404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateDocumentCategory404AllOfThree = {\n statusCode: UpdateDocumentCategory404AllOfThreeStatusCode\n error: UpdateDocumentCategory404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateDocumentCategory404 = UpdateDocumentCategory404AllOf & UpdateDocumentCategory404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteDocumentCategory200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteDocumentCategory403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteDocumentCategory403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteDocumentCategory403AllOfDebug\n}\n\nexport type DeleteDocumentCategory403AllOfThreeStatusCode =\n (typeof DeleteDocumentCategory403AllOfThreeStatusCode)[keyof typeof DeleteDocumentCategory403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocumentCategory403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteDocumentCategory403AllOfThreeError =\n (typeof DeleteDocumentCategory403AllOfThreeError)[keyof typeof DeleteDocumentCategory403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocumentCategory403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteDocumentCategory403AllOfThree = {\n statusCode: DeleteDocumentCategory403AllOfThreeStatusCode\n error: DeleteDocumentCategory403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteDocumentCategory403 = DeleteDocumentCategory403AllOf & DeleteDocumentCategory403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteDocumentCategory404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteDocumentCategory404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteDocumentCategory404AllOfDebug\n}\n\nexport type DeleteDocumentCategory404AllOfThreeStatusCode =\n (typeof DeleteDocumentCategory404AllOfThreeStatusCode)[keyof typeof DeleteDocumentCategory404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocumentCategory404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteDocumentCategory404AllOfThreeError =\n (typeof DeleteDocumentCategory404AllOfThreeError)[keyof typeof DeleteDocumentCategory404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocumentCategory404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteDocumentCategory404AllOfThree = {\n statusCode: DeleteDocumentCategory404AllOfThreeStatusCode\n error: DeleteDocumentCategory404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteDocumentCategory404 = DeleteDocumentCategory404AllOf & DeleteDocumentCategory404AllOfThree\n\nexport type GetFormsDataParams = {\n /**\n * ID of the associated dashboard widget\n */\n dashboardWidgetId: number\n /**\n * Values for params referenced in Card filterParams blocks\n */\n paramValues?: { [key: string]: unknown }\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\nexport type GetFormsData200ResultsItem = { [key: string]: unknown }\n\n/**\n * Paginated response\n */\nexport type GetFormsData200 = {\n /** Array of items of the current page */\n results: GetFormsData200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type GetFormsData403AllOfDebug = { [key: string]: unknown }\n\nexport type GetFormsData403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetFormsData403AllOfDebug\n}\n\nexport type GetFormsData403AllOfThreeStatusCode =\n (typeof GetFormsData403AllOfThreeStatusCode)[keyof typeof GetFormsData403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetFormsData403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetFormsData403AllOfThreeError =\n (typeof GetFormsData403AllOfThreeError)[keyof typeof GetFormsData403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetFormsData403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetFormsData403AllOfThree = {\n statusCode: GetFormsData403AllOfThreeStatusCode\n error: GetFormsData403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetFormsData403 = GetFormsData403AllOf & GetFormsData403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetFormsData404AllOfDebug = { [key: string]: unknown }\n\nexport type GetFormsData404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetFormsData404AllOfDebug\n}\n\nexport type GetFormsData404AllOfThreeStatusCode =\n (typeof GetFormsData404AllOfThreeStatusCode)[keyof typeof GetFormsData404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetFormsData404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetFormsData404AllOfThreeError =\n (typeof GetFormsData404AllOfThreeError)[keyof typeof GetFormsData404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetFormsData404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetFormsData404AllOfThree = {\n statusCode: GetFormsData404AllOfThreeStatusCode\n error: GetFormsData404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetFormsData404 = GetFormsData404AllOf & GetFormsData404AllOfThree\n\nexport type ListManualTriggersParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * Return each trigger with its ordered `actions` resolved, in a single request\n */\n includeActions?: boolean\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type ListManualTriggers200ResultsItemAllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type ListManualTriggers200ResultsItemAllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type ListManualTriggers200ResultsItemAllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type ListManualTriggers200ResultsItemAllOfSource =\n (typeof ListManualTriggers200ResultsItemAllOfSource)[keyof typeof ListManualTriggers200ResultsItemAllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type ListManualTriggers200ResultsItemAllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type ListManualTriggers200ResultsItemAllOfConditions =\n ListManualTriggers200ResultsItemAllOfConditionsAnyOf | null\n\nexport type ListManualTriggers200ResultsItemAllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type ListManualTriggers200ResultsItemAllOfRelations = ListManualTriggers200ResultsItemAllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type ListManualTriggers200ResultsItemAllOfRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior =\n (typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior)[keyof typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition =\n (typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition)[keyof typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItem =\n ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOf &\n ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: ListManualTriggers200ResultsItemAllOfConfigAnyOfStyles\n conditionalStyles?: ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type ListManualTriggers200ResultsItemAllOfConfig = ListManualTriggers200ResultsItemAllOfConfigAnyOf | null\n\n/**\n * Manual trigger definition (ecosystem level)\n */\nexport type ListManualTriggers200ResultsItemAllOf = {\n /** Unique identifier of the manual trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: ListManualTriggers200ResultsItemAllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: ListManualTriggers200ResultsItemAllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: ListManualTriggers200ResultsItemAllOfDescription\n /** Source of the event that fires a trigger */\n source: ListManualTriggers200ResultsItemAllOfSource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: ListManualTriggers200ResultsItemAllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: ListManualTriggers200ResultsItemAllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: ListManualTriggers200ResultsItemAllOfRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: ListManualTriggers200ResultsItemAllOfConfig\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType =\n (typeof ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType)[keyof typeof ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload = {\n [key: string]: unknown\n}\n\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOf =\n ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOf &\n ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemName\n /** Executable mechanism of an action */\n type: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType\n /** Union of action configs, selected by actions.type */\n config: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type ListManualTriggers200ResultsItemAllOfTwotwo = {\n /** Actions the trigger runs, in execution order */\n actions?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItem[]\n}\n\n/**\n * A manual trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type ListManualTriggers200ResultsItem = ListManualTriggers200ResultsItemAllOf &\n ListManualTriggers200ResultsItemAllOfTwotwo\n\n/**\n * Paginated response\n */\nexport type ListManualTriggers200 = {\n /** Array of items of the current page */\n results: ListManualTriggers200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListManualTriggers403AllOfDebug = { [key: string]: unknown }\n\nexport type ListManualTriggers403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListManualTriggers403AllOfDebug\n}\n\nexport type ListManualTriggers403AllOfThreeStatusCode =\n (typeof ListManualTriggers403AllOfThreeStatusCode)[keyof typeof ListManualTriggers403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListManualTriggers403AllOfThreeError =\n (typeof ListManualTriggers403AllOfThreeError)[keyof typeof ListManualTriggers403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListManualTriggers403AllOfThree = {\n statusCode: ListManualTriggers403AllOfThreeStatusCode\n error: ListManualTriggers403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListManualTriggers403 = ListManualTriggers403AllOf & ListManualTriggers403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListManualTriggers404AllOfDebug = { [key: string]: unknown }\n\nexport type ListManualTriggers404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListManualTriggers404AllOfDebug\n}\n\nexport type ListManualTriggers404AllOfThreeStatusCode =\n (typeof ListManualTriggers404AllOfThreeStatusCode)[keyof typeof ListManualTriggers404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListManualTriggers404AllOfThreeError =\n (typeof ListManualTriggers404AllOfThreeError)[keyof typeof ListManualTriggers404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListManualTriggers404AllOfThree = {\n statusCode: ListManualTriggers404AllOfThreeStatusCode\n error: ListManualTriggers404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListManualTriggers404 = ListManualTriggers404AllOf & ListManualTriggers404AllOfThree\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type CreateManualTriggerBodyName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type CreateManualTriggerBodyDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type CreateManualTriggerBodySource =\n (typeof CreateManualTriggerBodySource)[keyof typeof CreateManualTriggerBodySource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodySource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type CreateManualTriggerBodyConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type CreateManualTriggerBodyConditions = CreateManualTriggerBodyConditionsAnyOf | null\n\nexport type CreateManualTriggerBodyRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type CreateManualTriggerBodyRelations = CreateManualTriggerBodyRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTriggerBodyRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior =\n (typeof CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior)[keyof typeof CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type CreateManualTriggerBodyConfigAnyOfStylesIconPosition =\n (typeof CreateManualTriggerBodyConfigAnyOfStylesIconPosition)[keyof typeof CreateManualTriggerBodyConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type CreateManualTriggerBodyConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: CreateManualTriggerBodyConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItem =\n CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOf &\n CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type CreateManualTriggerBodyConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: CreateManualTriggerBodyConfigAnyOfStyles\n conditionalStyles?: CreateManualTriggerBodyConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type CreateManualTriggerBodyConfig = CreateManualTriggerBodyConfigAnyOf | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfType =\n (typeof CreateManualTriggerBodyActionsItemAnyOfType)[keyof typeof CreateManualTriggerBodyActionsItemAnyOfType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyActionsItemAnyOfType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOf =\n CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOf & CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfRetentionDays = number | null\n\n/**\n * Action created and linked in the same request\n */\nexport type CreateManualTriggerBodyActionsItemAnyOf = {\n /** Human-readable label of the action. Null when it has none */\n name?: CreateManualTriggerBodyActionsItemAnyOfName\n /** Executable mechanism of an action */\n type: CreateManualTriggerBodyActionsItemAnyOfType\n /** Union of action configs, selected by actions.type */\n config: CreateManualTriggerBodyActionsItemAnyOfConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTriggerBodyActionsItemAnyOfRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroType =\n (typeof CreateManualTriggerBodyActionsItemAnyOfOnezeroType)[keyof typeof CreateManualTriggerBodyActionsItemAnyOfOnezeroType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyActionsItemAnyOfOnezeroType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf =\n CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf &\n CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroRetentionDays = number | null\n\n/**\n * Existing action updated and linked in the same request\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezero = {\n id: number\n /** Human-readable label of the action. Null when it has none */\n name?: CreateManualTriggerBodyActionsItemAnyOfOnezeroName\n /** Executable mechanism of an action */\n type?: CreateManualTriggerBodyActionsItemAnyOfOnezeroType\n /** Union of action configs, selected by actions.type */\n config?: CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTriggerBodyActionsItemAnyOfOnezeroRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * An action a trigger runs: linked, created, or updated in place\n */\nexport type CreateManualTriggerBodyActionsItem =\n | number\n | CreateManualTriggerBodyActionsItemAnyOf\n | CreateManualTriggerBodyActionsItemAnyOfOnezero\n\n/**\n * Payload used to create a manual trigger, optionally with the actions it runs\n */\nexport type CreateManualTriggerBody = {\n /** Human-readable label of the trigger. Null when it has none */\n name?: CreateManualTriggerBodyName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: CreateManualTriggerBodyDescription\n /** Source of the event that fires a trigger */\n source: CreateManualTriggerBodySource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: CreateManualTriggerBodyConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: CreateManualTriggerBodyRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTriggerBodyRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: CreateManualTriggerBodyConfig\n /** Full ordered set of actions the trigger runs; the array position is the execution order. An empty array leaves the trigger with none */\n actions?: CreateManualTriggerBodyActionsItem[]\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type CreateManualTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type CreateManualTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type CreateManualTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type CreateManualTrigger200AllOfSource =\n (typeof CreateManualTrigger200AllOfSource)[keyof typeof CreateManualTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type CreateManualTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type CreateManualTrigger200AllOfConditions = CreateManualTrigger200AllOfConditionsAnyOf | null\n\nexport type CreateManualTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type CreateManualTrigger200AllOfRelations = CreateManualTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTrigger200AllOfRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior =\n (typeof CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior)[keyof typeof CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition =\n (typeof CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition)[keyof typeof CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItem =\n CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf &\n CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type CreateManualTrigger200AllOfConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: CreateManualTrigger200AllOfConfigAnyOfStyles\n conditionalStyles?: CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type CreateManualTrigger200AllOfConfig = CreateManualTrigger200AllOfConfigAnyOf | null\n\n/**\n * Manual trigger definition (ecosystem level)\n */\nexport type CreateManualTrigger200AllOf = {\n /** Unique identifier of the manual trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: CreateManualTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: CreateManualTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: CreateManualTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: CreateManualTrigger200AllOfSource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: CreateManualTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: CreateManualTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTrigger200AllOfRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: CreateManualTrigger200AllOfConfig\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemType =\n (typeof CreateManualTrigger200AllOfTwotwoActionsItemType)[keyof typeof CreateManualTrigger200AllOfTwotwoActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfTwotwoActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOf =\n CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf &\n CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: CreateManualTrigger200AllOfTwotwoActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: CreateManualTrigger200AllOfTwotwoActionsItemName\n /** Executable mechanism of an action */\n type: CreateManualTrigger200AllOfTwotwoActionsItemType\n /** Union of action configs, selected by actions.type */\n config: CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTrigger200AllOfTwotwoActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type CreateManualTrigger200AllOfTwotwo = {\n /** Actions the trigger runs, in execution order */\n actions?: CreateManualTrigger200AllOfTwotwoActionsItem[]\n}\n\n/**\n * A manual trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type CreateManualTrigger200 = CreateManualTrigger200AllOf & CreateManualTrigger200AllOfTwotwo\n\n/**\n * Debug information of the error\n */\nexport type CreateManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateManualTrigger403AllOfDebug\n}\n\nexport type CreateManualTrigger403AllOfThreeStatusCode =\n (typeof CreateManualTrigger403AllOfThreeStatusCode)[keyof typeof CreateManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateManualTrigger403AllOfThreeError =\n (typeof CreateManualTrigger403AllOfThreeError)[keyof typeof CreateManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateManualTrigger403AllOfThree = {\n statusCode: CreateManualTrigger403AllOfThreeStatusCode\n error: CreateManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateManualTrigger403 = CreateManualTrigger403AllOf & CreateManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateManualTrigger404AllOfDebug\n}\n\nexport type CreateManualTrigger404AllOfThreeStatusCode =\n (typeof CreateManualTrigger404AllOfThreeStatusCode)[keyof typeof CreateManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateManualTrigger404AllOfThreeError =\n (typeof CreateManualTrigger404AllOfThreeError)[keyof typeof CreateManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateManualTrigger404AllOfThree = {\n statusCode: CreateManualTrigger404AllOfThreeStatusCode\n error: CreateManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateManualTrigger404 = CreateManualTrigger404AllOf & CreateManualTrigger404AllOfThree\n\nexport type ListAvailableManualTriggersParams = {\n /**\n * Source of the event that fires a trigger\n */\n source: ListAvailableManualTriggersSource\n /**\n * Concrete model/designer/field the triggers are bound to\n * @maxLength 255\n */\n target: string\n /**\n * Identifier of the entity the triggers would run against\n */\n entityId: number\n}\n\nexport type ListAvailableManualTriggersSource =\n (typeof ListAvailableManualTriggersSource)[keyof typeof ListAvailableManualTriggersSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggersSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type ListAvailableManualTriggers200ResultsItemName = string | null\n\n/**\n * Reason the declared relations could not be loaded before evaluating, when that happened. Null otherwise\n */\nexport type ListAvailableManualTriggers200ResultsItemRelationsSkipped = string | null\n\n/**\n * Side of the label the icon sits on\n */\nexport type ListAvailableManualTriggers200ResultsItemStyleIconPosition =\n (typeof ListAvailableManualTriggers200ResultsItemStyleIconPosition)[keyof typeof ListAvailableManualTriggers200ResultsItemStyleIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers200ResultsItemStyleIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type ListAvailableManualTriggers200ResultsItemStyle = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: ListAvailableManualTriggers200ResultsItemStyleIconPosition\n}\n\n/**\n * A manual trigger applicable to an entity, with its conditions already evaluated\n */\nexport type ListAvailableManualTriggers200ResultsItem = {\n /** Identifier of the manual trigger */\n id: number\n /** Human-readable label of the trigger. Null when it has none */\n name?: ListAvailableManualTriggers200ResultsItemName\n /** Whether the trigger conditions hold for this entity right now. A trigger with no conditions always matches. False means the button is shown disabled: triggers configured to hide when unmatched are not listed */\n matched: boolean\n /** Number of actions the trigger would run */\n actionsCount: number\n /** Reason the declared relations could not be loaded before evaluating, when that happened. Null otherwise */\n relationsSkipped?: ListAvailableManualTriggers200ResultsItemRelationsSkipped\n /** Presentation of the button a manual trigger is offered on */\n style?: ListAvailableManualTriggers200ResultsItemStyle\n}\n\n/**\n * Manual triggers applicable to an entity, with their conditions evaluated\n */\nexport type ListAvailableManualTriggers200 = {\n /** Applicable manual triggers */\n results: ListAvailableManualTriggers200ResultsItem[]\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAvailableManualTriggers403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAvailableManualTriggers403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAvailableManualTriggers403AllOfDebug\n}\n\nexport type ListAvailableManualTriggers403AllOfThreeStatusCode =\n (typeof ListAvailableManualTriggers403AllOfThreeStatusCode)[keyof typeof ListAvailableManualTriggers403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAvailableManualTriggers403AllOfThreeError =\n (typeof ListAvailableManualTriggers403AllOfThreeError)[keyof typeof ListAvailableManualTriggers403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAvailableManualTriggers403AllOfThree = {\n statusCode: ListAvailableManualTriggers403AllOfThreeStatusCode\n error: ListAvailableManualTriggers403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAvailableManualTriggers403 = ListAvailableManualTriggers403AllOf &\n ListAvailableManualTriggers403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAvailableManualTriggers404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAvailableManualTriggers404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAvailableManualTriggers404AllOfDebug\n}\n\nexport type ListAvailableManualTriggers404AllOfThreeStatusCode =\n (typeof ListAvailableManualTriggers404AllOfThreeStatusCode)[keyof typeof ListAvailableManualTriggers404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAvailableManualTriggers404AllOfThreeError =\n (typeof ListAvailableManualTriggers404AllOfThreeError)[keyof typeof ListAvailableManualTriggers404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAvailableManualTriggers404AllOfThree = {\n statusCode: ListAvailableManualTriggers404AllOfThreeStatusCode\n error: ListAvailableManualTriggers404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAvailableManualTriggers404 = ListAvailableManualTriggers404AllOf &\n ListAvailableManualTriggers404AllOfThree\n\nexport type GetManualTriggerParams = {\n /**\n * Return each trigger with its ordered `actions` resolved, in a single request\n */\n includeActions?: boolean\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type GetManualTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type GetManualTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type GetManualTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type GetManualTrigger200AllOfSource =\n (typeof GetManualTrigger200AllOfSource)[keyof typeof GetManualTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type GetManualTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type GetManualTrigger200AllOfConditions = GetManualTrigger200AllOfConditionsAnyOf | null\n\nexport type GetManualTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type GetManualTrigger200AllOfRelations = GetManualTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type GetManualTrigger200AllOfRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior =\n (typeof GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior)[keyof typeof GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type GetManualTrigger200AllOfConfigAnyOfStylesIconPosition =\n (typeof GetManualTrigger200AllOfConfigAnyOfStylesIconPosition)[keyof typeof GetManualTrigger200AllOfConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type GetManualTrigger200AllOfConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: GetManualTrigger200AllOfConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItem =\n GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf &\n GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type GetManualTrigger200AllOfConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: GetManualTrigger200AllOfConfigAnyOfStyles\n conditionalStyles?: GetManualTrigger200AllOfConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type GetManualTrigger200AllOfConfig = GetManualTrigger200AllOfConfigAnyOf | null\n\n/**\n * Manual trigger definition (ecosystem level)\n */\nexport type GetManualTrigger200AllOf = {\n /** Unique identifier of the manual trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: GetManualTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: GetManualTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: GetManualTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: GetManualTrigger200AllOfSource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: GetManualTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: GetManualTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: GetManualTrigger200AllOfRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: GetManualTrigger200AllOfConfig\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemType =\n (typeof GetManualTrigger200AllOfTwotwoActionsItemType)[keyof typeof GetManualTrigger200AllOfTwotwoActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfTwotwoActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOf =\n GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf &\n GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: GetManualTrigger200AllOfTwotwoActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: GetManualTrigger200AllOfTwotwoActionsItemName\n /** Executable mechanism of an action */\n type: GetManualTrigger200AllOfTwotwoActionsItemType\n /** Union of action configs, selected by actions.type */\n config: GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: GetManualTrigger200AllOfTwotwoActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type GetManualTrigger200AllOfTwotwo = {\n /** Actions the trigger runs, in execution order */\n actions?: GetManualTrigger200AllOfTwotwoActionsItem[]\n}\n\n/**\n * A manual trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type GetManualTrigger200 = GetManualTrigger200AllOf & GetManualTrigger200AllOfTwotwo\n\n/**\n * Debug information of the error\n */\nexport type GetManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type GetManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetManualTrigger403AllOfDebug\n}\n\nexport type GetManualTrigger403AllOfThreeStatusCode =\n (typeof GetManualTrigger403AllOfThreeStatusCode)[keyof typeof GetManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetManualTrigger403AllOfThreeError =\n (typeof GetManualTrigger403AllOfThreeError)[keyof typeof GetManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetManualTrigger403AllOfThree = {\n statusCode: GetManualTrigger403AllOfThreeStatusCode\n error: GetManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetManualTrigger403 = GetManualTrigger403AllOf & GetManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type GetManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetManualTrigger404AllOfDebug\n}\n\nexport type GetManualTrigger404AllOfThreeStatusCode =\n (typeof GetManualTrigger404AllOfThreeStatusCode)[keyof typeof GetManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetManualTrigger404AllOfThreeError =\n (typeof GetManualTrigger404AllOfThreeError)[keyof typeof GetManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetManualTrigger404AllOfThree = {\n statusCode: GetManualTrigger404AllOfThreeStatusCode\n error: GetManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetManualTrigger404 = GetManualTrigger404AllOf & GetManualTrigger404AllOfThree\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type UpdateManualTriggerBodyName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type UpdateManualTriggerBodyDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type UpdateManualTriggerBodySource =\n (typeof UpdateManualTriggerBodySource)[keyof typeof UpdateManualTriggerBodySource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodySource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type UpdateManualTriggerBodyConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type UpdateManualTriggerBodyConditions = UpdateManualTriggerBodyConditionsAnyOf | null\n\nexport type UpdateManualTriggerBodyRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type UpdateManualTriggerBodyRelations = UpdateManualTriggerBodyRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTriggerBodyRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior =\n (typeof UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior)[keyof typeof UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type UpdateManualTriggerBodyConfigAnyOfStylesIconPosition =\n (typeof UpdateManualTriggerBodyConfigAnyOfStylesIconPosition)[keyof typeof UpdateManualTriggerBodyConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type UpdateManualTriggerBodyConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: UpdateManualTriggerBodyConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItem =\n UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOf &\n UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type UpdateManualTriggerBodyConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: UpdateManualTriggerBodyConfigAnyOfStyles\n conditionalStyles?: UpdateManualTriggerBodyConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type UpdateManualTriggerBodyConfig = UpdateManualTriggerBodyConfigAnyOf | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfType =\n (typeof UpdateManualTriggerBodyActionsItemAnyOfType)[keyof typeof UpdateManualTriggerBodyActionsItemAnyOfType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyActionsItemAnyOfType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOf =\n UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOf & UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfRetentionDays = number | null\n\n/**\n * Action created and linked in the same request\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOf = {\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateManualTriggerBodyActionsItemAnyOfName\n /** Executable mechanism of an action */\n type: UpdateManualTriggerBodyActionsItemAnyOfType\n /** Union of action configs, selected by actions.type */\n config: UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTriggerBodyActionsItemAnyOfRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroType =\n (typeof UpdateManualTriggerBodyActionsItemAnyOfOnezeroType)[keyof typeof UpdateManualTriggerBodyActionsItemAnyOfOnezeroType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyActionsItemAnyOfOnezeroType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf =\n UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf &\n UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroRetentionDays = number | null\n\n/**\n * Existing action updated and linked in the same request\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezero = {\n id: number\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroName\n /** Executable mechanism of an action */\n type?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroType\n /** Union of action configs, selected by actions.type */\n config?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * An action a trigger runs: linked, created, or updated in place\n */\nexport type UpdateManualTriggerBodyActionsItem =\n | number\n | UpdateManualTriggerBodyActionsItemAnyOf\n | UpdateManualTriggerBodyActionsItemAnyOfOnezero\n\n/**\n * Payload used to update a manual trigger, optionally replacing the actions it runs\n */\nexport type UpdateManualTriggerBody = {\n /** Human-readable label of the trigger. Null when it has none */\n name?: UpdateManualTriggerBodyName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: UpdateManualTriggerBodyDescription\n /** Source of the event that fires a trigger */\n source?: UpdateManualTriggerBodySource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target?: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: UpdateManualTriggerBodyConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: UpdateManualTriggerBodyRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTriggerBodyRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: UpdateManualTriggerBodyConfig\n /** Full ordered set of actions the trigger runs; the array position is the execution order. An empty array leaves the trigger with none */\n actions?: UpdateManualTriggerBodyActionsItem[]\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateManualTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type UpdateManualTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type UpdateManualTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type UpdateManualTrigger200AllOfSource =\n (typeof UpdateManualTrigger200AllOfSource)[keyof typeof UpdateManualTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type UpdateManualTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type UpdateManualTrigger200AllOfConditions = UpdateManualTrigger200AllOfConditionsAnyOf | null\n\nexport type UpdateManualTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type UpdateManualTrigger200AllOfRelations = UpdateManualTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTrigger200AllOfRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior =\n (typeof UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior)[keyof typeof UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition =\n (typeof UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition)[keyof typeof UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItem =\n UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf &\n UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type UpdateManualTrigger200AllOfConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: UpdateManualTrigger200AllOfConfigAnyOfStyles\n conditionalStyles?: UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type UpdateManualTrigger200AllOfConfig = UpdateManualTrigger200AllOfConfigAnyOf | null\n\n/**\n * Manual trigger definition (ecosystem level)\n */\nexport type UpdateManualTrigger200AllOf = {\n /** Unique identifier of the manual trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateManualTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: UpdateManualTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: UpdateManualTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: UpdateManualTrigger200AllOfSource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: UpdateManualTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: UpdateManualTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTrigger200AllOfRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: UpdateManualTrigger200AllOfConfig\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemType =\n (typeof UpdateManualTrigger200AllOfTwotwoActionsItemType)[keyof typeof UpdateManualTrigger200AllOfTwotwoActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfTwotwoActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOf =\n UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf &\n UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateManualTrigger200AllOfTwotwoActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateManualTrigger200AllOfTwotwoActionsItemName\n /** Executable mechanism of an action */\n type: UpdateManualTrigger200AllOfTwotwoActionsItemType\n /** Union of action configs, selected by actions.type */\n config: UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTrigger200AllOfTwotwoActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type UpdateManualTrigger200AllOfTwotwo = {\n /** Actions the trigger runs, in execution order */\n actions?: UpdateManualTrigger200AllOfTwotwoActionsItem[]\n}\n\n/**\n * A manual trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type UpdateManualTrigger200 = UpdateManualTrigger200AllOf & UpdateManualTrigger200AllOfTwotwo\n\n/**\n * Debug information of the error\n */\nexport type UpdateManualTrigger400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateManualTrigger400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateManualTrigger400AllOfDebug\n}\n\nexport type UpdateManualTrigger400AllOfThreeStatusCode =\n (typeof UpdateManualTrigger400AllOfThreeStatusCode)[keyof typeof UpdateManualTrigger400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateManualTrigger400AllOfThreeError =\n (typeof UpdateManualTrigger400AllOfThreeError)[keyof typeof UpdateManualTrigger400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateManualTrigger400AllOfThree = {\n statusCode: UpdateManualTrigger400AllOfThreeStatusCode\n error: UpdateManualTrigger400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateManualTrigger400 = UpdateManualTrigger400AllOf & UpdateManualTrigger400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateManualTrigger403AllOfDebug\n}\n\nexport type UpdateManualTrigger403AllOfThreeStatusCode =\n (typeof UpdateManualTrigger403AllOfThreeStatusCode)[keyof typeof UpdateManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateManualTrigger403AllOfThreeError =\n (typeof UpdateManualTrigger403AllOfThreeError)[keyof typeof UpdateManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateManualTrigger403AllOfThree = {\n statusCode: UpdateManualTrigger403AllOfThreeStatusCode\n error: UpdateManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateManualTrigger403 = UpdateManualTrigger403AllOf & UpdateManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateManualTrigger404AllOfDebug\n}\n\nexport type UpdateManualTrigger404AllOfThreeStatusCode =\n (typeof UpdateManualTrigger404AllOfThreeStatusCode)[keyof typeof UpdateManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateManualTrigger404AllOfThreeError =\n (typeof UpdateManualTrigger404AllOfThreeError)[keyof typeof UpdateManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateManualTrigger404AllOfThree = {\n statusCode: UpdateManualTrigger404AllOfThreeStatusCode\n error: UpdateManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateManualTrigger404 = UpdateManualTrigger404AllOf & UpdateManualTrigger404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteManualTrigger200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteManualTrigger403AllOfDebug\n}\n\nexport type DeleteManualTrigger403AllOfThreeStatusCode =\n (typeof DeleteManualTrigger403AllOfThreeStatusCode)[keyof typeof DeleteManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteManualTrigger403AllOfThreeError =\n (typeof DeleteManualTrigger403AllOfThreeError)[keyof typeof DeleteManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteManualTrigger403AllOfThree = {\n statusCode: DeleteManualTrigger403AllOfThreeStatusCode\n error: DeleteManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteManualTrigger403 = DeleteManualTrigger403AllOf & DeleteManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteManualTrigger404AllOfDebug\n}\n\nexport type DeleteManualTrigger404AllOfThreeStatusCode =\n (typeof DeleteManualTrigger404AllOfThreeStatusCode)[keyof typeof DeleteManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteManualTrigger404AllOfThreeError =\n (typeof DeleteManualTrigger404AllOfThreeError)[keyof typeof DeleteManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteManualTrigger404AllOfThree = {\n statusCode: DeleteManualTrigger404AllOfThreeStatusCode\n error: DeleteManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteManualTrigger404 = DeleteManualTrigger404AllOf & DeleteManualTrigger404AllOfThree\n\n/**\n * Payload used to run a manual trigger against an entity\n */\nexport type RunManualTriggerBody = {\n /** Identifier of the entity to run the trigger against */\n entityId: number\n}\n\n/**\n * Outcome of evaluating and running one trigger\n */\nexport type RunManualTrigger200 = {\n /** Identifier of the evaluated trigger */\n triggerId: number\n /** Whether the conditions held, so the actions were run */\n matched: boolean\n /** Number of actions that were executed, whether they succeeded or not */\n actionsRun: number\n /** Number of actions aborted by context validation */\n actionsAborted: number\n /** Number of executed actions that ended in error. A subset of actionsRun */\n actionsFailed: number\n}\n\n/**\n * Debug information of the error\n */\nexport type RunManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type RunManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: RunManualTrigger403AllOfDebug\n}\n\nexport type RunManualTrigger403AllOfThreeStatusCode =\n (typeof RunManualTrigger403AllOfThreeStatusCode)[keyof typeof RunManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RunManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type RunManualTrigger403AllOfThreeError =\n (typeof RunManualTrigger403AllOfThreeError)[keyof typeof RunManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RunManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type RunManualTrigger403AllOfThree = {\n statusCode: RunManualTrigger403AllOfThreeStatusCode\n error: RunManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type RunManualTrigger403 = RunManualTrigger403AllOf & RunManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type RunManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type RunManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: RunManualTrigger404AllOfDebug\n}\n\nexport type RunManualTrigger404AllOfThreeStatusCode =\n (typeof RunManualTrigger404AllOfThreeStatusCode)[keyof typeof RunManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RunManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type RunManualTrigger404AllOfThreeError =\n (typeof RunManualTrigger404AllOfThreeError)[keyof typeof RunManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RunManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type RunManualTrigger404AllOfThree = {\n statusCode: RunManualTrigger404AllOfThreeStatusCode\n error: RunManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type RunManualTrigger404 = RunManualTrigger404AllOf & RunManualTrigger404AllOfThree\n\n/**\n * Thryve connection widget URL response\n */\nexport type GetThryveIframeUrl200 = {\n /** Short-lived URL to embed in an iframe / WebView for the Thryve connection widget */\n url: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetThryveIframeUrl403AllOfDebug = { [key: string]: unknown }\n\nexport type GetThryveIframeUrl403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetThryveIframeUrl403AllOfDebug\n}\n\nexport type GetThryveIframeUrl403AllOfThreeStatusCode =\n (typeof GetThryveIframeUrl403AllOfThreeStatusCode)[keyof typeof GetThryveIframeUrl403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIframeUrl403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetThryveIframeUrl403AllOfThreeError =\n (typeof GetThryveIframeUrl403AllOfThreeError)[keyof typeof GetThryveIframeUrl403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIframeUrl403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetThryveIframeUrl403AllOfThree = {\n statusCode: GetThryveIframeUrl403AllOfThreeStatusCode\n error: GetThryveIframeUrl403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetThryveIframeUrl403 = GetThryveIframeUrl403AllOf & GetThryveIframeUrl403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetThryveIframeUrl404AllOfDebug = { [key: string]: unknown }\n\nexport type GetThryveIframeUrl404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetThryveIframeUrl404AllOfDebug\n}\n\nexport type GetThryveIframeUrl404AllOfThreeStatusCode =\n (typeof GetThryveIframeUrl404AllOfThreeStatusCode)[keyof typeof GetThryveIframeUrl404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIframeUrl404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetThryveIframeUrl404AllOfThreeError =\n (typeof GetThryveIframeUrl404AllOfThreeError)[keyof typeof GetThryveIframeUrl404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIframeUrl404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetThryveIframeUrl404AllOfThree = {\n statusCode: GetThryveIframeUrl404AllOfThreeStatusCode\n error: GetThryveIframeUrl404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetThryveIframeUrl404 = GetThryveIframeUrl404AllOf & GetThryveIframeUrl404AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetThryveIsAuthorized403AllOfDebug = { [key: string]: unknown }\n\nexport type GetThryveIsAuthorized403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetThryveIsAuthorized403AllOfDebug\n}\n\nexport type GetThryveIsAuthorized403AllOfThreeStatusCode =\n (typeof GetThryveIsAuthorized403AllOfThreeStatusCode)[keyof typeof GetThryveIsAuthorized403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIsAuthorized403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetThryveIsAuthorized403AllOfThreeError =\n (typeof GetThryveIsAuthorized403AllOfThreeError)[keyof typeof GetThryveIsAuthorized403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIsAuthorized403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetThryveIsAuthorized403AllOfThree = {\n statusCode: GetThryveIsAuthorized403AllOfThreeStatusCode\n error: GetThryveIsAuthorized403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetThryveIsAuthorized403 = GetThryveIsAuthorized403AllOf & GetThryveIsAuthorized403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetThryveIsAuthorized404AllOfDebug = { [key: string]: unknown }\n\nexport type GetThryveIsAuthorized404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetThryveIsAuthorized404AllOfDebug\n}\n\nexport type GetThryveIsAuthorized404AllOfThreeStatusCode =\n (typeof GetThryveIsAuthorized404AllOfThreeStatusCode)[keyof typeof GetThryveIsAuthorized404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIsAuthorized404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetThryveIsAuthorized404AllOfThreeError =\n (typeof GetThryveIsAuthorized404AllOfThreeError)[keyof typeof GetThryveIsAuthorized404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIsAuthorized404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetThryveIsAuthorized404AllOfThree = {\n statusCode: GetThryveIsAuthorized404AllOfThreeStatusCode\n error: GetThryveIsAuthorized404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetThryveIsAuthorized404 = GetThryveIsAuthorized404AllOf & GetThryveIsAuthorized404AllOfThree\n\nexport type postV2AuthLoginGlobalResponse200 = {\n data: void\n status: 200\n}\n\nexport type postV2AuthLoginGlobalResponseSuccess = postV2AuthLoginGlobalResponse200 & {\n headers: Headers\n}\nexport type postV2AuthLoginGlobalResponse = postV2AuthLoginGlobalResponseSuccess\n\nexport const getPostV2AuthLoginGlobalUrl = () => {\n return `/v2/auth/login/global`\n}\n\nexport const postV2AuthLoginGlobal = async (options?: RequestInit): Promise<postV2AuthLoginGlobalResponse> => {\n return customFetch<postV2AuthLoginGlobalResponse>(getPostV2AuthLoginGlobalUrl(), {\n ...options,\n method: 'POST',\n })\n}\n\n/**\n * Get a paginated list of alerts, optionally filtered by status, severity, type, user or patient\n */\nexport type listAlertsEcosystemResponse200 = {\n data: ListAlertsEcosystem200\n status: 200\n}\n\nexport type listAlertsEcosystemResponse403 = {\n data: ListAlertsEcosystem403\n status: 403\n}\n\nexport type listAlertsEcosystemResponse404 = {\n data: ListAlertsEcosystem404\n status: 404\n}\n\nexport type listAlertsEcosystemResponseSuccess = listAlertsEcosystemResponse200 & {\n headers: Headers\n}\nexport type listAlertsEcosystemResponseError = (listAlertsEcosystemResponse403 | listAlertsEcosystemResponse404) & {\n headers: Headers\n}\n\nexport type listAlertsEcosystemResponse = listAlertsEcosystemResponseSuccess | listAlertsEcosystemResponseError\n\nexport const getListAlertsEcosystemUrl = (ecosystemName: string, params?: ListAlertsEcosystemParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/alert/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/alert/`\n}\n\nexport const listAlertsEcosystem = async (\n ecosystemName: string,\n params?: ListAlertsEcosystemParams,\n options?: RequestInit,\n): Promise<listAlertsEcosystemResponse> => {\n return customFetch<listAlertsEcosystemResponse>(getListAlertsEcosystemUrl(ecosystemName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create an alert. Idempotent by `dedup_key`: a key already carried by an *active* alert of the same scope — the project of the URL, or the alerts belonging to no project on the ecosystem route — answers with the stored alert instead of creating a second one. A resolved alert does not shadow its key, so a condition that recurs raises a new alert. When the key is absent the server generates one\n */\nexport type createAlertEcosystemResponse200 = {\n data: CreateAlertEcosystem200\n status: 200\n}\n\nexport type createAlertEcosystemResponse400 = {\n data: CreateAlertEcosystem400\n status: 400\n}\n\nexport type createAlertEcosystemResponse403 = {\n data: CreateAlertEcosystem403\n status: 403\n}\n\nexport type createAlertEcosystemResponse404 = {\n data: CreateAlertEcosystem404\n status: 404\n}\n\nexport type createAlertEcosystemResponseSuccess = createAlertEcosystemResponse200 & {\n headers: Headers\n}\nexport type createAlertEcosystemResponseError = (\n | createAlertEcosystemResponse400\n | createAlertEcosystemResponse403\n | createAlertEcosystemResponse404\n) & {\n headers: Headers\n}\n\nexport type createAlertEcosystemResponse = createAlertEcosystemResponseSuccess | createAlertEcosystemResponseError\n\nexport const getCreateAlertEcosystemUrl = (ecosystemName: string) => {\n return `/v2/ecosystem/${ecosystemName}/alert/`\n}\n\nexport const createAlertEcosystem = async (\n ecosystemName: string,\n createAlertEcosystemBody: CreateAlertEcosystemBody,\n options?: RequestInit,\n): Promise<createAlertEcosystemResponse> => {\n return customFetch<createAlertEcosystemResponse>(getCreateAlertEcosystemUrl(ecosystemName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createAlertEcosystemBody),\n })\n}\n\n/**\n * Retrieve a specific alert by ID\n */\nexport type getAlertEcosystemResponse200 = {\n data: GetAlertEcosystem200\n status: 200\n}\n\nexport type getAlertEcosystemResponse403 = {\n data: GetAlertEcosystem403\n status: 403\n}\n\nexport type getAlertEcosystemResponse404 = {\n data: GetAlertEcosystem404\n status: 404\n}\n\nexport type getAlertEcosystemResponseSuccess = getAlertEcosystemResponse200 & {\n headers: Headers\n}\nexport type getAlertEcosystemResponseError = (getAlertEcosystemResponse403 | getAlertEcosystemResponse404) & {\n headers: Headers\n}\n\nexport type getAlertEcosystemResponse = getAlertEcosystemResponseSuccess | getAlertEcosystemResponseError\n\nexport const getGetAlertEcosystemUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert/${id}`\n}\n\nexport const getAlertEcosystem = async (\n ecosystemName: string,\n id: number,\n options?: RequestInit,\n): Promise<getAlertEcosystemResponse> => {\n return customFetch<getAlertEcosystemResponse>(getGetAlertEcosystemUrl(ecosystemName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing alert. Resolving it goes through its own endpoint\n */\nexport type updateAlertEcosystemResponse200 = {\n data: UpdateAlertEcosystem200\n status: 200\n}\n\nexport type updateAlertEcosystemResponse400 = {\n data: UpdateAlertEcosystem400\n status: 400\n}\n\nexport type updateAlertEcosystemResponse403 = {\n data: UpdateAlertEcosystem403\n status: 403\n}\n\nexport type updateAlertEcosystemResponse404 = {\n data: UpdateAlertEcosystem404\n status: 404\n}\n\nexport type updateAlertEcosystemResponseSuccess = updateAlertEcosystemResponse200 & {\n headers: Headers\n}\nexport type updateAlertEcosystemResponseError = (\n | updateAlertEcosystemResponse400\n | updateAlertEcosystemResponse403\n | updateAlertEcosystemResponse404\n) & {\n headers: Headers\n}\n\nexport type updateAlertEcosystemResponse = updateAlertEcosystemResponseSuccess | updateAlertEcosystemResponseError\n\nexport const getUpdateAlertEcosystemUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert/${id}`\n}\n\nexport const updateAlertEcosystem = async (\n ecosystemName: string,\n id: number,\n updateAlertEcosystemBody: UpdateAlertEcosystemBody,\n options?: RequestInit,\n): Promise<updateAlertEcosystemResponse> => {\n return customFetch<updateAlertEcosystemResponse>(getUpdateAlertEcosystemUrl(ecosystemName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateAlertEcosystemBody),\n })\n}\n\n/**\n * Resolve an alert, stamping who closed it and when. Resolving an already resolved alert answers with it unchanged\n */\nexport type resolveAlertEcosystemResponse200 = {\n data: ResolveAlertEcosystem200\n status: 200\n}\n\nexport type resolveAlertEcosystemResponse400 = {\n data: ResolveAlertEcosystem400\n status: 400\n}\n\nexport type resolveAlertEcosystemResponse403 = {\n data: ResolveAlertEcosystem403\n status: 403\n}\n\nexport type resolveAlertEcosystemResponse404 = {\n data: ResolveAlertEcosystem404\n status: 404\n}\n\nexport type resolveAlertEcosystemResponseSuccess = resolveAlertEcosystemResponse200 & {\n headers: Headers\n}\nexport type resolveAlertEcosystemResponseError = (\n | resolveAlertEcosystemResponse400\n | resolveAlertEcosystemResponse403\n | resolveAlertEcosystemResponse404\n) & {\n headers: Headers\n}\n\nexport type resolveAlertEcosystemResponse = resolveAlertEcosystemResponseSuccess | resolveAlertEcosystemResponseError\n\nexport const getResolveAlertEcosystemUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert/${id}/resolve`\n}\n\nexport const resolveAlertEcosystem = async (\n ecosystemName: string,\n id: number,\n resolveAlertEcosystemBody: ResolveAlertEcosystemBody,\n options?: RequestInit,\n): Promise<resolveAlertEcosystemResponse> => {\n return customFetch<resolveAlertEcosystemResponse>(getResolveAlertEcosystemUrl(ecosystemName, id), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(resolveAlertEcosystemBody),\n })\n}\n\n/**\n * Get a paginated list of the alert types of the ecosystem, by name\n */\nexport type listAlertTypesResponse200 = {\n data: ListAlertTypes200\n status: 200\n}\n\nexport type listAlertTypesResponse403 = {\n data: ListAlertTypes403\n status: 403\n}\n\nexport type listAlertTypesResponse404 = {\n data: ListAlertTypes404\n status: 404\n}\n\nexport type listAlertTypesResponseSuccess = listAlertTypesResponse200 & {\n headers: Headers\n}\nexport type listAlertTypesResponseError = (listAlertTypesResponse403 | listAlertTypesResponse404) & {\n headers: Headers\n}\n\nexport type listAlertTypesResponse = listAlertTypesResponseSuccess | listAlertTypesResponseError\n\nexport const getListAlertTypesUrl = (ecosystemName: string, params?: ListAlertTypesParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/alert-type/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/alert-type/`\n}\n\nexport const listAlertTypes = async (\n ecosystemName: string,\n params?: ListAlertTypesParams,\n options?: RequestInit,\n): Promise<listAlertTypesResponse> => {\n return customFetch<listAlertTypesResponse>(getListAlertTypesUrl(ecosystemName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create an alert type. Names may repeat: what identifies a type is its ID\n */\nexport type createAlertTypeResponse200 = {\n data: CreateAlertType200\n status: 200\n}\n\nexport type createAlertTypeResponse400 = {\n data: CreateAlertType400\n status: 400\n}\n\nexport type createAlertTypeResponse403 = {\n data: CreateAlertType403\n status: 403\n}\n\nexport type createAlertTypeResponse404 = {\n data: CreateAlertType404\n status: 404\n}\n\nexport type createAlertTypeResponseSuccess = createAlertTypeResponse200 & {\n headers: Headers\n}\nexport type createAlertTypeResponseError = (\n | createAlertTypeResponse400\n | createAlertTypeResponse403\n | createAlertTypeResponse404\n) & {\n headers: Headers\n}\n\nexport type createAlertTypeResponse = createAlertTypeResponseSuccess | createAlertTypeResponseError\n\nexport const getCreateAlertTypeUrl = (ecosystemName: string) => {\n return `/v2/ecosystem/${ecosystemName}/alert-type/`\n}\n\nexport const createAlertType = async (\n ecosystemName: string,\n createAlertTypeBody: CreateAlertTypeBody,\n options?: RequestInit,\n): Promise<createAlertTypeResponse> => {\n return customFetch<createAlertTypeResponse>(getCreateAlertTypeUrl(ecosystemName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createAlertTypeBody),\n })\n}\n\n/**\n * Retrieve a specific alert type by ID\n */\nexport type getAlertTypeResponse200 = {\n data: GetAlertType200\n status: 200\n}\n\nexport type getAlertTypeResponse403 = {\n data: GetAlertType403\n status: 403\n}\n\nexport type getAlertTypeResponse404 = {\n data: GetAlertType404\n status: 404\n}\n\nexport type getAlertTypeResponseSuccess = getAlertTypeResponse200 & {\n headers: Headers\n}\nexport type getAlertTypeResponseError = (getAlertTypeResponse403 | getAlertTypeResponse404) & {\n headers: Headers\n}\n\nexport type getAlertTypeResponse = getAlertTypeResponseSuccess | getAlertTypeResponseError\n\nexport const getGetAlertTypeUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert-type/${id}`\n}\n\nexport const getAlertType = async (\n ecosystemName: string,\n id: number,\n options?: RequestInit,\n): Promise<getAlertTypeResponse> => {\n return customFetch<getAlertTypeResponse>(getGetAlertTypeUrl(ecosystemName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing alert type\n */\nexport type updateAlertTypeResponse200 = {\n data: UpdateAlertType200\n status: 200\n}\n\nexport type updateAlertTypeResponse400 = {\n data: UpdateAlertType400\n status: 400\n}\n\nexport type updateAlertTypeResponse403 = {\n data: UpdateAlertType403\n status: 403\n}\n\nexport type updateAlertTypeResponse404 = {\n data: UpdateAlertType404\n status: 404\n}\n\nexport type updateAlertTypeResponseSuccess = updateAlertTypeResponse200 & {\n headers: Headers\n}\nexport type updateAlertTypeResponseError = (\n | updateAlertTypeResponse400\n | updateAlertTypeResponse403\n | updateAlertTypeResponse404\n) & {\n headers: Headers\n}\n\nexport type updateAlertTypeResponse = updateAlertTypeResponseSuccess | updateAlertTypeResponseError\n\nexport const getUpdateAlertTypeUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert-type/${id}`\n}\n\nexport const updateAlertType = async (\n ecosystemName: string,\n id: number,\n updateAlertTypeBody: UpdateAlertTypeBody,\n options?: RequestInit,\n): Promise<updateAlertTypeResponse> => {\n return customFetch<updateAlertTypeResponse>(getUpdateAlertTypeUrl(ecosystemName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateAlertTypeBody),\n })\n}\n\n/**\n * Delete an alert type. The alerts of that type survive as unclassified: the foreign key sets `alert_type_id` to null instead of removing them\n */\nexport type deleteAlertTypeResponse200 = {\n data: DeleteAlertType200\n status: 200\n}\n\nexport type deleteAlertTypeResponse403 = {\n data: DeleteAlertType403\n status: 403\n}\n\nexport type deleteAlertTypeResponse404 = {\n data: DeleteAlertType404\n status: 404\n}\n\nexport type deleteAlertTypeResponseSuccess = deleteAlertTypeResponse200 & {\n headers: Headers\n}\nexport type deleteAlertTypeResponseError = (deleteAlertTypeResponse403 | deleteAlertTypeResponse404) & {\n headers: Headers\n}\n\nexport type deleteAlertTypeResponse = deleteAlertTypeResponseSuccess | deleteAlertTypeResponseError\n\nexport const getDeleteAlertTypeUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert-type/${id}`\n}\n\nexport const deleteAlertType = async (\n ecosystemName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteAlertTypeResponse> => {\n return customFetch<deleteAlertTypeResponse>(getDeleteAlertTypeUrl(ecosystemName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * Get a paginated list of actions\n */\nexport type listActionsResponse200 = {\n data: ListActions200\n status: 200\n}\n\nexport type listActionsResponse403 = {\n data: ListActions403\n status: 403\n}\n\nexport type listActionsResponse404 = {\n data: ListActions404\n status: 404\n}\n\nexport type listActionsResponseSuccess = listActionsResponse200 & {\n headers: Headers\n}\nexport type listActionsResponseError = (listActionsResponse403 | listActionsResponse404) & {\n headers: Headers\n}\n\nexport type listActionsResponse = listActionsResponseSuccess | listActionsResponseError\n\nexport const getListActionsUrl = (ecosystemName: string, projectName: string, params?: ListActionsParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/`\n}\n\nexport const listActions = async (\n ecosystemName: string,\n projectName: string,\n params?: ListActionsParams,\n options?: RequestInit,\n): Promise<listActionsResponse> => {\n return customFetch<listActionsResponse>(getListActionsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create a new action\n */\nexport type createActionResponse200 = {\n data: CreateAction200\n status: 200\n}\n\nexport type createActionResponse400 = {\n data: CreateAction400\n status: 400\n}\n\nexport type createActionResponse403 = {\n data: CreateAction403\n status: 403\n}\n\nexport type createActionResponse404 = {\n data: CreateAction404\n status: 404\n}\n\nexport type createActionResponseSuccess = createActionResponse200 & {\n headers: Headers\n}\nexport type createActionResponseError = (\n | createActionResponse400\n | createActionResponse403\n | createActionResponse404\n) & {\n headers: Headers\n}\n\nexport type createActionResponse = createActionResponseSuccess | createActionResponseError\n\nexport const getCreateActionUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/`\n}\n\nexport const createAction = async (\n ecosystemName: string,\n projectName: string,\n createActionBody: CreateActionBody,\n options?: RequestInit,\n): Promise<createActionResponse> => {\n return customFetch<createActionResponse>(getCreateActionUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createActionBody),\n })\n}\n\n/**\n * Retrieve a specific action by ID\n */\nexport type getActionResponse200 = {\n data: GetAction200\n status: 200\n}\n\nexport type getActionResponse403 = {\n data: GetAction403\n status: 403\n}\n\nexport type getActionResponse404 = {\n data: GetAction404\n status: 404\n}\n\nexport type getActionResponseSuccess = getActionResponse200 & {\n headers: Headers\n}\nexport type getActionResponseError = (getActionResponse403 | getActionResponse404) & {\n headers: Headers\n}\n\nexport type getActionResponse = getActionResponseSuccess | getActionResponseError\n\nexport const getGetActionUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/${id}`\n}\n\nexport const getAction = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<getActionResponse> => {\n return customFetch<getActionResponse>(getGetActionUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing action\n */\nexport type updateActionResponse200 = {\n data: UpdateAction200\n status: 200\n}\n\nexport type updateActionResponse400 = {\n data: UpdateAction400\n status: 400\n}\n\nexport type updateActionResponse403 = {\n data: UpdateAction403\n status: 403\n}\n\nexport type updateActionResponse404 = {\n data: UpdateAction404\n status: 404\n}\n\nexport type updateActionResponseSuccess = updateActionResponse200 & {\n headers: Headers\n}\nexport type updateActionResponseError = (\n | updateActionResponse400\n | updateActionResponse403\n | updateActionResponse404\n) & {\n headers: Headers\n}\n\nexport type updateActionResponse = updateActionResponseSuccess | updateActionResponseError\n\nexport const getUpdateActionUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/${id}`\n}\n\nexport const updateAction = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateActionBody: UpdateActionBody,\n options?: RequestInit,\n): Promise<updateActionResponse> => {\n return customFetch<updateActionResponse>(getUpdateActionUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateActionBody),\n })\n}\n\n/**\n * Delete an action by its ID\n */\nexport type deleteActionResponse200 = {\n data: DeleteAction200\n status: 200\n}\n\nexport type deleteActionResponse403 = {\n data: DeleteAction403\n status: 403\n}\n\nexport type deleteActionResponse404 = {\n data: DeleteAction404\n status: 404\n}\n\nexport type deleteActionResponseSuccess = deleteActionResponse200 & {\n headers: Headers\n}\nexport type deleteActionResponseError = (deleteActionResponse403 | deleteActionResponse404) & {\n headers: Headers\n}\n\nexport type deleteActionResponse = deleteActionResponseSuccess | deleteActionResponseError\n\nexport const getDeleteActionUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/${id}`\n}\n\nexport const deleteAction = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteActionResponse> => {\n return customFetch<deleteActionResponse>(getDeleteActionUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * List ids (form names) of action questionnaires applicable to the current patient. Action questionnaires are marked via the meta_info field \"is_action\"; those whose \"action_props\" configuration is malformed are excluded. Presentation properties (label, icon, color) are read from the designers payload.\n */\nexport type listAvailableActionsResponse200 = {\n data: ListAvailableActions200\n status: 200\n}\n\nexport type listAvailableActionsResponse403 = {\n data: ListAvailableActions403\n status: 403\n}\n\nexport type listAvailableActionsResponse404 = {\n data: ListAvailableActions404\n status: 404\n}\n\nexport type listAvailableActionsResponseSuccess = listAvailableActionsResponse200 & {\n headers: Headers\n}\nexport type listAvailableActionsResponseError = (listAvailableActionsResponse403 | listAvailableActionsResponse404) & {\n headers: Headers\n}\n\nexport type listAvailableActionsResponse = listAvailableActionsResponseSuccess | listAvailableActionsResponseError\n\nexport const getListAvailableActionsUrl = (\n ecosystemName: string,\n projectName: string,\n params?: ListAvailableActionsParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/actions/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/actions/`\n}\n\nexport const listAvailableActions = async (\n ecosystemName: string,\n projectName: string,\n params?: ListAvailableActionsParams,\n options?: RequestInit,\n): Promise<listAvailableActionsResponse> => {\n return customFetch<listAvailableActionsResponse>(getListAvailableActionsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Get a paginated list of alerts, optionally filtered by status, severity, type, user or patient\n */\nexport type listAlertsResponse200 = {\n data: ListAlerts200\n status: 200\n}\n\nexport type listAlertsResponse403 = {\n data: ListAlerts403\n status: 403\n}\n\nexport type listAlertsResponse404 = {\n data: ListAlerts404\n status: 404\n}\n\nexport type listAlertsResponseSuccess = listAlertsResponse200 & {\n headers: Headers\n}\nexport type listAlertsResponseError = (listAlertsResponse403 | listAlertsResponse404) & {\n headers: Headers\n}\n\nexport type listAlertsResponse = listAlertsResponseSuccess | listAlertsResponseError\n\nexport const getListAlertsUrl = (ecosystemName: string, projectName: string, params?: ListAlertsParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/`\n}\n\nexport const listAlerts = async (\n ecosystemName: string,\n projectName: string,\n params?: ListAlertsParams,\n options?: RequestInit,\n): Promise<listAlertsResponse> => {\n return customFetch<listAlertsResponse>(getListAlertsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create an alert. Idempotent by `dedup_key`: a key already carried by an *active* alert of the same scope — the project of the URL, or the alerts belonging to no project on the ecosystem route — answers with the stored alert instead of creating a second one. A resolved alert does not shadow its key, so a condition that recurs raises a new alert. When the key is absent the server generates one\n */\nexport type createAlertResponse200 = {\n data: CreateAlert200\n status: 200\n}\n\nexport type createAlertResponse400 = {\n data: CreateAlert400\n status: 400\n}\n\nexport type createAlertResponse403 = {\n data: CreateAlert403\n status: 403\n}\n\nexport type createAlertResponse404 = {\n data: CreateAlert404\n status: 404\n}\n\nexport type createAlertResponseSuccess = createAlertResponse200 & {\n headers: Headers\n}\nexport type createAlertResponseError = (createAlertResponse400 | createAlertResponse403 | createAlertResponse404) & {\n headers: Headers\n}\n\nexport type createAlertResponse = createAlertResponseSuccess | createAlertResponseError\n\nexport const getCreateAlertUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/`\n}\n\nexport const createAlert = async (\n ecosystemName: string,\n projectName: string,\n createAlertBody: CreateAlertBody,\n options?: RequestInit,\n): Promise<createAlertResponse> => {\n return customFetch<createAlertResponse>(getCreateAlertUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createAlertBody),\n })\n}\n\n/**\n * Retrieve a specific alert by ID\n */\nexport type getAlertResponse200 = {\n data: GetAlert200\n status: 200\n}\n\nexport type getAlertResponse403 = {\n data: GetAlert403\n status: 403\n}\n\nexport type getAlertResponse404 = {\n data: GetAlert404\n status: 404\n}\n\nexport type getAlertResponseSuccess = getAlertResponse200 & {\n headers: Headers\n}\nexport type getAlertResponseError = (getAlertResponse403 | getAlertResponse404) & {\n headers: Headers\n}\n\nexport type getAlertResponse = getAlertResponseSuccess | getAlertResponseError\n\nexport const getGetAlertUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/${id}`\n}\n\nexport const getAlert = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<getAlertResponse> => {\n return customFetch<getAlertResponse>(getGetAlertUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing alert. Resolving it goes through its own endpoint\n */\nexport type updateAlertResponse200 = {\n data: UpdateAlert200\n status: 200\n}\n\nexport type updateAlertResponse400 = {\n data: UpdateAlert400\n status: 400\n}\n\nexport type updateAlertResponse403 = {\n data: UpdateAlert403\n status: 403\n}\n\nexport type updateAlertResponse404 = {\n data: UpdateAlert404\n status: 404\n}\n\nexport type updateAlertResponseSuccess = updateAlertResponse200 & {\n headers: Headers\n}\nexport type updateAlertResponseError = (updateAlertResponse400 | updateAlertResponse403 | updateAlertResponse404) & {\n headers: Headers\n}\n\nexport type updateAlertResponse = updateAlertResponseSuccess | updateAlertResponseError\n\nexport const getUpdateAlertUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/${id}`\n}\n\nexport const updateAlert = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateAlertBody: UpdateAlertBody,\n options?: RequestInit,\n): Promise<updateAlertResponse> => {\n return customFetch<updateAlertResponse>(getUpdateAlertUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateAlertBody),\n })\n}\n\n/**\n * Resolve an alert, stamping who closed it and when. Resolving an already resolved alert answers with it unchanged\n */\nexport type resolveAlertResponse200 = {\n data: ResolveAlert200\n status: 200\n}\n\nexport type resolveAlertResponse400 = {\n data: ResolveAlert400\n status: 400\n}\n\nexport type resolveAlertResponse403 = {\n data: ResolveAlert403\n status: 403\n}\n\nexport type resolveAlertResponse404 = {\n data: ResolveAlert404\n status: 404\n}\n\nexport type resolveAlertResponseSuccess = resolveAlertResponse200 & {\n headers: Headers\n}\nexport type resolveAlertResponseError = (\n | resolveAlertResponse400\n | resolveAlertResponse403\n | resolveAlertResponse404\n) & {\n headers: Headers\n}\n\nexport type resolveAlertResponse = resolveAlertResponseSuccess | resolveAlertResponseError\n\nexport const getResolveAlertUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/${id}/resolve`\n}\n\nexport const resolveAlert = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n resolveAlertBody: ResolveAlertBody,\n options?: RequestInit,\n): Promise<resolveAlertResponse> => {\n return customFetch<resolveAlertResponse>(getResolveAlertUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(resolveAlertBody),\n })\n}\n\n/**\n * Get a paginated list of automatic triggers, optionally with their actions\n */\nexport type listAutomaticTriggersResponse200 = {\n data: ListAutomaticTriggers200\n status: 200\n}\n\nexport type listAutomaticTriggersResponse403 = {\n data: ListAutomaticTriggers403\n status: 403\n}\n\nexport type listAutomaticTriggersResponse404 = {\n data: ListAutomaticTriggers404\n status: 404\n}\n\nexport type listAutomaticTriggersResponseSuccess = listAutomaticTriggersResponse200 & {\n headers: Headers\n}\nexport type listAutomaticTriggersResponseError = (\n | listAutomaticTriggersResponse403\n | listAutomaticTriggersResponse404\n) & {\n headers: Headers\n}\n\nexport type listAutomaticTriggersResponse = listAutomaticTriggersResponseSuccess | listAutomaticTriggersResponseError\n\nexport const getListAutomaticTriggersUrl = (\n ecosystemName: string,\n projectName: string,\n params?: ListAutomaticTriggersParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/`\n}\n\nexport const listAutomaticTriggers = async (\n ecosystemName: string,\n projectName: string,\n params?: ListAutomaticTriggersParams,\n options?: RequestInit,\n): Promise<listAutomaticTriggersResponse> => {\n return customFetch<listAutomaticTriggersResponse>(getListAutomaticTriggersUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create a new automatic trigger\n */\nexport type createAutomaticTriggerResponse200 = {\n data: CreateAutomaticTrigger200\n status: 200\n}\n\nexport type createAutomaticTriggerResponse403 = {\n data: CreateAutomaticTrigger403\n status: 403\n}\n\nexport type createAutomaticTriggerResponse404 = {\n data: CreateAutomaticTrigger404\n status: 404\n}\n\nexport type createAutomaticTriggerResponseSuccess = createAutomaticTriggerResponse200 & {\n headers: Headers\n}\nexport type createAutomaticTriggerResponseError = (\n | createAutomaticTriggerResponse403\n | createAutomaticTriggerResponse404\n) & {\n headers: Headers\n}\n\nexport type createAutomaticTriggerResponse = createAutomaticTriggerResponseSuccess | createAutomaticTriggerResponseError\n\nexport const getCreateAutomaticTriggerUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/`\n}\n\nexport const createAutomaticTrigger = async (\n ecosystemName: string,\n projectName: string,\n createAutomaticTriggerBody: CreateAutomaticTriggerBody,\n options?: RequestInit,\n): Promise<createAutomaticTriggerResponse> => {\n return customFetch<createAutomaticTriggerResponse>(getCreateAutomaticTriggerUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createAutomaticTriggerBody),\n })\n}\n\n/**\n * Retrieve a specific automatic trigger by ID, optionally with its actions\n */\nexport type getAutomaticTriggerResponse200 = {\n data: GetAutomaticTrigger200\n status: 200\n}\n\nexport type getAutomaticTriggerResponse403 = {\n data: GetAutomaticTrigger403\n status: 403\n}\n\nexport type getAutomaticTriggerResponse404 = {\n data: GetAutomaticTrigger404\n status: 404\n}\n\nexport type getAutomaticTriggerResponseSuccess = getAutomaticTriggerResponse200 & {\n headers: Headers\n}\nexport type getAutomaticTriggerResponseError = (getAutomaticTriggerResponse403 | getAutomaticTriggerResponse404) & {\n headers: Headers\n}\n\nexport type getAutomaticTriggerResponse = getAutomaticTriggerResponseSuccess | getAutomaticTriggerResponseError\n\nexport const getGetAutomaticTriggerUrl = (\n ecosystemName: string,\n projectName: string,\n id: number,\n params?: GetAutomaticTriggerParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/${id}?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/${id}`\n}\n\nexport const getAutomaticTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n params?: GetAutomaticTriggerParams,\n options?: RequestInit,\n): Promise<getAutomaticTriggerResponse> => {\n return customFetch<getAutomaticTriggerResponse>(getGetAutomaticTriggerUrl(ecosystemName, projectName, id, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing automatic trigger\n */\nexport type updateAutomaticTriggerResponse200 = {\n data: UpdateAutomaticTrigger200\n status: 200\n}\n\nexport type updateAutomaticTriggerResponse400 = {\n data: UpdateAutomaticTrigger400\n status: 400\n}\n\nexport type updateAutomaticTriggerResponse403 = {\n data: UpdateAutomaticTrigger403\n status: 403\n}\n\nexport type updateAutomaticTriggerResponse404 = {\n data: UpdateAutomaticTrigger404\n status: 404\n}\n\nexport type updateAutomaticTriggerResponseSuccess = updateAutomaticTriggerResponse200 & {\n headers: Headers\n}\nexport type updateAutomaticTriggerResponseError = (\n | updateAutomaticTriggerResponse400\n | updateAutomaticTriggerResponse403\n | updateAutomaticTriggerResponse404\n) & {\n headers: Headers\n}\n\nexport type updateAutomaticTriggerResponse = updateAutomaticTriggerResponseSuccess | updateAutomaticTriggerResponseError\n\nexport const getUpdateAutomaticTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/${id}`\n}\n\nexport const updateAutomaticTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateAutomaticTriggerBody: UpdateAutomaticTriggerBody,\n options?: RequestInit,\n): Promise<updateAutomaticTriggerResponse> => {\n return customFetch<updateAutomaticTriggerResponse>(getUpdateAutomaticTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateAutomaticTriggerBody),\n })\n}\n\n/**\n * Delete an automatic trigger by its ID\n */\nexport type deleteAutomaticTriggerResponse200 = {\n data: DeleteAutomaticTrigger200\n status: 200\n}\n\nexport type deleteAutomaticTriggerResponse403 = {\n data: DeleteAutomaticTrigger403\n status: 403\n}\n\nexport type deleteAutomaticTriggerResponse404 = {\n data: DeleteAutomaticTrigger404\n status: 404\n}\n\nexport type deleteAutomaticTriggerResponseSuccess = deleteAutomaticTriggerResponse200 & {\n headers: Headers\n}\nexport type deleteAutomaticTriggerResponseError = (\n | deleteAutomaticTriggerResponse403\n | deleteAutomaticTriggerResponse404\n) & {\n headers: Headers\n}\n\nexport type deleteAutomaticTriggerResponse = deleteAutomaticTriggerResponseSuccess | deleteAutomaticTriggerResponseError\n\nexport const getDeleteAutomaticTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/${id}`\n}\n\nexport const deleteAutomaticTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteAutomaticTriggerResponse> => {\n return customFetch<deleteAutomaticTriggerResponse>(getDeleteAutomaticTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * Get a paginated list of documents\n */\nexport type listDocumentsResponse200 = {\n data: ListDocuments200\n status: 200\n}\n\nexport type listDocumentsResponse403 = {\n data: ListDocuments403\n status: 403\n}\n\nexport type listDocumentsResponse404 = {\n data: ListDocuments404\n status: 404\n}\n\nexport type listDocumentsResponseSuccess = listDocumentsResponse200 & {\n headers: Headers\n}\nexport type listDocumentsResponseError = (listDocumentsResponse403 | listDocumentsResponse404) & {\n headers: Headers\n}\n\nexport type listDocumentsResponse = listDocumentsResponseSuccess | listDocumentsResponseError\n\nexport const getListDocumentsUrl = (ecosystemName: string, projectName: string, params?: ListDocumentsParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/`\n}\n\nexport const listDocuments = async (\n ecosystemName: string,\n projectName: string,\n params?: ListDocumentsParams,\n options?: RequestInit,\n): Promise<listDocumentsResponse> => {\n return customFetch<listDocumentsResponse>(getListDocumentsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create a new document record\n */\nexport type createDocumentResponse200 = {\n data: CreateDocument200\n status: 200\n}\n\nexport type createDocumentResponse403 = {\n data: CreateDocument403\n status: 403\n}\n\nexport type createDocumentResponse404 = {\n data: CreateDocument404\n status: 404\n}\n\nexport type createDocumentResponseSuccess = createDocumentResponse200 & {\n headers: Headers\n}\nexport type createDocumentResponseError = (createDocumentResponse403 | createDocumentResponse404) & {\n headers: Headers\n}\n\nexport type createDocumentResponse = createDocumentResponseSuccess | createDocumentResponseError\n\nexport const getCreateDocumentUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/`\n}\n\nexport const createDocument = async (\n ecosystemName: string,\n projectName: string,\n createDocumentBody: CreateDocumentBody,\n options?: RequestInit,\n): Promise<createDocumentResponse> => {\n return customFetch<createDocumentResponse>(getCreateDocumentUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createDocumentBody),\n })\n}\n\n/**\n * Retrieve a specific document by ID\n */\nexport type getDocumentResponse200 = {\n data: GetDocument200\n status: 200\n}\n\nexport type getDocumentResponse403 = {\n data: GetDocument403\n status: 403\n}\n\nexport type getDocumentResponse404 = {\n data: GetDocument404\n status: 404\n}\n\nexport type getDocumentResponseSuccess = getDocumentResponse200 & {\n headers: Headers\n}\nexport type getDocumentResponseError = (getDocumentResponse403 | getDocumentResponse404) & {\n headers: Headers\n}\n\nexport type getDocumentResponse = getDocumentResponseSuccess | getDocumentResponseError\n\nexport const getGetDocumentUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${id}`\n}\n\nexport const getDocument = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<getDocumentResponse> => {\n return customFetch<getDocumentResponse>(getGetDocumentUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing document record\n */\nexport type updateDocumentResponse200 = {\n data: UpdateDocument200\n status: 200\n}\n\nexport type updateDocumentResponse403 = {\n data: UpdateDocument403\n status: 403\n}\n\nexport type updateDocumentResponse404 = {\n data: UpdateDocument404\n status: 404\n}\n\nexport type updateDocumentResponseSuccess = updateDocumentResponse200 & {\n headers: Headers\n}\nexport type updateDocumentResponseError = (updateDocumentResponse403 | updateDocumentResponse404) & {\n headers: Headers\n}\n\nexport type updateDocumentResponse = updateDocumentResponseSuccess | updateDocumentResponseError\n\nexport const getUpdateDocumentUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${id}`\n}\n\nexport const updateDocument = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateDocumentBody: UpdateDocumentBody,\n options?: RequestInit,\n): Promise<updateDocumentResponse> => {\n return customFetch<updateDocumentResponse>(getUpdateDocumentUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateDocumentBody),\n })\n}\n\n/**\n * Delete a document by its ID\n */\nexport type deleteDocumentResponse200 = {\n data: DeleteDocument200\n status: 200\n}\n\nexport type deleteDocumentResponse403 = {\n data: DeleteDocument403\n status: 403\n}\n\nexport type deleteDocumentResponse404 = {\n data: DeleteDocument404\n status: 404\n}\n\nexport type deleteDocumentResponseSuccess = deleteDocumentResponse200 & {\n headers: Headers\n}\nexport type deleteDocumentResponseError = (deleteDocumentResponse403 | deleteDocumentResponse404) & {\n headers: Headers\n}\n\nexport type deleteDocumentResponse = deleteDocumentResponseSuccess | deleteDocumentResponseError\n\nexport const getDeleteDocumentUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${id}`\n}\n\nexport const deleteDocument = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteDocumentResponse> => {\n return customFetch<deleteDocumentResponse>(getDeleteDocumentUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\nexport type addCategoryToDocumentResponse200 = {\n data: AddCategoryToDocument200\n status: 200\n}\n\nexport type addCategoryToDocumentResponse403 = {\n data: AddCategoryToDocument403\n status: 403\n}\n\nexport type addCategoryToDocumentResponse404 = {\n data: AddCategoryToDocument404\n status: 404\n}\n\nexport type addCategoryToDocumentResponseSuccess = addCategoryToDocumentResponse200 & {\n headers: Headers\n}\nexport type addCategoryToDocumentResponseError = (\n | addCategoryToDocumentResponse403\n | addCategoryToDocumentResponse404\n) & {\n headers: Headers\n}\n\nexport type addCategoryToDocumentResponse = addCategoryToDocumentResponseSuccess | addCategoryToDocumentResponseError\n\nexport const getAddCategoryToDocumentUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${id}/categories`\n}\n\nexport const addCategoryToDocument = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n addCategoryToDocumentBody: AddCategoryToDocumentBody,\n options?: RequestInit,\n): Promise<addCategoryToDocumentResponse> => {\n return customFetch<addCategoryToDocumentResponse>(getAddCategoryToDocumentUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(addCategoryToDocumentBody),\n })\n}\n\nexport type removeCategoryFromDocumentResponse200 = {\n data: RemoveCategoryFromDocument200\n status: 200\n}\n\nexport type removeCategoryFromDocumentResponse403 = {\n data: RemoveCategoryFromDocument403\n status: 403\n}\n\nexport type removeCategoryFromDocumentResponse404 = {\n data: RemoveCategoryFromDocument404\n status: 404\n}\n\nexport type removeCategoryFromDocumentResponseSuccess = removeCategoryFromDocumentResponse200 & {\n headers: Headers\n}\nexport type removeCategoryFromDocumentResponseError = (\n | removeCategoryFromDocumentResponse403\n | removeCategoryFromDocumentResponse404\n) & {\n headers: Headers\n}\n\nexport type removeCategoryFromDocumentResponse =\n | removeCategoryFromDocumentResponseSuccess\n | removeCategoryFromDocumentResponseError\n\nexport const getRemoveCategoryFromDocumentUrl = (\n ecosystemName: string,\n projectName: string,\n documentId: number,\n categoryId: number,\n) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${documentId}/categories/${categoryId}`\n}\n\nexport const removeCategoryFromDocument = async (\n ecosystemName: string,\n projectName: string,\n documentId: number,\n categoryId: number,\n options?: RequestInit,\n): Promise<removeCategoryFromDocumentResponse> => {\n return customFetch<removeCategoryFromDocumentResponse>(\n getRemoveCategoryFromDocumentUrl(ecosystemName, projectName, documentId, categoryId),\n {\n ...options,\n method: 'DELETE',\n },\n )\n}\n\n/**\n * A paginated list of document categories with the number of documents in each category\n */\nexport type listDocumentCategoriesResponse200 = {\n data: ListDocumentCategories200\n status: 200\n}\n\nexport type listDocumentCategoriesResponse403 = {\n data: ListDocumentCategories403\n status: 403\n}\n\nexport type listDocumentCategoriesResponse404 = {\n data: ListDocumentCategories404\n status: 404\n}\n\nexport type listDocumentCategoriesResponseSuccess = listDocumentCategoriesResponse200 & {\n headers: Headers\n}\nexport type listDocumentCategoriesResponseError = (\n | listDocumentCategoriesResponse403\n | listDocumentCategoriesResponse404\n) & {\n headers: Headers\n}\n\nexport type listDocumentCategoriesResponse = listDocumentCategoriesResponseSuccess | listDocumentCategoriesResponseError\n\nexport const getListDocumentCategoriesUrl = (\n ecosystemName: string,\n projectName: string,\n params?: ListDocumentCategoriesParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/`\n}\n\nexport const listDocumentCategories = async (\n ecosystemName: string,\n projectName: string,\n params?: ListDocumentCategoriesParams,\n options?: RequestInit,\n): Promise<listDocumentCategoriesResponse> => {\n return customFetch<listDocumentCategoriesResponse>(getListDocumentCategoriesUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Creates a document category with the provided data\n */\nexport type createDocumentCategoryResponse200 = {\n data: CreateDocumentCategory200\n status: 200\n}\n\nexport type createDocumentCategoryResponse403 = {\n data: CreateDocumentCategory403\n status: 403\n}\n\nexport type createDocumentCategoryResponse404 = {\n data: CreateDocumentCategory404\n status: 404\n}\n\nexport type createDocumentCategoryResponseSuccess = createDocumentCategoryResponse200 & {\n headers: Headers\n}\nexport type createDocumentCategoryResponseError = (\n | createDocumentCategoryResponse403\n | createDocumentCategoryResponse404\n) & {\n headers: Headers\n}\n\nexport type createDocumentCategoryResponse = createDocumentCategoryResponseSuccess | createDocumentCategoryResponseError\n\nexport const getCreateDocumentCategoryUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/`\n}\n\nexport const createDocumentCategory = async (\n ecosystemName: string,\n projectName: string,\n createDocumentCategoryBody: CreateDocumentCategoryBody,\n options?: RequestInit,\n): Promise<createDocumentCategoryResponse> => {\n return customFetch<createDocumentCategoryResponse>(getCreateDocumentCategoryUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createDocumentCategoryBody),\n })\n}\n\n/**\n * Get the data of a document category\n */\nexport type getDocumentCategoryResponse200 = {\n data: GetDocumentCategory200\n status: 200\n}\n\nexport type getDocumentCategoryResponse403 = {\n data: GetDocumentCategory403\n status: 403\n}\n\nexport type getDocumentCategoryResponse404 = {\n data: GetDocumentCategory404\n status: 404\n}\n\nexport type getDocumentCategoryResponseSuccess = getDocumentCategoryResponse200 & {\n headers: Headers\n}\nexport type getDocumentCategoryResponseError = (getDocumentCategoryResponse403 | getDocumentCategoryResponse404) & {\n headers: Headers\n}\n\nexport type getDocumentCategoryResponse = getDocumentCategoryResponseSuccess | getDocumentCategoryResponseError\n\nexport const getGetDocumentCategoryUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/${id}`\n}\n\nexport const getDocumentCategory = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<getDocumentCategoryResponse> => {\n return customFetch<getDocumentCategoryResponse>(getGetDocumentCategoryUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Updates (patch) a document category with the provided data\n */\nexport type updateDocumentCategoryResponse200 = {\n data: UpdateDocumentCategory200\n status: 200\n}\n\nexport type updateDocumentCategoryResponse403 = {\n data: UpdateDocumentCategory403\n status: 403\n}\n\nexport type updateDocumentCategoryResponse404 = {\n data: UpdateDocumentCategory404\n status: 404\n}\n\nexport type updateDocumentCategoryResponseSuccess = updateDocumentCategoryResponse200 & {\n headers: Headers\n}\nexport type updateDocumentCategoryResponseError = (\n | updateDocumentCategoryResponse403\n | updateDocumentCategoryResponse404\n) & {\n headers: Headers\n}\n\nexport type updateDocumentCategoryResponse = updateDocumentCategoryResponseSuccess | updateDocumentCategoryResponseError\n\nexport const getUpdateDocumentCategoryUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/${id}`\n}\n\nexport const updateDocumentCategory = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateDocumentCategoryBody: UpdateDocumentCategoryBody,\n options?: RequestInit,\n): Promise<updateDocumentCategoryResponse> => {\n return customFetch<updateDocumentCategoryResponse>(getUpdateDocumentCategoryUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateDocumentCategoryBody),\n })\n}\n\n/**\n * Deletes a document category with the provided ID\n */\nexport type deleteDocumentCategoryResponse200 = {\n data: DeleteDocumentCategory200\n status: 200\n}\n\nexport type deleteDocumentCategoryResponse403 = {\n data: DeleteDocumentCategory403\n status: 403\n}\n\nexport type deleteDocumentCategoryResponse404 = {\n data: DeleteDocumentCategory404\n status: 404\n}\n\nexport type deleteDocumentCategoryResponseSuccess = deleteDocumentCategoryResponse200 & {\n headers: Headers\n}\nexport type deleteDocumentCategoryResponseError = (\n | deleteDocumentCategoryResponse403\n | deleteDocumentCategoryResponse404\n) & {\n headers: Headers\n}\n\nexport type deleteDocumentCategoryResponse = deleteDocumentCategoryResponseSuccess | deleteDocumentCategoryResponseError\n\nexport const getDeleteDocumentCategoryUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/${id}`\n}\n\nexport const deleteDocumentCategory = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteDocumentCategoryResponse> => {\n return customFetch<deleteDocumentCategoryResponse>(getDeleteDocumentCategoryUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * Get forms data\n */\nexport type getFormsDataResponse200 = {\n data: GetFormsData200\n status: 200\n}\n\nexport type getFormsDataResponse403 = {\n data: GetFormsData403\n status: 403\n}\n\nexport type getFormsDataResponse404 = {\n data: GetFormsData404\n status: 404\n}\n\nexport type getFormsDataResponseSuccess = getFormsDataResponse200 & {\n headers: Headers\n}\nexport type getFormsDataResponseError = (getFormsDataResponse403 | getFormsDataResponse404) & {\n headers: Headers\n}\n\nexport type getFormsDataResponse = getFormsDataResponseSuccess | getFormsDataResponseError\n\nexport const getGetFormsDataUrl = (ecosystemName: string, projectName: string, params: GetFormsDataParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/forms-data/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/forms-data/`\n}\n\nexport const getFormsData = async (\n ecosystemName: string,\n projectName: string,\n params: GetFormsDataParams,\n options?: RequestInit,\n): Promise<getFormsDataResponse> => {\n return customFetch<getFormsDataResponse>(getGetFormsDataUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Get a paginated list of manual triggers, optionally with their actions\n */\nexport type listManualTriggersResponse200 = {\n data: ListManualTriggers200\n status: 200\n}\n\nexport type listManualTriggersResponse403 = {\n data: ListManualTriggers403\n status: 403\n}\n\nexport type listManualTriggersResponse404 = {\n data: ListManualTriggers404\n status: 404\n}\n\nexport type listManualTriggersResponseSuccess = listManualTriggersResponse200 & {\n headers: Headers\n}\nexport type listManualTriggersResponseError = (listManualTriggersResponse403 | listManualTriggersResponse404) & {\n headers: Headers\n}\n\nexport type listManualTriggersResponse = listManualTriggersResponseSuccess | listManualTriggersResponseError\n\nexport const getListManualTriggersUrl = (\n ecosystemName: string,\n projectName: string,\n params?: ListManualTriggersParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/`\n}\n\nexport const listManualTriggers = async (\n ecosystemName: string,\n projectName: string,\n params?: ListManualTriggersParams,\n options?: RequestInit,\n): Promise<listManualTriggersResponse> => {\n return customFetch<listManualTriggersResponse>(getListManualTriggersUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create a new manual trigger\n */\nexport type createManualTriggerResponse200 = {\n data: CreateManualTrigger200\n status: 200\n}\n\nexport type createManualTriggerResponse403 = {\n data: CreateManualTrigger403\n status: 403\n}\n\nexport type createManualTriggerResponse404 = {\n data: CreateManualTrigger404\n status: 404\n}\n\nexport type createManualTriggerResponseSuccess = createManualTriggerResponse200 & {\n headers: Headers\n}\nexport type createManualTriggerResponseError = (createManualTriggerResponse403 | createManualTriggerResponse404) & {\n headers: Headers\n}\n\nexport type createManualTriggerResponse = createManualTriggerResponseSuccess | createManualTriggerResponseError\n\nexport const getCreateManualTriggerUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/`\n}\n\nexport const createManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n createManualTriggerBody: CreateManualTriggerBody,\n options?: RequestInit,\n): Promise<createManualTriggerResponse> => {\n return customFetch<createManualTriggerResponse>(getCreateManualTriggerUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createManualTriggerBody),\n })\n}\n\n/**\n * List the manual triggers applicable to an entity, with their conditions already evaluated. Read-only: it records nothing\n */\nexport type listAvailableManualTriggersResponse200 = {\n data: ListAvailableManualTriggers200\n status: 200\n}\n\nexport type listAvailableManualTriggersResponse403 = {\n data: ListAvailableManualTriggers403\n status: 403\n}\n\nexport type listAvailableManualTriggersResponse404 = {\n data: ListAvailableManualTriggers404\n status: 404\n}\n\nexport type listAvailableManualTriggersResponseSuccess = listAvailableManualTriggersResponse200 & {\n headers: Headers\n}\nexport type listAvailableManualTriggersResponseError = (\n | listAvailableManualTriggersResponse403\n | listAvailableManualTriggersResponse404\n) & {\n headers: Headers\n}\n\nexport type listAvailableManualTriggersResponse =\n | listAvailableManualTriggersResponseSuccess\n | listAvailableManualTriggersResponseError\n\nexport const getListAvailableManualTriggersUrl = (\n ecosystemName: string,\n projectName: string,\n params: ListAvailableManualTriggersParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/available?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/available`\n}\n\nexport const listAvailableManualTriggers = async (\n ecosystemName: string,\n projectName: string,\n params: ListAvailableManualTriggersParams,\n options?: RequestInit,\n): Promise<listAvailableManualTriggersResponse> => {\n return customFetch<listAvailableManualTriggersResponse>(\n getListAvailableManualTriggersUrl(ecosystemName, projectName, params),\n {\n ...options,\n method: 'GET',\n },\n )\n}\n\n/**\n * Retrieve a specific manual trigger by ID, optionally with its actions\n */\nexport type getManualTriggerResponse200 = {\n data: GetManualTrigger200\n status: 200\n}\n\nexport type getManualTriggerResponse403 = {\n data: GetManualTrigger403\n status: 403\n}\n\nexport type getManualTriggerResponse404 = {\n data: GetManualTrigger404\n status: 404\n}\n\nexport type getManualTriggerResponseSuccess = getManualTriggerResponse200 & {\n headers: Headers\n}\nexport type getManualTriggerResponseError = (getManualTriggerResponse403 | getManualTriggerResponse404) & {\n headers: Headers\n}\n\nexport type getManualTriggerResponse = getManualTriggerResponseSuccess | getManualTriggerResponseError\n\nexport const getGetManualTriggerUrl = (\n ecosystemName: string,\n projectName: string,\n id: number,\n params?: GetManualTriggerParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}`\n}\n\nexport const getManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n params?: GetManualTriggerParams,\n options?: RequestInit,\n): Promise<getManualTriggerResponse> => {\n return customFetch<getManualTriggerResponse>(getGetManualTriggerUrl(ecosystemName, projectName, id, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing manual trigger\n */\nexport type updateManualTriggerResponse200 = {\n data: UpdateManualTrigger200\n status: 200\n}\n\nexport type updateManualTriggerResponse400 = {\n data: UpdateManualTrigger400\n status: 400\n}\n\nexport type updateManualTriggerResponse403 = {\n data: UpdateManualTrigger403\n status: 403\n}\n\nexport type updateManualTriggerResponse404 = {\n data: UpdateManualTrigger404\n status: 404\n}\n\nexport type updateManualTriggerResponseSuccess = updateManualTriggerResponse200 & {\n headers: Headers\n}\nexport type updateManualTriggerResponseError = (\n | updateManualTriggerResponse400\n | updateManualTriggerResponse403\n | updateManualTriggerResponse404\n) & {\n headers: Headers\n}\n\nexport type updateManualTriggerResponse = updateManualTriggerResponseSuccess | updateManualTriggerResponseError\n\nexport const getUpdateManualTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}`\n}\n\nexport const updateManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateManualTriggerBody: UpdateManualTriggerBody,\n options?: RequestInit,\n): Promise<updateManualTriggerResponse> => {\n return customFetch<updateManualTriggerResponse>(getUpdateManualTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateManualTriggerBody),\n })\n}\n\n/**\n * Delete a manual trigger by its ID\n */\nexport type deleteManualTriggerResponse200 = {\n data: DeleteManualTrigger200\n status: 200\n}\n\nexport type deleteManualTriggerResponse403 = {\n data: DeleteManualTrigger403\n status: 403\n}\n\nexport type deleteManualTriggerResponse404 = {\n data: DeleteManualTrigger404\n status: 404\n}\n\nexport type deleteManualTriggerResponseSuccess = deleteManualTriggerResponse200 & {\n headers: Headers\n}\nexport type deleteManualTriggerResponseError = (deleteManualTriggerResponse403 | deleteManualTriggerResponse404) & {\n headers: Headers\n}\n\nexport type deleteManualTriggerResponse = deleteManualTriggerResponseSuccess | deleteManualTriggerResponseError\n\nexport const getDeleteManualTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}`\n}\n\nexport const deleteManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteManualTriggerResponse> => {\n return customFetch<deleteManualTriggerResponse>(getDeleteManualTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * Run a manual trigger against an entity. Re-evaluates the conditions server-side and records the evaluation and every action outcome\n */\nexport type runManualTriggerResponse200 = {\n data: RunManualTrigger200\n status: 200\n}\n\nexport type runManualTriggerResponse403 = {\n data: RunManualTrigger403\n status: 403\n}\n\nexport type runManualTriggerResponse404 = {\n data: RunManualTrigger404\n status: 404\n}\n\nexport type runManualTriggerResponseSuccess = runManualTriggerResponse200 & {\n headers: Headers\n}\nexport type runManualTriggerResponseError = (runManualTriggerResponse403 | runManualTriggerResponse404) & {\n headers: Headers\n}\n\nexport type runManualTriggerResponse = runManualTriggerResponseSuccess | runManualTriggerResponseError\n\nexport const getRunManualTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}/run`\n}\n\nexport const runManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n runManualTriggerBody: RunManualTriggerBody,\n options?: RequestInit,\n): Promise<runManualTriggerResponse> => {\n return customFetch<runManualTriggerResponse>(getRunManualTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(runManualTriggerBody),\n })\n}\n\n/**\n * [DEPRECATED] Returns a short-lived URL to embed the Thryve connection widget in an iframe / WebView. The native app builds this URL itself now; kept only for older installed clients. Slated for removal once access logs drop to zero.\n * @deprecated\n */\nexport type getThryveIframeUrlResponse200 = {\n data: GetThryveIframeUrl200\n status: 200\n}\n\nexport type getThryveIframeUrlResponse403 = {\n data: GetThryveIframeUrl403\n status: 403\n}\n\nexport type getThryveIframeUrlResponse404 = {\n data: GetThryveIframeUrl404\n status: 404\n}\n\nexport type getThryveIframeUrlResponseSuccess = getThryveIframeUrlResponse200 & {\n headers: Headers\n}\nexport type getThryveIframeUrlResponseError = (getThryveIframeUrlResponse403 | getThryveIframeUrlResponse404) & {\n headers: Headers\n}\n\nexport type getThryveIframeUrlResponse = getThryveIframeUrlResponseSuccess | getThryveIframeUrlResponseError\n\nexport const getGetThryveIframeUrlUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/thryve/iframe-url`\n}\n\nexport const getThryveIframeUrl = async (\n ecosystemName: string,\n projectName: string,\n options?: RequestInit,\n): Promise<getThryveIframeUrlResponse> => {\n return customFetch<getThryveIframeUrlResponse>(getGetThryveIframeUrlUrl(ecosystemName, projectName), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Returns a boolean indicating whether the current user has at least one connected data source in the HC API (multi-provider health data service, currently Thryve).\n */\nexport type getThryveIsAuthorizedResponse200 = {\n data: boolean\n status: 200\n}\n\nexport type getThryveIsAuthorizedResponse403 = {\n data: GetThryveIsAuthorized403\n status: 403\n}\n\nexport type getThryveIsAuthorizedResponse404 = {\n data: GetThryveIsAuthorized404\n status: 404\n}\n\nexport type getThryveIsAuthorizedResponseSuccess = getThryveIsAuthorizedResponse200 & {\n headers: Headers\n}\nexport type getThryveIsAuthorizedResponseError = (\n | getThryveIsAuthorizedResponse403\n | getThryveIsAuthorizedResponse404\n) & {\n headers: Headers\n}\n\nexport type getThryveIsAuthorizedResponse = getThryveIsAuthorizedResponseSuccess | getThryveIsAuthorizedResponseError\n\nexport const getGetThryveIsAuthorizedUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/thryve/is-authorized`\n}\n\nexport const getThryveIsAuthorized = async (\n ecosystemName: string,\n projectName: string,\n options?: RequestInit,\n): Promise<getThryveIsAuthorizedResponse> => {\n return customFetch<getThryveIsAuthorizedResponse>(getGetThryveIsAuthorizedUrl(ecosystemName, projectName), {\n ...options,\n method: 'GET',\n })\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.cjs","sources":["../src/client/customFetch.ts","../src/generated/client.ts"],"sourcesContent":["/**\n * Orval mutator for the generated fetch client (`src/generated/client.ts`).\n *\n * Centralizes base URL composition, `Authorization` header injection, and\n * response decoding/error handling for every generated operation, so\n * consumers (the `front` repo) can call the generated functions directly\n * without a bespoke glue layer (see `front/packages/perseed-api-client/src/generatedClient.ts`,\n * which this replaces — api's owner requested moving this logic here in MR !109).\n */\n\n/**\n * Thrown by {@link customFetch} when the response status is not in the 2xx range. Carries the\n * HTTP `status` and the parsed error body (when present) so consumers can branch on the failure\n * without having to re-parse anything (e.g. the front's `isEndpointUnavailable`).\n */\nexport class GeneratedClientError extends Error {\n status: number\n body?: unknown\n\n constructor(status: number, body?: unknown) {\n super(`Request failed with status ${status}`)\n // Restores the prototype chain: TS compiles `extends Error` (a native built-in) down to a\n // plain `Error.call(this, ...)` invocation for non-native-class targets/emit. `Error` called\n // this way returns a *new* plain `Error` object (since it's truthy, `super(...)`'s implicit\n // `|| this` picks it over `this`), so without this line the resulting instance's prototype is\n // `Error.prototype`, not `GeneratedClientError.prototype` — breaking `instanceof\n // GeneratedClientError` even though the object was constructed via `new GeneratedClientError(...)`.\n // This is TypeScript's documented caveat for extending built-ins:\n // https://github.com/microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, GeneratedClientError.prototype)\n this.name = 'GeneratedClientError'\n this.status = status\n this.body = body\n }\n}\n\nexport interface ClientRuntimeConfig {\n /** Absolute base URL of the API, e.g. `https://api.perseed.eu`. */\n baseUrl: string\n /**\n * Returns the session token to use for the *current* call, or `undefined` if unauthenticated.\n * A function (not a static token) so the runtime always reads the token in effect at call\n * time — avoiding a stale-token capture without depending on React or any specific state\n * management.\n */\n getToken?: () => string | undefined\n}\n\nlet runtimeConfig: ClientRuntimeConfig | undefined\n\n/** Configures the base URL and token accessor used by every generated operation. */\nexport function configureGeneratedClient(cfg: ClientRuntimeConfig): void {\n runtimeConfig = cfg\n}\n\nfunction getRuntimeConfig(): ClientRuntimeConfig {\n if (!runtimeConfig) {\n throw new Error(\n 'Generated API client used before configuration. Call configureGeneratedClient({ baseUrl, getToken }) first.',\n )\n }\n return runtimeConfig\n}\n\n/**\n * Mutator invoked by every generated operation in `src/generated/client.ts`. Composes the\n * absolute URL from the configured base URL, injects `Authorization: Bearer <token>` when a\n * token is available, performs the request, and decodes the response the same way the previous\n * front-side `fetchGenerated` did (null body for 204/205/304, JSON otherwise). A non-2xx response\n * throws a {@link GeneratedClientError} instead of resolving, so callers get a rejected promise\n * for every failed request.\n *\n * `T` here is orval's own per-operation response union (e.g. `listActionsResponse`, shaped as\n * `{ data, status, headers }` discriminated by `status`), not the bare payload type — orval calls\n * this mutator as `customFetch<listActionsResponse>(url, init)` and uses its return value\n * directly as the operation's return value. Confirmed empirically by regenerating the client and\n * inspecting `src/generated/client.ts`. The cast below is unavoidable: at runtime we only know the\n * status/data/headers triple, not which member of the union it narrows to — that narrowing is the\n * server's contract with the generated types, not something this generic transport layer can (or\n * should) re-verify.\n */\nexport async function customFetch<T>(url: string, options: RequestInit): Promise<T> {\n const { baseUrl, getToken } = getRuntimeConfig()\n const token = getToken?.()\n\n const headers: Record<string, string> = { ...(options.headers as Record<string, string> | undefined) }\n if (token) {\n headers.Authorization = `Bearer ${token}`\n }\n\n const res = await fetch(`${baseUrl}${url}`, { ...options, headers })\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data = (body ? JSON.parse(body) : {}) as unknown\n\n if (!res.ok) {\n throw new GeneratedClientError(res.status, data)\n }\n\n return { data, status: res.status, headers: res.headers } as T\n}\n","/**\n * Generated by orval v7.21.0 🍺\n * Do not edit manually.\n * @fastify/swagger\n * OpenAPI spec version: 9.7.0\n */\nimport { customFetch } from '../client/customFetch'\nexport type ListAlertsEcosystemParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\n status?: ListAlertsEcosystemStatus\n /**\n * Severity of the alert, used to prioritise it\n */\n severity?: ListAlertsEcosystemSeverity\n /**\n * Filter by the user the alert is about\n */\n user_id?: number\n /**\n * Filter by the patient the alert is about\n */\n patient_id?: number\n /**\n * Filter by the type of the alert\n */\n alert_type_id?: number\n}\n\nexport type ListAlertsEcosystemStatus = (typeof ListAlertsEcosystemStatus)[keyof typeof ListAlertsEcosystemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystemStatus = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\nexport type ListAlertsEcosystemSeverity = (typeof ListAlertsEcosystemSeverity)[keyof typeof ListAlertsEcosystemSeverity]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystemSeverity = {\n info: 'info',\n low: 'low',\n medium: 'medium',\n high: 'high',\n critical: 'critical',\n} as const\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type ListAlertsEcosystem200ResultsItemProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type ListAlertsEcosystem200ResultsItemAlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type ListAlertsEcosystem200ResultsItemUserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type ListAlertsEcosystem200ResultsItemPatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type ListAlertsEcosystem200ResultsItemSeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type ListAlertsEcosystem200ResultsItemStatus =\n (typeof ListAlertsEcosystem200ResultsItemStatus)[keyof typeof ListAlertsEcosystem200ResultsItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem200ResultsItemStatus = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type ListAlertsEcosystem200ResultsItemTitle = string | null\n\n/**\n * Longer readable description\n */\nexport type ListAlertsEcosystem200ResultsItemSummary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type ListAlertsEcosystem200ResultsItemEmitterType =\n (typeof ListAlertsEcosystem200ResultsItemEmitterType)[keyof typeof ListAlertsEcosystem200ResultsItemEmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem200ResultsItemEmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type ListAlertsEcosystem200ResultsItemEmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type ListAlertsEcosystem200ResultsItemEmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type ListAlertsEcosystem200ResultsItemEmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type ListAlertsEcosystem200ResultsItemEmitter = {\n /** Kind of emitter that raised the alert */\n type: ListAlertsEcosystem200ResultsItemEmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: ListAlertsEcosystem200ResultsItemEmitterId\n /** Human readable name of the emitter */\n name?: ListAlertsEcosystem200ResultsItemEmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: ListAlertsEcosystem200ResultsItemEmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ListAlertsEcosystem200ResultsItemRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type ListAlertsEcosystem200ResultsItemRecipients = ListAlertsEcosystem200ResultsItemRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ListAlertsEcosystem200ResultsItemRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type ListAlertsEcosystem200ResultsItemRelatedEntities =\n | ListAlertsEcosystem200ResultsItemRelatedEntitiesAnyOfItem[]\n | null\n\nexport type ListAlertsEcosystem200ResultsItemPayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type ListAlertsEcosystem200ResultsItemPayload = ListAlertsEcosystem200ResultsItemPayloadAnyOf | null\n\nexport type ListAlertsEcosystem200ResultsItemMetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type ListAlertsEcosystem200ResultsItemMetadata = ListAlertsEcosystem200ResultsItemMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type ListAlertsEcosystem200ResultsItemTriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type ListAlertsEcosystem200ResultsItemViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type ListAlertsEcosystem200ResultsItemViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type ListAlertsEcosystem200ResultsItemResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type ListAlertsEcosystem200ResultsItemResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type ListAlertsEcosystem200ResultsItemResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type ListAlertsEcosystem200ResultsItemCreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type ListAlertsEcosystem200ResultsItem = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: ListAlertsEcosystem200ResultsItemProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: ListAlertsEcosystem200ResultsItemAlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: ListAlertsEcosystem200ResultsItemUserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: ListAlertsEcosystem200ResultsItemPatientId\n /** Severity of the alert. Null when not graded */\n severity?: ListAlertsEcosystem200ResultsItemSeverity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: ListAlertsEcosystem200ResultsItemStatus\n /** Short readable title */\n title?: ListAlertsEcosystem200ResultsItemTitle\n /** Longer readable description */\n summary?: ListAlertsEcosystem200ResultsItemSummary\n /** Who raised the alert */\n emitter: ListAlertsEcosystem200ResultsItemEmitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: ListAlertsEcosystem200ResultsItemRecipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: ListAlertsEcosystem200ResultsItemRelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: ListAlertsEcosystem200ResultsItemPayload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: ListAlertsEcosystem200ResultsItemMetadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: ListAlertsEcosystem200ResultsItemTriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: ListAlertsEcosystem200ResultsItemViewedAt\n /** User who first viewed the alert */\n viewed_by?: ListAlertsEcosystem200ResultsItemViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: ListAlertsEcosystem200ResultsItemResolvedAt\n /** User who resolved the alert */\n resolved_by?: ListAlertsEcosystem200ResultsItemResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: ListAlertsEcosystem200ResultsItemResolutionNote\n /** User who created the alert, when a user did */\n created_user?: ListAlertsEcosystem200ResultsItemCreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Paginated response\n */\nexport type ListAlertsEcosystem200 = {\n /** Array of items of the current page */\n results: ListAlertsEcosystem200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAlertsEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlertsEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlertsEcosystem403AllOfDebug\n}\n\nexport type ListAlertsEcosystem403AllOfThreeStatusCode =\n (typeof ListAlertsEcosystem403AllOfThreeStatusCode)[keyof typeof ListAlertsEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAlertsEcosystem403AllOfThreeError =\n (typeof ListAlertsEcosystem403AllOfThreeError)[keyof typeof ListAlertsEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAlertsEcosystem403AllOfThree = {\n statusCode: ListAlertsEcosystem403AllOfThreeStatusCode\n error: ListAlertsEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAlertsEcosystem403 = ListAlertsEcosystem403AllOf & ListAlertsEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAlertsEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlertsEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlertsEcosystem404AllOfDebug\n}\n\nexport type ListAlertsEcosystem404AllOfThreeStatusCode =\n (typeof ListAlertsEcosystem404AllOfThreeStatusCode)[keyof typeof ListAlertsEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAlertsEcosystem404AllOfThreeError =\n (typeof ListAlertsEcosystem404AllOfThreeError)[keyof typeof ListAlertsEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAlertsEcosystem404AllOfThree = {\n statusCode: ListAlertsEcosystem404AllOfThreeStatusCode\n error: ListAlertsEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAlertsEcosystem404 = ListAlertsEcosystem404AllOf & ListAlertsEcosystem404AllOfThree\n\nexport type CreateAlertEcosystemBodyAlertTypeId = number | null\n\nexport type CreateAlertEcosystemBodyUserId = number | null\n\nexport type CreateAlertEcosystemBodyPatientId = number | null\n\nexport type CreateAlertEcosystemBodySeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\nexport type CreateAlertEcosystemBodyTitle = string | null\n\nexport type CreateAlertEcosystemBodySummary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type CreateAlertEcosystemBodyEmitterType =\n (typeof CreateAlertEcosystemBodyEmitterType)[keyof typeof CreateAlertEcosystemBodyEmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystemBodyEmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type CreateAlertEcosystemBodyEmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type CreateAlertEcosystemBodyEmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type CreateAlertEcosystemBodyEmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type CreateAlertEcosystemBodyEmitter = {\n /** Kind of emitter that raised the alert */\n type: CreateAlertEcosystemBodyEmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: CreateAlertEcosystemBodyEmitterId\n /** Human readable name of the emitter */\n name?: CreateAlertEcosystemBodyEmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: CreateAlertEcosystemBodyEmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertEcosystemBodyRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type CreateAlertEcosystemBodyRecipients = CreateAlertEcosystemBodyRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertEcosystemBodyRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type CreateAlertEcosystemBodyRelatedEntities = CreateAlertEcosystemBodyRelatedEntitiesAnyOfItem[] | null\n\nexport type CreateAlertEcosystemBodyPayloadAnyOf = { [key: string]: unknown }\n\nexport type CreateAlertEcosystemBodyPayload = CreateAlertEcosystemBodyPayloadAnyOf | null\n\nexport type CreateAlertEcosystemBodyMetadataAnyOf = { [key: string]: unknown }\n\nexport type CreateAlertEcosystemBodyMetadata = CreateAlertEcosystemBodyMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC\n */\nexport type CreateAlertEcosystemBodyTriggeredAt = string | null\n\n/**\n * Payload to create an alert\n */\nexport type CreateAlertEcosystemBody = {\n alert_type_id?: CreateAlertEcosystemBodyAlertTypeId\n user_id?: CreateAlertEcosystemBodyUserId\n patient_id?: CreateAlertEcosystemBodyPatientId\n severity?: CreateAlertEcosystemBodySeverity\n title?: CreateAlertEcosystemBodyTitle\n summary?: CreateAlertEcosystemBodySummary\n /** Who raised the alert */\n emitter: CreateAlertEcosystemBodyEmitter\n recipients?: CreateAlertEcosystemBodyRecipients\n related_entities?: CreateAlertEcosystemBodyRelatedEntities\n payload?: CreateAlertEcosystemBodyPayload\n metadata?: CreateAlertEcosystemBodyMetadata\n /** @maxLength 255 */\n dedup_key?: string\n /** When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC */\n triggered_at?: CreateAlertEcosystemBodyTriggeredAt\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type CreateAlertEcosystem200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type CreateAlertEcosystem200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type CreateAlertEcosystem200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type CreateAlertEcosystem200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type CreateAlertEcosystem200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type CreateAlertEcosystem200Status =\n (typeof CreateAlertEcosystem200Status)[keyof typeof CreateAlertEcosystem200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type CreateAlertEcosystem200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type CreateAlertEcosystem200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type CreateAlertEcosystem200EmitterType =\n (typeof CreateAlertEcosystem200EmitterType)[keyof typeof CreateAlertEcosystem200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type CreateAlertEcosystem200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type CreateAlertEcosystem200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type CreateAlertEcosystem200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type CreateAlertEcosystem200Emitter = {\n /** Kind of emitter that raised the alert */\n type: CreateAlertEcosystem200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: CreateAlertEcosystem200EmitterId\n /** Human readable name of the emitter */\n name?: CreateAlertEcosystem200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: CreateAlertEcosystem200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertEcosystem200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type CreateAlertEcosystem200Recipients = CreateAlertEcosystem200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertEcosystem200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type CreateAlertEcosystem200RelatedEntities = CreateAlertEcosystem200RelatedEntitiesAnyOfItem[] | null\n\nexport type CreateAlertEcosystem200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type CreateAlertEcosystem200Payload = CreateAlertEcosystem200PayloadAnyOf | null\n\nexport type CreateAlertEcosystem200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type CreateAlertEcosystem200Metadata = CreateAlertEcosystem200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlertEcosystem200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlertEcosystem200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type CreateAlertEcosystem200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlertEcosystem200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type CreateAlertEcosystem200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type CreateAlertEcosystem200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type CreateAlertEcosystem200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type CreateAlertEcosystem200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: CreateAlertEcosystem200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: CreateAlertEcosystem200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: CreateAlertEcosystem200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: CreateAlertEcosystem200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: CreateAlertEcosystem200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: CreateAlertEcosystem200Status\n /** Short readable title */\n title?: CreateAlertEcosystem200Title\n /** Longer readable description */\n summary?: CreateAlertEcosystem200Summary\n /** Who raised the alert */\n emitter: CreateAlertEcosystem200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: CreateAlertEcosystem200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: CreateAlertEcosystem200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: CreateAlertEcosystem200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: CreateAlertEcosystem200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: CreateAlertEcosystem200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: CreateAlertEcosystem200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: CreateAlertEcosystem200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: CreateAlertEcosystem200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: CreateAlertEcosystem200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: CreateAlertEcosystem200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: CreateAlertEcosystem200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertEcosystem400AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertEcosystem400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertEcosystem400AllOfDebug\n}\n\nexport type CreateAlertEcosystem400AllOfThreeStatusCode =\n (typeof CreateAlertEcosystem400AllOfThreeStatusCode)[keyof typeof CreateAlertEcosystem400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type CreateAlertEcosystem400AllOfThreeError =\n (typeof CreateAlertEcosystem400AllOfThreeError)[keyof typeof CreateAlertEcosystem400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type CreateAlertEcosystem400AllOfThree = {\n statusCode: CreateAlertEcosystem400AllOfThreeStatusCode\n error: CreateAlertEcosystem400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type CreateAlertEcosystem400 = CreateAlertEcosystem400AllOf & CreateAlertEcosystem400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertEcosystem403AllOfDebug\n}\n\nexport type CreateAlertEcosystem403AllOfThreeStatusCode =\n (typeof CreateAlertEcosystem403AllOfThreeStatusCode)[keyof typeof CreateAlertEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAlertEcosystem403AllOfThreeError =\n (typeof CreateAlertEcosystem403AllOfThreeError)[keyof typeof CreateAlertEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAlertEcosystem403AllOfThree = {\n statusCode: CreateAlertEcosystem403AllOfThreeStatusCode\n error: CreateAlertEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAlertEcosystem403 = CreateAlertEcosystem403AllOf & CreateAlertEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertEcosystem404AllOfDebug\n}\n\nexport type CreateAlertEcosystem404AllOfThreeStatusCode =\n (typeof CreateAlertEcosystem404AllOfThreeStatusCode)[keyof typeof CreateAlertEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAlertEcosystem404AllOfThreeError =\n (typeof CreateAlertEcosystem404AllOfThreeError)[keyof typeof CreateAlertEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAlertEcosystem404AllOfThree = {\n statusCode: CreateAlertEcosystem404AllOfThreeStatusCode\n error: CreateAlertEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAlertEcosystem404 = CreateAlertEcosystem404AllOf & CreateAlertEcosystem404AllOfThree\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type GetAlertEcosystem200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type GetAlertEcosystem200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type GetAlertEcosystem200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type GetAlertEcosystem200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type GetAlertEcosystem200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type GetAlertEcosystem200Status = (typeof GetAlertEcosystem200Status)[keyof typeof GetAlertEcosystem200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type GetAlertEcosystem200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type GetAlertEcosystem200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type GetAlertEcosystem200EmitterType =\n (typeof GetAlertEcosystem200EmitterType)[keyof typeof GetAlertEcosystem200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type GetAlertEcosystem200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type GetAlertEcosystem200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type GetAlertEcosystem200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type GetAlertEcosystem200Emitter = {\n /** Kind of emitter that raised the alert */\n type: GetAlertEcosystem200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: GetAlertEcosystem200EmitterId\n /** Human readable name of the emitter */\n name?: GetAlertEcosystem200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: GetAlertEcosystem200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type GetAlertEcosystem200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type GetAlertEcosystem200Recipients = GetAlertEcosystem200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type GetAlertEcosystem200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type GetAlertEcosystem200RelatedEntities = GetAlertEcosystem200RelatedEntitiesAnyOfItem[] | null\n\nexport type GetAlertEcosystem200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type GetAlertEcosystem200Payload = GetAlertEcosystem200PayloadAnyOf | null\n\nexport type GetAlertEcosystem200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type GetAlertEcosystem200Metadata = GetAlertEcosystem200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type GetAlertEcosystem200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type GetAlertEcosystem200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type GetAlertEcosystem200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type GetAlertEcosystem200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type GetAlertEcosystem200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type GetAlertEcosystem200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type GetAlertEcosystem200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type GetAlertEcosystem200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: GetAlertEcosystem200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: GetAlertEcosystem200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: GetAlertEcosystem200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: GetAlertEcosystem200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: GetAlertEcosystem200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: GetAlertEcosystem200Status\n /** Short readable title */\n title?: GetAlertEcosystem200Title\n /** Longer readable description */\n summary?: GetAlertEcosystem200Summary\n /** Who raised the alert */\n emitter: GetAlertEcosystem200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: GetAlertEcosystem200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: GetAlertEcosystem200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: GetAlertEcosystem200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: GetAlertEcosystem200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: GetAlertEcosystem200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: GetAlertEcosystem200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: GetAlertEcosystem200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: GetAlertEcosystem200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: GetAlertEcosystem200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: GetAlertEcosystem200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: GetAlertEcosystem200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetAlertEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlertEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlertEcosystem403AllOfDebug\n}\n\nexport type GetAlertEcosystem403AllOfThreeStatusCode =\n (typeof GetAlertEcosystem403AllOfThreeStatusCode)[keyof typeof GetAlertEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAlertEcosystem403AllOfThreeError =\n (typeof GetAlertEcosystem403AllOfThreeError)[keyof typeof GetAlertEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAlertEcosystem403AllOfThree = {\n statusCode: GetAlertEcosystem403AllOfThreeStatusCode\n error: GetAlertEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAlertEcosystem403 = GetAlertEcosystem403AllOf & GetAlertEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAlertEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlertEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlertEcosystem404AllOfDebug\n}\n\nexport type GetAlertEcosystem404AllOfThreeStatusCode =\n (typeof GetAlertEcosystem404AllOfThreeStatusCode)[keyof typeof GetAlertEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAlertEcosystem404AllOfThreeError =\n (typeof GetAlertEcosystem404AllOfThreeError)[keyof typeof GetAlertEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAlertEcosystem404AllOfThree = {\n statusCode: GetAlertEcosystem404AllOfThreeStatusCode\n error: GetAlertEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAlertEcosystem404 = GetAlertEcosystem404AllOf & GetAlertEcosystem404AllOfThree\n\nexport type UpdateAlertEcosystemBodyAlertTypeId = number | null\n\nexport type UpdateAlertEcosystemBodyUserId = number | null\n\nexport type UpdateAlertEcosystemBodyPatientId = number | null\n\nexport type UpdateAlertEcosystemBodySeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\nexport type UpdateAlertEcosystemBodyTitle = string | null\n\nexport type UpdateAlertEcosystemBodySummary = string | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertEcosystemBodyRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type UpdateAlertEcosystemBodyRecipients = UpdateAlertEcosystemBodyRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertEcosystemBodyRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type UpdateAlertEcosystemBodyRelatedEntities = UpdateAlertEcosystemBodyRelatedEntitiesAnyOfItem[] | null\n\nexport type UpdateAlertEcosystemBodyPayloadAnyOf = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystemBodyPayload = UpdateAlertEcosystemBodyPayloadAnyOf | null\n\nexport type UpdateAlertEcosystemBodyMetadataAnyOf = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystemBodyMetadata = UpdateAlertEcosystemBodyMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC\n */\nexport type UpdateAlertEcosystemBodyTriggeredAt = string | null\n\n/**\n * Payload to update an alert. Every field is optional. `emitter` cannot be changed after creation\n */\nexport type UpdateAlertEcosystemBody = {\n alert_type_id?: UpdateAlertEcosystemBodyAlertTypeId\n user_id?: UpdateAlertEcosystemBodyUserId\n patient_id?: UpdateAlertEcosystemBodyPatientId\n severity?: UpdateAlertEcosystemBodySeverity\n title?: UpdateAlertEcosystemBodyTitle\n summary?: UpdateAlertEcosystemBodySummary\n recipients?: UpdateAlertEcosystemBodyRecipients\n related_entities?: UpdateAlertEcosystemBodyRelatedEntities\n payload?: UpdateAlertEcosystemBodyPayload\n metadata?: UpdateAlertEcosystemBodyMetadata\n /** @maxLength 255 */\n dedup_key?: string\n /** When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC */\n triggered_at?: UpdateAlertEcosystemBodyTriggeredAt\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type UpdateAlertEcosystem200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type UpdateAlertEcosystem200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type UpdateAlertEcosystem200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type UpdateAlertEcosystem200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type UpdateAlertEcosystem200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type UpdateAlertEcosystem200Status =\n (typeof UpdateAlertEcosystem200Status)[keyof typeof UpdateAlertEcosystem200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type UpdateAlertEcosystem200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type UpdateAlertEcosystem200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type UpdateAlertEcosystem200EmitterType =\n (typeof UpdateAlertEcosystem200EmitterType)[keyof typeof UpdateAlertEcosystem200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type UpdateAlertEcosystem200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type UpdateAlertEcosystem200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type UpdateAlertEcosystem200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type UpdateAlertEcosystem200Emitter = {\n /** Kind of emitter that raised the alert */\n type: UpdateAlertEcosystem200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: UpdateAlertEcosystem200EmitterId\n /** Human readable name of the emitter */\n name?: UpdateAlertEcosystem200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: UpdateAlertEcosystem200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertEcosystem200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type UpdateAlertEcosystem200Recipients = UpdateAlertEcosystem200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertEcosystem200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type UpdateAlertEcosystem200RelatedEntities = UpdateAlertEcosystem200RelatedEntitiesAnyOfItem[] | null\n\nexport type UpdateAlertEcosystem200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type UpdateAlertEcosystem200Payload = UpdateAlertEcosystem200PayloadAnyOf | null\n\nexport type UpdateAlertEcosystem200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type UpdateAlertEcosystem200Metadata = UpdateAlertEcosystem200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlertEcosystem200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlertEcosystem200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type UpdateAlertEcosystem200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlertEcosystem200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type UpdateAlertEcosystem200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type UpdateAlertEcosystem200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type UpdateAlertEcosystem200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type UpdateAlertEcosystem200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: UpdateAlertEcosystem200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: UpdateAlertEcosystem200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: UpdateAlertEcosystem200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: UpdateAlertEcosystem200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: UpdateAlertEcosystem200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: UpdateAlertEcosystem200Status\n /** Short readable title */\n title?: UpdateAlertEcosystem200Title\n /** Longer readable description */\n summary?: UpdateAlertEcosystem200Summary\n /** Who raised the alert */\n emitter: UpdateAlertEcosystem200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: UpdateAlertEcosystem200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: UpdateAlertEcosystem200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: UpdateAlertEcosystem200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: UpdateAlertEcosystem200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: UpdateAlertEcosystem200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: UpdateAlertEcosystem200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: UpdateAlertEcosystem200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: UpdateAlertEcosystem200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: UpdateAlertEcosystem200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: UpdateAlertEcosystem200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: UpdateAlertEcosystem200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertEcosystem400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystem400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertEcosystem400AllOfDebug\n}\n\nexport type UpdateAlertEcosystem400AllOfThreeStatusCode =\n (typeof UpdateAlertEcosystem400AllOfThreeStatusCode)[keyof typeof UpdateAlertEcosystem400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAlertEcosystem400AllOfThreeError =\n (typeof UpdateAlertEcosystem400AllOfThreeError)[keyof typeof UpdateAlertEcosystem400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAlertEcosystem400AllOfThree = {\n statusCode: UpdateAlertEcosystem400AllOfThreeStatusCode\n error: UpdateAlertEcosystem400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAlertEcosystem400 = UpdateAlertEcosystem400AllOf & UpdateAlertEcosystem400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertEcosystem403AllOfDebug\n}\n\nexport type UpdateAlertEcosystem403AllOfThreeStatusCode =\n (typeof UpdateAlertEcosystem403AllOfThreeStatusCode)[keyof typeof UpdateAlertEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAlertEcosystem403AllOfThreeError =\n (typeof UpdateAlertEcosystem403AllOfThreeError)[keyof typeof UpdateAlertEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAlertEcosystem403AllOfThree = {\n statusCode: UpdateAlertEcosystem403AllOfThreeStatusCode\n error: UpdateAlertEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAlertEcosystem403 = UpdateAlertEcosystem403AllOf & UpdateAlertEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertEcosystem404AllOfDebug\n}\n\nexport type UpdateAlertEcosystem404AllOfThreeStatusCode =\n (typeof UpdateAlertEcosystem404AllOfThreeStatusCode)[keyof typeof UpdateAlertEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAlertEcosystem404AllOfThreeError =\n (typeof UpdateAlertEcosystem404AllOfThreeError)[keyof typeof UpdateAlertEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAlertEcosystem404AllOfThree = {\n statusCode: UpdateAlertEcosystem404AllOfThreeStatusCode\n error: UpdateAlertEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAlertEcosystem404 = UpdateAlertEcosystem404AllOf & UpdateAlertEcosystem404AllOfThree\n\n/**\n * Optional note explaining the resolution\n */\nexport type ResolveAlertEcosystemBodyResolutionNote = string | null\n\n/**\n * Payload to resolve an alert\n */\nexport type ResolveAlertEcosystemBody = {\n /** Optional note explaining the resolution */\n resolution_note?: ResolveAlertEcosystemBodyResolutionNote\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type ResolveAlertEcosystem200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type ResolveAlertEcosystem200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type ResolveAlertEcosystem200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type ResolveAlertEcosystem200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type ResolveAlertEcosystem200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type ResolveAlertEcosystem200Status =\n (typeof ResolveAlertEcosystem200Status)[keyof typeof ResolveAlertEcosystem200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type ResolveAlertEcosystem200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type ResolveAlertEcosystem200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type ResolveAlertEcosystem200EmitterType =\n (typeof ResolveAlertEcosystem200EmitterType)[keyof typeof ResolveAlertEcosystem200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type ResolveAlertEcosystem200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type ResolveAlertEcosystem200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type ResolveAlertEcosystem200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type ResolveAlertEcosystem200Emitter = {\n /** Kind of emitter that raised the alert */\n type: ResolveAlertEcosystem200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: ResolveAlertEcosystem200EmitterId\n /** Human readable name of the emitter */\n name?: ResolveAlertEcosystem200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: ResolveAlertEcosystem200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ResolveAlertEcosystem200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type ResolveAlertEcosystem200Recipients = ResolveAlertEcosystem200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ResolveAlertEcosystem200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type ResolveAlertEcosystem200RelatedEntities = ResolveAlertEcosystem200RelatedEntitiesAnyOfItem[] | null\n\nexport type ResolveAlertEcosystem200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type ResolveAlertEcosystem200Payload = ResolveAlertEcosystem200PayloadAnyOf | null\n\nexport type ResolveAlertEcosystem200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type ResolveAlertEcosystem200Metadata = ResolveAlertEcosystem200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlertEcosystem200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlertEcosystem200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type ResolveAlertEcosystem200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlertEcosystem200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type ResolveAlertEcosystem200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type ResolveAlertEcosystem200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type ResolveAlertEcosystem200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type ResolveAlertEcosystem200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: ResolveAlertEcosystem200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: ResolveAlertEcosystem200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: ResolveAlertEcosystem200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: ResolveAlertEcosystem200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: ResolveAlertEcosystem200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: ResolveAlertEcosystem200Status\n /** Short readable title */\n title?: ResolveAlertEcosystem200Title\n /** Longer readable description */\n summary?: ResolveAlertEcosystem200Summary\n /** Who raised the alert */\n emitter: ResolveAlertEcosystem200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: ResolveAlertEcosystem200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: ResolveAlertEcosystem200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: ResolveAlertEcosystem200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: ResolveAlertEcosystem200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: ResolveAlertEcosystem200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: ResolveAlertEcosystem200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: ResolveAlertEcosystem200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: ResolveAlertEcosystem200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: ResolveAlertEcosystem200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: ResolveAlertEcosystem200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: ResolveAlertEcosystem200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlertEcosystem400AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlertEcosystem400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlertEcosystem400AllOfDebug\n}\n\nexport type ResolveAlertEcosystem400AllOfThreeStatusCode =\n (typeof ResolveAlertEcosystem400AllOfThreeStatusCode)[keyof typeof ResolveAlertEcosystem400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type ResolveAlertEcosystem400AllOfThreeError =\n (typeof ResolveAlertEcosystem400AllOfThreeError)[keyof typeof ResolveAlertEcosystem400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type ResolveAlertEcosystem400AllOfThree = {\n statusCode: ResolveAlertEcosystem400AllOfThreeStatusCode\n error: ResolveAlertEcosystem400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type ResolveAlertEcosystem400 = ResolveAlertEcosystem400AllOf & ResolveAlertEcosystem400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlertEcosystem403AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlertEcosystem403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlertEcosystem403AllOfDebug\n}\n\nexport type ResolveAlertEcosystem403AllOfThreeStatusCode =\n (typeof ResolveAlertEcosystem403AllOfThreeStatusCode)[keyof typeof ResolveAlertEcosystem403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ResolveAlertEcosystem403AllOfThreeError =\n (typeof ResolveAlertEcosystem403AllOfThreeError)[keyof typeof ResolveAlertEcosystem403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ResolveAlertEcosystem403AllOfThree = {\n statusCode: ResolveAlertEcosystem403AllOfThreeStatusCode\n error: ResolveAlertEcosystem403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ResolveAlertEcosystem403 = ResolveAlertEcosystem403AllOf & ResolveAlertEcosystem403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlertEcosystem404AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlertEcosystem404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlertEcosystem404AllOfDebug\n}\n\nexport type ResolveAlertEcosystem404AllOfThreeStatusCode =\n (typeof ResolveAlertEcosystem404AllOfThreeStatusCode)[keyof typeof ResolveAlertEcosystem404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ResolveAlertEcosystem404AllOfThreeError =\n (typeof ResolveAlertEcosystem404AllOfThreeError)[keyof typeof ResolveAlertEcosystem404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlertEcosystem404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ResolveAlertEcosystem404AllOfThree = {\n statusCode: ResolveAlertEcosystem404AllOfThreeStatusCode\n error: ResolveAlertEcosystem404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ResolveAlertEcosystem404 = ResolveAlertEcosystem404AllOf & ResolveAlertEcosystem404AllOfThree\n\nexport type ListAlertTypesParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\n/**\n * Longer explanation of what this type covers\n */\nexport type ListAlertTypes200ResultsItemDescription = string | null\n\n/**\n * User who created the type, when a user did\n */\nexport type ListAlertTypes200ResultsItemCreatedUser = number | null\n\n/**\n * A kind of alert, as a named catalog entry of the ecosystem\n */\nexport type ListAlertTypes200ResultsItem = {\n /** Unique identifier of the alert type */\n id: number\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n /** Longer explanation of what this type covers */\n description?: ListAlertTypes200ResultsItemDescription\n /** User who created the type, when a user did */\n created_user?: ListAlertTypes200ResultsItemCreatedUser\n /** When the row was created */\n created_at?: string\n /** When the row was last modified */\n mod_time?: string\n}\n\n/**\n * Paginated response\n */\nexport type ListAlertTypes200 = {\n /** Array of items of the current page */\n results: ListAlertTypes200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAlertTypes403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlertTypes403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlertTypes403AllOfDebug\n}\n\nexport type ListAlertTypes403AllOfThreeStatusCode =\n (typeof ListAlertTypes403AllOfThreeStatusCode)[keyof typeof ListAlertTypes403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertTypes403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAlertTypes403AllOfThreeError =\n (typeof ListAlertTypes403AllOfThreeError)[keyof typeof ListAlertTypes403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertTypes403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAlertTypes403AllOfThree = {\n statusCode: ListAlertTypes403AllOfThreeStatusCode\n error: ListAlertTypes403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAlertTypes403 = ListAlertTypes403AllOf & ListAlertTypes403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAlertTypes404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlertTypes404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlertTypes404AllOfDebug\n}\n\nexport type ListAlertTypes404AllOfThreeStatusCode =\n (typeof ListAlertTypes404AllOfThreeStatusCode)[keyof typeof ListAlertTypes404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertTypes404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAlertTypes404AllOfThreeError =\n (typeof ListAlertTypes404AllOfThreeError)[keyof typeof ListAlertTypes404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertTypes404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAlertTypes404AllOfThree = {\n statusCode: ListAlertTypes404AllOfThreeStatusCode\n error: ListAlertTypes404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAlertTypes404 = ListAlertTypes404AllOf & ListAlertTypes404AllOfThree\n\nexport type CreateAlertTypeBodyDescription = string | null\n\n/**\n * Payload to create an alert type\n */\nexport type CreateAlertTypeBody = {\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n description?: CreateAlertTypeBodyDescription\n}\n\n/**\n * Longer explanation of what this type covers\n */\nexport type CreateAlertType200Description = string | null\n\n/**\n * User who created the type, when a user did\n */\nexport type CreateAlertType200CreatedUser = number | null\n\n/**\n * A kind of alert, as a named catalog entry of the ecosystem\n */\nexport type CreateAlertType200 = {\n /** Unique identifier of the alert type */\n id: number\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n /** Longer explanation of what this type covers */\n description?: CreateAlertType200Description\n /** User who created the type, when a user did */\n created_user?: CreateAlertType200CreatedUser\n /** When the row was created */\n created_at?: string\n /** When the row was last modified */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertType400AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertType400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertType400AllOfDebug\n}\n\nexport type CreateAlertType400AllOfThreeStatusCode =\n (typeof CreateAlertType400AllOfThreeStatusCode)[keyof typeof CreateAlertType400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type CreateAlertType400AllOfThreeError =\n (typeof CreateAlertType400AllOfThreeError)[keyof typeof CreateAlertType400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type CreateAlertType400AllOfThree = {\n statusCode: CreateAlertType400AllOfThreeStatusCode\n error: CreateAlertType400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type CreateAlertType400 = CreateAlertType400AllOf & CreateAlertType400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertType403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertType403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertType403AllOfDebug\n}\n\nexport type CreateAlertType403AllOfThreeStatusCode =\n (typeof CreateAlertType403AllOfThreeStatusCode)[keyof typeof CreateAlertType403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAlertType403AllOfThreeError =\n (typeof CreateAlertType403AllOfThreeError)[keyof typeof CreateAlertType403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAlertType403AllOfThree = {\n statusCode: CreateAlertType403AllOfThreeStatusCode\n error: CreateAlertType403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAlertType403 = CreateAlertType403AllOf & CreateAlertType403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlertType404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlertType404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlertType404AllOfDebug\n}\n\nexport type CreateAlertType404AllOfThreeStatusCode =\n (typeof CreateAlertType404AllOfThreeStatusCode)[keyof typeof CreateAlertType404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAlertType404AllOfThreeError =\n (typeof CreateAlertType404AllOfThreeError)[keyof typeof CreateAlertType404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertType404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAlertType404AllOfThree = {\n statusCode: CreateAlertType404AllOfThreeStatusCode\n error: CreateAlertType404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAlertType404 = CreateAlertType404AllOf & CreateAlertType404AllOfThree\n\n/**\n * Longer explanation of what this type covers\n */\nexport type GetAlertType200Description = string | null\n\n/**\n * User who created the type, when a user did\n */\nexport type GetAlertType200CreatedUser = number | null\n\n/**\n * A kind of alert, as a named catalog entry of the ecosystem\n */\nexport type GetAlertType200 = {\n /** Unique identifier of the alert type */\n id: number\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n /** Longer explanation of what this type covers */\n description?: GetAlertType200Description\n /** User who created the type, when a user did */\n created_user?: GetAlertType200CreatedUser\n /** When the row was created */\n created_at?: string\n /** When the row was last modified */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetAlertType403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlertType403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlertType403AllOfDebug\n}\n\nexport type GetAlertType403AllOfThreeStatusCode =\n (typeof GetAlertType403AllOfThreeStatusCode)[keyof typeof GetAlertType403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertType403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAlertType403AllOfThreeError =\n (typeof GetAlertType403AllOfThreeError)[keyof typeof GetAlertType403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertType403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAlertType403AllOfThree = {\n statusCode: GetAlertType403AllOfThreeStatusCode\n error: GetAlertType403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAlertType403 = GetAlertType403AllOf & GetAlertType403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAlertType404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlertType404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlertType404AllOfDebug\n}\n\nexport type GetAlertType404AllOfThreeStatusCode =\n (typeof GetAlertType404AllOfThreeStatusCode)[keyof typeof GetAlertType404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertType404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAlertType404AllOfThreeError =\n (typeof GetAlertType404AllOfThreeError)[keyof typeof GetAlertType404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlertType404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAlertType404AllOfThree = {\n statusCode: GetAlertType404AllOfThreeStatusCode\n error: GetAlertType404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAlertType404 = GetAlertType404AllOf & GetAlertType404AllOfThree\n\nexport type UpdateAlertTypeBodyDescription = string | null\n\n/**\n * Payload to update an alert type. Every field is optional\n */\nexport type UpdateAlertTypeBody = {\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name?: string\n description?: UpdateAlertTypeBodyDescription\n}\n\n/**\n * Longer explanation of what this type covers\n */\nexport type UpdateAlertType200Description = string | null\n\n/**\n * User who created the type, when a user did\n */\nexport type UpdateAlertType200CreatedUser = number | null\n\n/**\n * A kind of alert, as a named catalog entry of the ecosystem\n */\nexport type UpdateAlertType200 = {\n /** Unique identifier of the alert type */\n id: number\n /**\n * Name of the alert type. Two types may share it\n * @maxLength 255\n */\n name: string\n /** Longer explanation of what this type covers */\n description?: UpdateAlertType200Description\n /** User who created the type, when a user did */\n created_user?: UpdateAlertType200CreatedUser\n /** When the row was created */\n created_at?: string\n /** When the row was last modified */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertType400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertType400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertType400AllOfDebug\n}\n\nexport type UpdateAlertType400AllOfThreeStatusCode =\n (typeof UpdateAlertType400AllOfThreeStatusCode)[keyof typeof UpdateAlertType400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAlertType400AllOfThreeError =\n (typeof UpdateAlertType400AllOfThreeError)[keyof typeof UpdateAlertType400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAlertType400AllOfThree = {\n statusCode: UpdateAlertType400AllOfThreeStatusCode\n error: UpdateAlertType400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAlertType400 = UpdateAlertType400AllOf & UpdateAlertType400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertType403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertType403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertType403AllOfDebug\n}\n\nexport type UpdateAlertType403AllOfThreeStatusCode =\n (typeof UpdateAlertType403AllOfThreeStatusCode)[keyof typeof UpdateAlertType403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAlertType403AllOfThreeError =\n (typeof UpdateAlertType403AllOfThreeError)[keyof typeof UpdateAlertType403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAlertType403AllOfThree = {\n statusCode: UpdateAlertType403AllOfThreeStatusCode\n error: UpdateAlertType403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAlertType403 = UpdateAlertType403AllOf & UpdateAlertType403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlertType404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlertType404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlertType404AllOfDebug\n}\n\nexport type UpdateAlertType404AllOfThreeStatusCode =\n (typeof UpdateAlertType404AllOfThreeStatusCode)[keyof typeof UpdateAlertType404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAlertType404AllOfThreeError =\n (typeof UpdateAlertType404AllOfThreeError)[keyof typeof UpdateAlertType404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlertType404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAlertType404AllOfThree = {\n statusCode: UpdateAlertType404AllOfThreeStatusCode\n error: UpdateAlertType404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAlertType404 = UpdateAlertType404AllOf & UpdateAlertType404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteAlertType200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteAlertType403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAlertType403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAlertType403AllOfDebug\n}\n\nexport type DeleteAlertType403AllOfThreeStatusCode =\n (typeof DeleteAlertType403AllOfThreeStatusCode)[keyof typeof DeleteAlertType403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAlertType403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteAlertType403AllOfThreeError =\n (typeof DeleteAlertType403AllOfThreeError)[keyof typeof DeleteAlertType403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAlertType403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteAlertType403AllOfThree = {\n statusCode: DeleteAlertType403AllOfThreeStatusCode\n error: DeleteAlertType403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteAlertType403 = DeleteAlertType403AllOf & DeleteAlertType403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteAlertType404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAlertType404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAlertType404AllOfDebug\n}\n\nexport type DeleteAlertType404AllOfThreeStatusCode =\n (typeof DeleteAlertType404AllOfThreeStatusCode)[keyof typeof DeleteAlertType404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAlertType404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteAlertType404AllOfThreeError =\n (typeof DeleteAlertType404AllOfThreeError)[keyof typeof DeleteAlertType404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAlertType404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteAlertType404AllOfThree = {\n statusCode: DeleteAlertType404AllOfThreeStatusCode\n error: DeleteAlertType404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteAlertType404 = DeleteAlertType404AllOf & DeleteAlertType404AllOfThree\n\nexport type ListActionsParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type ListActions200ResultsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type ListActions200ResultsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type ListActions200ResultsItemType =\n (typeof ListActions200ResultsItemType)[keyof typeof ListActions200ResultsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions200ResultsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type ListActions200ResultsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type ListActions200ResultsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: ListActions200ResultsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type ListActions200ResultsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type ListActions200ResultsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: ListActions200ResultsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type ListActions200ResultsItemConfigAnyOf = ListActions200ResultsItemConfigAnyOfAllOf &\n ListActions200ResultsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type ListActions200ResultsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type ListActions200ResultsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: ListActions200ResultsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: ListActions200ResultsItemName\n /** Executable mechanism of an action */\n type: ListActions200ResultsItemType\n /** Union of action configs, selected by actions.type */\n config: ListActions200ResultsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: ListActions200ResultsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Paginated response\n */\nexport type ListActions200 = {\n /** Array of items of the current page */\n results: ListActions200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListActions403AllOfDebug = { [key: string]: unknown }\n\nexport type ListActions403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListActions403AllOfDebug\n}\n\nexport type ListActions403AllOfThreeStatusCode =\n (typeof ListActions403AllOfThreeStatusCode)[keyof typeof ListActions403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListActions403AllOfThreeError =\n (typeof ListActions403AllOfThreeError)[keyof typeof ListActions403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListActions403AllOfThree = {\n statusCode: ListActions403AllOfThreeStatusCode\n error: ListActions403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListActions403 = ListActions403AllOf & ListActions403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListActions404AllOfDebug = { [key: string]: unknown }\n\nexport type ListActions404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListActions404AllOfDebug\n}\n\nexport type ListActions404AllOfThreeStatusCode =\n (typeof ListActions404AllOfThreeStatusCode)[keyof typeof ListActions404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListActions404AllOfThreeError =\n (typeof ListActions404AllOfThreeError)[keyof typeof ListActions404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListActions404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListActions404AllOfThree = {\n statusCode: ListActions404AllOfThreeStatusCode\n error: ListActions404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListActions404 = ListActions404AllOf & ListActions404AllOfThree\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateActionBodyName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateActionBodyType = (typeof CreateActionBodyType)[keyof typeof CreateActionBodyType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateActionBodyType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateActionBodyConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateActionBodyConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateActionBodyConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateActionBodyConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateActionBodyConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateActionBodyConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateActionBodyConfigAnyOf = CreateActionBodyConfigAnyOfAllOf & CreateActionBodyConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateActionBodyRetentionDays = number | null\n\n/**\n * Payload used to create an action\n */\nexport type CreateActionBody = {\n /** Human-readable label of the action. Null when it has none */\n name?: CreateActionBodyName\n /** Executable mechanism of an action */\n type: CreateActionBodyType\n /** Union of action configs, selected by actions.type */\n config: CreateActionBodyConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateActionBodyRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type CreateAction200ProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateAction200Name = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateAction200Type = (typeof CreateAction200Type)[keyof typeof CreateAction200Type]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction200Type = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateAction200ConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateAction200ConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateAction200ConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateAction200ConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateAction200ConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateAction200ConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateAction200ConfigAnyOf = CreateAction200ConfigAnyOfAllOf & CreateAction200ConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAction200RetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type CreateAction200 = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: CreateAction200ProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: CreateAction200Name\n /** Executable mechanism of an action */\n type: CreateAction200Type\n /** Union of action configs, selected by actions.type */\n config: CreateAction200ConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAction200RetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateAction400AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAction400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAction400AllOfDebug\n}\n\nexport type CreateAction400AllOfThreeStatusCode =\n (typeof CreateAction400AllOfThreeStatusCode)[keyof typeof CreateAction400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type CreateAction400AllOfThreeError =\n (typeof CreateAction400AllOfThreeError)[keyof typeof CreateAction400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type CreateAction400AllOfThree = {\n statusCode: CreateAction400AllOfThreeStatusCode\n error: CreateAction400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type CreateAction400 = CreateAction400AllOf & CreateAction400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAction403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAction403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAction403AllOfDebug\n}\n\nexport type CreateAction403AllOfThreeStatusCode =\n (typeof CreateAction403AllOfThreeStatusCode)[keyof typeof CreateAction403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAction403AllOfThreeError =\n (typeof CreateAction403AllOfThreeError)[keyof typeof CreateAction403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAction403AllOfThree = {\n statusCode: CreateAction403AllOfThreeStatusCode\n error: CreateAction403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAction403 = CreateAction403AllOf & CreateAction403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAction404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAction404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAction404AllOfDebug\n}\n\nexport type CreateAction404AllOfThreeStatusCode =\n (typeof CreateAction404AllOfThreeStatusCode)[keyof typeof CreateAction404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAction404AllOfThreeError =\n (typeof CreateAction404AllOfThreeError)[keyof typeof CreateAction404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAction404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAction404AllOfThree = {\n statusCode: CreateAction404AllOfThreeStatusCode\n error: CreateAction404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAction404 = CreateAction404AllOf & CreateAction404AllOfThree\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type GetAction200ProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type GetAction200Name = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type GetAction200Type = (typeof GetAction200Type)[keyof typeof GetAction200Type]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction200Type = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type GetAction200ConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type GetAction200ConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: GetAction200ConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type GetAction200ConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type GetAction200ConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: GetAction200ConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type GetAction200ConfigAnyOf = GetAction200ConfigAnyOfAllOf & GetAction200ConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type GetAction200RetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type GetAction200 = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: GetAction200ProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: GetAction200Name\n /** Executable mechanism of an action */\n type: GetAction200Type\n /** Union of action configs, selected by actions.type */\n config: GetAction200ConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: GetAction200RetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type GetAction403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAction403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAction403AllOfDebug\n}\n\nexport type GetAction403AllOfThreeStatusCode =\n (typeof GetAction403AllOfThreeStatusCode)[keyof typeof GetAction403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAction403AllOfThreeError = (typeof GetAction403AllOfThreeError)[keyof typeof GetAction403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAction403AllOfThree = {\n statusCode: GetAction403AllOfThreeStatusCode\n error: GetAction403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAction403 = GetAction403AllOf & GetAction403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAction404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAction404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAction404AllOfDebug\n}\n\nexport type GetAction404AllOfThreeStatusCode =\n (typeof GetAction404AllOfThreeStatusCode)[keyof typeof GetAction404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAction404AllOfThreeError = (typeof GetAction404AllOfThreeError)[keyof typeof GetAction404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAction404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAction404AllOfThree = {\n statusCode: GetAction404AllOfThreeStatusCode\n error: GetAction404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAction404 = GetAction404AllOf & GetAction404AllOfThree\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateActionBodyName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateActionBodyType = (typeof UpdateActionBodyType)[keyof typeof UpdateActionBodyType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateActionBodyType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateActionBodyConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateActionBodyConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateActionBodyConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateActionBodyConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateActionBodyConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateActionBodyConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateActionBodyConfigAnyOf = UpdateActionBodyConfigAnyOfAllOf & UpdateActionBodyConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateActionBodyRetentionDays = number | null\n\n/**\n * Payload used to update an action\n */\nexport type UpdateActionBody = {\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateActionBodyName\n /** Executable mechanism of an action */\n type?: UpdateActionBodyType\n /** Union of action configs, selected by actions.type */\n config?: UpdateActionBodyConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateActionBodyRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateAction200ProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateAction200Name = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateAction200Type = (typeof UpdateAction200Type)[keyof typeof UpdateAction200Type]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction200Type = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateAction200ConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateAction200ConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateAction200ConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateAction200ConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateAction200ConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateAction200ConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateAction200ConfigAnyOf = UpdateAction200ConfigAnyOfAllOf & UpdateAction200ConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAction200RetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type UpdateAction200 = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateAction200ProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateAction200Name\n /** Executable mechanism of an action */\n type: UpdateAction200Type\n /** Union of action configs, selected by actions.type */\n config: UpdateAction200ConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAction200RetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateAction400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAction400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAction400AllOfDebug\n}\n\nexport type UpdateAction400AllOfThreeStatusCode =\n (typeof UpdateAction400AllOfThreeStatusCode)[keyof typeof UpdateAction400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAction400AllOfThreeError =\n (typeof UpdateAction400AllOfThreeError)[keyof typeof UpdateAction400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAction400AllOfThree = {\n statusCode: UpdateAction400AllOfThreeStatusCode\n error: UpdateAction400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAction400 = UpdateAction400AllOf & UpdateAction400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAction403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAction403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAction403AllOfDebug\n}\n\nexport type UpdateAction403AllOfThreeStatusCode =\n (typeof UpdateAction403AllOfThreeStatusCode)[keyof typeof UpdateAction403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAction403AllOfThreeError =\n (typeof UpdateAction403AllOfThreeError)[keyof typeof UpdateAction403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAction403AllOfThree = {\n statusCode: UpdateAction403AllOfThreeStatusCode\n error: UpdateAction403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAction403 = UpdateAction403AllOf & UpdateAction403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAction404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAction404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAction404AllOfDebug\n}\n\nexport type UpdateAction404AllOfThreeStatusCode =\n (typeof UpdateAction404AllOfThreeStatusCode)[keyof typeof UpdateAction404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAction404AllOfThreeError =\n (typeof UpdateAction404AllOfThreeError)[keyof typeof UpdateAction404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAction404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAction404AllOfThree = {\n statusCode: UpdateAction404AllOfThreeStatusCode\n error: UpdateAction404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAction404 = UpdateAction404AllOf & UpdateAction404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteAction200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteAction403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAction403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAction403AllOfDebug\n}\n\nexport type DeleteAction403AllOfThreeStatusCode =\n (typeof DeleteAction403AllOfThreeStatusCode)[keyof typeof DeleteAction403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAction403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteAction403AllOfThreeError =\n (typeof DeleteAction403AllOfThreeError)[keyof typeof DeleteAction403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAction403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteAction403AllOfThree = {\n statusCode: DeleteAction403AllOfThreeStatusCode\n error: DeleteAction403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteAction403 = DeleteAction403AllOf & DeleteAction403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteAction404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAction404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAction404AllOfDebug\n}\n\nexport type DeleteAction404AllOfThreeStatusCode =\n (typeof DeleteAction404AllOfThreeStatusCode)[keyof typeof DeleteAction404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAction404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteAction404AllOfThreeError =\n (typeof DeleteAction404AllOfThreeError)[keyof typeof DeleteAction404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAction404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteAction404AllOfThree = {\n statusCode: DeleteAction404AllOfThreeStatusCode\n error: DeleteAction404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteAction404 = DeleteAction404AllOf & DeleteAction404AllOfThree\n\nexport type ListAvailableActionsParams = {\n /**\n * Patient identifier used to evaluate each action questionnaire's dependency conditions (DependenceCRF.conditionsMatch). When omitted, all action questionnaire ids are returned without dependency filtering.\n */\n patientId?: number\n}\n\n/**\n * List of applicable action questionnaire ids\n */\nexport type ListAvailableActions200 = {\n /** Form names (ids) of the action questionnaires applicable to the patient */\n results: string[]\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAvailableActions403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAvailableActions403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAvailableActions403AllOfDebug\n}\n\nexport type ListAvailableActions403AllOfThreeStatusCode =\n (typeof ListAvailableActions403AllOfThreeStatusCode)[keyof typeof ListAvailableActions403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableActions403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAvailableActions403AllOfThreeError =\n (typeof ListAvailableActions403AllOfThreeError)[keyof typeof ListAvailableActions403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableActions403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAvailableActions403AllOfThree = {\n statusCode: ListAvailableActions403AllOfThreeStatusCode\n error: ListAvailableActions403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAvailableActions403 = ListAvailableActions403AllOf & ListAvailableActions403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAvailableActions404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAvailableActions404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAvailableActions404AllOfDebug\n}\n\nexport type ListAvailableActions404AllOfThreeStatusCode =\n (typeof ListAvailableActions404AllOfThreeStatusCode)[keyof typeof ListAvailableActions404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableActions404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAvailableActions404AllOfThreeError =\n (typeof ListAvailableActions404AllOfThreeError)[keyof typeof ListAvailableActions404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableActions404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAvailableActions404AllOfThree = {\n statusCode: ListAvailableActions404AllOfThreeStatusCode\n error: ListAvailableActions404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAvailableActions404 = ListAvailableActions404AllOf & ListAvailableActions404AllOfThree\n\nexport type ListAlertsParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\n status?: ListAlertsStatus\n /**\n * Severity of the alert, used to prioritise it\n */\n severity?: ListAlertsSeverity\n /**\n * Filter by the user the alert is about\n */\n user_id?: number\n /**\n * Filter by the patient the alert is about\n */\n patient_id?: number\n /**\n * Filter by the type of the alert\n */\n alert_type_id?: number\n}\n\nexport type ListAlertsStatus = (typeof ListAlertsStatus)[keyof typeof ListAlertsStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsStatus = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\nexport type ListAlertsSeverity = (typeof ListAlertsSeverity)[keyof typeof ListAlertsSeverity]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlertsSeverity = {\n info: 'info',\n low: 'low',\n medium: 'medium',\n high: 'high',\n critical: 'critical',\n} as const\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type ListAlerts200ResultsItemProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type ListAlerts200ResultsItemAlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type ListAlerts200ResultsItemUserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type ListAlerts200ResultsItemPatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type ListAlerts200ResultsItemSeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type ListAlerts200ResultsItemStatus =\n (typeof ListAlerts200ResultsItemStatus)[keyof typeof ListAlerts200ResultsItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts200ResultsItemStatus = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type ListAlerts200ResultsItemTitle = string | null\n\n/**\n * Longer readable description\n */\nexport type ListAlerts200ResultsItemSummary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type ListAlerts200ResultsItemEmitterType =\n (typeof ListAlerts200ResultsItemEmitterType)[keyof typeof ListAlerts200ResultsItemEmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts200ResultsItemEmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type ListAlerts200ResultsItemEmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type ListAlerts200ResultsItemEmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type ListAlerts200ResultsItemEmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type ListAlerts200ResultsItemEmitter = {\n /** Kind of emitter that raised the alert */\n type: ListAlerts200ResultsItemEmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: ListAlerts200ResultsItemEmitterId\n /** Human readable name of the emitter */\n name?: ListAlerts200ResultsItemEmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: ListAlerts200ResultsItemEmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ListAlerts200ResultsItemRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type ListAlerts200ResultsItemRecipients = ListAlerts200ResultsItemRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ListAlerts200ResultsItemRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type ListAlerts200ResultsItemRelatedEntities = ListAlerts200ResultsItemRelatedEntitiesAnyOfItem[] | null\n\nexport type ListAlerts200ResultsItemPayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type ListAlerts200ResultsItemPayload = ListAlerts200ResultsItemPayloadAnyOf | null\n\nexport type ListAlerts200ResultsItemMetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type ListAlerts200ResultsItemMetadata = ListAlerts200ResultsItemMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type ListAlerts200ResultsItemTriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type ListAlerts200ResultsItemViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type ListAlerts200ResultsItemViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type ListAlerts200ResultsItemResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type ListAlerts200ResultsItemResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type ListAlerts200ResultsItemResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type ListAlerts200ResultsItemCreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type ListAlerts200ResultsItem = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: ListAlerts200ResultsItemProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: ListAlerts200ResultsItemAlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: ListAlerts200ResultsItemUserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: ListAlerts200ResultsItemPatientId\n /** Severity of the alert. Null when not graded */\n severity?: ListAlerts200ResultsItemSeverity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: ListAlerts200ResultsItemStatus\n /** Short readable title */\n title?: ListAlerts200ResultsItemTitle\n /** Longer readable description */\n summary?: ListAlerts200ResultsItemSummary\n /** Who raised the alert */\n emitter: ListAlerts200ResultsItemEmitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: ListAlerts200ResultsItemRecipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: ListAlerts200ResultsItemRelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: ListAlerts200ResultsItemPayload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: ListAlerts200ResultsItemMetadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: ListAlerts200ResultsItemTriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: ListAlerts200ResultsItemViewedAt\n /** User who first viewed the alert */\n viewed_by?: ListAlerts200ResultsItemViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: ListAlerts200ResultsItemResolvedAt\n /** User who resolved the alert */\n resolved_by?: ListAlerts200ResultsItemResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: ListAlerts200ResultsItemResolutionNote\n /** User who created the alert, when a user did */\n created_user?: ListAlerts200ResultsItemCreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Paginated response\n */\nexport type ListAlerts200 = {\n /** Array of items of the current page */\n results: ListAlerts200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAlerts403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlerts403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlerts403AllOfDebug\n}\n\nexport type ListAlerts403AllOfThreeStatusCode =\n (typeof ListAlerts403AllOfThreeStatusCode)[keyof typeof ListAlerts403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAlerts403AllOfThreeError =\n (typeof ListAlerts403AllOfThreeError)[keyof typeof ListAlerts403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAlerts403AllOfThree = {\n statusCode: ListAlerts403AllOfThreeStatusCode\n error: ListAlerts403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAlerts403 = ListAlerts403AllOf & ListAlerts403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAlerts404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAlerts404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAlerts404AllOfDebug\n}\n\nexport type ListAlerts404AllOfThreeStatusCode =\n (typeof ListAlerts404AllOfThreeStatusCode)[keyof typeof ListAlerts404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAlerts404AllOfThreeError =\n (typeof ListAlerts404AllOfThreeError)[keyof typeof ListAlerts404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAlerts404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAlerts404AllOfThree = {\n statusCode: ListAlerts404AllOfThreeStatusCode\n error: ListAlerts404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAlerts404 = ListAlerts404AllOf & ListAlerts404AllOfThree\n\nexport type CreateAlertBodyAlertTypeId = number | null\n\nexport type CreateAlertBodyUserId = number | null\n\nexport type CreateAlertBodyPatientId = number | null\n\nexport type CreateAlertBodySeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\nexport type CreateAlertBodyTitle = string | null\n\nexport type CreateAlertBodySummary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type CreateAlertBodyEmitterType = (typeof CreateAlertBodyEmitterType)[keyof typeof CreateAlertBodyEmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlertBodyEmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type CreateAlertBodyEmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type CreateAlertBodyEmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type CreateAlertBodyEmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type CreateAlertBodyEmitter = {\n /** Kind of emitter that raised the alert */\n type: CreateAlertBodyEmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: CreateAlertBodyEmitterId\n /** Human readable name of the emitter */\n name?: CreateAlertBodyEmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: CreateAlertBodyEmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertBodyRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type CreateAlertBodyRecipients = CreateAlertBodyRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlertBodyRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type CreateAlertBodyRelatedEntities = CreateAlertBodyRelatedEntitiesAnyOfItem[] | null\n\nexport type CreateAlertBodyPayloadAnyOf = { [key: string]: unknown }\n\nexport type CreateAlertBodyPayload = CreateAlertBodyPayloadAnyOf | null\n\nexport type CreateAlertBodyMetadataAnyOf = { [key: string]: unknown }\n\nexport type CreateAlertBodyMetadata = CreateAlertBodyMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC\n */\nexport type CreateAlertBodyTriggeredAt = string | null\n\n/**\n * Payload to create an alert\n */\nexport type CreateAlertBody = {\n alert_type_id?: CreateAlertBodyAlertTypeId\n user_id?: CreateAlertBodyUserId\n patient_id?: CreateAlertBodyPatientId\n severity?: CreateAlertBodySeverity\n title?: CreateAlertBodyTitle\n summary?: CreateAlertBodySummary\n /** Who raised the alert */\n emitter: CreateAlertBodyEmitter\n recipients?: CreateAlertBodyRecipients\n related_entities?: CreateAlertBodyRelatedEntities\n payload?: CreateAlertBodyPayload\n metadata?: CreateAlertBodyMetadata\n /** @maxLength 255 */\n dedup_key?: string\n /** When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC */\n triggered_at?: CreateAlertBodyTriggeredAt\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type CreateAlert200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type CreateAlert200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type CreateAlert200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type CreateAlert200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type CreateAlert200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type CreateAlert200Status = (typeof CreateAlert200Status)[keyof typeof CreateAlert200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type CreateAlert200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type CreateAlert200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type CreateAlert200EmitterType = (typeof CreateAlert200EmitterType)[keyof typeof CreateAlert200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type CreateAlert200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type CreateAlert200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type CreateAlert200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type CreateAlert200Emitter = {\n /** Kind of emitter that raised the alert */\n type: CreateAlert200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: CreateAlert200EmitterId\n /** Human readable name of the emitter */\n name?: CreateAlert200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: CreateAlert200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlert200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type CreateAlert200Recipients = CreateAlert200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type CreateAlert200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type CreateAlert200RelatedEntities = CreateAlert200RelatedEntitiesAnyOfItem[] | null\n\nexport type CreateAlert200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type CreateAlert200Payload = CreateAlert200PayloadAnyOf | null\n\nexport type CreateAlert200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type CreateAlert200Metadata = CreateAlert200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlert200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlert200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type CreateAlert200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type CreateAlert200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type CreateAlert200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type CreateAlert200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type CreateAlert200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type CreateAlert200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: CreateAlert200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: CreateAlert200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: CreateAlert200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: CreateAlert200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: CreateAlert200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: CreateAlert200Status\n /** Short readable title */\n title?: CreateAlert200Title\n /** Longer readable description */\n summary?: CreateAlert200Summary\n /** Who raised the alert */\n emitter: CreateAlert200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: CreateAlert200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: CreateAlert200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: CreateAlert200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: CreateAlert200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: CreateAlert200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: CreateAlert200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: CreateAlert200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: CreateAlert200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: CreateAlert200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: CreateAlert200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: CreateAlert200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateAlert400AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlert400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlert400AllOfDebug\n}\n\nexport type CreateAlert400AllOfThreeStatusCode =\n (typeof CreateAlert400AllOfThreeStatusCode)[keyof typeof CreateAlert400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type CreateAlert400AllOfThreeError =\n (typeof CreateAlert400AllOfThreeError)[keyof typeof CreateAlert400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type CreateAlert400AllOfThree = {\n statusCode: CreateAlert400AllOfThreeStatusCode\n error: CreateAlert400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type CreateAlert400 = CreateAlert400AllOf & CreateAlert400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlert403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlert403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlert403AllOfDebug\n}\n\nexport type CreateAlert403AllOfThreeStatusCode =\n (typeof CreateAlert403AllOfThreeStatusCode)[keyof typeof CreateAlert403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAlert403AllOfThreeError =\n (typeof CreateAlert403AllOfThreeError)[keyof typeof CreateAlert403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAlert403AllOfThree = {\n statusCode: CreateAlert403AllOfThreeStatusCode\n error: CreateAlert403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAlert403 = CreateAlert403AllOf & CreateAlert403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAlert404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAlert404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAlert404AllOfDebug\n}\n\nexport type CreateAlert404AllOfThreeStatusCode =\n (typeof CreateAlert404AllOfThreeStatusCode)[keyof typeof CreateAlert404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAlert404AllOfThreeError =\n (typeof CreateAlert404AllOfThreeError)[keyof typeof CreateAlert404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAlert404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAlert404AllOfThree = {\n statusCode: CreateAlert404AllOfThreeStatusCode\n error: CreateAlert404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAlert404 = CreateAlert404AllOf & CreateAlert404AllOfThree\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type GetAlert200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type GetAlert200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type GetAlert200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type GetAlert200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type GetAlert200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type GetAlert200Status = (typeof GetAlert200Status)[keyof typeof GetAlert200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type GetAlert200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type GetAlert200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type GetAlert200EmitterType = (typeof GetAlert200EmitterType)[keyof typeof GetAlert200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type GetAlert200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type GetAlert200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type GetAlert200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type GetAlert200Emitter = {\n /** Kind of emitter that raised the alert */\n type: GetAlert200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: GetAlert200EmitterId\n /** Human readable name of the emitter */\n name?: GetAlert200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: GetAlert200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type GetAlert200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type GetAlert200Recipients = GetAlert200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type GetAlert200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type GetAlert200RelatedEntities = GetAlert200RelatedEntitiesAnyOfItem[] | null\n\nexport type GetAlert200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type GetAlert200Payload = GetAlert200PayloadAnyOf | null\n\nexport type GetAlert200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type GetAlert200Metadata = GetAlert200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type GetAlert200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type GetAlert200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type GetAlert200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type GetAlert200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type GetAlert200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type GetAlert200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type GetAlert200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type GetAlert200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: GetAlert200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: GetAlert200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: GetAlert200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: GetAlert200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: GetAlert200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: GetAlert200Status\n /** Short readable title */\n title?: GetAlert200Title\n /** Longer readable description */\n summary?: GetAlert200Summary\n /** Who raised the alert */\n emitter: GetAlert200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: GetAlert200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: GetAlert200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: GetAlert200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: GetAlert200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: GetAlert200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: GetAlert200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: GetAlert200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: GetAlert200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: GetAlert200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: GetAlert200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: GetAlert200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetAlert403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlert403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlert403AllOfDebug\n}\n\nexport type GetAlert403AllOfThreeStatusCode =\n (typeof GetAlert403AllOfThreeStatusCode)[keyof typeof GetAlert403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAlert403AllOfThreeError = (typeof GetAlert403AllOfThreeError)[keyof typeof GetAlert403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAlert403AllOfThree = {\n statusCode: GetAlert403AllOfThreeStatusCode\n error: GetAlert403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAlert403 = GetAlert403AllOf & GetAlert403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAlert404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAlert404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAlert404AllOfDebug\n}\n\nexport type GetAlert404AllOfThreeStatusCode =\n (typeof GetAlert404AllOfThreeStatusCode)[keyof typeof GetAlert404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAlert404AllOfThreeError = (typeof GetAlert404AllOfThreeError)[keyof typeof GetAlert404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAlert404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAlert404AllOfThree = {\n statusCode: GetAlert404AllOfThreeStatusCode\n error: GetAlert404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAlert404 = GetAlert404AllOf & GetAlert404AllOfThree\n\nexport type UpdateAlertBodyAlertTypeId = number | null\n\nexport type UpdateAlertBodyUserId = number | null\n\nexport type UpdateAlertBodyPatientId = number | null\n\nexport type UpdateAlertBodySeverity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\nexport type UpdateAlertBodyTitle = string | null\n\nexport type UpdateAlertBodySummary = string | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertBodyRecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type UpdateAlertBodyRecipients = UpdateAlertBodyRecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlertBodyRelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\nexport type UpdateAlertBodyRelatedEntities = UpdateAlertBodyRelatedEntitiesAnyOfItem[] | null\n\nexport type UpdateAlertBodyPayloadAnyOf = { [key: string]: unknown }\n\nexport type UpdateAlertBodyPayload = UpdateAlertBodyPayloadAnyOf | null\n\nexport type UpdateAlertBodyMetadataAnyOf = { [key: string]: unknown }\n\nexport type UpdateAlertBodyMetadata = UpdateAlertBodyMetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC\n */\nexport type UpdateAlertBodyTriggeredAt = string | null\n\n/**\n * Payload to update an alert. Every field is optional. `emitter` cannot be changed after creation\n */\nexport type UpdateAlertBody = {\n alert_type_id?: UpdateAlertBodyAlertTypeId\n user_id?: UpdateAlertBodyUserId\n patient_id?: UpdateAlertBodyPatientId\n severity?: UpdateAlertBodySeverity\n title?: UpdateAlertBodyTitle\n summary?: UpdateAlertBodySummary\n recipients?: UpdateAlertBodyRecipients\n related_entities?: UpdateAlertBodyRelatedEntities\n payload?: UpdateAlertBodyPayload\n metadata?: UpdateAlertBodyMetadata\n /** @maxLength 255 */\n dedup_key?: string\n /** When the event that originated the alert happened. RFC 3339 with a mandatory offset — `2026-01-15T10:30:00Z` is the shape the API emits, so a value read from here can be sent straight back. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Stored as UTC */\n triggered_at?: UpdateAlertBodyTriggeredAt\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type UpdateAlert200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type UpdateAlert200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type UpdateAlert200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type UpdateAlert200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type UpdateAlert200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type UpdateAlert200Status = (typeof UpdateAlert200Status)[keyof typeof UpdateAlert200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type UpdateAlert200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type UpdateAlert200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type UpdateAlert200EmitterType = (typeof UpdateAlert200EmitterType)[keyof typeof UpdateAlert200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type UpdateAlert200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type UpdateAlert200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type UpdateAlert200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type UpdateAlert200Emitter = {\n /** Kind of emitter that raised the alert */\n type: UpdateAlert200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: UpdateAlert200EmitterId\n /** Human readable name of the emitter */\n name?: UpdateAlert200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: UpdateAlert200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlert200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type UpdateAlert200Recipients = UpdateAlert200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type UpdateAlert200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type UpdateAlert200RelatedEntities = UpdateAlert200RelatedEntitiesAnyOfItem[] | null\n\nexport type UpdateAlert200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type UpdateAlert200Payload = UpdateAlert200PayloadAnyOf | null\n\nexport type UpdateAlert200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type UpdateAlert200Metadata = UpdateAlert200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlert200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlert200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type UpdateAlert200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type UpdateAlert200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type UpdateAlert200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type UpdateAlert200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type UpdateAlert200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type UpdateAlert200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: UpdateAlert200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: UpdateAlert200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: UpdateAlert200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: UpdateAlert200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: UpdateAlert200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: UpdateAlert200Status\n /** Short readable title */\n title?: UpdateAlert200Title\n /** Longer readable description */\n summary?: UpdateAlert200Summary\n /** Who raised the alert */\n emitter: UpdateAlert200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: UpdateAlert200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: UpdateAlert200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: UpdateAlert200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: UpdateAlert200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: UpdateAlert200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: UpdateAlert200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: UpdateAlert200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: UpdateAlert200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: UpdateAlert200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: UpdateAlert200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: UpdateAlert200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlert400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlert400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlert400AllOfDebug\n}\n\nexport type UpdateAlert400AllOfThreeStatusCode =\n (typeof UpdateAlert400AllOfThreeStatusCode)[keyof typeof UpdateAlert400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAlert400AllOfThreeError =\n (typeof UpdateAlert400AllOfThreeError)[keyof typeof UpdateAlert400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAlert400AllOfThree = {\n statusCode: UpdateAlert400AllOfThreeStatusCode\n error: UpdateAlert400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAlert400 = UpdateAlert400AllOf & UpdateAlert400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlert403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlert403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlert403AllOfDebug\n}\n\nexport type UpdateAlert403AllOfThreeStatusCode =\n (typeof UpdateAlert403AllOfThreeStatusCode)[keyof typeof UpdateAlert403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAlert403AllOfThreeError =\n (typeof UpdateAlert403AllOfThreeError)[keyof typeof UpdateAlert403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAlert403AllOfThree = {\n statusCode: UpdateAlert403AllOfThreeStatusCode\n error: UpdateAlert403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAlert403 = UpdateAlert403AllOf & UpdateAlert403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAlert404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAlert404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAlert404AllOfDebug\n}\n\nexport type UpdateAlert404AllOfThreeStatusCode =\n (typeof UpdateAlert404AllOfThreeStatusCode)[keyof typeof UpdateAlert404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAlert404AllOfThreeError =\n (typeof UpdateAlert404AllOfThreeError)[keyof typeof UpdateAlert404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAlert404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAlert404AllOfThree = {\n statusCode: UpdateAlert404AllOfThreeStatusCode\n error: UpdateAlert404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAlert404 = UpdateAlert404AllOf & UpdateAlert404AllOfThree\n\n/**\n * Optional note explaining the resolution\n */\nexport type ResolveAlertBodyResolutionNote = string | null\n\n/**\n * Payload to resolve an alert\n */\nexport type ResolveAlertBody = {\n /** Optional note explaining the resolution */\n resolution_note?: ResolveAlertBodyResolutionNote\n}\n\n/**\n * Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project\n */\nexport type ResolveAlert200ProjectId = number | null\n\n/**\n * Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified\n */\nexport type ResolveAlert200AlertTypeId = number | null\n\n/**\n * Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them\n */\nexport type ResolveAlert200UserId = number | null\n\n/**\n * Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project\n */\nexport type ResolveAlert200PatientId = number | null\n\n/**\n * Severity of the alert. Null when not graded\n */\nexport type ResolveAlert200Severity = 'info' | 'low' | 'medium' | 'high' | 'critical' | null\n\n/**\n * Lifecycle state of an alert. An alert is open until it is resolved\n */\nexport type ResolveAlert200Status = (typeof ResolveAlert200Status)[keyof typeof ResolveAlert200Status]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert200Status = {\n active: 'active',\n resolved: 'resolved',\n} as const\n\n/**\n * Short readable title\n */\nexport type ResolveAlert200Title = string | null\n\n/**\n * Longer readable description\n */\nexport type ResolveAlert200Summary = string | null\n\n/**\n * Kind of emitter that raised the alert\n */\nexport type ResolveAlert200EmitterType = (typeof ResolveAlert200EmitterType)[keyof typeof ResolveAlert200EmitterType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert200EmitterType = {\n trigger: 'trigger',\n api: 'api',\n webhook: 'webhook',\n} as const\n\n/**\n * Identifier of the emitter within its type (trigger id, device id, service id…)\n */\nexport type ResolveAlert200EmitterId = string | null\n\n/**\n * Human readable name of the emitter\n */\nexport type ResolveAlert200EmitterName = string | null\n\n/**\n * Identifier of the originating event in the emitting system, for traceability\n */\nexport type ResolveAlert200EmitterReference = string | null\n\n/**\n * Who raised the alert\n */\nexport type ResolveAlert200Emitter = {\n /** Kind of emitter that raised the alert */\n type: ResolveAlert200EmitterType\n /** Identifier of the emitter within its type (trigger id, device id, service id…) */\n id?: ResolveAlert200EmitterId\n /** Human readable name of the emitter */\n name?: ResolveAlert200EmitterName\n /** Identifier of the originating event in the emitting system, for traceability */\n reference?: ResolveAlert200EmitterReference\n}\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ResolveAlert200RecipientsAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Natural addressees of the alert. Null or empty when it has none\n */\nexport type ResolveAlert200Recipients = ResolveAlert200RecipientsAnyOfItem[] | null\n\n/**\n * Reference to an entity by kind and identifier\n */\nexport type ResolveAlert200RelatedEntitiesAnyOfItem = {\n /**\n * Kind of entity (user, phone, email, service…)\n * @maxLength 64\n */\n type: string\n /**\n * Identifier of the entity within its type\n * @maxLength 255\n */\n value: string\n}\n\n/**\n * Entities related to the alert without being addressees of it\n */\nexport type ResolveAlert200RelatedEntities = ResolveAlert200RelatedEntitiesAnyOfItem[] | null\n\nexport type ResolveAlert200PayloadAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data that originated the alert (measured value, threshold, form answer…)\n */\nexport type ResolveAlert200Payload = ResolveAlert200PayloadAnyOf | null\n\nexport type ResolveAlert200MetadataAnyOf = { [key: string]: unknown }\n\n/**\n * Free extension point, so a new consumer does not need a schema change\n */\nexport type ResolveAlert200Metadata = ResolveAlert200MetadataAnyOf | null\n\n/**\n * When the event that originated the alert happened. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlert200TriggeredAt = string | null\n\n/**\n * When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlert200ViewedAt = string | null\n\n/**\n * User who first viewed the alert\n */\nexport type ResolveAlert200ViewedBy = number | null\n\n/**\n * When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC\n */\nexport type ResolveAlert200ResolvedAt = string | null\n\n/**\n * User who resolved the alert\n */\nexport type ResolveAlert200ResolvedBy = number | null\n\n/**\n * Optional note left when resolving the alert\n */\nexport type ResolveAlert200ResolutionNote = string | null\n\n/**\n * User who created the alert, when a user did\n */\nexport type ResolveAlert200CreatedUser = number | null\n\n/**\n * An alert and its state (ecosystem level)\n */\nexport type ResolveAlert200 = {\n /** Unique identifier of the alert */\n id: number\n /** Project this alert belongs to. Null for an ecosystem-wide alert, the ones created and read through the `/ecosystem/:ecosystemName/alert` mount, which belong to no project */\n project_id?: ResolveAlert200ProjectId\n /** Type of alert, as a row of the `alert_type` catalog of the ecosystem. Null for an alert that is not classified */\n alert_type_id?: ResolveAlert200AlertTypeId\n /** Caaring user the alert is about, and one of the two things that decide who may read it: this user always reads their own alerts. Null when the subject is a patient with no user account, in which case `patient_id` is the one that identifies them */\n user_id?: ResolveAlert200UserId\n /** Patient the alert is about, as the `id` of the `patient` CRF row of the project, and the other thing that decides who may read it: the professionals with access to that patient do. A patient may exist without a user account, so this is independent of `user_id`. It lives in the project database, so the column carries no foreign key and `project_id` is what says which database to read it from — an alert carrying it always carries a project */\n patient_id?: ResolveAlert200PatientId\n /** Severity of the alert. Null when not graded */\n severity?: ResolveAlert200Severity\n /** Lifecycle state of an alert. An alert is open until it is resolved */\n status?: ResolveAlert200Status\n /** Short readable title */\n title?: ResolveAlert200Title\n /** Longer readable description */\n summary?: ResolveAlert200Summary\n /** Who raised the alert */\n emitter: ResolveAlert200Emitter\n /** Natural addressees of the alert. Null or empty when it has none */\n recipients?: ResolveAlert200Recipients\n /** Entities related to the alert without being addressees of it */\n related_entities?: ResolveAlert200RelatedEntities\n /** Structured data that originated the alert (measured value, threshold, form answer…) */\n payload?: ResolveAlert200Payload\n /** Free extension point, so a new consumer does not need a schema change */\n metadata?: ResolveAlert200Metadata\n /**\n * Fingerprint used to avoid storing the same alert twice. A create carrying a key that is already open in the same scope answers with the stored alert; a resolved alert does not hold its key, so a condition that recurs after being dealt with raises a new one. Optional for the client: the server generates a UUID when it is absent, so the column always carries a usable value\n * @maxLength 255\n */\n dedup_key?: string\n /** When the event that originated the alert happened. Emitted as ISO-8601 in UTC */\n triggered_at?: ResolveAlert200TriggeredAt\n /** When the alert was first viewed. Null while unseen. Emitted as ISO-8601 in UTC */\n viewed_at?: ResolveAlert200ViewedAt\n /** User who first viewed the alert */\n viewed_by?: ResolveAlert200ViewedBy\n /** When the alert was resolved. Null while active. Emitted as ISO-8601 in UTC */\n resolved_at?: ResolveAlert200ResolvedAt\n /** User who resolved the alert */\n resolved_by?: ResolveAlert200ResolvedBy\n /** Optional note left when resolving the alert */\n resolution_note?: ResolveAlert200ResolutionNote\n /** User who created the alert, when a user did */\n created_user?: ResolveAlert200CreatedUser\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlert400AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlert400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlert400AllOfDebug\n}\n\nexport type ResolveAlert400AllOfThreeStatusCode =\n (typeof ResolveAlert400AllOfThreeStatusCode)[keyof typeof ResolveAlert400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type ResolveAlert400AllOfThreeError =\n (typeof ResolveAlert400AllOfThreeError)[keyof typeof ResolveAlert400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type ResolveAlert400AllOfThree = {\n statusCode: ResolveAlert400AllOfThreeStatusCode\n error: ResolveAlert400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type ResolveAlert400 = ResolveAlert400AllOf & ResolveAlert400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlert403AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlert403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlert403AllOfDebug\n}\n\nexport type ResolveAlert403AllOfThreeStatusCode =\n (typeof ResolveAlert403AllOfThreeStatusCode)[keyof typeof ResolveAlert403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ResolveAlert403AllOfThreeError =\n (typeof ResolveAlert403AllOfThreeError)[keyof typeof ResolveAlert403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ResolveAlert403AllOfThree = {\n statusCode: ResolveAlert403AllOfThreeStatusCode\n error: ResolveAlert403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ResolveAlert403 = ResolveAlert403AllOf & ResolveAlert403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ResolveAlert404AllOfDebug = { [key: string]: unknown }\n\nexport type ResolveAlert404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ResolveAlert404AllOfDebug\n}\n\nexport type ResolveAlert404AllOfThreeStatusCode =\n (typeof ResolveAlert404AllOfThreeStatusCode)[keyof typeof ResolveAlert404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ResolveAlert404AllOfThreeError =\n (typeof ResolveAlert404AllOfThreeError)[keyof typeof ResolveAlert404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ResolveAlert404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ResolveAlert404AllOfThree = {\n statusCode: ResolveAlert404AllOfThreeStatusCode\n error: ResolveAlert404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ResolveAlert404 = ResolveAlert404AllOf & ResolveAlert404AllOfThree\n\nexport type ListAutomaticTriggersParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * Return each trigger with its ordered `actions` resolved, in a single request\n */\n includeActions?: boolean\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfSource =\n (typeof ListAutomaticTriggers200ResultsItemAllOfSource)[keyof typeof ListAutomaticTriggers200ResultsItemAllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers200ResultsItemAllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOperation = 'create' | 'update' | 'delete' | null\n\nexport type ListAutomaticTriggers200ResultsItemAllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfConditions =\n ListAutomaticTriggers200ResultsItemAllOfConditionsAnyOf | null\n\nexport type ListAutomaticTriggers200ResultsItemAllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfRelations =\n ListAutomaticTriggers200ResultsItemAllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfRetentionDays = number | null\n\n/**\n * Automatic trigger definition (ecosystem level)\n */\nexport type ListAutomaticTriggers200ResultsItemAllOf = {\n /** Unique identifier of the automatic trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: ListAutomaticTriggers200ResultsItemAllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: ListAutomaticTriggers200ResultsItemAllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: ListAutomaticTriggers200ResultsItemAllOfDescription\n /** Source of the event that fires a trigger */\n source: ListAutomaticTriggers200ResultsItemAllOfSource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: ListAutomaticTriggers200ResultsItemAllOfTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: ListAutomaticTriggers200ResultsItemAllOfOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: ListAutomaticTriggers200ResultsItemAllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: ListAutomaticTriggers200ResultsItemAllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: ListAutomaticTriggers200ResultsItemAllOfRetentionDays\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType =\n (typeof ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType)[keyof typeof ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfDefault = {\n [key: string]: unknown\n}\n\n/**\n * Base fields shared by every action config\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload = {\n [key: string]: unknown\n}\n\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOf =\n ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOf &\n ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemName\n /** Executable mechanism of an action */\n type: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemType\n /** Union of action configs, selected by actions.type */\n config: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type ListAutomaticTriggers200ResultsItemAllOfOnethree = {\n /** Actions the trigger runs, in execution order */\n actions?: ListAutomaticTriggers200ResultsItemAllOfOnethreeActionsItem[]\n}\n\n/**\n * An automatic trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type ListAutomaticTriggers200ResultsItem = ListAutomaticTriggers200ResultsItemAllOf &\n ListAutomaticTriggers200ResultsItemAllOfOnethree\n\n/**\n * Paginated response\n */\nexport type ListAutomaticTriggers200 = {\n /** Array of items of the current page */\n results: ListAutomaticTriggers200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAutomaticTriggers403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAutomaticTriggers403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAutomaticTriggers403AllOfDebug\n}\n\nexport type ListAutomaticTriggers403AllOfThreeStatusCode =\n (typeof ListAutomaticTriggers403AllOfThreeStatusCode)[keyof typeof ListAutomaticTriggers403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAutomaticTriggers403AllOfThreeError =\n (typeof ListAutomaticTriggers403AllOfThreeError)[keyof typeof ListAutomaticTriggers403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAutomaticTriggers403AllOfThree = {\n statusCode: ListAutomaticTriggers403AllOfThreeStatusCode\n error: ListAutomaticTriggers403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAutomaticTriggers403 = ListAutomaticTriggers403AllOf & ListAutomaticTriggers403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAutomaticTriggers404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAutomaticTriggers404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAutomaticTriggers404AllOfDebug\n}\n\nexport type ListAutomaticTriggers404AllOfThreeStatusCode =\n (typeof ListAutomaticTriggers404AllOfThreeStatusCode)[keyof typeof ListAutomaticTriggers404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAutomaticTriggers404AllOfThreeError =\n (typeof ListAutomaticTriggers404AllOfThreeError)[keyof typeof ListAutomaticTriggers404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAutomaticTriggers404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAutomaticTriggers404AllOfThree = {\n statusCode: ListAutomaticTriggers404AllOfThreeStatusCode\n error: ListAutomaticTriggers404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAutomaticTriggers404 = ListAutomaticTriggers404AllOf & ListAutomaticTriggers404AllOfThree\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type CreateAutomaticTriggerBodyName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type CreateAutomaticTriggerBodyDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type CreateAutomaticTriggerBodySource =\n (typeof CreateAutomaticTriggerBodySource)[keyof typeof CreateAutomaticTriggerBodySource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTriggerBodySource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type CreateAutomaticTriggerBodyTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type CreateAutomaticTriggerBodyOperation = 'create' | 'update' | 'delete' | null\n\nexport type CreateAutomaticTriggerBodyConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type CreateAutomaticTriggerBodyConditions = CreateAutomaticTriggerBodyConditionsAnyOf | null\n\nexport type CreateAutomaticTriggerBodyRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type CreateAutomaticTriggerBodyRelations = CreateAutomaticTriggerBodyRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTriggerBodyRetentionDays = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfType =\n (typeof CreateAutomaticTriggerBodyActionsItemAnyOfType)[keyof typeof CreateAutomaticTriggerBodyActionsItemAnyOfType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTriggerBodyActionsItemAnyOfType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOf =\n CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOf &\n CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfRetentionDays = number | null\n\n/**\n * Action created and linked in the same request\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOf = {\n /** Human-readable label of the action. Null when it has none */\n name?: CreateAutomaticTriggerBodyActionsItemAnyOfName\n /** Executable mechanism of an action */\n type: CreateAutomaticTriggerBodyActionsItemAnyOfType\n /** Union of action configs, selected by actions.type */\n config: CreateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTriggerBodyActionsItemAnyOfRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType =\n (typeof CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType)[keyof typeof CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf =\n CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf &\n CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroRetentionDays = number | null\n\n/**\n * Existing action updated and linked in the same request\n */\nexport type CreateAutomaticTriggerBodyActionsItemAnyOfOnezero = {\n id: number\n /** Human-readable label of the action. Null when it has none */\n name?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroName\n /** Executable mechanism of an action */\n type?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroType\n /** Union of action configs, selected by actions.type */\n config?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTriggerBodyActionsItemAnyOfOnezeroRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * An action a trigger runs: linked, created, or updated in place\n */\nexport type CreateAutomaticTriggerBodyActionsItem =\n | number\n | CreateAutomaticTriggerBodyActionsItemAnyOf\n | CreateAutomaticTriggerBodyActionsItemAnyOfOnezero\n\n/**\n * Payload used to create an automatic trigger, optionally with the actions it runs\n */\nexport type CreateAutomaticTriggerBody = {\n /** Human-readable label of the trigger. Null when it has none */\n name?: CreateAutomaticTriggerBodyName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: CreateAutomaticTriggerBodyDescription\n /** Source of the event that fires a trigger */\n source: CreateAutomaticTriggerBodySource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: CreateAutomaticTriggerBodyTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: CreateAutomaticTriggerBodyOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: CreateAutomaticTriggerBodyConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: CreateAutomaticTriggerBodyRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTriggerBodyRetentionDays\n /** Full ordered set of actions the trigger runs; the array position is the execution order. An empty array leaves the trigger with none */\n actions?: CreateAutomaticTriggerBodyActionsItem[]\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type CreateAutomaticTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type CreateAutomaticTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type CreateAutomaticTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type CreateAutomaticTrigger200AllOfSource =\n (typeof CreateAutomaticTrigger200AllOfSource)[keyof typeof CreateAutomaticTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type CreateAutomaticTrigger200AllOfTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type CreateAutomaticTrigger200AllOfOperation = 'create' | 'update' | 'delete' | null\n\nexport type CreateAutomaticTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type CreateAutomaticTrigger200AllOfConditions = CreateAutomaticTrigger200AllOfConditionsAnyOf | null\n\nexport type CreateAutomaticTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type CreateAutomaticTrigger200AllOfRelations = CreateAutomaticTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTrigger200AllOfRetentionDays = number | null\n\n/**\n * Automatic trigger definition (ecosystem level)\n */\nexport type CreateAutomaticTrigger200AllOf = {\n /** Unique identifier of the automatic trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: CreateAutomaticTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: CreateAutomaticTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: CreateAutomaticTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: CreateAutomaticTrigger200AllOfSource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: CreateAutomaticTrigger200AllOfTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: CreateAutomaticTrigger200AllOfOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: CreateAutomaticTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: CreateAutomaticTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTrigger200AllOfRetentionDays\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemType =\n (typeof CreateAutomaticTrigger200AllOfOnethreeActionsItemType)[keyof typeof CreateAutomaticTrigger200AllOfOnethreeActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger200AllOfOnethreeActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf =\n CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf &\n CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type CreateAutomaticTrigger200AllOfOnethreeActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: CreateAutomaticTrigger200AllOfOnethreeActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: CreateAutomaticTrigger200AllOfOnethreeActionsItemName\n /** Executable mechanism of an action */\n type: CreateAutomaticTrigger200AllOfOnethreeActionsItemType\n /** Union of action configs, selected by actions.type */\n config: CreateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type CreateAutomaticTrigger200AllOfOnethree = {\n /** Actions the trigger runs, in execution order */\n actions?: CreateAutomaticTrigger200AllOfOnethreeActionsItem[]\n}\n\n/**\n * An automatic trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type CreateAutomaticTrigger200 = CreateAutomaticTrigger200AllOf & CreateAutomaticTrigger200AllOfOnethree\n\n/**\n * Debug information of the error\n */\nexport type CreateAutomaticTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAutomaticTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAutomaticTrigger403AllOfDebug\n}\n\nexport type CreateAutomaticTrigger403AllOfThreeStatusCode =\n (typeof CreateAutomaticTrigger403AllOfThreeStatusCode)[keyof typeof CreateAutomaticTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateAutomaticTrigger403AllOfThreeError =\n (typeof CreateAutomaticTrigger403AllOfThreeError)[keyof typeof CreateAutomaticTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateAutomaticTrigger403AllOfThree = {\n statusCode: CreateAutomaticTrigger403AllOfThreeStatusCode\n error: CreateAutomaticTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateAutomaticTrigger403 = CreateAutomaticTrigger403AllOf & CreateAutomaticTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateAutomaticTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateAutomaticTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateAutomaticTrigger404AllOfDebug\n}\n\nexport type CreateAutomaticTrigger404AllOfThreeStatusCode =\n (typeof CreateAutomaticTrigger404AllOfThreeStatusCode)[keyof typeof CreateAutomaticTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateAutomaticTrigger404AllOfThreeError =\n (typeof CreateAutomaticTrigger404AllOfThreeError)[keyof typeof CreateAutomaticTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateAutomaticTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateAutomaticTrigger404AllOfThree = {\n statusCode: CreateAutomaticTrigger404AllOfThreeStatusCode\n error: CreateAutomaticTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateAutomaticTrigger404 = CreateAutomaticTrigger404AllOf & CreateAutomaticTrigger404AllOfThree\n\nexport type GetAutomaticTriggerParams = {\n /**\n * Return each trigger with its ordered `actions` resolved, in a single request\n */\n includeActions?: boolean\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type GetAutomaticTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type GetAutomaticTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type GetAutomaticTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type GetAutomaticTrigger200AllOfSource =\n (typeof GetAutomaticTrigger200AllOfSource)[keyof typeof GetAutomaticTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type GetAutomaticTrigger200AllOfTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type GetAutomaticTrigger200AllOfOperation = 'create' | 'update' | 'delete' | null\n\nexport type GetAutomaticTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type GetAutomaticTrigger200AllOfConditions = GetAutomaticTrigger200AllOfConditionsAnyOf | null\n\nexport type GetAutomaticTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type GetAutomaticTrigger200AllOfRelations = GetAutomaticTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type GetAutomaticTrigger200AllOfRetentionDays = number | null\n\n/**\n * Automatic trigger definition (ecosystem level)\n */\nexport type GetAutomaticTrigger200AllOf = {\n /** Unique identifier of the automatic trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: GetAutomaticTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: GetAutomaticTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: GetAutomaticTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: GetAutomaticTrigger200AllOfSource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: GetAutomaticTrigger200AllOfTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: GetAutomaticTrigger200AllOfOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: GetAutomaticTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: GetAutomaticTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: GetAutomaticTrigger200AllOfRetentionDays\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemType =\n (typeof GetAutomaticTrigger200AllOfOnethreeActionsItemType)[keyof typeof GetAutomaticTrigger200AllOfOnethreeActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger200AllOfOnethreeActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf =\n GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf &\n GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type GetAutomaticTrigger200AllOfOnethreeActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: GetAutomaticTrigger200AllOfOnethreeActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: GetAutomaticTrigger200AllOfOnethreeActionsItemName\n /** Executable mechanism of an action */\n type: GetAutomaticTrigger200AllOfOnethreeActionsItemType\n /** Union of action configs, selected by actions.type */\n config: GetAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: GetAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type GetAutomaticTrigger200AllOfOnethree = {\n /** Actions the trigger runs, in execution order */\n actions?: GetAutomaticTrigger200AllOfOnethreeActionsItem[]\n}\n\n/**\n * An automatic trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type GetAutomaticTrigger200 = GetAutomaticTrigger200AllOf & GetAutomaticTrigger200AllOfOnethree\n\n/**\n * Debug information of the error\n */\nexport type GetAutomaticTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type GetAutomaticTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAutomaticTrigger403AllOfDebug\n}\n\nexport type GetAutomaticTrigger403AllOfThreeStatusCode =\n (typeof GetAutomaticTrigger403AllOfThreeStatusCode)[keyof typeof GetAutomaticTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetAutomaticTrigger403AllOfThreeError =\n (typeof GetAutomaticTrigger403AllOfThreeError)[keyof typeof GetAutomaticTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetAutomaticTrigger403AllOfThree = {\n statusCode: GetAutomaticTrigger403AllOfThreeStatusCode\n error: GetAutomaticTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetAutomaticTrigger403 = GetAutomaticTrigger403AllOf & GetAutomaticTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetAutomaticTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type GetAutomaticTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetAutomaticTrigger404AllOfDebug\n}\n\nexport type GetAutomaticTrigger404AllOfThreeStatusCode =\n (typeof GetAutomaticTrigger404AllOfThreeStatusCode)[keyof typeof GetAutomaticTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetAutomaticTrigger404AllOfThreeError =\n (typeof GetAutomaticTrigger404AllOfThreeError)[keyof typeof GetAutomaticTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetAutomaticTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetAutomaticTrigger404AllOfThree = {\n statusCode: GetAutomaticTrigger404AllOfThreeStatusCode\n error: GetAutomaticTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetAutomaticTrigger404 = GetAutomaticTrigger404AllOf & GetAutomaticTrigger404AllOfThree\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type UpdateAutomaticTriggerBodyName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type UpdateAutomaticTriggerBodyDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type UpdateAutomaticTriggerBodySource =\n (typeof UpdateAutomaticTriggerBodySource)[keyof typeof UpdateAutomaticTriggerBodySource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTriggerBodySource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type UpdateAutomaticTriggerBodyTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type UpdateAutomaticTriggerBodyOperation = 'create' | 'update' | 'delete' | null\n\nexport type UpdateAutomaticTriggerBodyConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type UpdateAutomaticTriggerBodyConditions = UpdateAutomaticTriggerBodyConditionsAnyOf | null\n\nexport type UpdateAutomaticTriggerBodyRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type UpdateAutomaticTriggerBodyRelations = UpdateAutomaticTriggerBodyRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTriggerBodyRetentionDays = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfType =\n (typeof UpdateAutomaticTriggerBodyActionsItemAnyOfType)[keyof typeof UpdateAutomaticTriggerBodyActionsItemAnyOfType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTriggerBodyActionsItemAnyOfType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOf =\n UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOf &\n UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfRetentionDays = number | null\n\n/**\n * Action created and linked in the same request\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOf = {\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateAutomaticTriggerBodyActionsItemAnyOfName\n /** Executable mechanism of an action */\n type: UpdateAutomaticTriggerBodyActionsItemAnyOfType\n /** Union of action configs, selected by actions.type */\n config: UpdateAutomaticTriggerBodyActionsItemAnyOfConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTriggerBodyActionsItemAnyOfRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType =\n (typeof UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType)[keyof typeof UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf =\n UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf &\n UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroRetentionDays = number | null\n\n/**\n * Existing action updated and linked in the same request\n */\nexport type UpdateAutomaticTriggerBodyActionsItemAnyOfOnezero = {\n id: number\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroName\n /** Executable mechanism of an action */\n type?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroType\n /** Union of action configs, selected by actions.type */\n config?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTriggerBodyActionsItemAnyOfOnezeroRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * An action a trigger runs: linked, created, or updated in place\n */\nexport type UpdateAutomaticTriggerBodyActionsItem =\n | number\n | UpdateAutomaticTriggerBodyActionsItemAnyOf\n | UpdateAutomaticTriggerBodyActionsItemAnyOfOnezero\n\n/**\n * Payload used to update an automatic trigger, optionally replacing the actions it runs\n */\nexport type UpdateAutomaticTriggerBody = {\n /** Human-readable label of the trigger. Null when it has none */\n name?: UpdateAutomaticTriggerBodyName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: UpdateAutomaticTriggerBodyDescription\n /** Source of the event that fires a trigger */\n source?: UpdateAutomaticTriggerBodySource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: UpdateAutomaticTriggerBodyTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: UpdateAutomaticTriggerBodyOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: UpdateAutomaticTriggerBodyConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: UpdateAutomaticTriggerBodyRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTriggerBodyRetentionDays\n /** Full ordered set of actions the trigger runs; the array position is the execution order. An empty array leaves the trigger with none */\n actions?: UpdateAutomaticTriggerBodyActionsItem[]\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateAutomaticTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type UpdateAutomaticTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type UpdateAutomaticTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type UpdateAutomaticTrigger200AllOfSource =\n (typeof UpdateAutomaticTrigger200AllOfSource)[keyof typeof UpdateAutomaticTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Concrete model/designer/field the event refers to. Null for sourceless events\n */\nexport type UpdateAutomaticTrigger200AllOfTarget = string | null\n\n/**\n * Operation on the target that fires the trigger. Null when not applicable\n */\nexport type UpdateAutomaticTrigger200AllOfOperation = 'create' | 'update' | 'delete' | null\n\nexport type UpdateAutomaticTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs\n */\nexport type UpdateAutomaticTrigger200AllOfConditions = UpdateAutomaticTrigger200AllOfConditionsAnyOf | null\n\nexport type UpdateAutomaticTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type UpdateAutomaticTrigger200AllOfRelations = UpdateAutomaticTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTrigger200AllOfRetentionDays = number | null\n\n/**\n * Automatic trigger definition (ecosystem level)\n */\nexport type UpdateAutomaticTrigger200AllOf = {\n /** Unique identifier of the automatic trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateAutomaticTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: UpdateAutomaticTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: UpdateAutomaticTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: UpdateAutomaticTrigger200AllOfSource\n /** Concrete model/designer/field the event refers to. Null for sourceless events */\n target?: UpdateAutomaticTrigger200AllOfTarget\n /** Operation on the target that fires the trigger. Null when not applicable */\n operation?: UpdateAutomaticTrigger200AllOfOperation\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs */\n conditions?: UpdateAutomaticTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: UpdateAutomaticTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTrigger200AllOfRetentionDays\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemType =\n (typeof UpdateAutomaticTrigger200AllOfOnethreeActionsItemType)[keyof typeof UpdateAutomaticTrigger200AllOfOnethreeActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger200AllOfOnethreeActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf =\n UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOf &\n UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type UpdateAutomaticTrigger200AllOfOnethreeActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateAutomaticTrigger200AllOfOnethreeActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateAutomaticTrigger200AllOfOnethreeActionsItemName\n /** Executable mechanism of an action */\n type: UpdateAutomaticTrigger200AllOfOnethreeActionsItemType\n /** Union of action configs, selected by actions.type */\n config: UpdateAutomaticTrigger200AllOfOnethreeActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateAutomaticTrigger200AllOfOnethreeActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type UpdateAutomaticTrigger200AllOfOnethree = {\n /** Actions the trigger runs, in execution order */\n actions?: UpdateAutomaticTrigger200AllOfOnethreeActionsItem[]\n}\n\n/**\n * An automatic trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type UpdateAutomaticTrigger200 = UpdateAutomaticTrigger200AllOf & UpdateAutomaticTrigger200AllOfOnethree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAutomaticTrigger400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAutomaticTrigger400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAutomaticTrigger400AllOfDebug\n}\n\nexport type UpdateAutomaticTrigger400AllOfThreeStatusCode =\n (typeof UpdateAutomaticTrigger400AllOfThreeStatusCode)[keyof typeof UpdateAutomaticTrigger400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateAutomaticTrigger400AllOfThreeError =\n (typeof UpdateAutomaticTrigger400AllOfThreeError)[keyof typeof UpdateAutomaticTrigger400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateAutomaticTrigger400AllOfThree = {\n statusCode: UpdateAutomaticTrigger400AllOfThreeStatusCode\n error: UpdateAutomaticTrigger400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateAutomaticTrigger400 = UpdateAutomaticTrigger400AllOf & UpdateAutomaticTrigger400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAutomaticTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAutomaticTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAutomaticTrigger403AllOfDebug\n}\n\nexport type UpdateAutomaticTrigger403AllOfThreeStatusCode =\n (typeof UpdateAutomaticTrigger403AllOfThreeStatusCode)[keyof typeof UpdateAutomaticTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateAutomaticTrigger403AllOfThreeError =\n (typeof UpdateAutomaticTrigger403AllOfThreeError)[keyof typeof UpdateAutomaticTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateAutomaticTrigger403AllOfThree = {\n statusCode: UpdateAutomaticTrigger403AllOfThreeStatusCode\n error: UpdateAutomaticTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateAutomaticTrigger403 = UpdateAutomaticTrigger403AllOf & UpdateAutomaticTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateAutomaticTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateAutomaticTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateAutomaticTrigger404AllOfDebug\n}\n\nexport type UpdateAutomaticTrigger404AllOfThreeStatusCode =\n (typeof UpdateAutomaticTrigger404AllOfThreeStatusCode)[keyof typeof UpdateAutomaticTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateAutomaticTrigger404AllOfThreeError =\n (typeof UpdateAutomaticTrigger404AllOfThreeError)[keyof typeof UpdateAutomaticTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateAutomaticTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateAutomaticTrigger404AllOfThree = {\n statusCode: UpdateAutomaticTrigger404AllOfThreeStatusCode\n error: UpdateAutomaticTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateAutomaticTrigger404 = UpdateAutomaticTrigger404AllOf & UpdateAutomaticTrigger404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteAutomaticTrigger200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteAutomaticTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAutomaticTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAutomaticTrigger403AllOfDebug\n}\n\nexport type DeleteAutomaticTrigger403AllOfThreeStatusCode =\n (typeof DeleteAutomaticTrigger403AllOfThreeStatusCode)[keyof typeof DeleteAutomaticTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAutomaticTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteAutomaticTrigger403AllOfThreeError =\n (typeof DeleteAutomaticTrigger403AllOfThreeError)[keyof typeof DeleteAutomaticTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAutomaticTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteAutomaticTrigger403AllOfThree = {\n statusCode: DeleteAutomaticTrigger403AllOfThreeStatusCode\n error: DeleteAutomaticTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteAutomaticTrigger403 = DeleteAutomaticTrigger403AllOf & DeleteAutomaticTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteAutomaticTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteAutomaticTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteAutomaticTrigger404AllOfDebug\n}\n\nexport type DeleteAutomaticTrigger404AllOfThreeStatusCode =\n (typeof DeleteAutomaticTrigger404AllOfThreeStatusCode)[keyof typeof DeleteAutomaticTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAutomaticTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteAutomaticTrigger404AllOfThreeError =\n (typeof DeleteAutomaticTrigger404AllOfThreeError)[keyof typeof DeleteAutomaticTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteAutomaticTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteAutomaticTrigger404AllOfThree = {\n statusCode: DeleteAutomaticTrigger404AllOfThreeStatusCode\n error: DeleteAutomaticTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteAutomaticTrigger404 = DeleteAutomaticTrigger404AllOf & DeleteAutomaticTrigger404AllOfThree\n\nexport type ListDocumentsParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\n/**\n * Represents an uploaded document record\n */\nexport type ListDocuments200ResultsItemAllOf = {\n /** Unique identifier of the category */\n id: number\n /**\n * IP address of the user who uploaded the document\n * @maxLength 20\n */\n user_ip?: string\n /** Timestamp when the document was created */\n creation_time?: string\n /** User ID who created the document */\n creation_user?: number\n /** Timestamp when the document was last modified */\n mod_time?: string\n /** User ID who last modified the document */\n mod_user?: number\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n}\n\nexport type ListDocuments200ResultsItemAllOfTwoCategoriesItem = {\n /** Category ID */\n id: number\n /** Category name */\n name: string\n}\n\nexport type ListDocuments200ResultsItemAllOfTwo = {\n /** Categories linked to the document */\n categories?: ListDocuments200ResultsItemAllOfTwoCategoriesItem[]\n}\n\n/**\n * Document item returned in document listings\n */\nexport type ListDocuments200ResultsItem = ListDocuments200ResultsItemAllOf & ListDocuments200ResultsItemAllOfTwo\n\n/**\n * Paginated response\n */\nexport type ListDocuments200 = {\n /** Array of items of the current page */\n results: ListDocuments200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListDocuments403AllOfDebug = { [key: string]: unknown }\n\nexport type ListDocuments403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListDocuments403AllOfDebug\n}\n\nexport type ListDocuments403AllOfThreeStatusCode =\n (typeof ListDocuments403AllOfThreeStatusCode)[keyof typeof ListDocuments403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocuments403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListDocuments403AllOfThreeError =\n (typeof ListDocuments403AllOfThreeError)[keyof typeof ListDocuments403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocuments403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListDocuments403AllOfThree = {\n statusCode: ListDocuments403AllOfThreeStatusCode\n error: ListDocuments403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListDocuments403 = ListDocuments403AllOf & ListDocuments403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListDocuments404AllOfDebug = { [key: string]: unknown }\n\nexport type ListDocuments404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListDocuments404AllOfDebug\n}\n\nexport type ListDocuments404AllOfThreeStatusCode =\n (typeof ListDocuments404AllOfThreeStatusCode)[keyof typeof ListDocuments404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocuments404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListDocuments404AllOfThreeError =\n (typeof ListDocuments404AllOfThreeError)[keyof typeof ListDocuments404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocuments404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListDocuments404AllOfThree = {\n statusCode: ListDocuments404AllOfThreeStatusCode\n error: ListDocuments404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListDocuments404 = ListDocuments404AllOf & ListDocuments404AllOfThree\n\n/**\n * Payload used to create a new document record\n */\nexport type CreateDocumentBody = {\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /** Category IDs to associate with the document */\n category_ids?: number[]\n}\n\n/**\n * Represents an uploaded document record\n */\nexport type CreateDocument200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * IP address of the user who uploaded the document\n * @maxLength 20\n */\n user_ip?: string\n /** Timestamp when the document was created */\n creation_time?: string\n /** User ID who created the document */\n creation_user?: number\n /** Timestamp when the document was last modified */\n mod_time?: string\n /** User ID who last modified the document */\n mod_user?: number\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateDocument403AllOfDebug\n}\n\nexport type CreateDocument403AllOfThreeStatusCode =\n (typeof CreateDocument403AllOfThreeStatusCode)[keyof typeof CreateDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateDocument403AllOfThreeError =\n (typeof CreateDocument403AllOfThreeError)[keyof typeof CreateDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateDocument403AllOfThree = {\n statusCode: CreateDocument403AllOfThreeStatusCode\n error: CreateDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateDocument403 = CreateDocument403AllOf & CreateDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateDocument404AllOfDebug\n}\n\nexport type CreateDocument404AllOfThreeStatusCode =\n (typeof CreateDocument404AllOfThreeStatusCode)[keyof typeof CreateDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateDocument404AllOfThreeError =\n (typeof CreateDocument404AllOfThreeError)[keyof typeof CreateDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateDocument404AllOfThree = {\n statusCode: CreateDocument404AllOfThreeStatusCode\n error: CreateDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateDocument404 = CreateDocument404AllOf & CreateDocument404AllOfThree\n\n/**\n * Represents an uploaded document record\n */\nexport type GetDocument200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * IP address of the user who uploaded the document\n * @maxLength 20\n */\n user_ip?: string\n /** Timestamp when the document was created */\n creation_time?: string\n /** User ID who created the document */\n creation_user?: number\n /** Timestamp when the document was last modified */\n mod_time?: string\n /** User ID who last modified the document */\n mod_user?: number\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type GetDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetDocument403AllOfDebug\n}\n\nexport type GetDocument403AllOfThreeStatusCode =\n (typeof GetDocument403AllOfThreeStatusCode)[keyof typeof GetDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetDocument403AllOfThreeError =\n (typeof GetDocument403AllOfThreeError)[keyof typeof GetDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetDocument403AllOfThree = {\n statusCode: GetDocument403AllOfThreeStatusCode\n error: GetDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetDocument403 = GetDocument403AllOf & GetDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type GetDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetDocument404AllOfDebug\n}\n\nexport type GetDocument404AllOfThreeStatusCode =\n (typeof GetDocument404AllOfThreeStatusCode)[keyof typeof GetDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetDocument404AllOfThreeError =\n (typeof GetDocument404AllOfThreeError)[keyof typeof GetDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetDocument404AllOfThree = {\n statusCode: GetDocument404AllOfThreeStatusCode\n error: GetDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetDocument404 = GetDocument404AllOf & GetDocument404AllOfThree\n\n/**\n * Payload used to update a document record\n */\nexport type UpdateDocumentBody = {\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file?: string\n /** Hospital/clinic ID associated with the document */\n organization_unit?: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /** Category IDs to associate with the document */\n category_ids?: number[]\n}\n\n/**\n * Represents an uploaded document record\n */\nexport type UpdateDocument200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * IP address of the user who uploaded the document\n * @maxLength 20\n */\n user_ip?: string\n /** Timestamp when the document was created */\n creation_time?: string\n /** User ID who created the document */\n creation_user?: number\n /** Timestamp when the document was last modified */\n mod_time?: string\n /** User ID who last modified the document */\n mod_user?: number\n /** Hospital/clinic ID associated with the document */\n organization_unit: number\n /**\n * Display name of the document\n * @maxLength 255\n */\n name?: string\n /**\n * Filename or file path of the document\n * @maxLength 255\n */\n file: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateDocument403AllOfDebug\n}\n\nexport type UpdateDocument403AllOfThreeStatusCode =\n (typeof UpdateDocument403AllOfThreeStatusCode)[keyof typeof UpdateDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateDocument403AllOfThreeError =\n (typeof UpdateDocument403AllOfThreeError)[keyof typeof UpdateDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateDocument403AllOfThree = {\n statusCode: UpdateDocument403AllOfThreeStatusCode\n error: UpdateDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateDocument403 = UpdateDocument403AllOf & UpdateDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateDocument404AllOfDebug\n}\n\nexport type UpdateDocument404AllOfThreeStatusCode =\n (typeof UpdateDocument404AllOfThreeStatusCode)[keyof typeof UpdateDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateDocument404AllOfThreeError =\n (typeof UpdateDocument404AllOfThreeError)[keyof typeof UpdateDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateDocument404AllOfThree = {\n statusCode: UpdateDocument404AllOfThreeStatusCode\n error: UpdateDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateDocument404 = UpdateDocument404AllOf & UpdateDocument404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteDocument200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteDocument403AllOfDebug\n}\n\nexport type DeleteDocument403AllOfThreeStatusCode =\n (typeof DeleteDocument403AllOfThreeStatusCode)[keyof typeof DeleteDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteDocument403AllOfThreeError =\n (typeof DeleteDocument403AllOfThreeError)[keyof typeof DeleteDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteDocument403AllOfThree = {\n statusCode: DeleteDocument403AllOfThreeStatusCode\n error: DeleteDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteDocument403 = DeleteDocument403AllOf & DeleteDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteDocument404AllOfDebug\n}\n\nexport type DeleteDocument404AllOfThreeStatusCode =\n (typeof DeleteDocument404AllOfThreeStatusCode)[keyof typeof DeleteDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteDocument404AllOfThreeError =\n (typeof DeleteDocument404AllOfThreeError)[keyof typeof DeleteDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteDocument404AllOfThree = {\n statusCode: DeleteDocument404AllOfThreeStatusCode\n error: DeleteDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteDocument404 = DeleteDocument404AllOf & DeleteDocument404AllOfThree\n\n/**\n * Payload used to associate a category with a document\n */\nexport type AddCategoryToDocumentBody = {\n /** Category ID to associate with the document */\n categoryId: number\n}\n\n/**\n * Response when the request is successful\n */\nexport type AddCategoryToDocument200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type AddCategoryToDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type AddCategoryToDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: AddCategoryToDocument403AllOfDebug\n}\n\nexport type AddCategoryToDocument403AllOfThreeStatusCode =\n (typeof AddCategoryToDocument403AllOfThreeStatusCode)[keyof typeof AddCategoryToDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AddCategoryToDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type AddCategoryToDocument403AllOfThreeError =\n (typeof AddCategoryToDocument403AllOfThreeError)[keyof typeof AddCategoryToDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AddCategoryToDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type AddCategoryToDocument403AllOfThree = {\n statusCode: AddCategoryToDocument403AllOfThreeStatusCode\n error: AddCategoryToDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type AddCategoryToDocument403 = AddCategoryToDocument403AllOf & AddCategoryToDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type AddCategoryToDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type AddCategoryToDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: AddCategoryToDocument404AllOfDebug\n}\n\nexport type AddCategoryToDocument404AllOfThreeStatusCode =\n (typeof AddCategoryToDocument404AllOfThreeStatusCode)[keyof typeof AddCategoryToDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AddCategoryToDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type AddCategoryToDocument404AllOfThreeError =\n (typeof AddCategoryToDocument404AllOfThreeError)[keyof typeof AddCategoryToDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AddCategoryToDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type AddCategoryToDocument404AllOfThree = {\n statusCode: AddCategoryToDocument404AllOfThreeStatusCode\n error: AddCategoryToDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type AddCategoryToDocument404 = AddCategoryToDocument404AllOf & AddCategoryToDocument404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type RemoveCategoryFromDocument200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type RemoveCategoryFromDocument403AllOfDebug = { [key: string]: unknown }\n\nexport type RemoveCategoryFromDocument403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: RemoveCategoryFromDocument403AllOfDebug\n}\n\nexport type RemoveCategoryFromDocument403AllOfThreeStatusCode =\n (typeof RemoveCategoryFromDocument403AllOfThreeStatusCode)[keyof typeof RemoveCategoryFromDocument403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RemoveCategoryFromDocument403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type RemoveCategoryFromDocument403AllOfThreeError =\n (typeof RemoveCategoryFromDocument403AllOfThreeError)[keyof typeof RemoveCategoryFromDocument403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RemoveCategoryFromDocument403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type RemoveCategoryFromDocument403AllOfThree = {\n statusCode: RemoveCategoryFromDocument403AllOfThreeStatusCode\n error: RemoveCategoryFromDocument403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type RemoveCategoryFromDocument403 = RemoveCategoryFromDocument403AllOf & RemoveCategoryFromDocument403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type RemoveCategoryFromDocument404AllOfDebug = { [key: string]: unknown }\n\nexport type RemoveCategoryFromDocument404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: RemoveCategoryFromDocument404AllOfDebug\n}\n\nexport type RemoveCategoryFromDocument404AllOfThreeStatusCode =\n (typeof RemoveCategoryFromDocument404AllOfThreeStatusCode)[keyof typeof RemoveCategoryFromDocument404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RemoveCategoryFromDocument404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type RemoveCategoryFromDocument404AllOfThreeError =\n (typeof RemoveCategoryFromDocument404AllOfThreeError)[keyof typeof RemoveCategoryFromDocument404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RemoveCategoryFromDocument404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type RemoveCategoryFromDocument404AllOfThree = {\n statusCode: RemoveCategoryFromDocument404AllOfThreeStatusCode\n error: RemoveCategoryFromDocument404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type RemoveCategoryFromDocument404 = RemoveCategoryFromDocument404AllOf & RemoveCategoryFromDocument404AllOfThree\n\nexport type ListDocumentCategoriesParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\n/**\n * Document category data\n */\nexport type ListDocumentCategories200ResultsItemAllOf = {\n /** Unique identifier of the category */\n id: number\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\nexport type ListDocumentCategories200ResultsItemAllOfTwo = {\n /** Number of documents in this category */\n documents_count: number\n}\n\n/**\n * Document category list item\n */\nexport type ListDocumentCategories200ResultsItem = ListDocumentCategories200ResultsItemAllOf &\n ListDocumentCategories200ResultsItemAllOfTwo\n\n/**\n * Paginated response\n */\nexport type ListDocumentCategories200 = {\n /** Array of items of the current page */\n results: ListDocumentCategories200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListDocumentCategories403AllOfDebug = { [key: string]: unknown }\n\nexport type ListDocumentCategories403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListDocumentCategories403AllOfDebug\n}\n\nexport type ListDocumentCategories403AllOfThreeStatusCode =\n (typeof ListDocumentCategories403AllOfThreeStatusCode)[keyof typeof ListDocumentCategories403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocumentCategories403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListDocumentCategories403AllOfThreeError =\n (typeof ListDocumentCategories403AllOfThreeError)[keyof typeof ListDocumentCategories403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocumentCategories403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListDocumentCategories403AllOfThree = {\n statusCode: ListDocumentCategories403AllOfThreeStatusCode\n error: ListDocumentCategories403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListDocumentCategories403 = ListDocumentCategories403AllOf & ListDocumentCategories403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListDocumentCategories404AllOfDebug = { [key: string]: unknown }\n\nexport type ListDocumentCategories404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListDocumentCategories404AllOfDebug\n}\n\nexport type ListDocumentCategories404AllOfThreeStatusCode =\n (typeof ListDocumentCategories404AllOfThreeStatusCode)[keyof typeof ListDocumentCategories404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocumentCategories404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListDocumentCategories404AllOfThreeError =\n (typeof ListDocumentCategories404AllOfThreeError)[keyof typeof ListDocumentCategories404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListDocumentCategories404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListDocumentCategories404AllOfThree = {\n statusCode: ListDocumentCategories404AllOfThreeStatusCode\n error: ListDocumentCategories404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListDocumentCategories404 = ListDocumentCategories404AllOf & ListDocumentCategories404AllOfThree\n\n/**\n * Document category creation payload\n */\nexport type CreateDocumentCategoryBody = {\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\n/**\n * Document category data\n */\nexport type CreateDocumentCategory200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\n/**\n * Debug information of the error\n */\nexport type CreateDocumentCategory403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateDocumentCategory403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateDocumentCategory403AllOfDebug\n}\n\nexport type CreateDocumentCategory403AllOfThreeStatusCode =\n (typeof CreateDocumentCategory403AllOfThreeStatusCode)[keyof typeof CreateDocumentCategory403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocumentCategory403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateDocumentCategory403AllOfThreeError =\n (typeof CreateDocumentCategory403AllOfThreeError)[keyof typeof CreateDocumentCategory403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocumentCategory403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateDocumentCategory403AllOfThree = {\n statusCode: CreateDocumentCategory403AllOfThreeStatusCode\n error: CreateDocumentCategory403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateDocumentCategory403 = CreateDocumentCategory403AllOf & CreateDocumentCategory403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateDocumentCategory404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateDocumentCategory404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateDocumentCategory404AllOfDebug\n}\n\nexport type CreateDocumentCategory404AllOfThreeStatusCode =\n (typeof CreateDocumentCategory404AllOfThreeStatusCode)[keyof typeof CreateDocumentCategory404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocumentCategory404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateDocumentCategory404AllOfThreeError =\n (typeof CreateDocumentCategory404AllOfThreeError)[keyof typeof CreateDocumentCategory404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateDocumentCategory404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateDocumentCategory404AllOfThree = {\n statusCode: CreateDocumentCategory404AllOfThreeStatusCode\n error: CreateDocumentCategory404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateDocumentCategory404 = CreateDocumentCategory404AllOf & CreateDocumentCategory404AllOfThree\n\n/**\n * Document category data\n */\nexport type GetDocumentCategory200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetDocumentCategory403AllOfDebug = { [key: string]: unknown }\n\nexport type GetDocumentCategory403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetDocumentCategory403AllOfDebug\n}\n\nexport type GetDocumentCategory403AllOfThreeStatusCode =\n (typeof GetDocumentCategory403AllOfThreeStatusCode)[keyof typeof GetDocumentCategory403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocumentCategory403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetDocumentCategory403AllOfThreeError =\n (typeof GetDocumentCategory403AllOfThreeError)[keyof typeof GetDocumentCategory403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocumentCategory403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetDocumentCategory403AllOfThree = {\n statusCode: GetDocumentCategory403AllOfThreeStatusCode\n error: GetDocumentCategory403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetDocumentCategory403 = GetDocumentCategory403AllOf & GetDocumentCategory403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetDocumentCategory404AllOfDebug = { [key: string]: unknown }\n\nexport type GetDocumentCategory404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetDocumentCategory404AllOfDebug\n}\n\nexport type GetDocumentCategory404AllOfThreeStatusCode =\n (typeof GetDocumentCategory404AllOfThreeStatusCode)[keyof typeof GetDocumentCategory404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocumentCategory404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetDocumentCategory404AllOfThreeError =\n (typeof GetDocumentCategory404AllOfThreeError)[keyof typeof GetDocumentCategory404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetDocumentCategory404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetDocumentCategory404AllOfThree = {\n statusCode: GetDocumentCategory404AllOfThreeStatusCode\n error: GetDocumentCategory404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetDocumentCategory404 = GetDocumentCategory404AllOf & GetDocumentCategory404AllOfThree\n\n/**\n * Document category update payload\n */\nexport type UpdateDocumentCategoryBody = {\n /**\n * Name of the category\n * @maxLength 100\n */\n name?: string\n}\n\n/**\n * Document category data\n */\nexport type UpdateDocumentCategory200 = {\n /** Unique identifier of the category */\n id: number\n /**\n * Name of the category\n * @maxLength 100\n */\n name: string\n}\n\n/**\n * Debug information of the error\n */\nexport type UpdateDocumentCategory403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateDocumentCategory403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateDocumentCategory403AllOfDebug\n}\n\nexport type UpdateDocumentCategory403AllOfThreeStatusCode =\n (typeof UpdateDocumentCategory403AllOfThreeStatusCode)[keyof typeof UpdateDocumentCategory403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocumentCategory403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateDocumentCategory403AllOfThreeError =\n (typeof UpdateDocumentCategory403AllOfThreeError)[keyof typeof UpdateDocumentCategory403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocumentCategory403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateDocumentCategory403AllOfThree = {\n statusCode: UpdateDocumentCategory403AllOfThreeStatusCode\n error: UpdateDocumentCategory403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateDocumentCategory403 = UpdateDocumentCategory403AllOf & UpdateDocumentCategory403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateDocumentCategory404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateDocumentCategory404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateDocumentCategory404AllOfDebug\n}\n\nexport type UpdateDocumentCategory404AllOfThreeStatusCode =\n (typeof UpdateDocumentCategory404AllOfThreeStatusCode)[keyof typeof UpdateDocumentCategory404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocumentCategory404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateDocumentCategory404AllOfThreeError =\n (typeof UpdateDocumentCategory404AllOfThreeError)[keyof typeof UpdateDocumentCategory404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateDocumentCategory404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateDocumentCategory404AllOfThree = {\n statusCode: UpdateDocumentCategory404AllOfThreeStatusCode\n error: UpdateDocumentCategory404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateDocumentCategory404 = UpdateDocumentCategory404AllOf & UpdateDocumentCategory404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteDocumentCategory200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteDocumentCategory403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteDocumentCategory403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteDocumentCategory403AllOfDebug\n}\n\nexport type DeleteDocumentCategory403AllOfThreeStatusCode =\n (typeof DeleteDocumentCategory403AllOfThreeStatusCode)[keyof typeof DeleteDocumentCategory403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocumentCategory403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteDocumentCategory403AllOfThreeError =\n (typeof DeleteDocumentCategory403AllOfThreeError)[keyof typeof DeleteDocumentCategory403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocumentCategory403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteDocumentCategory403AllOfThree = {\n statusCode: DeleteDocumentCategory403AllOfThreeStatusCode\n error: DeleteDocumentCategory403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteDocumentCategory403 = DeleteDocumentCategory403AllOf & DeleteDocumentCategory403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteDocumentCategory404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteDocumentCategory404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteDocumentCategory404AllOfDebug\n}\n\nexport type DeleteDocumentCategory404AllOfThreeStatusCode =\n (typeof DeleteDocumentCategory404AllOfThreeStatusCode)[keyof typeof DeleteDocumentCategory404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocumentCategory404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteDocumentCategory404AllOfThreeError =\n (typeof DeleteDocumentCategory404AllOfThreeError)[keyof typeof DeleteDocumentCategory404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteDocumentCategory404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteDocumentCategory404AllOfThree = {\n statusCode: DeleteDocumentCategory404AllOfThreeStatusCode\n error: DeleteDocumentCategory404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteDocumentCategory404 = DeleteDocumentCategory404AllOf & DeleteDocumentCategory404AllOfThree\n\nexport type GetFormsDataParams = {\n /**\n * ID of the associated dashboard widget\n */\n dashboardWidgetId: number\n /**\n * Values for params referenced in Card filterParams blocks\n */\n paramValues?: { [key: string]: unknown }\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n}\n\nexport type GetFormsData200ResultsItem = { [key: string]: unknown }\n\n/**\n * Paginated response\n */\nexport type GetFormsData200 = {\n /** Array of items of the current page */\n results: GetFormsData200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type GetFormsData403AllOfDebug = { [key: string]: unknown }\n\nexport type GetFormsData403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetFormsData403AllOfDebug\n}\n\nexport type GetFormsData403AllOfThreeStatusCode =\n (typeof GetFormsData403AllOfThreeStatusCode)[keyof typeof GetFormsData403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetFormsData403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetFormsData403AllOfThreeError =\n (typeof GetFormsData403AllOfThreeError)[keyof typeof GetFormsData403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetFormsData403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetFormsData403AllOfThree = {\n statusCode: GetFormsData403AllOfThreeStatusCode\n error: GetFormsData403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetFormsData403 = GetFormsData403AllOf & GetFormsData403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetFormsData404AllOfDebug = { [key: string]: unknown }\n\nexport type GetFormsData404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetFormsData404AllOfDebug\n}\n\nexport type GetFormsData404AllOfThreeStatusCode =\n (typeof GetFormsData404AllOfThreeStatusCode)[keyof typeof GetFormsData404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetFormsData404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetFormsData404AllOfThreeError =\n (typeof GetFormsData404AllOfThreeError)[keyof typeof GetFormsData404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetFormsData404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetFormsData404AllOfThree = {\n statusCode: GetFormsData404AllOfThreeStatusCode\n error: GetFormsData404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetFormsData404 = GetFormsData404AllOf & GetFormsData404AllOfThree\n\nexport type ListManualTriggersParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * Return each trigger with its ordered `actions` resolved, in a single request\n */\n includeActions?: boolean\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type ListManualTriggers200ResultsItemAllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type ListManualTriggers200ResultsItemAllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type ListManualTriggers200ResultsItemAllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type ListManualTriggers200ResultsItemAllOfSource =\n (typeof ListManualTriggers200ResultsItemAllOfSource)[keyof typeof ListManualTriggers200ResultsItemAllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type ListManualTriggers200ResultsItemAllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type ListManualTriggers200ResultsItemAllOfConditions =\n ListManualTriggers200ResultsItemAllOfConditionsAnyOf | null\n\nexport type ListManualTriggers200ResultsItemAllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type ListManualTriggers200ResultsItemAllOfRelations = ListManualTriggers200ResultsItemAllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type ListManualTriggers200ResultsItemAllOfRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior =\n (typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior)[keyof typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition =\n (typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition)[keyof typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: ListManualTriggers200ResultsItemAllOfConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItem =\n ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOf &\n ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type ListManualTriggers200ResultsItemAllOfConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: ListManualTriggers200ResultsItemAllOfConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: ListManualTriggers200ResultsItemAllOfConfigAnyOfStyles\n conditionalStyles?: ListManualTriggers200ResultsItemAllOfConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type ListManualTriggers200ResultsItemAllOfConfig = ListManualTriggers200ResultsItemAllOfConfigAnyOf | null\n\n/**\n * Manual trigger definition (ecosystem level)\n */\nexport type ListManualTriggers200ResultsItemAllOf = {\n /** Unique identifier of the manual trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: ListManualTriggers200ResultsItemAllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: ListManualTriggers200ResultsItemAllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: ListManualTriggers200ResultsItemAllOfDescription\n /** Source of the event that fires a trigger */\n source: ListManualTriggers200ResultsItemAllOfSource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: ListManualTriggers200ResultsItemAllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: ListManualTriggers200ResultsItemAllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: ListManualTriggers200ResultsItemAllOfRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: ListManualTriggers200ResultsItemAllOfConfig\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType =\n (typeof ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType)[keyof typeof ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload = {\n [key: string]: unknown\n}\n\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOf =\n ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOf &\n ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type ListManualTriggers200ResultsItemAllOfTwotwoActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemName\n /** Executable mechanism of an action */\n type: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemType\n /** Union of action configs, selected by actions.type */\n config: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type ListManualTriggers200ResultsItemAllOfTwotwo = {\n /** Actions the trigger runs, in execution order */\n actions?: ListManualTriggers200ResultsItemAllOfTwotwoActionsItem[]\n}\n\n/**\n * A manual trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type ListManualTriggers200ResultsItem = ListManualTriggers200ResultsItemAllOf &\n ListManualTriggers200ResultsItemAllOfTwotwo\n\n/**\n * Paginated response\n */\nexport type ListManualTriggers200 = {\n /** Array of items of the current page */\n results: ListManualTriggers200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListManualTriggers403AllOfDebug = { [key: string]: unknown }\n\nexport type ListManualTriggers403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListManualTriggers403AllOfDebug\n}\n\nexport type ListManualTriggers403AllOfThreeStatusCode =\n (typeof ListManualTriggers403AllOfThreeStatusCode)[keyof typeof ListManualTriggers403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListManualTriggers403AllOfThreeError =\n (typeof ListManualTriggers403AllOfThreeError)[keyof typeof ListManualTriggers403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListManualTriggers403AllOfThree = {\n statusCode: ListManualTriggers403AllOfThreeStatusCode\n error: ListManualTriggers403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListManualTriggers403 = ListManualTriggers403AllOf & ListManualTriggers403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListManualTriggers404AllOfDebug = { [key: string]: unknown }\n\nexport type ListManualTriggers404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListManualTriggers404AllOfDebug\n}\n\nexport type ListManualTriggers404AllOfThreeStatusCode =\n (typeof ListManualTriggers404AllOfThreeStatusCode)[keyof typeof ListManualTriggers404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListManualTriggers404AllOfThreeError =\n (typeof ListManualTriggers404AllOfThreeError)[keyof typeof ListManualTriggers404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListManualTriggers404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListManualTriggers404AllOfThree = {\n statusCode: ListManualTriggers404AllOfThreeStatusCode\n error: ListManualTriggers404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListManualTriggers404 = ListManualTriggers404AllOf & ListManualTriggers404AllOfThree\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type CreateManualTriggerBodyName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type CreateManualTriggerBodyDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type CreateManualTriggerBodySource =\n (typeof CreateManualTriggerBodySource)[keyof typeof CreateManualTriggerBodySource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodySource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type CreateManualTriggerBodyConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type CreateManualTriggerBodyConditions = CreateManualTriggerBodyConditionsAnyOf | null\n\nexport type CreateManualTriggerBodyRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type CreateManualTriggerBodyRelations = CreateManualTriggerBodyRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTriggerBodyRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior =\n (typeof CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior)[keyof typeof CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type CreateManualTriggerBodyConfigAnyOfStylesIconPosition =\n (typeof CreateManualTriggerBodyConfigAnyOfStylesIconPosition)[keyof typeof CreateManualTriggerBodyConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type CreateManualTriggerBodyConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: CreateManualTriggerBodyConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type CreateManualTriggerBodyConfigAnyOfConditionalStylesItem =\n CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOf &\n CreateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type CreateManualTriggerBodyConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: CreateManualTriggerBodyConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: CreateManualTriggerBodyConfigAnyOfStyles\n conditionalStyles?: CreateManualTriggerBodyConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type CreateManualTriggerBodyConfig = CreateManualTriggerBodyConfigAnyOf | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfType =\n (typeof CreateManualTriggerBodyActionsItemAnyOfType)[keyof typeof CreateManualTriggerBodyActionsItemAnyOfType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyActionsItemAnyOfType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfConfigAnyOf =\n CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOf & CreateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfRetentionDays = number | null\n\n/**\n * Action created and linked in the same request\n */\nexport type CreateManualTriggerBodyActionsItemAnyOf = {\n /** Human-readable label of the action. Null when it has none */\n name?: CreateManualTriggerBodyActionsItemAnyOfName\n /** Executable mechanism of an action */\n type: CreateManualTriggerBodyActionsItemAnyOfType\n /** Union of action configs, selected by actions.type */\n config: CreateManualTriggerBodyActionsItemAnyOfConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTriggerBodyActionsItemAnyOfRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroType =\n (typeof CreateManualTriggerBodyActionsItemAnyOfOnezeroType)[keyof typeof CreateManualTriggerBodyActionsItemAnyOfOnezeroType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTriggerBodyActionsItemAnyOfOnezeroType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf =\n CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf &\n CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezeroRetentionDays = number | null\n\n/**\n * Existing action updated and linked in the same request\n */\nexport type CreateManualTriggerBodyActionsItemAnyOfOnezero = {\n id: number\n /** Human-readable label of the action. Null when it has none */\n name?: CreateManualTriggerBodyActionsItemAnyOfOnezeroName\n /** Executable mechanism of an action */\n type?: CreateManualTriggerBodyActionsItemAnyOfOnezeroType\n /** Union of action configs, selected by actions.type */\n config?: CreateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTriggerBodyActionsItemAnyOfOnezeroRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * An action a trigger runs: linked, created, or updated in place\n */\nexport type CreateManualTriggerBodyActionsItem =\n | number\n | CreateManualTriggerBodyActionsItemAnyOf\n | CreateManualTriggerBodyActionsItemAnyOfOnezero\n\n/**\n * Payload used to create a manual trigger, optionally with the actions it runs\n */\nexport type CreateManualTriggerBody = {\n /** Human-readable label of the trigger. Null when it has none */\n name?: CreateManualTriggerBodyName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: CreateManualTriggerBodyDescription\n /** Source of the event that fires a trigger */\n source: CreateManualTriggerBodySource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: CreateManualTriggerBodyConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: CreateManualTriggerBodyRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTriggerBodyRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: CreateManualTriggerBodyConfig\n /** Full ordered set of actions the trigger runs; the array position is the execution order. An empty array leaves the trigger with none */\n actions?: CreateManualTriggerBodyActionsItem[]\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type CreateManualTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type CreateManualTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type CreateManualTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type CreateManualTrigger200AllOfSource =\n (typeof CreateManualTrigger200AllOfSource)[keyof typeof CreateManualTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type CreateManualTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type CreateManualTrigger200AllOfConditions = CreateManualTrigger200AllOfConditionsAnyOf | null\n\nexport type CreateManualTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type CreateManualTrigger200AllOfRelations = CreateManualTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTrigger200AllOfRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior =\n (typeof CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior)[keyof typeof CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition =\n (typeof CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition)[keyof typeof CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: CreateManualTrigger200AllOfConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItem =\n CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf &\n CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type CreateManualTrigger200AllOfConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: CreateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: CreateManualTrigger200AllOfConfigAnyOfStyles\n conditionalStyles?: CreateManualTrigger200AllOfConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type CreateManualTrigger200AllOfConfig = CreateManualTrigger200AllOfConfigAnyOf | null\n\n/**\n * Manual trigger definition (ecosystem level)\n */\nexport type CreateManualTrigger200AllOf = {\n /** Unique identifier of the manual trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: CreateManualTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: CreateManualTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: CreateManualTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: CreateManualTrigger200AllOfSource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: CreateManualTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: CreateManualTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTrigger200AllOfRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: CreateManualTrigger200AllOfConfig\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemType =\n (typeof CreateManualTrigger200AllOfTwotwoActionsItemType)[keyof typeof CreateManualTrigger200AllOfTwotwoActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger200AllOfTwotwoActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOf =\n CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf &\n CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type CreateManualTrigger200AllOfTwotwoActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: CreateManualTrigger200AllOfTwotwoActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: CreateManualTrigger200AllOfTwotwoActionsItemName\n /** Executable mechanism of an action */\n type: CreateManualTrigger200AllOfTwotwoActionsItemType\n /** Union of action configs, selected by actions.type */\n config: CreateManualTrigger200AllOfTwotwoActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: CreateManualTrigger200AllOfTwotwoActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type CreateManualTrigger200AllOfTwotwo = {\n /** Actions the trigger runs, in execution order */\n actions?: CreateManualTrigger200AllOfTwotwoActionsItem[]\n}\n\n/**\n * A manual trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type CreateManualTrigger200 = CreateManualTrigger200AllOf & CreateManualTrigger200AllOfTwotwo\n\n/**\n * Debug information of the error\n */\nexport type CreateManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type CreateManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateManualTrigger403AllOfDebug\n}\n\nexport type CreateManualTrigger403AllOfThreeStatusCode =\n (typeof CreateManualTrigger403AllOfThreeStatusCode)[keyof typeof CreateManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type CreateManualTrigger403AllOfThreeError =\n (typeof CreateManualTrigger403AllOfThreeError)[keyof typeof CreateManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type CreateManualTrigger403AllOfThree = {\n statusCode: CreateManualTrigger403AllOfThreeStatusCode\n error: CreateManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type CreateManualTrigger403 = CreateManualTrigger403AllOf & CreateManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type CreateManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type CreateManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: CreateManualTrigger404AllOfDebug\n}\n\nexport type CreateManualTrigger404AllOfThreeStatusCode =\n (typeof CreateManualTrigger404AllOfThreeStatusCode)[keyof typeof CreateManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type CreateManualTrigger404AllOfThreeError =\n (typeof CreateManualTrigger404AllOfThreeError)[keyof typeof CreateManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type CreateManualTrigger404AllOfThree = {\n statusCode: CreateManualTrigger404AllOfThreeStatusCode\n error: CreateManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type CreateManualTrigger404 = CreateManualTrigger404AllOf & CreateManualTrigger404AllOfThree\n\nexport type ListAvailableManualTriggersParams = {\n /**\n * Source of the event that fires a trigger\n */\n source: ListAvailableManualTriggersSource\n /**\n * Concrete model/designer/field the triggers are bound to\n * @maxLength 255\n */\n target: string\n /**\n * Identifier of the entity the triggers would run against\n */\n entityId: number\n}\n\nexport type ListAvailableManualTriggersSource =\n (typeof ListAvailableManualTriggersSource)[keyof typeof ListAvailableManualTriggersSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggersSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type ListAvailableManualTriggers200ResultsItemName = string | null\n\n/**\n * Reason the declared relations could not be loaded before evaluating, when that happened. Null otherwise\n */\nexport type ListAvailableManualTriggers200ResultsItemRelationsSkipped = string | null\n\n/**\n * Side of the label the icon sits on\n */\nexport type ListAvailableManualTriggers200ResultsItemStyleIconPosition =\n (typeof ListAvailableManualTriggers200ResultsItemStyleIconPosition)[keyof typeof ListAvailableManualTriggers200ResultsItemStyleIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers200ResultsItemStyleIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type ListAvailableManualTriggers200ResultsItemStyle = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: ListAvailableManualTriggers200ResultsItemStyleIconPosition\n}\n\n/**\n * A manual trigger applicable to an entity, with its conditions already evaluated\n */\nexport type ListAvailableManualTriggers200ResultsItem = {\n /** Identifier of the manual trigger */\n id: number\n /** Human-readable label of the trigger. Null when it has none */\n name?: ListAvailableManualTriggers200ResultsItemName\n /** Whether the trigger conditions hold for this entity right now. A trigger with no conditions always matches. False means the button is shown disabled: triggers configured to hide when unmatched are not listed */\n matched: boolean\n /** Number of actions the trigger would run */\n actionsCount: number\n /** Reason the declared relations could not be loaded before evaluating, when that happened. Null otherwise */\n relationsSkipped?: ListAvailableManualTriggers200ResultsItemRelationsSkipped\n /** Presentation of the button a manual trigger is offered on */\n style?: ListAvailableManualTriggers200ResultsItemStyle\n}\n\n/**\n * Manual triggers applicable to an entity, with their conditions evaluated\n */\nexport type ListAvailableManualTriggers200 = {\n /** Applicable manual triggers */\n results: ListAvailableManualTriggers200ResultsItem[]\n}\n\n/**\n * Debug information of the error\n */\nexport type ListAvailableManualTriggers403AllOfDebug = { [key: string]: unknown }\n\nexport type ListAvailableManualTriggers403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAvailableManualTriggers403AllOfDebug\n}\n\nexport type ListAvailableManualTriggers403AllOfThreeStatusCode =\n (typeof ListAvailableManualTriggers403AllOfThreeStatusCode)[keyof typeof ListAvailableManualTriggers403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListAvailableManualTriggers403AllOfThreeError =\n (typeof ListAvailableManualTriggers403AllOfThreeError)[keyof typeof ListAvailableManualTriggers403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListAvailableManualTriggers403AllOfThree = {\n statusCode: ListAvailableManualTriggers403AllOfThreeStatusCode\n error: ListAvailableManualTriggers403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListAvailableManualTriggers403 = ListAvailableManualTriggers403AllOf &\n ListAvailableManualTriggers403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListAvailableManualTriggers404AllOfDebug = { [key: string]: unknown }\n\nexport type ListAvailableManualTriggers404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListAvailableManualTriggers404AllOfDebug\n}\n\nexport type ListAvailableManualTriggers404AllOfThreeStatusCode =\n (typeof ListAvailableManualTriggers404AllOfThreeStatusCode)[keyof typeof ListAvailableManualTriggers404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListAvailableManualTriggers404AllOfThreeError =\n (typeof ListAvailableManualTriggers404AllOfThreeError)[keyof typeof ListAvailableManualTriggers404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListAvailableManualTriggers404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListAvailableManualTriggers404AllOfThree = {\n statusCode: ListAvailableManualTriggers404AllOfThreeStatusCode\n error: ListAvailableManualTriggers404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListAvailableManualTriggers404 = ListAvailableManualTriggers404AllOf &\n ListAvailableManualTriggers404AllOfThree\n\nexport type GetManualTriggerParams = {\n /**\n * Return each trigger with its ordered `actions` resolved, in a single request\n */\n includeActions?: boolean\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type GetManualTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type GetManualTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type GetManualTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type GetManualTrigger200AllOfSource =\n (typeof GetManualTrigger200AllOfSource)[keyof typeof GetManualTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type GetManualTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type GetManualTrigger200AllOfConditions = GetManualTrigger200AllOfConditionsAnyOf | null\n\nexport type GetManualTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type GetManualTrigger200AllOfRelations = GetManualTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type GetManualTrigger200AllOfRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior =\n (typeof GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior)[keyof typeof GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type GetManualTrigger200AllOfConfigAnyOfStylesIconPosition =\n (typeof GetManualTrigger200AllOfConfigAnyOfStylesIconPosition)[keyof typeof GetManualTrigger200AllOfConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type GetManualTrigger200AllOfConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: GetManualTrigger200AllOfConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type GetManualTrigger200AllOfConfigAnyOfConditionalStylesItem =\n GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf &\n GetManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type GetManualTrigger200AllOfConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: GetManualTrigger200AllOfConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: GetManualTrigger200AllOfConfigAnyOfStyles\n conditionalStyles?: GetManualTrigger200AllOfConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type GetManualTrigger200AllOfConfig = GetManualTrigger200AllOfConfigAnyOf | null\n\n/**\n * Manual trigger definition (ecosystem level)\n */\nexport type GetManualTrigger200AllOf = {\n /** Unique identifier of the manual trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: GetManualTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: GetManualTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: GetManualTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: GetManualTrigger200AllOfSource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: GetManualTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: GetManualTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: GetManualTrigger200AllOfRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: GetManualTrigger200AllOfConfig\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemType =\n (typeof GetManualTrigger200AllOfTwotwoActionsItemType)[keyof typeof GetManualTrigger200AllOfTwotwoActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger200AllOfTwotwoActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOf =\n GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf &\n GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type GetManualTrigger200AllOfTwotwoActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: GetManualTrigger200AllOfTwotwoActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: GetManualTrigger200AllOfTwotwoActionsItemName\n /** Executable mechanism of an action */\n type: GetManualTrigger200AllOfTwotwoActionsItemType\n /** Union of action configs, selected by actions.type */\n config: GetManualTrigger200AllOfTwotwoActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: GetManualTrigger200AllOfTwotwoActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type GetManualTrigger200AllOfTwotwo = {\n /** Actions the trigger runs, in execution order */\n actions?: GetManualTrigger200AllOfTwotwoActionsItem[]\n}\n\n/**\n * A manual trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type GetManualTrigger200 = GetManualTrigger200AllOf & GetManualTrigger200AllOfTwotwo\n\n/**\n * Debug information of the error\n */\nexport type GetManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type GetManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetManualTrigger403AllOfDebug\n}\n\nexport type GetManualTrigger403AllOfThreeStatusCode =\n (typeof GetManualTrigger403AllOfThreeStatusCode)[keyof typeof GetManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetManualTrigger403AllOfThreeError =\n (typeof GetManualTrigger403AllOfThreeError)[keyof typeof GetManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetManualTrigger403AllOfThree = {\n statusCode: GetManualTrigger403AllOfThreeStatusCode\n error: GetManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetManualTrigger403 = GetManualTrigger403AllOf & GetManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type GetManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetManualTrigger404AllOfDebug\n}\n\nexport type GetManualTrigger404AllOfThreeStatusCode =\n (typeof GetManualTrigger404AllOfThreeStatusCode)[keyof typeof GetManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetManualTrigger404AllOfThreeError =\n (typeof GetManualTrigger404AllOfThreeError)[keyof typeof GetManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetManualTrigger404AllOfThree = {\n statusCode: GetManualTrigger404AllOfThreeStatusCode\n error: GetManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetManualTrigger404 = GetManualTrigger404AllOf & GetManualTrigger404AllOfThree\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type UpdateManualTriggerBodyName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type UpdateManualTriggerBodyDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type UpdateManualTriggerBodySource =\n (typeof UpdateManualTriggerBodySource)[keyof typeof UpdateManualTriggerBodySource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodySource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type UpdateManualTriggerBodyConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type UpdateManualTriggerBodyConditions = UpdateManualTriggerBodyConditionsAnyOf | null\n\nexport type UpdateManualTriggerBodyRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type UpdateManualTriggerBodyRelations = UpdateManualTriggerBodyRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTriggerBodyRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior =\n (typeof UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior)[keyof typeof UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type UpdateManualTriggerBodyConfigAnyOfStylesIconPosition =\n (typeof UpdateManualTriggerBodyConfigAnyOfStylesIconPosition)[keyof typeof UpdateManualTriggerBodyConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type UpdateManualTriggerBodyConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: UpdateManualTriggerBodyConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type UpdateManualTriggerBodyConfigAnyOfConditionalStylesItem =\n UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOf &\n UpdateManualTriggerBodyConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type UpdateManualTriggerBodyConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: UpdateManualTriggerBodyConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: UpdateManualTriggerBodyConfigAnyOfStyles\n conditionalStyles?: UpdateManualTriggerBodyConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type UpdateManualTriggerBodyConfig = UpdateManualTriggerBodyConfigAnyOf | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfType =\n (typeof UpdateManualTriggerBodyActionsItemAnyOfType)[keyof typeof UpdateManualTriggerBodyActionsItemAnyOfType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyActionsItemAnyOfType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOf =\n UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOf & UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfRetentionDays = number | null\n\n/**\n * Action created and linked in the same request\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOf = {\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateManualTriggerBodyActionsItemAnyOfName\n /** Executable mechanism of an action */\n type: UpdateManualTriggerBodyActionsItemAnyOfType\n /** Union of action configs, selected by actions.type */\n config: UpdateManualTriggerBodyActionsItemAnyOfConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTriggerBodyActionsItemAnyOfRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroType =\n (typeof UpdateManualTriggerBodyActionsItemAnyOfOnezeroType)[keyof typeof UpdateManualTriggerBodyActionsItemAnyOfOnezeroType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTriggerBodyActionsItemAnyOfOnezeroType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf =\n UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOf &\n UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezeroRetentionDays = number | null\n\n/**\n * Existing action updated and linked in the same request\n */\nexport type UpdateManualTriggerBodyActionsItemAnyOfOnezero = {\n id: number\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroName\n /** Executable mechanism of an action */\n type?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroType\n /** Union of action configs, selected by actions.type */\n config?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTriggerBodyActionsItemAnyOfOnezeroRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\n/**\n * An action a trigger runs: linked, created, or updated in place\n */\nexport type UpdateManualTriggerBodyActionsItem =\n | number\n | UpdateManualTriggerBodyActionsItemAnyOf\n | UpdateManualTriggerBodyActionsItemAnyOfOnezero\n\n/**\n * Payload used to update a manual trigger, optionally replacing the actions it runs\n */\nexport type UpdateManualTriggerBody = {\n /** Human-readable label of the trigger. Null when it has none */\n name?: UpdateManualTriggerBodyName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: UpdateManualTriggerBodyDescription\n /** Source of the event that fires a trigger */\n source?: UpdateManualTriggerBodySource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target?: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: UpdateManualTriggerBodyConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: UpdateManualTriggerBodyRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTriggerBodyRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: UpdateManualTriggerBodyConfig\n /** Full ordered set of actions the trigger runs; the array position is the execution order. An empty array leaves the trigger with none */\n actions?: UpdateManualTriggerBodyActionsItem[]\n}\n\n/**\n * Project this trigger belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateManualTrigger200AllOfProjectId = number | null\n\n/**\n * Human-readable label of the trigger. Null when it has none\n */\nexport type UpdateManualTrigger200AllOfName = string | null\n\n/**\n * What the trigger is for, for whoever administers it. Null when it has none\n */\nexport type UpdateManualTrigger200AllOfDescription = string | null\n\n/**\n * Source of the event that fires a trigger\n */\nexport type UpdateManualTrigger200AllOfSource =\n (typeof UpdateManualTrigger200AllOfSource)[keyof typeof UpdateManualTrigger200AllOfSource]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfSource = {\n model: 'model',\n displayer: 'displayer',\n} as const\n\nexport type UpdateManualTrigger200AllOfConditionsAnyOf = { [key: string]: unknown }\n\n/**\n * jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against.\n */\nexport type UpdateManualTrigger200AllOfConditions = UpdateManualTrigger200AllOfConditionsAnyOf | null\n\nexport type UpdateManualTrigger200AllOfRelationsAnyOf = {\n /** Relation names to eager-load onto `current` (e.g. [\"patient\"]) */\n join?: string[]\n}\n\n/**\n * Related models loaded into the context before evaluating the conditions and running the actions. Null means none.\n */\nexport type UpdateManualTrigger200AllOfRelations = UpdateManualTrigger200AllOfRelationsAnyOf | null\n\n/**\n * Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTrigger200AllOfRetentionDays = number | null\n\n/**\n * What to do with the button when the trigger does not match: hide it or disable it\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior =\n (typeof UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior)[keyof typeof UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior = {\n hide: 'hide',\n disable: 'disable',\n} as const\n\n/**\n * Side of the label the icon sits on\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition =\n (typeof UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition)[keyof typeof UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfStyles = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: UpdateManualTrigger200AllOfConfigAnyOfStylesIconPosition\n}\n\n/**\n * Side of the label the icon sits on\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition =\n (typeof UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition)[keyof typeof UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition = {\n left: 'left',\n right: 'right',\n} as const\n\n/**\n * Presentation of the button a manual trigger is offered on\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf = {\n /** Handlebars template rendered as the button label */\n text?: string\n /** Handlebars template rendered as the button tooltip. Written for whoever uses the listing, unlike `name`, which labels the trigger where it is administered */\n tooltip?: string\n /** Label colour */\n textColor?: string\n /** Background colour */\n bgColor?: string\n /** Icon name, resolved by the consumer */\n icon?: string\n /** Side of the label the icon sits on */\n iconPosition?: UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfIconPosition\n}\n\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf = {\n [key: string]: unknown\n}\n\n/**\n * jsonLogic conditions selecting this style. Absent or null always applies\n */\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions =\n UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditionsAnyOf | null\n\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree = {\n /** jsonLogic conditions selecting this style. Absent or null always applies */\n conditions?: UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThreeConditions\n /** Keep evaluating later entries after this one matches */\n continueEvaluate?: boolean\n}\n\nexport type UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItem =\n UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOf &\n UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItemAllOfThree\n\nexport type UpdateManualTrigger200AllOfConfigAnyOf = {\n /** What to do with the button when the trigger does not match: hide it or disable it */\n unmatchedBehavior?: UpdateManualTrigger200AllOfConfigAnyOfUnmatchedBehavior\n /** Presentation of the button a manual trigger is offered on */\n styles?: UpdateManualTrigger200AllOfConfigAnyOfStyles\n conditionalStyles?: UpdateManualTrigger200AllOfConfigAnyOfConditionalStylesItem[]\n [key: string]: unknown\n}\n\n/**\n * Configuration of the trigger beyond its firing rules. Null means none\n */\nexport type UpdateManualTrigger200AllOfConfig = UpdateManualTrigger200AllOfConfigAnyOf | null\n\n/**\n * Manual trigger definition (ecosystem level)\n */\nexport type UpdateManualTrigger200AllOf = {\n /** Unique identifier of the manual trigger */\n id: number\n /** Project this trigger belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateManualTrigger200AllOfProjectId\n /** Human-readable label of the trigger. Null when it has none */\n name?: UpdateManualTrigger200AllOfName\n /** What the trigger is for, for whoever administers it. Null when it has none */\n description?: UpdateManualTrigger200AllOfDescription\n /** Source of the event that fires a trigger */\n source: UpdateManualTrigger200AllOfSource\n /**\n * Concrete model/designer/field the trigger is bound to. Always set: there is no wildcard\n * @maxLength 255\n */\n target: string\n /** jsonLogic conditions (root object) evaluated to decide whether the trigger runs. Evaluated against the selected entity and the request context; `old` is always null, because the trigger is invoked explicitly and there is no previous state to compare against. */\n conditions?: UpdateManualTrigger200AllOfConditions\n /** Related models loaded into the context before evaluating the conditions and running the actions. Null means none. */\n relations?: UpdateManualTrigger200AllOfRelations\n /** Whether the trigger is active */\n enabled?: boolean\n /** Retention in days for the process_log entries of this trigger. Origin — no inheritance: null or 0 = disabled (never expires); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTrigger200AllOfRetentionDays\n /** Configuration of the trigger beyond its firing rules. Null means none */\n config?: UpdateManualTrigger200AllOfConfig\n}\n\n/**\n * Project this action belongs to. Null when it is ecosystem-wide\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemProjectId = number | null\n\n/**\n * Human-readable label of the action. Null when it has none\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemName = string | null\n\n/**\n * Executable mechanism of an action\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemType =\n (typeof UpdateManualTrigger200AllOfTwotwoActionsItemType)[keyof typeof UpdateManualTrigger200AllOfTwotwoActionsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger200AllOfTwotwoActionsItemType = {\n ApiAction: 'ApiAction',\n} as const\n\n/**\n * Base config an override-type merges its `payload` over (only overridable keys are applied).\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault = { [key: string]: unknown }\n\n/**\n * Base fields shared by every action config\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf = {\n /** Identifier of the concrete action within its type (e.g. the ApiAction value for type \"ApiAction\"). Any identifier for future types. */\n id: string\n /** Where the effective config is resolved from. Generic string in the base; refined per type in the future (e.g. \"inline\" | \"file\"). */\n location?: string\n /** Allow-list of config keys a payload may override on top of `default`. Mandatory for override-types; absent for non-override types such as ApiAction. */\n overridable?: string[]\n /** Base config an override-type merges its `payload` over (only overridable keys are applied). */\n default?: UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfDefault\n}\n\n/**\n * Data mapping needed to run the ApiAction\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload = { [key: string]: unknown }\n\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree = {\n /** Data mapping needed to run the ApiAction */\n payload: UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThreePayload\n}\n\n/**\n * Config for actions of type \"ApiAction\"\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOf =\n UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOf &\n UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOfAllOfThree\n\n/**\n * Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write).\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItemRetentionDays = number | null\n\n/**\n * Reusable executable action (ecosystem level)\n */\nexport type UpdateManualTrigger200AllOfTwotwoActionsItem = {\n /** Unique identifier of the action */\n id: number\n /** Project this action belongs to. Null when it is ecosystem-wide */\n project_id?: UpdateManualTrigger200AllOfTwotwoActionsItemProjectId\n /** Human-readable label of the action. Null when it has none */\n name?: UpdateManualTrigger200AllOfTwotwoActionsItemName\n /** Executable mechanism of an action */\n type: UpdateManualTrigger200AllOfTwotwoActionsItemType\n /** Union of action configs, selected by actions.type */\n config: UpdateManualTrigger200AllOfTwotwoActionsItemConfigAnyOf\n /** Retention in days for the process_log entries of this action. Null = inherit (use the firing trigger retention; never if the trigger is null/0); 0 = disabled (never expires, regardless of the trigger); N (>0) = enabled (expires N days after write). */\n retention_days?: UpdateManualTrigger200AllOfTwotwoActionsItemRetentionDays\n /** Whether the action belongs to the reusable catalog. False (the default) marks it single-use: it is deleted once no trigger links it any more, including before it is ever linked — a standalone action created through POST /action and left unlinked is swept as soon as any trigger of the project writes its links. Set it to true to create one that survives on its own */\n library?: boolean\n}\n\nexport type UpdateManualTrigger200AllOfTwotwo = {\n /** Actions the trigger runs, in execution order */\n actions?: UpdateManualTrigger200AllOfTwotwoActionsItem[]\n}\n\n/**\n * A manual trigger and, when the request wrote them or `includeActions` asked for them, the actions it runs\n */\nexport type UpdateManualTrigger200 = UpdateManualTrigger200AllOf & UpdateManualTrigger200AllOfTwotwo\n\n/**\n * Debug information of the error\n */\nexport type UpdateManualTrigger400AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateManualTrigger400AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateManualTrigger400AllOfDebug\n}\n\nexport type UpdateManualTrigger400AllOfThreeStatusCode =\n (typeof UpdateManualTrigger400AllOfThreeStatusCode)[keyof typeof UpdateManualTrigger400AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger400AllOfThreeStatusCode = {\n NUMBER_400: 400,\n} as const\n\nexport type UpdateManualTrigger400AllOfThreeError =\n (typeof UpdateManualTrigger400AllOfThreeError)[keyof typeof UpdateManualTrigger400AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger400AllOfThreeError = {\n 'bad-request': 'bad-request',\n} as const\n\nexport type UpdateManualTrigger400AllOfThree = {\n statusCode: UpdateManualTrigger400AllOfThreeStatusCode\n error: UpdateManualTrigger400AllOfThreeError\n}\n\n/**\n * Error when the request payload is invalid or rejected by business rules\n */\nexport type UpdateManualTrigger400 = UpdateManualTrigger400AllOf & UpdateManualTrigger400AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateManualTrigger403AllOfDebug\n}\n\nexport type UpdateManualTrigger403AllOfThreeStatusCode =\n (typeof UpdateManualTrigger403AllOfThreeStatusCode)[keyof typeof UpdateManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type UpdateManualTrigger403AllOfThreeError =\n (typeof UpdateManualTrigger403AllOfThreeError)[keyof typeof UpdateManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type UpdateManualTrigger403AllOfThree = {\n statusCode: UpdateManualTrigger403AllOfThreeStatusCode\n error: UpdateManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type UpdateManualTrigger403 = UpdateManualTrigger403AllOf & UpdateManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type UpdateManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type UpdateManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: UpdateManualTrigger404AllOfDebug\n}\n\nexport type UpdateManualTrigger404AllOfThreeStatusCode =\n (typeof UpdateManualTrigger404AllOfThreeStatusCode)[keyof typeof UpdateManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type UpdateManualTrigger404AllOfThreeError =\n (typeof UpdateManualTrigger404AllOfThreeError)[keyof typeof UpdateManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type UpdateManualTrigger404AllOfThree = {\n statusCode: UpdateManualTrigger404AllOfThreeStatusCode\n error: UpdateManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type UpdateManualTrigger404 = UpdateManualTrigger404AllOf & UpdateManualTrigger404AllOfThree\n\n/**\n * Response when the request is successful\n */\nexport type DeleteManualTrigger200 = {\n /** If the request success or not */\n success: boolean\n}\n\n/**\n * Debug information of the error\n */\nexport type DeleteManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteManualTrigger403AllOfDebug\n}\n\nexport type DeleteManualTrigger403AllOfThreeStatusCode =\n (typeof DeleteManualTrigger403AllOfThreeStatusCode)[keyof typeof DeleteManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type DeleteManualTrigger403AllOfThreeError =\n (typeof DeleteManualTrigger403AllOfThreeError)[keyof typeof DeleteManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type DeleteManualTrigger403AllOfThree = {\n statusCode: DeleteManualTrigger403AllOfThreeStatusCode\n error: DeleteManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type DeleteManualTrigger403 = DeleteManualTrigger403AllOf & DeleteManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type DeleteManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type DeleteManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: DeleteManualTrigger404AllOfDebug\n}\n\nexport type DeleteManualTrigger404AllOfThreeStatusCode =\n (typeof DeleteManualTrigger404AllOfThreeStatusCode)[keyof typeof DeleteManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type DeleteManualTrigger404AllOfThreeError =\n (typeof DeleteManualTrigger404AllOfThreeError)[keyof typeof DeleteManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type DeleteManualTrigger404AllOfThree = {\n statusCode: DeleteManualTrigger404AllOfThreeStatusCode\n error: DeleteManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type DeleteManualTrigger404 = DeleteManualTrigger404AllOf & DeleteManualTrigger404AllOfThree\n\n/**\n * Payload used to run a manual trigger against an entity\n */\nexport type RunManualTriggerBody = {\n /** Identifier of the entity to run the trigger against */\n entityId: number\n}\n\n/**\n * Outcome of evaluating and running one trigger\n */\nexport type RunManualTrigger200 = {\n /** Identifier of the evaluated trigger */\n triggerId: number\n /** Whether the conditions held, so the actions were run */\n matched: boolean\n /** Number of actions that were executed, whether they succeeded or not */\n actionsRun: number\n /** Number of actions aborted by context validation */\n actionsAborted: number\n /** Number of executed actions that ended in error. A subset of actionsRun */\n actionsFailed: number\n}\n\n/**\n * Debug information of the error\n */\nexport type RunManualTrigger403AllOfDebug = { [key: string]: unknown }\n\nexport type RunManualTrigger403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: RunManualTrigger403AllOfDebug\n}\n\nexport type RunManualTrigger403AllOfThreeStatusCode =\n (typeof RunManualTrigger403AllOfThreeStatusCode)[keyof typeof RunManualTrigger403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RunManualTrigger403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type RunManualTrigger403AllOfThreeError =\n (typeof RunManualTrigger403AllOfThreeError)[keyof typeof RunManualTrigger403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RunManualTrigger403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type RunManualTrigger403AllOfThree = {\n statusCode: RunManualTrigger403AllOfThreeStatusCode\n error: RunManualTrigger403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type RunManualTrigger403 = RunManualTrigger403AllOf & RunManualTrigger403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type RunManualTrigger404AllOfDebug = { [key: string]: unknown }\n\nexport type RunManualTrigger404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: RunManualTrigger404AllOfDebug\n}\n\nexport type RunManualTrigger404AllOfThreeStatusCode =\n (typeof RunManualTrigger404AllOfThreeStatusCode)[keyof typeof RunManualTrigger404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RunManualTrigger404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type RunManualTrigger404AllOfThreeError =\n (typeof RunManualTrigger404AllOfThreeError)[keyof typeof RunManualTrigger404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RunManualTrigger404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type RunManualTrigger404AllOfThree = {\n statusCode: RunManualTrigger404AllOfThreeStatusCode\n error: RunManualTrigger404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type RunManualTrigger404 = RunManualTrigger404AllOf & RunManualTrigger404AllOfThree\n\nexport type ListProcessLogsParams = {\n /**\n * Page number starting from 0\n */\n page?: number\n /**\n * The number of items per page\n */\n perPage?: number\n /**\n * What kind of event a process_log row records, and what shape its extra_data takes\n */\n code?: ListProcessLogsCode\n /**\n * Severity of the log row (not a layout/kind marker): LOG, RESULT, WARNING or ERROR\n */\n type?: ListProcessLogsType\n /**\n * Filter by the related entity kind\n */\n related_model?: string\n /**\n * Filter by the id of the related entity\n */\n related_id?: string\n /**\n * Filter by the id of the parent process_log row\n */\n parent_id?: number\n /**\n * Filter by the domain entity kind that originated the execution\n */\n subject_model?: string\n /**\n * Filter by the id of the domain entity that originated the execution\n */\n subject_id?: string\n /**\n * Filter by whether the row needs review\n */\n requires_attention?: boolean\n /**\n * Filter by whether the row has been reviewed\n */\n reviewed?: boolean\n /**\n * Only rows created at or after this instant. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Emitted as ISO-8601 in UTC\n */\n created_from?: string\n /**\n * Only rows created at or before this instant. Only this spelling is accepted: `T` as the separator (a space is a 400) and an offset with minutes, either `Z` or `±HH:MM` (`+01` and `+0100` are a 400). A lowercase `t`/`z` and a fractional second are fine. Emitted as ISO-8601 in UTC\n */\n created_to?: string\n}\n\nexport type ListProcessLogsCode = (typeof ListProcessLogsCode)[keyof typeof ListProcessLogsCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListProcessLogsCode = {\n bulk_upload_batch: 'bulk_upload_batch',\n bulk_upload_success: 'bulk_upload_success',\n bulk_upload_error: 'bulk_upload_error',\n trigger_evaluation: 'trigger_evaluation',\n trigger_error: 'trigger_error',\n trigger_action: 'trigger_action',\n} as const\n\nexport type ListProcessLogsType = (typeof ListProcessLogsType)[keyof typeof ListProcessLogsType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListProcessLogsType = {\n NUMBER_0: 0,\n NUMBER_1: 1,\n NUMBER_MINUS_1: -1,\n NUMBER_MINUS_2: -2,\n} as const\n\n/**\n * Project this row belongs to, when scoped to one\n */\nexport type ListProcessLogs200ResultsItemProjectId = number | null\n\n/**\n * User who caused the row to be written, when a user did\n */\nexport type ListProcessLogs200ResultsItemCreatedUser = number | null\n\n/**\n * Table/entity kind the row is about\n */\nexport type ListProcessLogs200ResultsItemRelatedModel = string | null\n\n/**\n * Id of the related entity, as a string\n */\nexport type ListProcessLogs200ResultsItemRelatedId = string | null\n\nexport type ListProcessLogs200ResultsItemCode =\n | 'bulk_upload_batch'\n | 'bulk_upload_success'\n | 'bulk_upload_error'\n | 'trigger_evaluation'\n | 'trigger_error'\n | 'trigger_action'\n | null\n\n/**\n * Extended message, when needed\n */\nexport type ListProcessLogs200ResultsItemLongLog = string | null\n\nexport type ListProcessLogs200ResultsItemExtraDataAnyOf = { [key: string]: unknown }\n\n/**\n * Structured data specific to `code` — see the per-code schemas for the trigger-engine codes\n */\nexport type ListProcessLogs200ResultsItemExtraData = ListProcessLogs200ResultsItemExtraDataAnyOf | null\n\n/**\n * Severity of the log row (not a layout/kind marker): LOG, RESULT, WARNING or ERROR\n */\nexport type ListProcessLogs200ResultsItemType =\n (typeof ListProcessLogs200ResultsItemType)[keyof typeof ListProcessLogs200ResultsItemType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListProcessLogs200ResultsItemType = {\n NUMBER_0: 0,\n NUMBER_1: 1,\n NUMBER_MINUS_1: -1,\n NUMBER_MINUS_2: -2,\n} as const\n\n/**\n * When the row was reviewed. Null while unreviewed. Emitted as ISO-8601 in UTC\n */\nexport type ListProcessLogs200ResultsItemReviewedDate = string | null\n\n/**\n * Id of this row's parent process_log row, when it has one\n */\nexport type ListProcessLogs200ResultsItemParentId = number | null\n\n/**\n * Domain entity kind that originated the execution (e.g. patient), when resolvable\n */\nexport type ListProcessLogs200ResultsItemSubjectModel = string | null\n\n/**\n * Id of the domain entity that originated the execution, as a string, when resolvable\n */\nexport type ListProcessLogs200ResultsItemSubjectId = string | null\n\n/**\n * Retention deadline; the row is purged after it, and never expires when null. Emitted as ISO-8601 in UTC\n */\nexport type ListProcessLogs200ResultsItemExpiresAt = string | null\n\n/**\n * A process_log row\n */\nexport type ListProcessLogs200ResultsItem = {\n /** Unique identifier of the row */\n id: number\n /** Project this row belongs to, when scoped to one */\n project_id?: ListProcessLogs200ResultsItemProjectId\n /** User who caused the row to be written, when a user did */\n created_user?: ListProcessLogs200ResultsItemCreatedUser\n /** Table/entity kind the row is about */\n related_model?: ListProcessLogs200ResultsItemRelatedModel\n /** Id of the related entity, as a string */\n related_id?: ListProcessLogs200ResultsItemRelatedId\n code?: ListProcessLogs200ResultsItemCode\n /** Short human-readable message */\n log: string\n /** Extended message, when needed */\n long_log?: ListProcessLogs200ResultsItemLongLog\n /** Structured data specific to `code` — see the per-code schemas for the trigger-engine codes */\n extra_data?: ListProcessLogs200ResultsItemExtraData\n /** Severity of the log row (not a layout/kind marker): LOG, RESULT, WARNING or ERROR */\n type: ListProcessLogs200ResultsItemType\n /** Whether the row needs a human to review it */\n requires_attention?: boolean\n /** Whether the row has been reviewed */\n reviewed?: boolean\n /** When the row was reviewed. Null while unreviewed. Emitted as ISO-8601 in UTC */\n reviewed_date?: ListProcessLogs200ResultsItemReviewedDate\n /** Id of this row's parent process_log row, when it has one */\n parent_id?: ListProcessLogs200ResultsItemParentId\n /** Domain entity kind that originated the execution (e.g. patient), when resolvable */\n subject_model?: ListProcessLogs200ResultsItemSubjectModel\n /** Id of the domain entity that originated the execution, as a string, when resolvable */\n subject_id?: ListProcessLogs200ResultsItemSubjectId\n /** Retention deadline; the row is purged after it, and never expires when null. Emitted as ISO-8601 in UTC */\n expires_at?: ListProcessLogs200ResultsItemExpiresAt\n /** When the row was created. Emitted as ISO-8601 in UTC */\n created_at?: string\n /** When the row was last modified. Emitted as ISO-8601 in UTC */\n mod_time?: string\n}\n\n/**\n * Paginated response\n */\nexport type ListProcessLogs200 = {\n /** Array of items of the current page */\n results: ListProcessLogs200ResultsItem[]\n /** Total number of items not in this page but in the whole query */\n total: number\n}\n\n/**\n * Debug information of the error\n */\nexport type ListProcessLogs403AllOfDebug = { [key: string]: unknown }\n\nexport type ListProcessLogs403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListProcessLogs403AllOfDebug\n}\n\nexport type ListProcessLogs403AllOfThreeStatusCode =\n (typeof ListProcessLogs403AllOfThreeStatusCode)[keyof typeof ListProcessLogs403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListProcessLogs403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type ListProcessLogs403AllOfThreeError =\n (typeof ListProcessLogs403AllOfThreeError)[keyof typeof ListProcessLogs403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListProcessLogs403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type ListProcessLogs403AllOfThree = {\n statusCode: ListProcessLogs403AllOfThreeStatusCode\n error: ListProcessLogs403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type ListProcessLogs403 = ListProcessLogs403AllOf & ListProcessLogs403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type ListProcessLogs404AllOfDebug = { [key: string]: unknown }\n\nexport type ListProcessLogs404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: ListProcessLogs404AllOfDebug\n}\n\nexport type ListProcessLogs404AllOfThreeStatusCode =\n (typeof ListProcessLogs404AllOfThreeStatusCode)[keyof typeof ListProcessLogs404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListProcessLogs404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type ListProcessLogs404AllOfThreeError =\n (typeof ListProcessLogs404AllOfThreeError)[keyof typeof ListProcessLogs404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListProcessLogs404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type ListProcessLogs404AllOfThree = {\n statusCode: ListProcessLogs404AllOfThreeStatusCode\n error: ListProcessLogs404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type ListProcessLogs404 = ListProcessLogs404AllOf & ListProcessLogs404AllOfThree\n\n/**\n * Thryve connection widget URL response\n */\nexport type GetThryveIframeUrl200 = {\n /** Short-lived URL to embed in an iframe / WebView for the Thryve connection widget */\n url: string\n}\n\n/**\n * Debug information of the error\n */\nexport type GetThryveIframeUrl403AllOfDebug = { [key: string]: unknown }\n\nexport type GetThryveIframeUrl403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetThryveIframeUrl403AllOfDebug\n}\n\nexport type GetThryveIframeUrl403AllOfThreeStatusCode =\n (typeof GetThryveIframeUrl403AllOfThreeStatusCode)[keyof typeof GetThryveIframeUrl403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIframeUrl403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetThryveIframeUrl403AllOfThreeError =\n (typeof GetThryveIframeUrl403AllOfThreeError)[keyof typeof GetThryveIframeUrl403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIframeUrl403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetThryveIframeUrl403AllOfThree = {\n statusCode: GetThryveIframeUrl403AllOfThreeStatusCode\n error: GetThryveIframeUrl403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetThryveIframeUrl403 = GetThryveIframeUrl403AllOf & GetThryveIframeUrl403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetThryveIframeUrl404AllOfDebug = { [key: string]: unknown }\n\nexport type GetThryveIframeUrl404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetThryveIframeUrl404AllOfDebug\n}\n\nexport type GetThryveIframeUrl404AllOfThreeStatusCode =\n (typeof GetThryveIframeUrl404AllOfThreeStatusCode)[keyof typeof GetThryveIframeUrl404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIframeUrl404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetThryveIframeUrl404AllOfThreeError =\n (typeof GetThryveIframeUrl404AllOfThreeError)[keyof typeof GetThryveIframeUrl404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIframeUrl404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetThryveIframeUrl404AllOfThree = {\n statusCode: GetThryveIframeUrl404AllOfThreeStatusCode\n error: GetThryveIframeUrl404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetThryveIframeUrl404 = GetThryveIframeUrl404AllOf & GetThryveIframeUrl404AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetThryveIsAuthorized403AllOfDebug = { [key: string]: unknown }\n\nexport type GetThryveIsAuthorized403AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetThryveIsAuthorized403AllOfDebug\n}\n\nexport type GetThryveIsAuthorized403AllOfThreeStatusCode =\n (typeof GetThryveIsAuthorized403AllOfThreeStatusCode)[keyof typeof GetThryveIsAuthorized403AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIsAuthorized403AllOfThreeStatusCode = {\n NUMBER_403: 403,\n} as const\n\nexport type GetThryveIsAuthorized403AllOfThreeError =\n (typeof GetThryveIsAuthorized403AllOfThreeError)[keyof typeof GetThryveIsAuthorized403AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIsAuthorized403AllOfThreeError = {\n 'forbidden-error': 'forbidden-error',\n} as const\n\nexport type GetThryveIsAuthorized403AllOfThree = {\n statusCode: GetThryveIsAuthorized403AllOfThreeStatusCode\n error: GetThryveIsAuthorized403AllOfThreeError\n}\n\n/**\n * Error when the user is forbidden to access the resource\n */\nexport type GetThryveIsAuthorized403 = GetThryveIsAuthorized403AllOf & GetThryveIsAuthorized403AllOfThree\n\n/**\n * Debug information of the error\n */\nexport type GetThryveIsAuthorized404AllOfDebug = { [key: string]: unknown }\n\nexport type GetThryveIsAuthorized404AllOf = {\n /** HTTP status code */\n statusCode: number\n /** Error code */\n error: string\n /** Localized error message */\n message: string\n /** Debug information of the error */\n debug?: GetThryveIsAuthorized404AllOfDebug\n}\n\nexport type GetThryveIsAuthorized404AllOfThreeStatusCode =\n (typeof GetThryveIsAuthorized404AllOfThreeStatusCode)[keyof typeof GetThryveIsAuthorized404AllOfThreeStatusCode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIsAuthorized404AllOfThreeStatusCode = {\n NUMBER_404: 404,\n} as const\n\nexport type GetThryveIsAuthorized404AllOfThreeError =\n (typeof GetThryveIsAuthorized404AllOfThreeError)[keyof typeof GetThryveIsAuthorized404AllOfThreeError]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetThryveIsAuthorized404AllOfThreeError = {\n 'not-found': 'not-found',\n} as const\n\nexport type GetThryveIsAuthorized404AllOfThree = {\n statusCode: GetThryveIsAuthorized404AllOfThreeStatusCode\n error: GetThryveIsAuthorized404AllOfThreeError\n}\n\n/**\n * Error when the resource is not found\n */\nexport type GetThryveIsAuthorized404 = GetThryveIsAuthorized404AllOf & GetThryveIsAuthorized404AllOfThree\n\nexport type postV2AuthLoginGlobalResponse200 = {\n data: void\n status: 200\n}\n\nexport type postV2AuthLoginGlobalResponseSuccess = postV2AuthLoginGlobalResponse200 & {\n headers: Headers\n}\nexport type postV2AuthLoginGlobalResponse = postV2AuthLoginGlobalResponseSuccess\n\nexport const getPostV2AuthLoginGlobalUrl = () => {\n return `/v2/auth/login/global`\n}\n\nexport const postV2AuthLoginGlobal = async (options?: RequestInit): Promise<postV2AuthLoginGlobalResponse> => {\n return customFetch<postV2AuthLoginGlobalResponse>(getPostV2AuthLoginGlobalUrl(), {\n ...options,\n method: 'POST',\n })\n}\n\n/**\n * Get a paginated list of alerts, optionally filtered by status, severity, type, user or patient\n */\nexport type listAlertsEcosystemResponse200 = {\n data: ListAlertsEcosystem200\n status: 200\n}\n\nexport type listAlertsEcosystemResponse403 = {\n data: ListAlertsEcosystem403\n status: 403\n}\n\nexport type listAlertsEcosystemResponse404 = {\n data: ListAlertsEcosystem404\n status: 404\n}\n\nexport type listAlertsEcosystemResponseSuccess = listAlertsEcosystemResponse200 & {\n headers: Headers\n}\nexport type listAlertsEcosystemResponseError = (listAlertsEcosystemResponse403 | listAlertsEcosystemResponse404) & {\n headers: Headers\n}\n\nexport type listAlertsEcosystemResponse = listAlertsEcosystemResponseSuccess | listAlertsEcosystemResponseError\n\nexport const getListAlertsEcosystemUrl = (ecosystemName: string, params?: ListAlertsEcosystemParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/alert/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/alert/`\n}\n\nexport const listAlertsEcosystem = async (\n ecosystemName: string,\n params?: ListAlertsEcosystemParams,\n options?: RequestInit,\n): Promise<listAlertsEcosystemResponse> => {\n return customFetch<listAlertsEcosystemResponse>(getListAlertsEcosystemUrl(ecosystemName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create an alert. Idempotent by `dedup_key`: a key already carried by an *active* alert of the same scope — the project of the URL, or the alerts belonging to no project on the ecosystem route — answers with the stored alert instead of creating a second one. A resolved alert does not shadow its key, so a condition that recurs raises a new alert. When the key is absent the server generates one\n */\nexport type createAlertEcosystemResponse200 = {\n data: CreateAlertEcosystem200\n status: 200\n}\n\nexport type createAlertEcosystemResponse400 = {\n data: CreateAlertEcosystem400\n status: 400\n}\n\nexport type createAlertEcosystemResponse403 = {\n data: CreateAlertEcosystem403\n status: 403\n}\n\nexport type createAlertEcosystemResponse404 = {\n data: CreateAlertEcosystem404\n status: 404\n}\n\nexport type createAlertEcosystemResponseSuccess = createAlertEcosystemResponse200 & {\n headers: Headers\n}\nexport type createAlertEcosystemResponseError = (\n | createAlertEcosystemResponse400\n | createAlertEcosystemResponse403\n | createAlertEcosystemResponse404\n) & {\n headers: Headers\n}\n\nexport type createAlertEcosystemResponse = createAlertEcosystemResponseSuccess | createAlertEcosystemResponseError\n\nexport const getCreateAlertEcosystemUrl = (ecosystemName: string) => {\n return `/v2/ecosystem/${ecosystemName}/alert/`\n}\n\nexport const createAlertEcosystem = async (\n ecosystemName: string,\n createAlertEcosystemBody: CreateAlertEcosystemBody,\n options?: RequestInit,\n): Promise<createAlertEcosystemResponse> => {\n return customFetch<createAlertEcosystemResponse>(getCreateAlertEcosystemUrl(ecosystemName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createAlertEcosystemBody),\n })\n}\n\n/**\n * Retrieve a specific alert by ID\n */\nexport type getAlertEcosystemResponse200 = {\n data: GetAlertEcosystem200\n status: 200\n}\n\nexport type getAlertEcosystemResponse403 = {\n data: GetAlertEcosystem403\n status: 403\n}\n\nexport type getAlertEcosystemResponse404 = {\n data: GetAlertEcosystem404\n status: 404\n}\n\nexport type getAlertEcosystemResponseSuccess = getAlertEcosystemResponse200 & {\n headers: Headers\n}\nexport type getAlertEcosystemResponseError = (getAlertEcosystemResponse403 | getAlertEcosystemResponse404) & {\n headers: Headers\n}\n\nexport type getAlertEcosystemResponse = getAlertEcosystemResponseSuccess | getAlertEcosystemResponseError\n\nexport const getGetAlertEcosystemUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert/${id}`\n}\n\nexport const getAlertEcosystem = async (\n ecosystemName: string,\n id: number,\n options?: RequestInit,\n): Promise<getAlertEcosystemResponse> => {\n return customFetch<getAlertEcosystemResponse>(getGetAlertEcosystemUrl(ecosystemName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing alert. Resolving it goes through its own endpoint\n */\nexport type updateAlertEcosystemResponse200 = {\n data: UpdateAlertEcosystem200\n status: 200\n}\n\nexport type updateAlertEcosystemResponse400 = {\n data: UpdateAlertEcosystem400\n status: 400\n}\n\nexport type updateAlertEcosystemResponse403 = {\n data: UpdateAlertEcosystem403\n status: 403\n}\n\nexport type updateAlertEcosystemResponse404 = {\n data: UpdateAlertEcosystem404\n status: 404\n}\n\nexport type updateAlertEcosystemResponseSuccess = updateAlertEcosystemResponse200 & {\n headers: Headers\n}\nexport type updateAlertEcosystemResponseError = (\n | updateAlertEcosystemResponse400\n | updateAlertEcosystemResponse403\n | updateAlertEcosystemResponse404\n) & {\n headers: Headers\n}\n\nexport type updateAlertEcosystemResponse = updateAlertEcosystemResponseSuccess | updateAlertEcosystemResponseError\n\nexport const getUpdateAlertEcosystemUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert/${id}`\n}\n\nexport const updateAlertEcosystem = async (\n ecosystemName: string,\n id: number,\n updateAlertEcosystemBody: UpdateAlertEcosystemBody,\n options?: RequestInit,\n): Promise<updateAlertEcosystemResponse> => {\n return customFetch<updateAlertEcosystemResponse>(getUpdateAlertEcosystemUrl(ecosystemName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateAlertEcosystemBody),\n })\n}\n\n/**\n * Resolve an alert, stamping who closed it and when. Resolving an already resolved alert answers with it unchanged\n */\nexport type resolveAlertEcosystemResponse200 = {\n data: ResolveAlertEcosystem200\n status: 200\n}\n\nexport type resolveAlertEcosystemResponse400 = {\n data: ResolveAlertEcosystem400\n status: 400\n}\n\nexport type resolveAlertEcosystemResponse403 = {\n data: ResolveAlertEcosystem403\n status: 403\n}\n\nexport type resolveAlertEcosystemResponse404 = {\n data: ResolveAlertEcosystem404\n status: 404\n}\n\nexport type resolveAlertEcosystemResponseSuccess = resolveAlertEcosystemResponse200 & {\n headers: Headers\n}\nexport type resolveAlertEcosystemResponseError = (\n | resolveAlertEcosystemResponse400\n | resolveAlertEcosystemResponse403\n | resolveAlertEcosystemResponse404\n) & {\n headers: Headers\n}\n\nexport type resolveAlertEcosystemResponse = resolveAlertEcosystemResponseSuccess | resolveAlertEcosystemResponseError\n\nexport const getResolveAlertEcosystemUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert/${id}/resolve`\n}\n\nexport const resolveAlertEcosystem = async (\n ecosystemName: string,\n id: number,\n resolveAlertEcosystemBody: ResolveAlertEcosystemBody,\n options?: RequestInit,\n): Promise<resolveAlertEcosystemResponse> => {\n return customFetch<resolveAlertEcosystemResponse>(getResolveAlertEcosystemUrl(ecosystemName, id), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(resolveAlertEcosystemBody),\n })\n}\n\n/**\n * Get a paginated list of the alert types of the ecosystem, by name\n */\nexport type listAlertTypesResponse200 = {\n data: ListAlertTypes200\n status: 200\n}\n\nexport type listAlertTypesResponse403 = {\n data: ListAlertTypes403\n status: 403\n}\n\nexport type listAlertTypesResponse404 = {\n data: ListAlertTypes404\n status: 404\n}\n\nexport type listAlertTypesResponseSuccess = listAlertTypesResponse200 & {\n headers: Headers\n}\nexport type listAlertTypesResponseError = (listAlertTypesResponse403 | listAlertTypesResponse404) & {\n headers: Headers\n}\n\nexport type listAlertTypesResponse = listAlertTypesResponseSuccess | listAlertTypesResponseError\n\nexport const getListAlertTypesUrl = (ecosystemName: string, params?: ListAlertTypesParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/alert-type/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/alert-type/`\n}\n\nexport const listAlertTypes = async (\n ecosystemName: string,\n params?: ListAlertTypesParams,\n options?: RequestInit,\n): Promise<listAlertTypesResponse> => {\n return customFetch<listAlertTypesResponse>(getListAlertTypesUrl(ecosystemName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create an alert type. Names may repeat: what identifies a type is its ID\n */\nexport type createAlertTypeResponse200 = {\n data: CreateAlertType200\n status: 200\n}\n\nexport type createAlertTypeResponse400 = {\n data: CreateAlertType400\n status: 400\n}\n\nexport type createAlertTypeResponse403 = {\n data: CreateAlertType403\n status: 403\n}\n\nexport type createAlertTypeResponse404 = {\n data: CreateAlertType404\n status: 404\n}\n\nexport type createAlertTypeResponseSuccess = createAlertTypeResponse200 & {\n headers: Headers\n}\nexport type createAlertTypeResponseError = (\n | createAlertTypeResponse400\n | createAlertTypeResponse403\n | createAlertTypeResponse404\n) & {\n headers: Headers\n}\n\nexport type createAlertTypeResponse = createAlertTypeResponseSuccess | createAlertTypeResponseError\n\nexport const getCreateAlertTypeUrl = (ecosystemName: string) => {\n return `/v2/ecosystem/${ecosystemName}/alert-type/`\n}\n\nexport const createAlertType = async (\n ecosystemName: string,\n createAlertTypeBody: CreateAlertTypeBody,\n options?: RequestInit,\n): Promise<createAlertTypeResponse> => {\n return customFetch<createAlertTypeResponse>(getCreateAlertTypeUrl(ecosystemName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createAlertTypeBody),\n })\n}\n\n/**\n * Retrieve a specific alert type by ID\n */\nexport type getAlertTypeResponse200 = {\n data: GetAlertType200\n status: 200\n}\n\nexport type getAlertTypeResponse403 = {\n data: GetAlertType403\n status: 403\n}\n\nexport type getAlertTypeResponse404 = {\n data: GetAlertType404\n status: 404\n}\n\nexport type getAlertTypeResponseSuccess = getAlertTypeResponse200 & {\n headers: Headers\n}\nexport type getAlertTypeResponseError = (getAlertTypeResponse403 | getAlertTypeResponse404) & {\n headers: Headers\n}\n\nexport type getAlertTypeResponse = getAlertTypeResponseSuccess | getAlertTypeResponseError\n\nexport const getGetAlertTypeUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert-type/${id}`\n}\n\nexport const getAlertType = async (\n ecosystemName: string,\n id: number,\n options?: RequestInit,\n): Promise<getAlertTypeResponse> => {\n return customFetch<getAlertTypeResponse>(getGetAlertTypeUrl(ecosystemName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing alert type\n */\nexport type updateAlertTypeResponse200 = {\n data: UpdateAlertType200\n status: 200\n}\n\nexport type updateAlertTypeResponse400 = {\n data: UpdateAlertType400\n status: 400\n}\n\nexport type updateAlertTypeResponse403 = {\n data: UpdateAlertType403\n status: 403\n}\n\nexport type updateAlertTypeResponse404 = {\n data: UpdateAlertType404\n status: 404\n}\n\nexport type updateAlertTypeResponseSuccess = updateAlertTypeResponse200 & {\n headers: Headers\n}\nexport type updateAlertTypeResponseError = (\n | updateAlertTypeResponse400\n | updateAlertTypeResponse403\n | updateAlertTypeResponse404\n) & {\n headers: Headers\n}\n\nexport type updateAlertTypeResponse = updateAlertTypeResponseSuccess | updateAlertTypeResponseError\n\nexport const getUpdateAlertTypeUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert-type/${id}`\n}\n\nexport const updateAlertType = async (\n ecosystemName: string,\n id: number,\n updateAlertTypeBody: UpdateAlertTypeBody,\n options?: RequestInit,\n): Promise<updateAlertTypeResponse> => {\n return customFetch<updateAlertTypeResponse>(getUpdateAlertTypeUrl(ecosystemName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateAlertTypeBody),\n })\n}\n\n/**\n * Delete an alert type. The alerts of that type survive as unclassified: the foreign key sets `alert_type_id` to null instead of removing them\n */\nexport type deleteAlertTypeResponse200 = {\n data: DeleteAlertType200\n status: 200\n}\n\nexport type deleteAlertTypeResponse403 = {\n data: DeleteAlertType403\n status: 403\n}\n\nexport type deleteAlertTypeResponse404 = {\n data: DeleteAlertType404\n status: 404\n}\n\nexport type deleteAlertTypeResponseSuccess = deleteAlertTypeResponse200 & {\n headers: Headers\n}\nexport type deleteAlertTypeResponseError = (deleteAlertTypeResponse403 | deleteAlertTypeResponse404) & {\n headers: Headers\n}\n\nexport type deleteAlertTypeResponse = deleteAlertTypeResponseSuccess | deleteAlertTypeResponseError\n\nexport const getDeleteAlertTypeUrl = (ecosystemName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/alert-type/${id}`\n}\n\nexport const deleteAlertType = async (\n ecosystemName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteAlertTypeResponse> => {\n return customFetch<deleteAlertTypeResponse>(getDeleteAlertTypeUrl(ecosystemName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * Get a paginated list of actions\n */\nexport type listActionsResponse200 = {\n data: ListActions200\n status: 200\n}\n\nexport type listActionsResponse403 = {\n data: ListActions403\n status: 403\n}\n\nexport type listActionsResponse404 = {\n data: ListActions404\n status: 404\n}\n\nexport type listActionsResponseSuccess = listActionsResponse200 & {\n headers: Headers\n}\nexport type listActionsResponseError = (listActionsResponse403 | listActionsResponse404) & {\n headers: Headers\n}\n\nexport type listActionsResponse = listActionsResponseSuccess | listActionsResponseError\n\nexport const getListActionsUrl = (ecosystemName: string, projectName: string, params?: ListActionsParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/`\n}\n\nexport const listActions = async (\n ecosystemName: string,\n projectName: string,\n params?: ListActionsParams,\n options?: RequestInit,\n): Promise<listActionsResponse> => {\n return customFetch<listActionsResponse>(getListActionsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create a new action\n */\nexport type createActionResponse200 = {\n data: CreateAction200\n status: 200\n}\n\nexport type createActionResponse400 = {\n data: CreateAction400\n status: 400\n}\n\nexport type createActionResponse403 = {\n data: CreateAction403\n status: 403\n}\n\nexport type createActionResponse404 = {\n data: CreateAction404\n status: 404\n}\n\nexport type createActionResponseSuccess = createActionResponse200 & {\n headers: Headers\n}\nexport type createActionResponseError = (\n | createActionResponse400\n | createActionResponse403\n | createActionResponse404\n) & {\n headers: Headers\n}\n\nexport type createActionResponse = createActionResponseSuccess | createActionResponseError\n\nexport const getCreateActionUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/`\n}\n\nexport const createAction = async (\n ecosystemName: string,\n projectName: string,\n createActionBody: CreateActionBody,\n options?: RequestInit,\n): Promise<createActionResponse> => {\n return customFetch<createActionResponse>(getCreateActionUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createActionBody),\n })\n}\n\n/**\n * Retrieve a specific action by ID\n */\nexport type getActionResponse200 = {\n data: GetAction200\n status: 200\n}\n\nexport type getActionResponse403 = {\n data: GetAction403\n status: 403\n}\n\nexport type getActionResponse404 = {\n data: GetAction404\n status: 404\n}\n\nexport type getActionResponseSuccess = getActionResponse200 & {\n headers: Headers\n}\nexport type getActionResponseError = (getActionResponse403 | getActionResponse404) & {\n headers: Headers\n}\n\nexport type getActionResponse = getActionResponseSuccess | getActionResponseError\n\nexport const getGetActionUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/${id}`\n}\n\nexport const getAction = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<getActionResponse> => {\n return customFetch<getActionResponse>(getGetActionUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing action\n */\nexport type updateActionResponse200 = {\n data: UpdateAction200\n status: 200\n}\n\nexport type updateActionResponse400 = {\n data: UpdateAction400\n status: 400\n}\n\nexport type updateActionResponse403 = {\n data: UpdateAction403\n status: 403\n}\n\nexport type updateActionResponse404 = {\n data: UpdateAction404\n status: 404\n}\n\nexport type updateActionResponseSuccess = updateActionResponse200 & {\n headers: Headers\n}\nexport type updateActionResponseError = (\n | updateActionResponse400\n | updateActionResponse403\n | updateActionResponse404\n) & {\n headers: Headers\n}\n\nexport type updateActionResponse = updateActionResponseSuccess | updateActionResponseError\n\nexport const getUpdateActionUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/${id}`\n}\n\nexport const updateAction = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateActionBody: UpdateActionBody,\n options?: RequestInit,\n): Promise<updateActionResponse> => {\n return customFetch<updateActionResponse>(getUpdateActionUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateActionBody),\n })\n}\n\n/**\n * Delete an action by its ID\n */\nexport type deleteActionResponse200 = {\n data: DeleteAction200\n status: 200\n}\n\nexport type deleteActionResponse403 = {\n data: DeleteAction403\n status: 403\n}\n\nexport type deleteActionResponse404 = {\n data: DeleteAction404\n status: 404\n}\n\nexport type deleteActionResponseSuccess = deleteActionResponse200 & {\n headers: Headers\n}\nexport type deleteActionResponseError = (deleteActionResponse403 | deleteActionResponse404) & {\n headers: Headers\n}\n\nexport type deleteActionResponse = deleteActionResponseSuccess | deleteActionResponseError\n\nexport const getDeleteActionUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/action/${id}`\n}\n\nexport const deleteAction = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteActionResponse> => {\n return customFetch<deleteActionResponse>(getDeleteActionUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * List ids (form names) of action questionnaires applicable to the current patient. Action questionnaires are marked via the meta_info field \"is_action\"; those whose \"action_props\" configuration is malformed are excluded. Presentation properties (label, icon, color) are read from the designers payload.\n */\nexport type listAvailableActionsResponse200 = {\n data: ListAvailableActions200\n status: 200\n}\n\nexport type listAvailableActionsResponse403 = {\n data: ListAvailableActions403\n status: 403\n}\n\nexport type listAvailableActionsResponse404 = {\n data: ListAvailableActions404\n status: 404\n}\n\nexport type listAvailableActionsResponseSuccess = listAvailableActionsResponse200 & {\n headers: Headers\n}\nexport type listAvailableActionsResponseError = (listAvailableActionsResponse403 | listAvailableActionsResponse404) & {\n headers: Headers\n}\n\nexport type listAvailableActionsResponse = listAvailableActionsResponseSuccess | listAvailableActionsResponseError\n\nexport const getListAvailableActionsUrl = (\n ecosystemName: string,\n projectName: string,\n params?: ListAvailableActionsParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/actions/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/actions/`\n}\n\nexport const listAvailableActions = async (\n ecosystemName: string,\n projectName: string,\n params?: ListAvailableActionsParams,\n options?: RequestInit,\n): Promise<listAvailableActionsResponse> => {\n return customFetch<listAvailableActionsResponse>(getListAvailableActionsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Get a paginated list of alerts, optionally filtered by status, severity, type, user or patient\n */\nexport type listAlertsResponse200 = {\n data: ListAlerts200\n status: 200\n}\n\nexport type listAlertsResponse403 = {\n data: ListAlerts403\n status: 403\n}\n\nexport type listAlertsResponse404 = {\n data: ListAlerts404\n status: 404\n}\n\nexport type listAlertsResponseSuccess = listAlertsResponse200 & {\n headers: Headers\n}\nexport type listAlertsResponseError = (listAlertsResponse403 | listAlertsResponse404) & {\n headers: Headers\n}\n\nexport type listAlertsResponse = listAlertsResponseSuccess | listAlertsResponseError\n\nexport const getListAlertsUrl = (ecosystemName: string, projectName: string, params?: ListAlertsParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/`\n}\n\nexport const listAlerts = async (\n ecosystemName: string,\n projectName: string,\n params?: ListAlertsParams,\n options?: RequestInit,\n): Promise<listAlertsResponse> => {\n return customFetch<listAlertsResponse>(getListAlertsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create an alert. Idempotent by `dedup_key`: a key already carried by an *active* alert of the same scope — the project of the URL, or the alerts belonging to no project on the ecosystem route — answers with the stored alert instead of creating a second one. A resolved alert does not shadow its key, so a condition that recurs raises a new alert. When the key is absent the server generates one\n */\nexport type createAlertResponse200 = {\n data: CreateAlert200\n status: 200\n}\n\nexport type createAlertResponse400 = {\n data: CreateAlert400\n status: 400\n}\n\nexport type createAlertResponse403 = {\n data: CreateAlert403\n status: 403\n}\n\nexport type createAlertResponse404 = {\n data: CreateAlert404\n status: 404\n}\n\nexport type createAlertResponseSuccess = createAlertResponse200 & {\n headers: Headers\n}\nexport type createAlertResponseError = (createAlertResponse400 | createAlertResponse403 | createAlertResponse404) & {\n headers: Headers\n}\n\nexport type createAlertResponse = createAlertResponseSuccess | createAlertResponseError\n\nexport const getCreateAlertUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/`\n}\n\nexport const createAlert = async (\n ecosystemName: string,\n projectName: string,\n createAlertBody: CreateAlertBody,\n options?: RequestInit,\n): Promise<createAlertResponse> => {\n return customFetch<createAlertResponse>(getCreateAlertUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createAlertBody),\n })\n}\n\n/**\n * Retrieve a specific alert by ID\n */\nexport type getAlertResponse200 = {\n data: GetAlert200\n status: 200\n}\n\nexport type getAlertResponse403 = {\n data: GetAlert403\n status: 403\n}\n\nexport type getAlertResponse404 = {\n data: GetAlert404\n status: 404\n}\n\nexport type getAlertResponseSuccess = getAlertResponse200 & {\n headers: Headers\n}\nexport type getAlertResponseError = (getAlertResponse403 | getAlertResponse404) & {\n headers: Headers\n}\n\nexport type getAlertResponse = getAlertResponseSuccess | getAlertResponseError\n\nexport const getGetAlertUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/${id}`\n}\n\nexport const getAlert = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<getAlertResponse> => {\n return customFetch<getAlertResponse>(getGetAlertUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing alert. Resolving it goes through its own endpoint\n */\nexport type updateAlertResponse200 = {\n data: UpdateAlert200\n status: 200\n}\n\nexport type updateAlertResponse400 = {\n data: UpdateAlert400\n status: 400\n}\n\nexport type updateAlertResponse403 = {\n data: UpdateAlert403\n status: 403\n}\n\nexport type updateAlertResponse404 = {\n data: UpdateAlert404\n status: 404\n}\n\nexport type updateAlertResponseSuccess = updateAlertResponse200 & {\n headers: Headers\n}\nexport type updateAlertResponseError = (updateAlertResponse400 | updateAlertResponse403 | updateAlertResponse404) & {\n headers: Headers\n}\n\nexport type updateAlertResponse = updateAlertResponseSuccess | updateAlertResponseError\n\nexport const getUpdateAlertUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/${id}`\n}\n\nexport const updateAlert = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateAlertBody: UpdateAlertBody,\n options?: RequestInit,\n): Promise<updateAlertResponse> => {\n return customFetch<updateAlertResponse>(getUpdateAlertUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateAlertBody),\n })\n}\n\n/**\n * Resolve an alert, stamping who closed it and when. Resolving an already resolved alert answers with it unchanged\n */\nexport type resolveAlertResponse200 = {\n data: ResolveAlert200\n status: 200\n}\n\nexport type resolveAlertResponse400 = {\n data: ResolveAlert400\n status: 400\n}\n\nexport type resolveAlertResponse403 = {\n data: ResolveAlert403\n status: 403\n}\n\nexport type resolveAlertResponse404 = {\n data: ResolveAlert404\n status: 404\n}\n\nexport type resolveAlertResponseSuccess = resolveAlertResponse200 & {\n headers: Headers\n}\nexport type resolveAlertResponseError = (\n | resolveAlertResponse400\n | resolveAlertResponse403\n | resolveAlertResponse404\n) & {\n headers: Headers\n}\n\nexport type resolveAlertResponse = resolveAlertResponseSuccess | resolveAlertResponseError\n\nexport const getResolveAlertUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/alert/${id}/resolve`\n}\n\nexport const resolveAlert = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n resolveAlertBody: ResolveAlertBody,\n options?: RequestInit,\n): Promise<resolveAlertResponse> => {\n return customFetch<resolveAlertResponse>(getResolveAlertUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(resolveAlertBody),\n })\n}\n\n/**\n * Get a paginated list of automatic triggers, optionally with their actions\n */\nexport type listAutomaticTriggersResponse200 = {\n data: ListAutomaticTriggers200\n status: 200\n}\n\nexport type listAutomaticTriggersResponse403 = {\n data: ListAutomaticTriggers403\n status: 403\n}\n\nexport type listAutomaticTriggersResponse404 = {\n data: ListAutomaticTriggers404\n status: 404\n}\n\nexport type listAutomaticTriggersResponseSuccess = listAutomaticTriggersResponse200 & {\n headers: Headers\n}\nexport type listAutomaticTriggersResponseError = (\n | listAutomaticTriggersResponse403\n | listAutomaticTriggersResponse404\n) & {\n headers: Headers\n}\n\nexport type listAutomaticTriggersResponse = listAutomaticTriggersResponseSuccess | listAutomaticTriggersResponseError\n\nexport const getListAutomaticTriggersUrl = (\n ecosystemName: string,\n projectName: string,\n params?: ListAutomaticTriggersParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/`\n}\n\nexport const listAutomaticTriggers = async (\n ecosystemName: string,\n projectName: string,\n params?: ListAutomaticTriggersParams,\n options?: RequestInit,\n): Promise<listAutomaticTriggersResponse> => {\n return customFetch<listAutomaticTriggersResponse>(getListAutomaticTriggersUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create a new automatic trigger\n */\nexport type createAutomaticTriggerResponse200 = {\n data: CreateAutomaticTrigger200\n status: 200\n}\n\nexport type createAutomaticTriggerResponse403 = {\n data: CreateAutomaticTrigger403\n status: 403\n}\n\nexport type createAutomaticTriggerResponse404 = {\n data: CreateAutomaticTrigger404\n status: 404\n}\n\nexport type createAutomaticTriggerResponseSuccess = createAutomaticTriggerResponse200 & {\n headers: Headers\n}\nexport type createAutomaticTriggerResponseError = (\n | createAutomaticTriggerResponse403\n | createAutomaticTriggerResponse404\n) & {\n headers: Headers\n}\n\nexport type createAutomaticTriggerResponse = createAutomaticTriggerResponseSuccess | createAutomaticTriggerResponseError\n\nexport const getCreateAutomaticTriggerUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/`\n}\n\nexport const createAutomaticTrigger = async (\n ecosystemName: string,\n projectName: string,\n createAutomaticTriggerBody: CreateAutomaticTriggerBody,\n options?: RequestInit,\n): Promise<createAutomaticTriggerResponse> => {\n return customFetch<createAutomaticTriggerResponse>(getCreateAutomaticTriggerUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createAutomaticTriggerBody),\n })\n}\n\n/**\n * Retrieve a specific automatic trigger by ID, optionally with its actions\n */\nexport type getAutomaticTriggerResponse200 = {\n data: GetAutomaticTrigger200\n status: 200\n}\n\nexport type getAutomaticTriggerResponse403 = {\n data: GetAutomaticTrigger403\n status: 403\n}\n\nexport type getAutomaticTriggerResponse404 = {\n data: GetAutomaticTrigger404\n status: 404\n}\n\nexport type getAutomaticTriggerResponseSuccess = getAutomaticTriggerResponse200 & {\n headers: Headers\n}\nexport type getAutomaticTriggerResponseError = (getAutomaticTriggerResponse403 | getAutomaticTriggerResponse404) & {\n headers: Headers\n}\n\nexport type getAutomaticTriggerResponse = getAutomaticTriggerResponseSuccess | getAutomaticTriggerResponseError\n\nexport const getGetAutomaticTriggerUrl = (\n ecosystemName: string,\n projectName: string,\n id: number,\n params?: GetAutomaticTriggerParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/${id}?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/${id}`\n}\n\nexport const getAutomaticTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n params?: GetAutomaticTriggerParams,\n options?: RequestInit,\n): Promise<getAutomaticTriggerResponse> => {\n return customFetch<getAutomaticTriggerResponse>(getGetAutomaticTriggerUrl(ecosystemName, projectName, id, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing automatic trigger\n */\nexport type updateAutomaticTriggerResponse200 = {\n data: UpdateAutomaticTrigger200\n status: 200\n}\n\nexport type updateAutomaticTriggerResponse400 = {\n data: UpdateAutomaticTrigger400\n status: 400\n}\n\nexport type updateAutomaticTriggerResponse403 = {\n data: UpdateAutomaticTrigger403\n status: 403\n}\n\nexport type updateAutomaticTriggerResponse404 = {\n data: UpdateAutomaticTrigger404\n status: 404\n}\n\nexport type updateAutomaticTriggerResponseSuccess = updateAutomaticTriggerResponse200 & {\n headers: Headers\n}\nexport type updateAutomaticTriggerResponseError = (\n | updateAutomaticTriggerResponse400\n | updateAutomaticTriggerResponse403\n | updateAutomaticTriggerResponse404\n) & {\n headers: Headers\n}\n\nexport type updateAutomaticTriggerResponse = updateAutomaticTriggerResponseSuccess | updateAutomaticTriggerResponseError\n\nexport const getUpdateAutomaticTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/${id}`\n}\n\nexport const updateAutomaticTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateAutomaticTriggerBody: UpdateAutomaticTriggerBody,\n options?: RequestInit,\n): Promise<updateAutomaticTriggerResponse> => {\n return customFetch<updateAutomaticTriggerResponse>(getUpdateAutomaticTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateAutomaticTriggerBody),\n })\n}\n\n/**\n * Delete an automatic trigger by its ID\n */\nexport type deleteAutomaticTriggerResponse200 = {\n data: DeleteAutomaticTrigger200\n status: 200\n}\n\nexport type deleteAutomaticTriggerResponse403 = {\n data: DeleteAutomaticTrigger403\n status: 403\n}\n\nexport type deleteAutomaticTriggerResponse404 = {\n data: DeleteAutomaticTrigger404\n status: 404\n}\n\nexport type deleteAutomaticTriggerResponseSuccess = deleteAutomaticTriggerResponse200 & {\n headers: Headers\n}\nexport type deleteAutomaticTriggerResponseError = (\n | deleteAutomaticTriggerResponse403\n | deleteAutomaticTriggerResponse404\n) & {\n headers: Headers\n}\n\nexport type deleteAutomaticTriggerResponse = deleteAutomaticTriggerResponseSuccess | deleteAutomaticTriggerResponseError\n\nexport const getDeleteAutomaticTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/automatic-trigger/${id}`\n}\n\nexport const deleteAutomaticTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteAutomaticTriggerResponse> => {\n return customFetch<deleteAutomaticTriggerResponse>(getDeleteAutomaticTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * Get a paginated list of documents\n */\nexport type listDocumentsResponse200 = {\n data: ListDocuments200\n status: 200\n}\n\nexport type listDocumentsResponse403 = {\n data: ListDocuments403\n status: 403\n}\n\nexport type listDocumentsResponse404 = {\n data: ListDocuments404\n status: 404\n}\n\nexport type listDocumentsResponseSuccess = listDocumentsResponse200 & {\n headers: Headers\n}\nexport type listDocumentsResponseError = (listDocumentsResponse403 | listDocumentsResponse404) & {\n headers: Headers\n}\n\nexport type listDocumentsResponse = listDocumentsResponseSuccess | listDocumentsResponseError\n\nexport const getListDocumentsUrl = (ecosystemName: string, projectName: string, params?: ListDocumentsParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/`\n}\n\nexport const listDocuments = async (\n ecosystemName: string,\n projectName: string,\n params?: ListDocumentsParams,\n options?: RequestInit,\n): Promise<listDocumentsResponse> => {\n return customFetch<listDocumentsResponse>(getListDocumentsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create a new document record\n */\nexport type createDocumentResponse200 = {\n data: CreateDocument200\n status: 200\n}\n\nexport type createDocumentResponse403 = {\n data: CreateDocument403\n status: 403\n}\n\nexport type createDocumentResponse404 = {\n data: CreateDocument404\n status: 404\n}\n\nexport type createDocumentResponseSuccess = createDocumentResponse200 & {\n headers: Headers\n}\nexport type createDocumentResponseError = (createDocumentResponse403 | createDocumentResponse404) & {\n headers: Headers\n}\n\nexport type createDocumentResponse = createDocumentResponseSuccess | createDocumentResponseError\n\nexport const getCreateDocumentUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/`\n}\n\nexport const createDocument = async (\n ecosystemName: string,\n projectName: string,\n createDocumentBody: CreateDocumentBody,\n options?: RequestInit,\n): Promise<createDocumentResponse> => {\n return customFetch<createDocumentResponse>(getCreateDocumentUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createDocumentBody),\n })\n}\n\n/**\n * Retrieve a specific document by ID\n */\nexport type getDocumentResponse200 = {\n data: GetDocument200\n status: 200\n}\n\nexport type getDocumentResponse403 = {\n data: GetDocument403\n status: 403\n}\n\nexport type getDocumentResponse404 = {\n data: GetDocument404\n status: 404\n}\n\nexport type getDocumentResponseSuccess = getDocumentResponse200 & {\n headers: Headers\n}\nexport type getDocumentResponseError = (getDocumentResponse403 | getDocumentResponse404) & {\n headers: Headers\n}\n\nexport type getDocumentResponse = getDocumentResponseSuccess | getDocumentResponseError\n\nexport const getGetDocumentUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${id}`\n}\n\nexport const getDocument = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<getDocumentResponse> => {\n return customFetch<getDocumentResponse>(getGetDocumentUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing document record\n */\nexport type updateDocumentResponse200 = {\n data: UpdateDocument200\n status: 200\n}\n\nexport type updateDocumentResponse403 = {\n data: UpdateDocument403\n status: 403\n}\n\nexport type updateDocumentResponse404 = {\n data: UpdateDocument404\n status: 404\n}\n\nexport type updateDocumentResponseSuccess = updateDocumentResponse200 & {\n headers: Headers\n}\nexport type updateDocumentResponseError = (updateDocumentResponse403 | updateDocumentResponse404) & {\n headers: Headers\n}\n\nexport type updateDocumentResponse = updateDocumentResponseSuccess | updateDocumentResponseError\n\nexport const getUpdateDocumentUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${id}`\n}\n\nexport const updateDocument = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateDocumentBody: UpdateDocumentBody,\n options?: RequestInit,\n): Promise<updateDocumentResponse> => {\n return customFetch<updateDocumentResponse>(getUpdateDocumentUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateDocumentBody),\n })\n}\n\n/**\n * Delete a document by its ID\n */\nexport type deleteDocumentResponse200 = {\n data: DeleteDocument200\n status: 200\n}\n\nexport type deleteDocumentResponse403 = {\n data: DeleteDocument403\n status: 403\n}\n\nexport type deleteDocumentResponse404 = {\n data: DeleteDocument404\n status: 404\n}\n\nexport type deleteDocumentResponseSuccess = deleteDocumentResponse200 & {\n headers: Headers\n}\nexport type deleteDocumentResponseError = (deleteDocumentResponse403 | deleteDocumentResponse404) & {\n headers: Headers\n}\n\nexport type deleteDocumentResponse = deleteDocumentResponseSuccess | deleteDocumentResponseError\n\nexport const getDeleteDocumentUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${id}`\n}\n\nexport const deleteDocument = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteDocumentResponse> => {\n return customFetch<deleteDocumentResponse>(getDeleteDocumentUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\nexport type addCategoryToDocumentResponse200 = {\n data: AddCategoryToDocument200\n status: 200\n}\n\nexport type addCategoryToDocumentResponse403 = {\n data: AddCategoryToDocument403\n status: 403\n}\n\nexport type addCategoryToDocumentResponse404 = {\n data: AddCategoryToDocument404\n status: 404\n}\n\nexport type addCategoryToDocumentResponseSuccess = addCategoryToDocumentResponse200 & {\n headers: Headers\n}\nexport type addCategoryToDocumentResponseError = (\n | addCategoryToDocumentResponse403\n | addCategoryToDocumentResponse404\n) & {\n headers: Headers\n}\n\nexport type addCategoryToDocumentResponse = addCategoryToDocumentResponseSuccess | addCategoryToDocumentResponseError\n\nexport const getAddCategoryToDocumentUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${id}/categories`\n}\n\nexport const addCategoryToDocument = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n addCategoryToDocumentBody: AddCategoryToDocumentBody,\n options?: RequestInit,\n): Promise<addCategoryToDocumentResponse> => {\n return customFetch<addCategoryToDocumentResponse>(getAddCategoryToDocumentUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(addCategoryToDocumentBody),\n })\n}\n\nexport type removeCategoryFromDocumentResponse200 = {\n data: RemoveCategoryFromDocument200\n status: 200\n}\n\nexport type removeCategoryFromDocumentResponse403 = {\n data: RemoveCategoryFromDocument403\n status: 403\n}\n\nexport type removeCategoryFromDocumentResponse404 = {\n data: RemoveCategoryFromDocument404\n status: 404\n}\n\nexport type removeCategoryFromDocumentResponseSuccess = removeCategoryFromDocumentResponse200 & {\n headers: Headers\n}\nexport type removeCategoryFromDocumentResponseError = (\n | removeCategoryFromDocumentResponse403\n | removeCategoryFromDocumentResponse404\n) & {\n headers: Headers\n}\n\nexport type removeCategoryFromDocumentResponse =\n | removeCategoryFromDocumentResponseSuccess\n | removeCategoryFromDocumentResponseError\n\nexport const getRemoveCategoryFromDocumentUrl = (\n ecosystemName: string,\n projectName: string,\n documentId: number,\n categoryId: number,\n) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document/${documentId}/categories/${categoryId}`\n}\n\nexport const removeCategoryFromDocument = async (\n ecosystemName: string,\n projectName: string,\n documentId: number,\n categoryId: number,\n options?: RequestInit,\n): Promise<removeCategoryFromDocumentResponse> => {\n return customFetch<removeCategoryFromDocumentResponse>(\n getRemoveCategoryFromDocumentUrl(ecosystemName, projectName, documentId, categoryId),\n {\n ...options,\n method: 'DELETE',\n },\n )\n}\n\n/**\n * A paginated list of document categories with the number of documents in each category\n */\nexport type listDocumentCategoriesResponse200 = {\n data: ListDocumentCategories200\n status: 200\n}\n\nexport type listDocumentCategoriesResponse403 = {\n data: ListDocumentCategories403\n status: 403\n}\n\nexport type listDocumentCategoriesResponse404 = {\n data: ListDocumentCategories404\n status: 404\n}\n\nexport type listDocumentCategoriesResponseSuccess = listDocumentCategoriesResponse200 & {\n headers: Headers\n}\nexport type listDocumentCategoriesResponseError = (\n | listDocumentCategoriesResponse403\n | listDocumentCategoriesResponse404\n) & {\n headers: Headers\n}\n\nexport type listDocumentCategoriesResponse = listDocumentCategoriesResponseSuccess | listDocumentCategoriesResponseError\n\nexport const getListDocumentCategoriesUrl = (\n ecosystemName: string,\n projectName: string,\n params?: ListDocumentCategoriesParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/`\n}\n\nexport const listDocumentCategories = async (\n ecosystemName: string,\n projectName: string,\n params?: ListDocumentCategoriesParams,\n options?: RequestInit,\n): Promise<listDocumentCategoriesResponse> => {\n return customFetch<listDocumentCategoriesResponse>(getListDocumentCategoriesUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Creates a document category with the provided data\n */\nexport type createDocumentCategoryResponse200 = {\n data: CreateDocumentCategory200\n status: 200\n}\n\nexport type createDocumentCategoryResponse403 = {\n data: CreateDocumentCategory403\n status: 403\n}\n\nexport type createDocumentCategoryResponse404 = {\n data: CreateDocumentCategory404\n status: 404\n}\n\nexport type createDocumentCategoryResponseSuccess = createDocumentCategoryResponse200 & {\n headers: Headers\n}\nexport type createDocumentCategoryResponseError = (\n | createDocumentCategoryResponse403\n | createDocumentCategoryResponse404\n) & {\n headers: Headers\n}\n\nexport type createDocumentCategoryResponse = createDocumentCategoryResponseSuccess | createDocumentCategoryResponseError\n\nexport const getCreateDocumentCategoryUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/`\n}\n\nexport const createDocumentCategory = async (\n ecosystemName: string,\n projectName: string,\n createDocumentCategoryBody: CreateDocumentCategoryBody,\n options?: RequestInit,\n): Promise<createDocumentCategoryResponse> => {\n return customFetch<createDocumentCategoryResponse>(getCreateDocumentCategoryUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createDocumentCategoryBody),\n })\n}\n\n/**\n * Get the data of a document category\n */\nexport type getDocumentCategoryResponse200 = {\n data: GetDocumentCategory200\n status: 200\n}\n\nexport type getDocumentCategoryResponse403 = {\n data: GetDocumentCategory403\n status: 403\n}\n\nexport type getDocumentCategoryResponse404 = {\n data: GetDocumentCategory404\n status: 404\n}\n\nexport type getDocumentCategoryResponseSuccess = getDocumentCategoryResponse200 & {\n headers: Headers\n}\nexport type getDocumentCategoryResponseError = (getDocumentCategoryResponse403 | getDocumentCategoryResponse404) & {\n headers: Headers\n}\n\nexport type getDocumentCategoryResponse = getDocumentCategoryResponseSuccess | getDocumentCategoryResponseError\n\nexport const getGetDocumentCategoryUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/${id}`\n}\n\nexport const getDocumentCategory = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<getDocumentCategoryResponse> => {\n return customFetch<getDocumentCategoryResponse>(getGetDocumentCategoryUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Updates (patch) a document category with the provided data\n */\nexport type updateDocumentCategoryResponse200 = {\n data: UpdateDocumentCategory200\n status: 200\n}\n\nexport type updateDocumentCategoryResponse403 = {\n data: UpdateDocumentCategory403\n status: 403\n}\n\nexport type updateDocumentCategoryResponse404 = {\n data: UpdateDocumentCategory404\n status: 404\n}\n\nexport type updateDocumentCategoryResponseSuccess = updateDocumentCategoryResponse200 & {\n headers: Headers\n}\nexport type updateDocumentCategoryResponseError = (\n | updateDocumentCategoryResponse403\n | updateDocumentCategoryResponse404\n) & {\n headers: Headers\n}\n\nexport type updateDocumentCategoryResponse = updateDocumentCategoryResponseSuccess | updateDocumentCategoryResponseError\n\nexport const getUpdateDocumentCategoryUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/${id}`\n}\n\nexport const updateDocumentCategory = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateDocumentCategoryBody: UpdateDocumentCategoryBody,\n options?: RequestInit,\n): Promise<updateDocumentCategoryResponse> => {\n return customFetch<updateDocumentCategoryResponse>(getUpdateDocumentCategoryUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateDocumentCategoryBody),\n })\n}\n\n/**\n * Deletes a document category with the provided ID\n */\nexport type deleteDocumentCategoryResponse200 = {\n data: DeleteDocumentCategory200\n status: 200\n}\n\nexport type deleteDocumentCategoryResponse403 = {\n data: DeleteDocumentCategory403\n status: 403\n}\n\nexport type deleteDocumentCategoryResponse404 = {\n data: DeleteDocumentCategory404\n status: 404\n}\n\nexport type deleteDocumentCategoryResponseSuccess = deleteDocumentCategoryResponse200 & {\n headers: Headers\n}\nexport type deleteDocumentCategoryResponseError = (\n | deleteDocumentCategoryResponse403\n | deleteDocumentCategoryResponse404\n) & {\n headers: Headers\n}\n\nexport type deleteDocumentCategoryResponse = deleteDocumentCategoryResponseSuccess | deleteDocumentCategoryResponseError\n\nexport const getDeleteDocumentCategoryUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/document-category/${id}`\n}\n\nexport const deleteDocumentCategory = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteDocumentCategoryResponse> => {\n return customFetch<deleteDocumentCategoryResponse>(getDeleteDocumentCategoryUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * Get forms data\n */\nexport type getFormsDataResponse200 = {\n data: GetFormsData200\n status: 200\n}\n\nexport type getFormsDataResponse403 = {\n data: GetFormsData403\n status: 403\n}\n\nexport type getFormsDataResponse404 = {\n data: GetFormsData404\n status: 404\n}\n\nexport type getFormsDataResponseSuccess = getFormsDataResponse200 & {\n headers: Headers\n}\nexport type getFormsDataResponseError = (getFormsDataResponse403 | getFormsDataResponse404) & {\n headers: Headers\n}\n\nexport type getFormsDataResponse = getFormsDataResponseSuccess | getFormsDataResponseError\n\nexport const getGetFormsDataUrl = (ecosystemName: string, projectName: string, params: GetFormsDataParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/forms-data/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/forms-data/`\n}\n\nexport const getFormsData = async (\n ecosystemName: string,\n projectName: string,\n params: GetFormsDataParams,\n options?: RequestInit,\n): Promise<getFormsDataResponse> => {\n return customFetch<getFormsDataResponse>(getGetFormsDataUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Get a paginated list of manual triggers, optionally with their actions\n */\nexport type listManualTriggersResponse200 = {\n data: ListManualTriggers200\n status: 200\n}\n\nexport type listManualTriggersResponse403 = {\n data: ListManualTriggers403\n status: 403\n}\n\nexport type listManualTriggersResponse404 = {\n data: ListManualTriggers404\n status: 404\n}\n\nexport type listManualTriggersResponseSuccess = listManualTriggersResponse200 & {\n headers: Headers\n}\nexport type listManualTriggersResponseError = (listManualTriggersResponse403 | listManualTriggersResponse404) & {\n headers: Headers\n}\n\nexport type listManualTriggersResponse = listManualTriggersResponseSuccess | listManualTriggersResponseError\n\nexport const getListManualTriggersUrl = (\n ecosystemName: string,\n projectName: string,\n params?: ListManualTriggersParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/`\n}\n\nexport const listManualTriggers = async (\n ecosystemName: string,\n projectName: string,\n params?: ListManualTriggersParams,\n options?: RequestInit,\n): Promise<listManualTriggersResponse> => {\n return customFetch<listManualTriggersResponse>(getListManualTriggersUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Create a new manual trigger\n */\nexport type createManualTriggerResponse200 = {\n data: CreateManualTrigger200\n status: 200\n}\n\nexport type createManualTriggerResponse403 = {\n data: CreateManualTrigger403\n status: 403\n}\n\nexport type createManualTriggerResponse404 = {\n data: CreateManualTrigger404\n status: 404\n}\n\nexport type createManualTriggerResponseSuccess = createManualTriggerResponse200 & {\n headers: Headers\n}\nexport type createManualTriggerResponseError = (createManualTriggerResponse403 | createManualTriggerResponse404) & {\n headers: Headers\n}\n\nexport type createManualTriggerResponse = createManualTriggerResponseSuccess | createManualTriggerResponseError\n\nexport const getCreateManualTriggerUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/`\n}\n\nexport const createManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n createManualTriggerBody: CreateManualTriggerBody,\n options?: RequestInit,\n): Promise<createManualTriggerResponse> => {\n return customFetch<createManualTriggerResponse>(getCreateManualTriggerUrl(ecosystemName, projectName), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(createManualTriggerBody),\n })\n}\n\n/**\n * List the manual triggers applicable to an entity, with their conditions already evaluated. Read-only: it records nothing\n */\nexport type listAvailableManualTriggersResponse200 = {\n data: ListAvailableManualTriggers200\n status: 200\n}\n\nexport type listAvailableManualTriggersResponse403 = {\n data: ListAvailableManualTriggers403\n status: 403\n}\n\nexport type listAvailableManualTriggersResponse404 = {\n data: ListAvailableManualTriggers404\n status: 404\n}\n\nexport type listAvailableManualTriggersResponseSuccess = listAvailableManualTriggersResponse200 & {\n headers: Headers\n}\nexport type listAvailableManualTriggersResponseError = (\n | listAvailableManualTriggersResponse403\n | listAvailableManualTriggersResponse404\n) & {\n headers: Headers\n}\n\nexport type listAvailableManualTriggersResponse =\n | listAvailableManualTriggersResponseSuccess\n | listAvailableManualTriggersResponseError\n\nexport const getListAvailableManualTriggersUrl = (\n ecosystemName: string,\n projectName: string,\n params: ListAvailableManualTriggersParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/available?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/available`\n}\n\nexport const listAvailableManualTriggers = async (\n ecosystemName: string,\n projectName: string,\n params: ListAvailableManualTriggersParams,\n options?: RequestInit,\n): Promise<listAvailableManualTriggersResponse> => {\n return customFetch<listAvailableManualTriggersResponse>(\n getListAvailableManualTriggersUrl(ecosystemName, projectName, params),\n {\n ...options,\n method: 'GET',\n },\n )\n}\n\n/**\n * Retrieve a specific manual trigger by ID, optionally with its actions\n */\nexport type getManualTriggerResponse200 = {\n data: GetManualTrigger200\n status: 200\n}\n\nexport type getManualTriggerResponse403 = {\n data: GetManualTrigger403\n status: 403\n}\n\nexport type getManualTriggerResponse404 = {\n data: GetManualTrigger404\n status: 404\n}\n\nexport type getManualTriggerResponseSuccess = getManualTriggerResponse200 & {\n headers: Headers\n}\nexport type getManualTriggerResponseError = (getManualTriggerResponse403 | getManualTriggerResponse404) & {\n headers: Headers\n}\n\nexport type getManualTriggerResponse = getManualTriggerResponseSuccess | getManualTriggerResponseError\n\nexport const getGetManualTriggerUrl = (\n ecosystemName: string,\n projectName: string,\n id: number,\n params?: GetManualTriggerParams,\n) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}`\n}\n\nexport const getManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n params?: GetManualTriggerParams,\n options?: RequestInit,\n): Promise<getManualTriggerResponse> => {\n return customFetch<getManualTriggerResponse>(getGetManualTriggerUrl(ecosystemName, projectName, id, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Update an existing manual trigger\n */\nexport type updateManualTriggerResponse200 = {\n data: UpdateManualTrigger200\n status: 200\n}\n\nexport type updateManualTriggerResponse400 = {\n data: UpdateManualTrigger400\n status: 400\n}\n\nexport type updateManualTriggerResponse403 = {\n data: UpdateManualTrigger403\n status: 403\n}\n\nexport type updateManualTriggerResponse404 = {\n data: UpdateManualTrigger404\n status: 404\n}\n\nexport type updateManualTriggerResponseSuccess = updateManualTriggerResponse200 & {\n headers: Headers\n}\nexport type updateManualTriggerResponseError = (\n | updateManualTriggerResponse400\n | updateManualTriggerResponse403\n | updateManualTriggerResponse404\n) & {\n headers: Headers\n}\n\nexport type updateManualTriggerResponse = updateManualTriggerResponseSuccess | updateManualTriggerResponseError\n\nexport const getUpdateManualTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}`\n}\n\nexport const updateManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n updateManualTriggerBody: UpdateManualTriggerBody,\n options?: RequestInit,\n): Promise<updateManualTriggerResponse> => {\n return customFetch<updateManualTriggerResponse>(getUpdateManualTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(updateManualTriggerBody),\n })\n}\n\n/**\n * Delete a manual trigger by its ID\n */\nexport type deleteManualTriggerResponse200 = {\n data: DeleteManualTrigger200\n status: 200\n}\n\nexport type deleteManualTriggerResponse403 = {\n data: DeleteManualTrigger403\n status: 403\n}\n\nexport type deleteManualTriggerResponse404 = {\n data: DeleteManualTrigger404\n status: 404\n}\n\nexport type deleteManualTriggerResponseSuccess = deleteManualTriggerResponse200 & {\n headers: Headers\n}\nexport type deleteManualTriggerResponseError = (deleteManualTriggerResponse403 | deleteManualTriggerResponse404) & {\n headers: Headers\n}\n\nexport type deleteManualTriggerResponse = deleteManualTriggerResponseSuccess | deleteManualTriggerResponseError\n\nexport const getDeleteManualTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}`\n}\n\nexport const deleteManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n options?: RequestInit,\n): Promise<deleteManualTriggerResponse> => {\n return customFetch<deleteManualTriggerResponse>(getDeleteManualTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'DELETE',\n })\n}\n\n/**\n * Run a manual trigger against an entity. Re-evaluates the conditions server-side and records the evaluation and every action outcome\n */\nexport type runManualTriggerResponse200 = {\n data: RunManualTrigger200\n status: 200\n}\n\nexport type runManualTriggerResponse403 = {\n data: RunManualTrigger403\n status: 403\n}\n\nexport type runManualTriggerResponse404 = {\n data: RunManualTrigger404\n status: 404\n}\n\nexport type runManualTriggerResponseSuccess = runManualTriggerResponse200 & {\n headers: Headers\n}\nexport type runManualTriggerResponseError = (runManualTriggerResponse403 | runManualTriggerResponse404) & {\n headers: Headers\n}\n\nexport type runManualTriggerResponse = runManualTriggerResponseSuccess | runManualTriggerResponseError\n\nexport const getRunManualTriggerUrl = (ecosystemName: string, projectName: string, id: number) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/manual-trigger/${id}/run`\n}\n\nexport const runManualTrigger = async (\n ecosystemName: string,\n projectName: string,\n id: number,\n runManualTriggerBody: RunManualTriggerBody,\n options?: RequestInit,\n): Promise<runManualTriggerResponse> => {\n return customFetch<runManualTriggerResponse>(getRunManualTriggerUrl(ecosystemName, projectName, id), {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(runManualTriggerBody),\n })\n}\n\n/**\n * Get a paginated list of process_log rows of the project, optionally filtered by code, type, related entity, parent, review status or creation date range\n */\nexport type listProcessLogsResponse200 = {\n data: ListProcessLogs200\n status: 200\n}\n\nexport type listProcessLogsResponse403 = {\n data: ListProcessLogs403\n status: 403\n}\n\nexport type listProcessLogsResponse404 = {\n data: ListProcessLogs404\n status: 404\n}\n\nexport type listProcessLogsResponseSuccess = listProcessLogsResponse200 & {\n headers: Headers\n}\nexport type listProcessLogsResponseError = (listProcessLogsResponse403 | listProcessLogsResponse404) & {\n headers: Headers\n}\n\nexport type listProcessLogsResponse = listProcessLogsResponseSuccess | listProcessLogsResponseError\n\nexport const getListProcessLogsUrl = (ecosystemName: string, projectName: string, params?: ListProcessLogsParams) => {\n const normalizedParams = new URLSearchParams()\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n })\n\n const stringifiedParams = normalizedParams.toString()\n\n return stringifiedParams.length > 0\n ? `/v2/ecosystem/${ecosystemName}/project/${projectName}/process-log/?${stringifiedParams}`\n : `/v2/ecosystem/${ecosystemName}/project/${projectName}/process-log/`\n}\n\nexport const listProcessLogs = async (\n ecosystemName: string,\n projectName: string,\n params?: ListProcessLogsParams,\n options?: RequestInit,\n): Promise<listProcessLogsResponse> => {\n return customFetch<listProcessLogsResponse>(getListProcessLogsUrl(ecosystemName, projectName, params), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * [DEPRECATED] Returns a short-lived URL to embed the Thryve connection widget in an iframe / WebView. The native app builds this URL itself now; kept only for older installed clients. Slated for removal once access logs drop to zero.\n * @deprecated\n */\nexport type getThryveIframeUrlResponse200 = {\n data: GetThryveIframeUrl200\n status: 200\n}\n\nexport type getThryveIframeUrlResponse403 = {\n data: GetThryveIframeUrl403\n status: 403\n}\n\nexport type getThryveIframeUrlResponse404 = {\n data: GetThryveIframeUrl404\n status: 404\n}\n\nexport type getThryveIframeUrlResponseSuccess = getThryveIframeUrlResponse200 & {\n headers: Headers\n}\nexport type getThryveIframeUrlResponseError = (getThryveIframeUrlResponse403 | getThryveIframeUrlResponse404) & {\n headers: Headers\n}\n\nexport type getThryveIframeUrlResponse = getThryveIframeUrlResponseSuccess | getThryveIframeUrlResponseError\n\nexport const getGetThryveIframeUrlUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/thryve/iframe-url`\n}\n\nexport const getThryveIframeUrl = async (\n ecosystemName: string,\n projectName: string,\n options?: RequestInit,\n): Promise<getThryveIframeUrlResponse> => {\n return customFetch<getThryveIframeUrlResponse>(getGetThryveIframeUrlUrl(ecosystemName, projectName), {\n ...options,\n method: 'GET',\n })\n}\n\n/**\n * Returns a boolean indicating whether the current user has at least one connected data source in the HC API (multi-provider health data service, currently Thryve).\n */\nexport type getThryveIsAuthorizedResponse200 = {\n data: boolean\n status: 200\n}\n\nexport type getThryveIsAuthorizedResponse403 = {\n data: GetThryveIsAuthorized403\n status: 403\n}\n\nexport type getThryveIsAuthorizedResponse404 = {\n data: GetThryveIsAuthorized404\n status: 404\n}\n\nexport type getThryveIsAuthorizedResponseSuccess = getThryveIsAuthorizedResponse200 & {\n headers: Headers\n}\nexport type getThryveIsAuthorizedResponseError = (\n | getThryveIsAuthorizedResponse403\n | getThryveIsAuthorizedResponse404\n) & {\n headers: Headers\n}\n\nexport type getThryveIsAuthorizedResponse = getThryveIsAuthorizedResponseSuccess | getThryveIsAuthorizedResponseError\n\nexport const getGetThryveIsAuthorizedUrl = (ecosystemName: string, projectName: string) => {\n return `/v2/ecosystem/${ecosystemName}/project/${projectName}/thryve/is-authorized`\n}\n\nexport const getThryveIsAuthorized = async (\n ecosystemName: string,\n projectName: string,\n options?: RequestInit,\n): Promise<getThryveIsAuthorizedResponse> => {\n return customFetch<getThryveIsAuthorizedResponse>(getGetThryveIsAuthorizedUrl(ecosystemName, projectName), {\n ...options,\n method: 'GET',\n })\n}\n"],"names":[],"mappings":"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"}