@epilot/sdk 2.20.33 → 2.20.35
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.
- package/definitions/event-catalog-runtime.json +1 -1
- package/definitions/event-catalog.json +310 -1
- package/definitions/integration-toolkit-runtime.json +1 -1
- package/definitions/integration-toolkit.json +530 -13
- package/definitions/metering.json +19 -8
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/chat.cjs +6 -6
- package/dist/apis/chat.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/event-catalog.cjs +8 -8
- package/dist/apis/event-catalog.d.cts +2 -2
- package/dist/apis/event-catalog.d.ts +2 -2
- package/dist/apis/event-catalog.js +2 -2
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/integration-toolkit.cjs +19 -15
- package/dist/apis/integration-toolkit.d.cts +2 -2
- package/dist/apis/integration-toolkit.d.ts +2 -2
- package/dist/apis/integration-toolkit.js +13 -9
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.d.cts +2 -2
- package/dist/apis/metering.d.ts +2 -2
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/{chunk-4DTTVPUM.cjs → chunk-4M4Z7BKK.cjs} +1 -1
- package/dist/{chunk-WE4C7GER.js → chunk-4OBXBYLK.js} +1 -1
- package/dist/chunk-M6G3GHCU.js +14 -0
- package/dist/{chunk-YEFQY72W.js → chunk-OXXS3O7X.js} +5 -5
- package/dist/{chunk-ZBFAP6AO.cjs → chunk-RE2KDGKQ.cjs} +5 -5
- package/dist/chunk-ULV6ZQQR.cjs +14 -0
- package/dist/event-catalog-5HHAS7NI.js +7 -0
- package/dist/event-catalog-SAH4ZEOO.cjs +7 -0
- package/dist/{event-catalog-runtime-XWSYNUGQ.cjs → event-catalog-runtime-2ACQMB22.cjs} +2 -2
- package/dist/{event-catalog-runtime-Z6OMHQBD.js → event-catalog-runtime-5IXAZVIB.js} +1 -1
- package/dist/{event-catalog.d-CCE1qmBN.d.cts → event-catalog.d-BQqG_LGF.d.cts} +248 -1
- package/dist/{event-catalog.d-CCE1qmBN.d.ts → event-catalog.d-BQqG_LGF.d.ts} +248 -1
- package/dist/index.cjs +12 -12
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/integration-toolkit-4ADZMNTB.cjs +7 -0
- package/dist/integration-toolkit-BCRYMKLW.js +7 -0
- package/dist/{integration-toolkit-runtime-TNDJH6HK.js → integration-toolkit-runtime-ABL4FFLI.js} +1 -1
- package/dist/{integration-toolkit-runtime-57I2O6DI.cjs → integration-toolkit-runtime-SU7VKZJB.cjs} +2 -2
- package/dist/{integration-toolkit.d-CEY26qJu.d.cts → integration-toolkit.d-BQ0Fj-48.d.cts} +274 -25
- package/dist/{integration-toolkit.d-CEY26qJu.d.ts → integration-toolkit.d-BQ0Fj-48.d.ts} +274 -25
- package/dist/{metering-COO4BTOC.js → metering-SHNCUA4O.js} +1 -1
- package/dist/{metering-FJI2AU7Q.cjs → metering-WAVFLJZD.cjs} +1 -1
- package/dist/{metering.d-DomHYl06.d.cts → metering.d-BP04w-gR.d.cts} +24 -15
- package/dist/{metering.d-DomHYl06.d.ts → metering.d-BP04w-gR.d.ts} +24 -15
- package/docs/event-catalog.md +439 -0
- package/docs/integration-toolkit.md +113 -8
- package/docs/metering.md +4 -4
- package/package.json +1 -1
- package/dist/chunk-2Q6CNXJ2.cjs +0 -14
- package/dist/chunk-LTCN52JS.js +0 -14
- package/dist/event-catalog-S4OYTDIB.js +0 -7
- package/dist/event-catalog-Z6BO4L2G.cjs +0 -7
- package/dist/integration-toolkit-FM53LFD7.cjs +0 -7
- package/dist/integration-toolkit-PUA7B6YT.js +0 -7
|
@@ -70,6 +70,7 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
|
|
|
70
70
|
- [`listOutboundDlqMessages`](#listoutbounddlqmessages)
|
|
71
71
|
- [`redriveOutboundDlqMessages`](#redriveoutbounddlqmessages)
|
|
72
72
|
- [`unblockOutboundStream`](#unblockoutboundstream)
|
|
73
|
+
- [`simulateOutboundMapping`](#simulateoutboundmapping)
|
|
73
74
|
- [`listSecureProxies`](#listsecureproxies)
|
|
74
75
|
- [`generateTypesPreview`](#generatetypespreview)
|
|
75
76
|
- [`generateTypes`](#generatetypes)
|
|
@@ -284,6 +285,9 @@ const { data } = await integrationToolkitClient.acknowledgeTracking(...)
|
|
|
284
285
|
- [`RedriveOutboundDlqResponse`](#redriveoutbounddlqresponse)
|
|
285
286
|
- [`UnblockOutboundStreamRequest`](#unblockoutboundstreamrequest)
|
|
286
287
|
- [`UnblockOutboundStreamResponse`](#unblockoutboundstreamresponse)
|
|
288
|
+
- [`SimulateOutboundMappingRequest`](#simulateoutboundmappingrequest)
|
|
289
|
+
- [`OutboundMappingSimulationError`](#outboundmappingsimulationerror)
|
|
290
|
+
- [`SimulateOutboundMappingResponse`](#simulateoutboundmappingresponse)
|
|
287
291
|
- [`RelationConfig`](#relationconfig)
|
|
288
292
|
- [`RelationItemConfig`](#relationitemconfig)
|
|
289
293
|
- [`RelationUniqueIdField`](#relationuniqueidfield)
|
|
@@ -2815,7 +2819,9 @@ const { data } = await client.pollOutboundMessages(
|
|
|
2815
2819
|
"event_name": "string",
|
|
2816
2820
|
"event_id": "string",
|
|
2817
2821
|
"group": "string",
|
|
2822
|
+
"org_id": "string",
|
|
2818
2823
|
"payload": {},
|
|
2824
|
+
"mapping_version": "3f2a9c1b7d4e8f60",
|
|
2819
2825
|
"enqueued_at": "1970-01-01T00:00:00.000Z"
|
|
2820
2826
|
}
|
|
2821
2827
|
],
|
|
@@ -2903,6 +2909,8 @@ const { data } = await client.listOutboundDlqMessages({
|
|
|
2903
2909
|
"dead_lettered_at": "1970-01-01T00:00:00.000Z",
|
|
2904
2910
|
"delivery_attempts": 0,
|
|
2905
2911
|
"reason": "string",
|
|
2912
|
+
"mapping_error": "string",
|
|
2913
|
+
"mapping_version": "string",
|
|
2906
2914
|
"expires_at": "1970-01-01T00:00:00.000Z"
|
|
2907
2915
|
}
|
|
2908
2916
|
],
|
|
@@ -2929,7 +2937,8 @@ const { data } = await client.redriveOutboundDlqMessages(
|
|
|
2929
2937
|
integrationId: 'example',
|
|
2930
2938
|
},
|
|
2931
2939
|
{
|
|
2932
|
-
ids: ['string']
|
|
2940
|
+
ids: ['string'],
|
|
2941
|
+
reapply_mapping: false
|
|
2933
2942
|
},
|
|
2934
2943
|
)
|
|
2935
2944
|
```
|
|
@@ -2942,7 +2951,8 @@ const { data } = await client.redriveOutboundDlqMessages(
|
|
|
2942
2951
|
"results": [
|
|
2943
2952
|
{
|
|
2944
2953
|
"id": "string",
|
|
2945
|
-
"status": "redriven"
|
|
2954
|
+
"status": "redriven",
|
|
2955
|
+
"mapping_error": "string"
|
|
2946
2956
|
}
|
|
2947
2957
|
]
|
|
2948
2958
|
}
|
|
@@ -2986,6 +2996,49 @@ const { data } = await client.unblockOutboundStream(
|
|
|
2986
2996
|
|
|
2987
2997
|
---
|
|
2988
2998
|
|
|
2999
|
+
### `simulateOutboundMapping`
|
|
3000
|
+
|
|
3001
|
+
Preview a poll delivery's `jsonata_expression` without saving or
|
|
3002
|
+
enqueueing anything. The expression is checked and evaluated exactly
|
|
3003
|
+
as at enqueue time: the same length, syntax and binding checks, th
|
|
3004
|
+
|
|
3005
|
+
`POST /v1/integrations/{integrationId}/outbound/mapping-simulation`
|
|
3006
|
+
|
|
3007
|
+
```ts
|
|
3008
|
+
const { data } = await client.simulateOutboundMapping(
|
|
3009
|
+
{
|
|
3010
|
+
integrationId: 'example',
|
|
3011
|
+
},
|
|
3012
|
+
{
|
|
3013
|
+
jsonata_expression: '{ "contract_number": contract.contract_number, "status": $mapValue($env.erp.statuses, contract.status) }',
|
|
3014
|
+
payload: {},
|
|
3015
|
+
event_id: 'string',
|
|
3016
|
+
event_catalog_event: 'contract.updated'
|
|
3017
|
+
},
|
|
3018
|
+
)
|
|
3019
|
+
```
|
|
3020
|
+
|
|
3021
|
+
<details>
|
|
3022
|
+
<summary>Response</summary>
|
|
3023
|
+
|
|
3024
|
+
```json
|
|
3025
|
+
{
|
|
3026
|
+
"valid": true,
|
|
3027
|
+
"output": {},
|
|
3028
|
+
"error": {
|
|
3029
|
+
"code": "syntax_error",
|
|
3030
|
+
"message": "string",
|
|
3031
|
+
"position": 0
|
|
3032
|
+
},
|
|
3033
|
+
"mapping_version": "3f2a9c1b7d4e8f60",
|
|
3034
|
+
"input": {}
|
|
3035
|
+
}
|
|
3036
|
+
```
|
|
3037
|
+
|
|
3038
|
+
</details>
|
|
3039
|
+
|
|
3040
|
+
---
|
|
3041
|
+
|
|
2989
3042
|
### `queryAccessLogs`
|
|
2990
3043
|
|
|
2991
3044
|
Query API access logs for a specific integration's organization.
|
|
@@ -8532,7 +8585,7 @@ type IntegrationConfigurationV2 = {
|
|
|
8532
8585
|
|
|
8533
8586
|
### `OutboundMapping`
|
|
8534
8587
|
|
|
8535
|
-
A mapping that delivers an event to an external system by one of three mechanisms — pushed to a webhook (with a JSONata payload transformation), made available on the pull-based poll queue (raw event payload,
|
|
8588
|
+
A mapping that delivers an event to an external system by one of three mechanisms — pushed to a webhook (with a JSONata payload transformation), made available on the pull-based poll queue (the raw event payload, or its JSONata transformation when the mapping carries one), or handed to a file_proxy
|
|
8536
8589
|
|
|
8537
8590
|
```ts
|
|
8538
8591
|
type OutboundMapping = {
|
|
@@ -8561,7 +8614,7 @@ type OutboundMapping = {
|
|
|
8561
8614
|
|
|
8562
8615
|
### `DeliveryConfig`
|
|
8563
8616
|
|
|
8564
|
-
Configuration for how the event should be delivered. webhook = push delivery via svc-webhooks (JSONata-transformed payload); poll = pull-based queue delivery where the consumer fetches items via the poll API (raw event payload
|
|
8617
|
+
Configuration for how the event should be delivered. webhook = push delivery via svc-webhooks (JSONata-transformed payload); poll = pull-based queue delivery where the consumer fetches items via the poll API (raw event payload, or its JSONata transformation when the mapping carries a jsonata_express
|
|
8565
8618
|
|
|
8566
8619
|
```ts
|
|
8567
8620
|
type DeliveryConfig = {
|
|
@@ -8595,7 +8648,7 @@ type WebhookDeliveryConfig = {
|
|
|
8595
8648
|
|
|
8596
8649
|
### `PollDeliveryConfig`
|
|
8597
8650
|
|
|
8598
|
-
Pull-based queue delivery.
|
|
8651
|
+
Pull-based queue delivery. Consumers fetch and acknowledge items via the poll API. When the mapping carries a `jsonata_expression`, it is evaluated once at enqueue time against the standardized event-catalog event (with `$env`/`$mapValue`/`$mapKey` bindings) and its output — a JSON object — is the d
|
|
8599
8652
|
|
|
8600
8653
|
```ts
|
|
8601
8654
|
type PollDeliveryConfig = {
|
|
@@ -8824,7 +8877,9 @@ type OutboundMessage = {
|
|
|
8824
8877
|
event_name: string
|
|
8825
8878
|
event_id: string
|
|
8826
8879
|
group: string
|
|
8880
|
+
org_id?: string
|
|
8827
8881
|
payload: Record<string, unknown>
|
|
8882
|
+
mapping_version?: string
|
|
8828
8883
|
enqueued_at: string // date-time
|
|
8829
8884
|
}
|
|
8830
8885
|
```
|
|
@@ -8840,7 +8895,9 @@ type PollOutboundMessagesResponse = {
|
|
|
8840
8895
|
event_name: string
|
|
8841
8896
|
event_id: string
|
|
8842
8897
|
group: string
|
|
8898
|
+
org_id?: string
|
|
8843
8899
|
payload: Record<string, unknown>
|
|
8900
|
+
mapping_version?: string
|
|
8844
8901
|
enqueued_at: string // date-time
|
|
8845
8902
|
}>
|
|
8846
8903
|
visibility_timeout_seconds: number
|
|
@@ -8893,6 +8950,8 @@ type OutboundDlqMessage = {
|
|
|
8893
8950
|
dead_lettered_at: string // date-time
|
|
8894
8951
|
delivery_attempts: number
|
|
8895
8952
|
reason?: string
|
|
8953
|
+
mapping_error?: string
|
|
8954
|
+
mapping_version?: string
|
|
8896
8955
|
expires_at?: string // date-time
|
|
8897
8956
|
}
|
|
8898
8957
|
```
|
|
@@ -8910,6 +8969,8 @@ type OutboundDlqListResponse = {
|
|
|
8910
8969
|
dead_lettered_at: string // date-time
|
|
8911
8970
|
delivery_attempts: number
|
|
8912
8971
|
reason?: string
|
|
8972
|
+
mapping_error?: string
|
|
8973
|
+
mapping_version?: string
|
|
8913
8974
|
expires_at?: string // date-time
|
|
8914
8975
|
}>
|
|
8915
8976
|
next_token?: string
|
|
@@ -8921,6 +8982,7 @@ type OutboundDlqListResponse = {
|
|
|
8921
8982
|
```ts
|
|
8922
8983
|
type RedriveOutboundDlqRequest = {
|
|
8923
8984
|
ids: string[]
|
|
8985
|
+
reapply_mapping?: boolean
|
|
8924
8986
|
}
|
|
8925
8987
|
```
|
|
8926
8988
|
|
|
@@ -8929,7 +8991,8 @@ type RedriveOutboundDlqRequest = {
|
|
|
8929
8991
|
```ts
|
|
8930
8992
|
type RedriveOutboundDlqResult = {
|
|
8931
8993
|
id: string
|
|
8932
|
-
status: "redriven" | "not_found"
|
|
8994
|
+
status: "redriven" | "not_found" | "mapping_failed"
|
|
8995
|
+
mapping_error?: string
|
|
8933
8996
|
}
|
|
8934
8997
|
```
|
|
8935
8998
|
|
|
@@ -8939,7 +9002,8 @@ type RedriveOutboundDlqResult = {
|
|
|
8939
9002
|
type RedriveOutboundDlqResponse = {
|
|
8940
9003
|
results: Array<{
|
|
8941
9004
|
id: string
|
|
8942
|
-
status: "redriven" | "not_found"
|
|
9005
|
+
status: "redriven" | "not_found" | "mapping_failed"
|
|
9006
|
+
mapping_error?: string
|
|
8943
9007
|
}>
|
|
8944
9008
|
}
|
|
8945
9009
|
```
|
|
@@ -8961,6 +9025,47 @@ type UnblockOutboundStreamResponse = {
|
|
|
8961
9025
|
}
|
|
8962
9026
|
```
|
|
8963
9027
|
|
|
9028
|
+
### `SimulateOutboundMappingRequest`
|
|
9029
|
+
|
|
9030
|
+
Exactly one of `payload` or `event_id` is required. `event_id` needs
|
|
9031
|
+
`event_catalog_event` to name the event it belongs to.
|
|
9032
|
+
|
|
9033
|
+
|
|
9034
|
+
```ts
|
|
9035
|
+
type SimulateOutboundMappingRequest = {
|
|
9036
|
+
jsonata_expression: string
|
|
9037
|
+
payload?: Record<string, unknown>
|
|
9038
|
+
event_id?: string
|
|
9039
|
+
event_catalog_event?: string
|
|
9040
|
+
}
|
|
9041
|
+
```
|
|
9042
|
+
|
|
9043
|
+
### `OutboundMappingSimulationError`
|
|
9044
|
+
|
|
9045
|
+
```ts
|
|
9046
|
+
type OutboundMappingSimulationError = {
|
|
9047
|
+
code: "syntax_error" | "unknown_binding" | "evaluation_error" | "timeout" | "invalid_output" | "expression_too_long"
|
|
9048
|
+
message: string
|
|
9049
|
+
position?: number
|
|
9050
|
+
}
|
|
9051
|
+
```
|
|
9052
|
+
|
|
9053
|
+
### `SimulateOutboundMappingResponse`
|
|
9054
|
+
|
|
9055
|
+
```ts
|
|
9056
|
+
type SimulateOutboundMappingResponse = {
|
|
9057
|
+
valid: boolean
|
|
9058
|
+
output?: Record<string, unknown>
|
|
9059
|
+
error?: {
|
|
9060
|
+
code: "syntax_error" | "unknown_binding" | "evaluation_error" | "timeout" | "invalid_output" | "expression_too_long"
|
|
9061
|
+
message: string
|
|
9062
|
+
position?: number
|
|
9063
|
+
}
|
|
9064
|
+
mapping_version: string
|
|
9065
|
+
input?: Record<string, unknown>
|
|
9066
|
+
}
|
|
9067
|
+
```
|
|
9068
|
+
|
|
8964
9069
|
### `RelationConfig`
|
|
8965
9070
|
|
|
8966
9071
|
```ts
|
|
@@ -9409,7 +9514,7 @@ This schema exists so consumers can import the union as a type. It is
|
|
|
9409
9514
|
deliberately
|
|
9410
9515
|
|
|
9411
9516
|
```ts
|
|
9412
|
-
type MonitoringCode = "ACK_CONFIRMED" | "ACK_PENDING" | "ACK_TIMEOUT" | "ATTACHMENT_NOT_FOUND" | "ATTRIBUTE_TYPE_MISMATCH" | "CONDITIONAL_VARIANTS_WRITTEN" | "CONDITIONAL_VARIANT_WRITE_FAILED" | "CONDITIONAL_VARIANT_WRITE_WARNING" | "DEPRECATED_ENDPOINT" | "DIRECT_ENTITY_NOT_ALLOWED" | "DIRECT_PAYLOAD_INVALID" | "DIRECT_VERSION_UNSUPPORTED" | "DUPLICATE_EVENT" | "ENTITY_CREATED" | "ENTITY_DELETED" | "ENTITY_NO_OP" | "ENTITY_REFERENCE_NOT_FOUND" | "ENTITY_UPDATED" | "EVENT_NOT_CONFIGURED" | "EXTERNAL_API_ERROR" | "EXTERNAL_ERROR" | "EXTERNAL_INFO" | "EXTERNAL_SUCCESS" | "EXTERNAL_WARNING" | "FAN_OUT_EMPTY" | "FAN_OUT_INVALID_RESULT" | "FILE_EXTRACTION_FAILED" | "FILE_FETCH_FAILED" | "FILE_PROXY_OK" | "FILE_PROXY_UPLOADED" | "FILE_PROXY_UPLOAD_ENQUEUED" | "FILE_PROXY_UPLOAD_FAILED" | "FILE_PROXY_UPLOAD_RETRYING" | "FILE_TOO_LARGE" | "INTEGRATION_NOT_FOUND" | "INVALID_METER_READING_ATTRIBUTES" | "LOOKUP_UNMAPPED" | "MALFORMED_PAYLOAD" | "MAPPING_EXPRESSION_FAILED" | "METERING_API_ERROR" | "METER_READING_DELETED" | "METER_READING_GROUP_FAILED" | "METER_READING_GROUP_RETRYING" | "METER_READING_UPSERTED" | "MISSING_REQUIRED_PARAM" | "MISSING_UNIQUE_IDENTIFIERS" | "MSG_ACKED" | "MSG_DEAD_LETTERED" | "MSG_ENQUEUED" | "MSG_EXPIRED_UNPOLLED" | "MSG_HEAD_BLOCKED" | "OAUTH2_TOKEN_FAILURE" | "PAYLOAD_TOO_LARGE" | "PRUNE_SCOPE_COMPLETED" | "PRUNE_SCOPE_PARTIAL_FAILURE" | "RECURSION_DEPTH_EXCEEDED" | "RELATION_REF_ITEM_NOT_FOUND" | "RELATION_REF_VALUE_UNDEFINED" | "REQUIRED_PARAM_MISSING" | "SECURE_PROXY_DISABLED" | "SECURE_PROXY_DOMAIN_BLOCKED" | "SECURE_PROXY_DOMAIN_NOT_ALLOWED" | "SECURE_PROXY_ERROR" | "SECURE_PROXY_INVALID_CONFIG" | "SECURE_PROXY_INVALID_TYPE" | "SECURE_PROXY_INVALID_URL" | "SECURE_PROXY_IP_BLOCKED" | "SECURE_PROXY_IP_NOT_ALLOWED" | "SECURE_PROXY_NOT_FOUND" | "SECURE_PROXY_UNAVAILABLE" | "SIGNATURE_VERIFICATION_FAILED" | "SIGNATURE_VERIFICATION_UNAVAILABLE" | "SOFT_DELETED_ENTITY_MATCHED" | "STEP_DISABLED" | "TIMEOUT" | "UNIQUE_ID_MULTIPLE_MATCHES" | "UNIQUE_ID_NOT_IN_SCHEMA" | "UNKNOWN_ERROR" | "USE_CASE_DISABLED" | "USE_CASE_INVALID_TYPE" | "USE_CASE_MISSING_CONFIG" | "USE_CASE_NOT_FOUND" | "WEBHOOK_DELIVERED"
|
|
9517
|
+
type MonitoringCode = "ACK_CONFIRMED" | "ACK_PENDING" | "ACK_TIMEOUT" | "ATTACHMENT_NOT_FOUND" | "ATTRIBUTE_TYPE_MISMATCH" | "CONDITIONAL_VARIANTS_WRITTEN" | "CONDITIONAL_VARIANT_WRITE_FAILED" | "CONDITIONAL_VARIANT_WRITE_WARNING" | "DEPRECATED_ENDPOINT" | "DIRECT_ENTITY_NOT_ALLOWED" | "DIRECT_PAYLOAD_INVALID" | "DIRECT_VERSION_UNSUPPORTED" | "DUPLICATE_EVENT" | "ENTITY_CREATED" | "ENTITY_DELETED" | "ENTITY_NO_OP" | "ENTITY_REFERENCE_NOT_FOUND" | "ENTITY_UPDATED" | "EVENT_NOT_CONFIGURED" | "EXTERNAL_API_ERROR" | "EXTERNAL_ERROR" | "EXTERNAL_INFO" | "EXTERNAL_SUCCESS" | "EXTERNAL_WARNING" | "FAN_OUT_EMPTY" | "FAN_OUT_INVALID_RESULT" | "FILE_EXTRACTION_FAILED" | "FILE_FETCH_FAILED" | "FILE_PROXY_OK" | "FILE_PROXY_UPLOADED" | "FILE_PROXY_UPLOAD_ENQUEUED" | "FILE_PROXY_UPLOAD_FAILED" | "FILE_PROXY_UPLOAD_RETRYING" | "FILE_TOO_LARGE" | "INTEGRATION_NOT_FOUND" | "INVALID_METER_READING_ATTRIBUTES" | "LOOKUP_UNMAPPED" | "MALFORMED_PAYLOAD" | "MAPPING_EXPRESSION_FAILED" | "METERING_API_ERROR" | "METER_READING_DELETED" | "METER_READING_GROUP_FAILED" | "METER_READING_GROUP_RETRYING" | "METER_READING_UPSERTED" | "MISSING_REQUIRED_PARAM" | "MISSING_UNIQUE_IDENTIFIERS" | "MSG_ACKED" | "MSG_DEAD_LETTERED" | "MSG_ENQUEUED" | "MSG_EXPIRED_UNPOLLED" | "MSG_HEAD_BLOCKED" | "MSG_LATE_ARRIVAL" | "OAUTH2_TOKEN_FAILURE" | "PAYLOAD_TOO_LARGE" | "PRUNE_SCOPE_COMPLETED" | "PRUNE_SCOPE_PARTIAL_FAILURE" | "RECURSION_DEPTH_EXCEEDED" | "RELATION_REF_ITEM_NOT_FOUND" | "RELATION_REF_VALUE_UNDEFINED" | "REQUIRED_PARAM_MISSING" | "SECURE_PROXY_DISABLED" | "SECURE_PROXY_DOMAIN_BLOCKED" | "SECURE_PROXY_DOMAIN_NOT_ALLOWED" | "SECURE_PROXY_ERROR" | "SECURE_PROXY_INVALID_CONFIG" | "SECURE_PROXY_INVALID_TYPE" | "SECURE_PROXY_INVALID_URL" | "SECURE_PROXY_IP_BLOCKED" | "SECURE_PROXY_IP_NOT_ALLOWED" | "SECURE_PROXY_NOT_FOUND" | "SECURE_PROXY_UNAVAILABLE" | "SIGNATURE_VERIFICATION_FAILED" | "SIGNATURE_VERIFICATION_UNAVAILABLE" | "SOFT_DELETED_ENTITY_MATCHED" | "STEP_DISABLED" | "TIMEOUT" | "UNIQUE_ID_MULTIPLE_MATCHES" | "UNIQUE_ID_NOT_IN_SCHEMA" | "UNKNOWN_ERROR" | "USE_CASE_DISABLED" | "USE_CASE_INVALID_TYPE" | "USE_CASE_MISSING_CONFIG" | "USE_CASE_NOT_FOUND" | "WEBHOOK_DELIVERED"
|
|
9413
9518
|
```
|
|
9414
9519
|
|
|
9415
9520
|
### `MonitoringEventV2`
|
package/docs/metering.md
CHANGED
|
@@ -1131,7 +1131,7 @@ const { data } = await client.deleteMeterReading({
|
|
|
1131
1131
|
|
|
1132
1132
|
### `getReadingChangesets`
|
|
1133
1133
|
|
|
1134
|
-
|
|
1134
|
+
Lists the pending reading changesets for a counter.
|
|
1135
1135
|
|
|
1136
1136
|
`GET /v1/metering/reading/{meter_id}/{counter_id}/changesets`
|
|
1137
1137
|
|
|
@@ -1198,7 +1198,7 @@ const { data } = await client.getReadingChangesets({
|
|
|
1198
1198
|
|
|
1199
1199
|
### `applyReadingChangeset`
|
|
1200
1200
|
|
|
1201
|
-
|
|
1201
|
+
Applies (approves) a pending reading changeset: the proposed reading value is written to ClickHouse and the pending changeset is removed.
|
|
1202
1202
|
|
|
1203
1203
|
`POST /v1/metering/reading/{meter_id}/{counter_id}/changesets/{changeset_id}:apply`
|
|
1204
1204
|
|
|
@@ -1283,7 +1283,7 @@ const { data } = await client.applyReadingChangeset({
|
|
|
1283
1283
|
|
|
1284
1284
|
### `dismissReadingChangeset`
|
|
1285
1285
|
|
|
1286
|
-
|
|
1286
|
+
Dismisses (rejects) a pending reading changeset: the changeset is removed without being applied. The reading value remains unchanged.
|
|
1287
1287
|
|
|
1288
1288
|
`POST /v1/metering/reading/{meter_id}/{counter_id}/changesets/{changeset_id}:dismiss`
|
|
1289
1289
|
|
|
@@ -1352,7 +1352,7 @@ const { data } = await client.dismissReadingChangeset(
|
|
|
1352
1352
|
|
|
1353
1353
|
### `updateReadingChangeset`
|
|
1354
1354
|
|
|
1355
|
-
|
|
1355
|
+
Edits a pending reading changeset by updating its proposed value, without going through the normal write path.
|
|
1356
1356
|
|
|
1357
1357
|
`PATCH /v1/metering/reading/{meter_id}/{counter_id}/changesets/{changeset_id}`
|
|
1358
1358
|
|
package/package.json
CHANGED
package/dist/chunk-2Q6CNXJ2.cjs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkNJK5F5TFcjs = require('./chunk-NJK5F5TF.cjs');
|
|
4
|
-
|
|
5
|
-
// src/definitions/event-catalog-runtime.json
|
|
6
|
-
var require_event_catalog_runtime = _chunkNJK5F5TFcjs.__commonJS.call(void 0, {
|
|
7
|
-
"src/definitions/event-catalog-runtime.json"(exports, module) {
|
|
8
|
-
module.exports = { s: "https://event-catalog.sls.epilot.io", o: [["listEvents", "get", "/v1/events"], ["createCustomEvent", "post", "/v1/events", null, 1], ["getEvent", "get", "/v1/events/{event_name}", [["event_name", "p", true]]], ["patchEvent", "patch", "/v1/events/{event_name}", [["event_name", "p", true]], 1], ["replaceCustomEventDraft", "put", "/v1/events/{event_name}", [["event_name", "p", true]], 1], ["deprecateCustomEvent", "delete", "/v1/events/{event_name}", [["event_name", "p", true]]], ["previewCustomEvent", "post", "/v1/events/{event_name}:preview", [["event_name", "p", true]], 1], ["publishCustomEventDefinition", "post", "/v1/events/{event_name}:publish", [["event_name", "p", true]], 1], ["getEventJSONSchema", "get", "/v1/events/{event_name}/json_schema", [["event_name", "p", true], ["Epilot-Event-Version", "h"]]], ["getEventExample", "get", "/v1/events/{event_name}/example", [["event_name", "p", true], ["Epilot-Event-Version", "h"]]], ["listEventVersions", "get", "/v1/events/{event_name}/versions", [["event_name", "p", true]]], ["searchEventHistory", "post", "/v1/events/{event_name}:history", [["event_name", "p", true]], 1], ["searchEventHistoryV2", "post", "/v2/events/{event_name}:history", [["event_name", "p", true]], 1], ["getHistoricalEvent", "get", "/v2/events/{event_name}/history/{event_id}", [["event_name", "p", true], ["event_id", "p", true]]], ["triggerEvent", "post", "/v1/events/{event_name}:trigger", [["event_name", "p", true]], 1]], v: "3.0.0" };
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
exports.require_event_catalog_runtime = require_event_catalog_runtime;
|
package/dist/chunk-LTCN52JS.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__commonJS
|
|
3
|
-
} from "./chunk-YPSWSI3M.js";
|
|
4
|
-
|
|
5
|
-
// src/definitions/event-catalog-runtime.json
|
|
6
|
-
var require_event_catalog_runtime = __commonJS({
|
|
7
|
-
"src/definitions/event-catalog-runtime.json"(exports, module) {
|
|
8
|
-
module.exports = { s: "https://event-catalog.sls.epilot.io", o: [["listEvents", "get", "/v1/events"], ["createCustomEvent", "post", "/v1/events", null, 1], ["getEvent", "get", "/v1/events/{event_name}", [["event_name", "p", true]]], ["patchEvent", "patch", "/v1/events/{event_name}", [["event_name", "p", true]], 1], ["replaceCustomEventDraft", "put", "/v1/events/{event_name}", [["event_name", "p", true]], 1], ["deprecateCustomEvent", "delete", "/v1/events/{event_name}", [["event_name", "p", true]]], ["previewCustomEvent", "post", "/v1/events/{event_name}:preview", [["event_name", "p", true]], 1], ["publishCustomEventDefinition", "post", "/v1/events/{event_name}:publish", [["event_name", "p", true]], 1], ["getEventJSONSchema", "get", "/v1/events/{event_name}/json_schema", [["event_name", "p", true], ["Epilot-Event-Version", "h"]]], ["getEventExample", "get", "/v1/events/{event_name}/example", [["event_name", "p", true], ["Epilot-Event-Version", "h"]]], ["listEventVersions", "get", "/v1/events/{event_name}/versions", [["event_name", "p", true]]], ["searchEventHistory", "post", "/v1/events/{event_name}:history", [["event_name", "p", true]], 1], ["searchEventHistoryV2", "post", "/v2/events/{event_name}:history", [["event_name", "p", true]], 1], ["getHistoricalEvent", "get", "/v2/events/{event_name}/history/{event_id}", [["event_name", "p", true], ["event_id", "p", true]]], ["triggerEvent", "post", "/v1/events/{event_name}:trigger", [["event_name", "p", true]], 1]], v: "3.0.0" };
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
require_event_catalog_runtime
|
|
14
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./chunk-YPSWSI3M.js";
|
|
2
|
-
|
|
3
|
-
// src/docs/event-catalog.json
|
|
4
|
-
var event_catalog_default = '# Event Catalog API\n\n- **Base URL:** `https://event-catalog.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/event-catalog](https://docs.epilot.io/api/event-catalog)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.eventCatalog.listEvents(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/event-catalog\'\n\nconst eventCatalogClient = getClient()\nauthorize(eventCatalogClient, () => \'<token>\')\nconst { data } = await eventCatalogClient.listEvents(...)\n```\n\n## Operations\n\n**Event Catalog**\n- [`listEvents`](#listevents)\n- [`createCustomEvent`](#createcustomevent)\n- [`getEvent`](#getevent)\n- [`patchEvent`](#patchevent)\n- [`replaceCustomEventDraft`](#replacecustomeventdraft)\n- [`deprecateCustomEvent`](#deprecatecustomevent)\n- [`previewCustomEvent`](#previewcustomevent)\n- [`publishCustomEventDefinition`](#publishcustomeventdefinition)\n- [`getEventJSONSchema`](#geteventjsonschema)\n- [`getEventExample`](#geteventexample)\n- [`listEventVersions`](#listeventversions)\n- [`searchEventHistory`](#searcheventhistory)\n- [`searchEventHistoryV2`](#searcheventhistoryv2)\n- [`getHistoricalEvent`](#gethistoricalevent)\n- [`triggerEvent`](#triggerevent)\n\n**Schemas**\n- [`EventConfigBase`](#eventconfigbase)\n- [`EventConfig`](#eventconfig)\n- [`CreateCustomEventPayload`](#createcustomeventpayload)\n- [`EventMapping`](#eventmapping)\n- [`CustomEventLineage`](#customeventlineage)\n- [`PurposeFilterSnapshot`](#purposefiltersnapshot)\n- [`PublishCustomEventPayload`](#publishcustomeventpayload)\n- [`ValidationIssue`](#validationissue)\n- [`PreviewEventResponse`](#previeweventresponse)\n- [`UpdateEventPayload`](#updateeventpayload)\n- [`PrimitiveField`](#primitivefield)\n- [`ContextEntity`](#contextentity)\n- [`AttachmentField`](#attachmentfield)\n- [`CustomSchemaField`](#customschemafield)\n- [`SchemaField`](#schemafield)\n- [`SuccessCriterion`](#successcriterion)\n- [`CommonEventMetadata`](#commoneventmetadata)\n- [`EventJsonSchema`](#eventjsonschema)\n- [`InlineDowngradeStep`](#inlinedowngradestep)\n- [`Event`](#event)\n- [`EventSummary`](#eventsummary)\n- [`GraphDefinition`](#graphdefinition)\n- [`GraphNode`](#graphnode)\n- [`GraphEdge`](#graphedge)\n- [`EntityOperationTrigger`](#entityoperationtrigger)\n- [`SearchOptions`](#searchoptions)\n- [`SearchOptionsV2`](#searchoptionsv2)\n- [`FieldsParam`](#fieldsparam)\n- [`TriggerEventPayload`](#triggereventpayload)\n- [`TriggerEventResponse`](#triggereventresponse)\n- [`EventAttachment`](#eventattachment)\n- [`FieldChange`](#fieldchange)\n- [`VersionMeta`](#versionmeta)\n- [`EventVersionRegistrySummary`](#eventversionregistrysummary)\n\n### `listEvents`\n\nRetrieve list of available business events\n\n`GET /v1/events`\n\n```ts\nconst { data } = await client.listEvents()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createCustomEvent`\n\nReserve an org-scoped custom event name and persist its immutable v1.0 draft definition. Custom events are always projected from an entity graph: entity_graph is required and, in guided mapping mode, \n\n`POST /v1/events`\n\n```ts\nconst { data } = await client.createCustomEvent(\n null,\n {\n event_name: \'string\',\n event_title: \'string\',\n event_description: \'string\',\n event_tags: [\'string\'],\n schema_fields: {},\n entity_graph: {\n nodes: [\n {\n id: \'contact\',\n schema: \'contact\',\n cardinality: \'one\',\n fields: [\'_id\', \'_title\', \'first_name\', \'account\', \'!account.*._files\', \'**._product\']\n }\n ],\n edges: [\n {\n from: \'contact\',\n to: \'billing_account\'\n }\n ]\n },\n entity_operation: {\n operation: [\'createEntity\', \'updateEntity\'],\n schema: [\'contact\', \'contract\', \'order\'],\n attribute: [\'email\', \'phone\', \'status\'],\n purpose: [\'K\xFCndigung\', \'Umzug/Auszug\'],\n purpose_filters: [\n {\n id: \'string\',\n display_name: \'string\'\n }\n ]\n },\n automation_trigger: true,\n api_trigger: true,\n automation_trigger_only: false,\n automation_trigger_seed_node: \'string\',\n mapping: {\n mode: \'guided\',\n jsonata: \'string\'\n },\n lineage: {\n base_event_name: \'string\',\n base_event_version: \'string\'\n },\n example: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getEvent`\n\nRetrieve the configuration of a specific business event\n\n`GET /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.getEvent({\n event_name: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `patchEvent`\n\nUpdate the configuration of a specific business event for the organization\n\n`PATCH /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.patchEvent(\n {\n event_name: \'example\',\n },\n {\n enabled: true,\n auto_trigger: true,\n success_criteria: [\n {\n entity_schema: \'contract\',\n attribute: \'installment_amount\'\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `replaceCustomEventDraft`\n\nReplace the complete v1.0 definition of an org-scoped custom event while it is still an\nunpublished draft. Drafts have no consumers, so their definition is not yet immutable;\nthe event name is the ide\n\n`PUT /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.replaceCustomEventDraft(\n {\n event_name: \'example\',\n },\n {\n event_name: \'string\',\n event_title: \'string\',\n event_description: \'string\',\n event_tags: [\'string\'],\n schema_fields: {},\n entity_graph: {\n nodes: [\n {\n id: \'contact\',\n schema: \'contact\',\n cardinality: \'one\',\n fields: [\'_id\', \'_title\', \'first_name\', \'account\', \'!account.*._files\', \'**._product\']\n }\n ],\n edges: [\n {\n from: \'contact\',\n to: \'billing_account\'\n }\n ]\n },\n entity_operation: {\n operation: [\'createEntity\', \'updateEntity\'],\n schema: [\'contact\', \'contract\', \'order\'],\n attribute: [\'email\', \'phone\', \'status\'],\n purpose: [\'K\xFCndigung\', \'Umzug/Auszug\'],\n purpose_filters: [\n {\n id: \'string\',\n display_name: \'string\'\n }\n ]\n },\n automation_trigger: true,\n api_trigger: true,\n automation_trigger_only: false,\n automation_trigger_seed_node: \'string\',\n mapping: {\n mode: \'guided\',\n jsonata: \'string\'\n },\n lineage: {\n base_event_name: \'string\',\n base_event_version: \'string\'\n },\n example: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `deprecateCustomEvent`\n\nSoft-deprecate an org-scoped custom event. Definitions and v1.0 history remain readable.\n\n`DELETE /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.deprecateCustomEvent({\n event_name: \'example\',\n})\n```\n\n---\n\n### `previewCustomEvent`\n\nAssemble and fully validate a persisted custom-event draft without publishing it.\n\n`POST /v1/events/{event_name}:preview`\n\n```ts\nconst { data } = await client.previewCustomEvent(\n {\n event_name: \'example\',\n },\n {\n seed: {\n entity_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n node_id: \'ticket\'\n },\n _trigger_source_type: \'automation\',\n _trigger_source: \'execution-id/action-id\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "payload": {},\n "errors": [\n {\n "path": "string",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `publishCustomEventDefinition`\n\nConditionally activate an immutable custom-event v1.0 definition.\n\n`POST /v1/events/{event_name}:publish`\n\n```ts\nconst { data } = await client.publishCustomEventDefinition(\n {\n event_name: \'example\',\n },\n {\n enabled: true,\n auto_trigger: true,\n base_auto_trigger_enabled: true\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getEventJSONSchema`\n\nRetrieve the JSON Schema of a specific business event. Pass an optional\n`Epilot-Event-Version` header to retrieve a specific version\'s schema;\nwhen omitted, the event\'s latest version is returned.\n\n`GET /v1/events/{event_name}/json_schema`\n\n```ts\nconst { data } = await client.getEventJSONSchema({\n event_name: \'example\',\n Epilot-Event-Version: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "object",\n "properties": {\n "_org_id": {\n "type": "string",\n "description": "epilot tenant/organization ID"\n },\n "_event_time": {\n "type": "string",\n "format": "date-time",\n "description": "ISO 8601 timestamp when event occurred"\n },\n "_event_id": {\n "type": "string",\n "description": "Unique event identifier (ULID)"\n },\n "_event_name": {\n "type": "string",\n "description": "Event name from catalog"\n },\n "_event_version": {\n "type": "string",\n "description": "Event payload version (MAJOR.MINOR)"\n },\n "_event_source": {\n "type": "string",\n "description": "Source that triggered the event"\n },\n "reading_value": {\n "type": "number",\n "description": "The meter reading value"\n },\n "reading_date": {\n "type": "string",\n "format": "date-time",\n "description": "ISO 8601 timestamp when reading was taken"\n },\n "read_by": {\n "type": "string",\n "description": "Name or identifier of who submitted the reading"\n },\n "reason": {\n "type": "string",\n "enum": ["regular", "move-in", "move-out", "supplier-change", "correction", "final"],\n "description": "Reason for the meter reading"\n },\n "direction": {\n "type": "string",\n "enum": ["feed-in", "feed-out"],\n "description": "Direction of energy flow"\n },\n "source": {\n "type": "string",\n "enum": ["portal", "360", "api", "automation"],\n "description": "Source system where reading was submitted"\n },\n "meter_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the meter"\n },\n "counter_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the meter counter"\n },\n "meter_number": {\n "type": "string",\n "description": "Human-readable meter number"\n },\n "obis_number": {\n "type": "string",\n "description": "OBIS code of the counter"\n },\n "unit": {\n "type": "string",\n "description": "Unit of measurement (e.g., kWh, m3)"\n },\n "customer_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the customer"\n },\n "contract_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the contract"\n },\n "user_id": {\n "type": "string",\n "description": "ID of the user who submitted the reading"\n },\n "user_email": {\n "type": "string",\n "format": "email",\n "description": "Email of the user who submitted the reading"\n }\n },\n "required": ["_org_id", "_event_time", "_event_id", "_event_name", "_event_version", "_event_source", "reading_value", "reading_date", "read_by", "reason", "direction", "source", "meter_id", "counter_id", "meter_number", "obis_number", "unit", "customer_id", "contract_id"]\n}\n```\n\n</details>\n\n---\n\n### `getEventExample`\n\nGenerate a sample event payload based on the event\'s JSON Schema. Pass an\noptional `Epilot-Event-Version` header to generate the example for a\nspecific version; when omitted, the event\'s latest versio\n\n`GET /v1/events/{event_name}/example`\n\n```ts\nconst { data } = await client.getEventExample({\n event_name: \'example\',\n Epilot-Event-Version: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{}\n```\n\n</details>\n\n---\n\n### `listEventVersions`\n\nList every known version of an event, along with the `latest`\nand the set of currently `active` versions. See \xA73.2 of the\nEvent Payload Versioning RFC.\n\n`GET /v1/events/{event_name}/versions`\n\n```ts\nconst { data } = await client.listEventVersions({\n event_name: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "MeterReadingAdded",\n "latest": "1.0",\n "versions": [\n {\n "version": "1.0",\n "released_at": "2025-11-15",\n "change_summary": "string",\n "change_notes": "string",\n "changes": [\n {\n "field": "reading",\n "op": "added",\n "type_old": "string",\n "type_new": "string"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `searchEventHistory`\n\nPaginated history of events\n\n`POST /v1/events/{event_name}:history`\n\n```ts\nconst { data } = await client.searchEventHistory(\n {\n event_name: \'example\',\n },\n {\n limit: 10,\n cursor: {\n event_time: \'2025-10-31 12:34:56\',\n event_id: \'evt_1234567890abcdef\'\n },\n timestamp: {\n from: \'2025-10-01T00:00:00Z\',\n to: \'2025-10-31T23:59:59Z\'\n },\n event_id: \'evt_1234567890abcdef\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_org_id": "org_123456",\n "_event_time": "2024-01-01T12:00:00Z",\n "_event_id": "01FZ4Z5FZ5FZ5FZ5FZ5FZ5FZ5F",\n "_event_name": "MeterReading",\n "_event_version": "1.0",\n "_event_source": "api",\n "_trigger_source_type": "api",\n "_trigger_source": "user_123456",\n "reading_value": 123.45,\n "reading_date": "2024-01-01T11:59:00Z",\n "read_by": "John Doe",\n "reason": "regular",\n "direction": "feed-out",\n "source": "portal",\n "meter_id": "550e8400-e29b-41d4-a716-446655440000",\n "counter_id": "660e8400-e29b-41d4-a716-446655440000",\n "meter_number": "MT123456789",\n "obis_number": "1-0:1.8.0",\n "unit": "kWh",\n "customer_id": "770e8400-e29b-41d4-a716-446655440000",\n "contract_id": "880e8400-e29b-41d4-a716-446655440000"\n }\n ],\n "next_cursor": {\n "event_time": "2025-10-31T12:34:56Z",\n "event_id": "evt_1234567890abcdef"\n }\n}\n```\n\n</details>\n\n---\n\n### `searchEventHistoryV2`\n\nPaginated history of events with projected/lightweight payload (v2).\n\n`POST /v2/events/{event_name}:history`\n\n```ts\nconst { data } = await client.searchEventHistoryV2(\n {\n event_name: \'example\',\n },\n {\n limit: 10,\n cursor: {\n event_time: \'2025-10-31 12:34:56\',\n event_id: \'evt_1234567890abcdef\'\n },\n timestamp: {\n from: \'2025-10-01T00:00:00Z\',\n to: \'2025-10-31T23:59:59Z\'\n },\n event_id: \'evt_1234567890abcdef\',\n fields: [\'_id\', \'_title\', \'first_name\', \'account\', \'!account.*._files\', \'**._product\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_org_id": "string",\n "_event_time": "1970-01-01T00:00:00.000Z",\n "_event_id": "string",\n "_event_name": "string",\n "_event_version": "1.0",\n "_event_source": "string",\n "_trigger_source_type": "api",\n "_trigger_source": "string",\n "_ack_id": "string"\n }\n ],\n "next_cursor": {\n "event_time": "2025-10-31T12:34:56Z",\n "event_id": "evt_1234567890abcdef"\n }\n}\n```\n\n</details>\n\n---\n\n### `getHistoricalEvent`\n\nFetch a single historical event by id with full hydration\n\n`GET /v2/events/{event_name}/history/{event_id}`\n\n```ts\nconst { data } = await client.getHistoricalEvent({\n event_name: \'example\',\n event_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_org_id": "org_123456",\n "_event_time": "2024-01-01T12:00:00Z",\n "_event_id": "01FZ4Z5FZ5FZ5FZ5FZ5FZ5FZ5F",\n "_event_name": "MeterReading",\n "_event_version": "1.0",\n "_event_source": "api",\n "_trigger_source_type": "api",\n "_trigger_source": "user_123456",\n "reading_value": 123.45,\n "reading_date": "2024-01-01T11:59:00Z",\n "read_by": "John Doe",\n "reason": "regular",\n "direction": "feed-out",\n "source": "portal",\n "meter_id": "550e8400-e29b-41d4-a716-446655440000",\n "counter_id": "660e8400-e29b-41d4-a716-446655440000",\n "meter_number": "MT123456789",\n "obis_number": "1-0:1.8.0",\n "unit": "kWh",\n "customer_id": "770e8400-e29b-41d4-a716-446655440000",\n "contract_id": "880e8400-e29b-41d4-a716-446655440000"\n}\n```\n\n</details>\n\n---\n\n### `triggerEvent`\n\nExplicitly trigger an event by providing input field values and an optional entity seed\nfor graph hydration. The event must be enabled for the organization.\n\n`POST /v1/events/{event_name}:trigger`\n\n```ts\nconst { data } = await client.triggerEvent(\n {\n event_name: \'example\',\n },\n {\n seed: {\n entity_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n node_id: \'ticket\'\n },\n _trigger_source_type: \'automation\',\n _trigger_source: \'execution-id/action-id\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "success": true,\n "event_id": "string",\n "event_bridge_event_id": "string"\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `EventConfigBase`\n\nBase properties shared between EventConfig and UpdateEventPayload\n\n```ts\ntype EventConfigBase = {\n event_name?: string\n event_title?: string\n event_description?: string\n event_version?: string\n event_status?: "active" | "deprecated" | "draft" | "disabled"\n event_tags?: string[]\n schema_fields?: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n } | {\n items: {\n entity_id: { ... }\n filename?: { ... }\n mime_type?: { ... }\n size_bytes?: { ... }\n s3ref?: { ... }\n version_index: { ... }\n readable_size?: { ... }\n }\n required?: boolean\n }>\n entity_graph?: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n purpose_filters?: Array<{\n id: { ... }\n display_name: { ... }\n }>\n }\n enabled?: boolean\n auto_trigger?: boolean\n automation_trigger?: boolean\n api_trigger?: boolean\n automation_trigger_only?: boolean\n automation_trigger_seed_node?: string\n event_origin?: "builtin" | "custom"\n mapping?: {\n mode: "guided" | "jsonata"\n jsonata?: string\n }\n lineage?: {\n base_event_name: string\n base_event_version: string\n }\n success_criteria?: Array<{\n entity_schema: string\n attribute: string\n }>\n}\n```\n\n### `EventConfig`\n\nEvent configuration with required fields\n\n```ts\ntype EventConfig = {\n event_name: string\n event_title?: string\n event_description?: string\n event_version: string\n event_status?: "active" | "deprecated" | "draft" | "disabled"\n event_tags?: string[]\n schema_fields: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n } | {\n items: {\n entity_id: { ... }\n filename?: { ... }\n mime_type?: { ... }\n size_bytes?: { ... }\n s3ref?: { ... }\n version_index: { ... }\n readable_size?: { ... }\n }\n required?: boolean\n }>\n entity_graph?: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n purpose_filters?: Array<{\n id: { ... }\n display_name: { ... }\n }>\n }\n enabled?: boolean\n auto_trigger?: boolean\n automation_trigger?: boolean\n api_trigger?: boolean\n automation_trigger_only?: boolean\n automation_trigger_seed_node?: string\n event_origin?: "builtin" | "custom"\n mapping?: {\n mode: "guided" | "jsonata"\n jsonata?: string\n }\n lineage?: {\n base_event_name: string\n base_event_version: string\n }\n success_criteria?: Array<{\n entity_schema: string\n attribute: string\n }>\n}\n```\n\n### `CreateCustomEventPayload`\n\nComplete immutable custom-event v1.0 definition projected from a required entity graph. Publication is a separate conditional action.\n\n```ts\ntype CreateCustomEventPayload = {\n event_name: string\n event_title: string\n event_description?: string\n event_tags?: string[]\n schema_fields: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n }>\n entity_graph: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n purpose_filters?: Array<{\n id: { ... }\n display_name: { ... }\n }>\n }\n automation_trigger?: boolean\n api_trigger?: boolean\n automation_trigger_only?: boolean\n automation_trigger_seed_node?: string\n mapping?: {\n mode: "guided" | "jsonata"\n jsonata?: string\n }\n lineage?: {\n base_event_name: string\n base_event_version: string\n }\n example?: Record<string, unknown>\n}\n```\n\n### `EventMapping`\n\nGuided mappings use schema_fields graph_source expressions; raw mode evaluates one JSONata object transform.\n\n```ts\ntype EventMapping = {\n mode: "guided" | "jsonata"\n jsonata?: string\n}\n```\n\n### `CustomEventLineage`\n\nOptional catalog lineage to a separately named base event. Built-in inheritance is validated against this exact registered version; its trigger restrictions cannot be removed or replaced. It does not replace the base event.\n\n```ts\ntype CustomEventLineage = {\n base_event_name: string\n base_event_version: string\n}\n```\n\n### `PurposeFilterSnapshot`\n\n```ts\ntype PurposeFilterSnapshot = {\n id: string\n display_name: string\n}\n```\n\n### `PublishCustomEventPayload`\n\n```ts\ntype PublishCustomEventPayload = {\n enabled?: boolean\n auto_trigger?: boolean\n base_auto_trigger_enabled?: boolean\n}\n```\n\n### `ValidationIssue`\n\n```ts\ntype ValidationIssue = {\n path: string\n message: string\n}\n```\n\n### `PreviewEventResponse`\n\n```ts\ntype PreviewEventResponse = {\n payload: Record<string, unknown>\n errors: Array<{\n path: string\n message: string\n }>\n}\n```\n\n### `UpdateEventPayload`\n\nMutable org activation overlay. Immutable event definition fields are not accepted.\n\n```ts\ntype UpdateEventPayload = {\n enabled?: boolean\n auto_trigger?: boolean\n success_criteria?: Array<{\n entity_schema: string\n attribute: string\n }>\n}\n```\n\n### `PrimitiveField`\n\nA primitive JSON Schema field definition\n\n```ts\ntype PrimitiveField = {\n json_schema: object\n required?: boolean\n graph_source?: string\n}\n```\n\n### `ContextEntity`\n\n```ts\ntype ContextEntity = {\n entity_schema: string\n required?: boolean\n}\n```\n\n### `AttachmentField`\n\nA schema field representing file attachments associated with the event.\nPresent in schema_fields for events tagged with "attachment".\n\n\n```ts\ntype AttachmentField = {\n items: {\n entity_id: string // uuid\n filename?: string\n mime_type?: string\n size_bytes?: number\n s3ref?: {\n bucket: { ... }\n key: { ... }\n }\n version_index: number\n readable_size?: string\n }\n required?: boolean\n}\n```\n\n### `CustomSchemaField`\n\nCustom v1 fields support graph-projected JSON Schema values and context entities; attachment semantics are built-in-only.\n\n```ts\ntype CustomSchemaField = {\n json_schema: object\n required?: boolean\n graph_source?: string\n} | {\n entity_schema: string\n required?: boolean\n}\n```\n\n### `SchemaField`\n\n```ts\ntype SchemaField = {\n json_schema: object\n required?: boolean\n graph_source?: string\n} | {\n entity_schema: string\n required?: boolean\n} | {\n items: {\n entity_id: string // uuid\n filename?: string\n mime_type?: string\n size_bytes?: number\n s3ref?: {\n bucket: { ... }\n key: { ... }\n }\n version_index: number\n readable_size?: string\n }\n required?: boolean\n}\n```\n\n### `SuccessCriterion`\n\nA single org-defined success criterion: an entity attribute that must be captured\nfor this event\'s change request to be considered complete.\n\nIdentity is the entity schema plus the attribute name \u2014 mirroring the\nEntityOperationTrigger `schema`/`attribute` vocabulary. On write (PATCH), both\n`attribut\n\n```ts\ntype SuccessCriterion = {\n entity_schema: string\n attribute: string\n}\n```\n\n### `CommonEventMetadata`\n\nCommon metadata fields present in all event payloads\n\n```ts\ntype CommonEventMetadata = object\n```\n\n### `EventJsonSchema`\n\nJSON Schema declaring the event payload structure\n\n```ts\ntype EventJsonSchema = object\n```\n\n### `InlineDowngradeStep`\n\nOne step of an event\'s inline `_downgrades` chain. Maps the current-version payload to the previous version via a JSONata expression. Stamped by Event Catalog at publish time; executed by consumers during walk-back, never by EC itself.\n\n```ts\ntype InlineDowngradeStep = {\n to: string\n jsonata: string\n}\n```\n\n### `Event`\n\nAn event instance in the event history\n\n```ts\ntype Event = {\n _org_id: string\n _event_time: string // date-time\n _event_id: string\n _event_name: string\n _event_version: string\n _event_source: string\n _trigger_source_type?: string\n _trigger_source?: string\n _ack_id?: string\n _downgrades?: Array<{\n to: string\n jsonata: string\n }>\n _automation_chain?: string[]\n}\n```\n\n### `EventSummary`\n\nA lightweight event summary returned by the v2 history endpoint.\n\nIncludes the standard `_*` metadata fields plus a projected subset of the\nevent payload. Hydrated entity objects (values carrying `_schema` or `_id`)\n\u2014 and arrays of such objects \u2014 are reduced to reference stubs\n`{_schema, _id, _title\n\n```ts\ntype EventSummary = {\n _org_id: string\n _event_time: string // date-time\n _event_id: string\n _event_name: string\n _event_version: string\n _event_source: string\n _trigger_source_type?: string\n _trigger_source?: string\n _ack_id?: string\n}\n```\n\n### `GraphDefinition`\n\nEntity graph definition for resolving related entities\n\n```ts\ntype GraphDefinition = {\n nodes: Array<{\n id: string\n schema: string\n cardinality?: "one" | "many"\n fields?: object\n }>\n edges: Array<{\n from: string\n to: string\n }>\n}\n```\n\n### `GraphNode`\n\nA node in the entity graph\n\n```ts\ntype GraphNode = {\n id: string\n schema: string\n cardinality?: "one" | "many"\n fields?: object\n}\n```\n\n### `GraphEdge`\n\nAn edge connecting two nodes in the graph\n\n```ts\ntype GraphEdge = {\n from: string\n to: string\n}\n```\n\n### `EntityOperationTrigger`\n\nConfiguration for triggering an event based on entity operations.\n\nWhen an entity operation matches the configured criteria, the event will be triggered.\n- On createEntity: the attribute must be present in the entity payload\n- On updateEntity: the attribute must be in diff.added, diff.updated, or di\n\n```ts\ntype EntityOperationTrigger = {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n purpose_filters?: Array<{\n id: string\n display_name: string\n }>\n}\n```\n\n### `SearchOptions`\n\n```ts\ntype SearchOptions = {\n limit?: number\n cursor?: {\n event_time?: string\n event_id?: string\n }\n timestamp?: {\n from?: string // date-time\n to?: string // date-time\n }\n event_id?: string\n}\n```\n\n### `SearchOptionsV2`\n\nSearch options for the v2 history endpoint.\n\nExtends `SearchOptions` with an optional `fields` projection. When `fields`\nis omitted, the response includes all `_*` metadata plus all scalar payload\nfields (and primitive arrays / empty objects/arrays) after entity stripping.\nWhen `fields` is provided,\n\n```ts\ntype SearchOptionsV2 = {\n limit?: number\n cursor?: {\n event_time?: string\n event_id?: string\n }\n timestamp?: {\n from?: string // date-time\n to?: string // date-time\n }\n event_id?: string\n fields?: string[]\n}\n```\n\n### `FieldsParam`\n\nList of entity fields to include or exclude in the response\n\nUse ! to exclude fields, e.g. `!_id` to exclude the `_id` field.\n\nGlobbing and globstart (**) is supported for nested fields.\n\n\n```ts\ntype FieldsParam = string[]\n```\n\n### `TriggerEventPayload`\n\nPayload for explicitly triggering an event via API\n\n```ts\ntype TriggerEventPayload = {\n seed?: {\n entity_id: string // uuid\n node_id: string\n }\n fields?: Record<string, unknown>\n skip_hydration?: string[]\n _trigger_source_type?: string\n _trigger_source?: string\n _automation_chain?: string[]\n}\n```\n\n### `TriggerEventResponse`\n\nResponse from triggering an event\n\n```ts\ntype TriggerEventResponse = {\n success: boolean\n event_id: string\n event_bridge_event_id?: string\n}\n```\n\n### `EventAttachment`\n\nA file attachment associated with an event\n\n```ts\ntype EventAttachment = {\n entity_id: string // uuid\n filename?: string\n mime_type?: string\n size_bytes?: number\n s3ref?: {\n bucket: string\n key: string\n }\n version_index: number\n readable_size?: string\n}\n```\n\n### `FieldChange`\n\nA field-level change descriptor. Powers the declarative half of the\nversion DSL.\n\n\n```ts\ntype FieldChange = {\n field: string\n op: "added" | "removed" | "type-changed"\n type_old?: string\n type_new?: string\n}\n```\n\n### `VersionMeta`\n\nOne entry of an event\'s version timeline.\n\n```ts\ntype VersionMeta = {\n version: string\n released_at: string\n change_summary: string\n change_notes?: string\n changes: Array<{\n field: string\n op: "added" | "removed" | "type-changed"\n type_old?: string\n type_new?: string\n }>\n}\n```\n\n### `EventVersionRegistrySummary`\n\nSummary of an event\'s version timeline returned by\n`GET /v1/events/{event_name}/versions`.\n\n\n```ts\ntype EventVersionRegistrySummary = {\n event_name: string\n latest: string\n versions: Array<{\n version: string\n released_at: string\n change_summary: string\n change_notes?: string\n changes: Array<{\n field: { ... }\n op: { ... }\n type_old?: { ... }\n type_new?: { ... }\n }>\n }>\n}\n```\n';
|
|
5
|
-
export {
|
|
6
|
-
event_catalog_default as default
|
|
7
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
|
|
2
|
-
|
|
3
|
-
// src/docs/event-catalog.json
|
|
4
|
-
var event_catalog_default = '# Event Catalog API\n\n- **Base URL:** `https://event-catalog.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/event-catalog](https://docs.epilot.io/api/event-catalog)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.eventCatalog.listEvents(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/event-catalog\'\n\nconst eventCatalogClient = getClient()\nauthorize(eventCatalogClient, () => \'<token>\')\nconst { data } = await eventCatalogClient.listEvents(...)\n```\n\n## Operations\n\n**Event Catalog**\n- [`listEvents`](#listevents)\n- [`createCustomEvent`](#createcustomevent)\n- [`getEvent`](#getevent)\n- [`patchEvent`](#patchevent)\n- [`replaceCustomEventDraft`](#replacecustomeventdraft)\n- [`deprecateCustomEvent`](#deprecatecustomevent)\n- [`previewCustomEvent`](#previewcustomevent)\n- [`publishCustomEventDefinition`](#publishcustomeventdefinition)\n- [`getEventJSONSchema`](#geteventjsonschema)\n- [`getEventExample`](#geteventexample)\n- [`listEventVersions`](#listeventversions)\n- [`searchEventHistory`](#searcheventhistory)\n- [`searchEventHistoryV2`](#searcheventhistoryv2)\n- [`getHistoricalEvent`](#gethistoricalevent)\n- [`triggerEvent`](#triggerevent)\n\n**Schemas**\n- [`EventConfigBase`](#eventconfigbase)\n- [`EventConfig`](#eventconfig)\n- [`CreateCustomEventPayload`](#createcustomeventpayload)\n- [`EventMapping`](#eventmapping)\n- [`CustomEventLineage`](#customeventlineage)\n- [`PurposeFilterSnapshot`](#purposefiltersnapshot)\n- [`PublishCustomEventPayload`](#publishcustomeventpayload)\n- [`ValidationIssue`](#validationissue)\n- [`PreviewEventResponse`](#previeweventresponse)\n- [`UpdateEventPayload`](#updateeventpayload)\n- [`PrimitiveField`](#primitivefield)\n- [`ContextEntity`](#contextentity)\n- [`AttachmentField`](#attachmentfield)\n- [`CustomSchemaField`](#customschemafield)\n- [`SchemaField`](#schemafield)\n- [`SuccessCriterion`](#successcriterion)\n- [`CommonEventMetadata`](#commoneventmetadata)\n- [`EventJsonSchema`](#eventjsonschema)\n- [`InlineDowngradeStep`](#inlinedowngradestep)\n- [`Event`](#event)\n- [`EventSummary`](#eventsummary)\n- [`GraphDefinition`](#graphdefinition)\n- [`GraphNode`](#graphnode)\n- [`GraphEdge`](#graphedge)\n- [`EntityOperationTrigger`](#entityoperationtrigger)\n- [`SearchOptions`](#searchoptions)\n- [`SearchOptionsV2`](#searchoptionsv2)\n- [`FieldsParam`](#fieldsparam)\n- [`TriggerEventPayload`](#triggereventpayload)\n- [`TriggerEventResponse`](#triggereventresponse)\n- [`EventAttachment`](#eventattachment)\n- [`FieldChange`](#fieldchange)\n- [`VersionMeta`](#versionmeta)\n- [`EventVersionRegistrySummary`](#eventversionregistrysummary)\n\n### `listEvents`\n\nRetrieve list of available business events\n\n`GET /v1/events`\n\n```ts\nconst { data } = await client.listEvents()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createCustomEvent`\n\nReserve an org-scoped custom event name and persist its immutable v1.0 draft definition. Custom events are always projected from an entity graph: entity_graph is required and, in guided mapping mode, \n\n`POST /v1/events`\n\n```ts\nconst { data } = await client.createCustomEvent(\n null,\n {\n event_name: \'string\',\n event_title: \'string\',\n event_description: \'string\',\n event_tags: [\'string\'],\n schema_fields: {},\n entity_graph: {\n nodes: [\n {\n id: \'contact\',\n schema: \'contact\',\n cardinality: \'one\',\n fields: [\'_id\', \'_title\', \'first_name\', \'account\', \'!account.*._files\', \'**._product\']\n }\n ],\n edges: [\n {\n from: \'contact\',\n to: \'billing_account\'\n }\n ]\n },\n entity_operation: {\n operation: [\'createEntity\', \'updateEntity\'],\n schema: [\'contact\', \'contract\', \'order\'],\n attribute: [\'email\', \'phone\', \'status\'],\n purpose: [\'K\xFCndigung\', \'Umzug/Auszug\'],\n purpose_filters: [\n {\n id: \'string\',\n display_name: \'string\'\n }\n ]\n },\n automation_trigger: true,\n api_trigger: true,\n automation_trigger_only: false,\n automation_trigger_seed_node: \'string\',\n mapping: {\n mode: \'guided\',\n jsonata: \'string\'\n },\n lineage: {\n base_event_name: \'string\',\n base_event_version: \'string\'\n },\n example: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getEvent`\n\nRetrieve the configuration of a specific business event\n\n`GET /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.getEvent({\n event_name: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `patchEvent`\n\nUpdate the configuration of a specific business event for the organization\n\n`PATCH /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.patchEvent(\n {\n event_name: \'example\',\n },\n {\n enabled: true,\n auto_trigger: true,\n success_criteria: [\n {\n entity_schema: \'contract\',\n attribute: \'installment_amount\'\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `replaceCustomEventDraft`\n\nReplace the complete v1.0 definition of an org-scoped custom event while it is still an\nunpublished draft. Drafts have no consumers, so their definition is not yet immutable;\nthe event name is the ide\n\n`PUT /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.replaceCustomEventDraft(\n {\n event_name: \'example\',\n },\n {\n event_name: \'string\',\n event_title: \'string\',\n event_description: \'string\',\n event_tags: [\'string\'],\n schema_fields: {},\n entity_graph: {\n nodes: [\n {\n id: \'contact\',\n schema: \'contact\',\n cardinality: \'one\',\n fields: [\'_id\', \'_title\', \'first_name\', \'account\', \'!account.*._files\', \'**._product\']\n }\n ],\n edges: [\n {\n from: \'contact\',\n to: \'billing_account\'\n }\n ]\n },\n entity_operation: {\n operation: [\'createEntity\', \'updateEntity\'],\n schema: [\'contact\', \'contract\', \'order\'],\n attribute: [\'email\', \'phone\', \'status\'],\n purpose: [\'K\xFCndigung\', \'Umzug/Auszug\'],\n purpose_filters: [\n {\n id: \'string\',\n display_name: \'string\'\n }\n ]\n },\n automation_trigger: true,\n api_trigger: true,\n automation_trigger_only: false,\n automation_trigger_seed_node: \'string\',\n mapping: {\n mode: \'guided\',\n jsonata: \'string\'\n },\n lineage: {\n base_event_name: \'string\',\n base_event_version: \'string\'\n },\n example: {}\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `deprecateCustomEvent`\n\nSoft-deprecate an org-scoped custom event. Definitions and v1.0 history remain readable.\n\n`DELETE /v1/events/{event_name}`\n\n```ts\nconst { data } = await client.deprecateCustomEvent({\n event_name: \'example\',\n})\n```\n\n---\n\n### `previewCustomEvent`\n\nAssemble and fully validate a persisted custom-event draft without publishing it.\n\n`POST /v1/events/{event_name}:preview`\n\n```ts\nconst { data } = await client.previewCustomEvent(\n {\n event_name: \'example\',\n },\n {\n seed: {\n entity_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n node_id: \'ticket\'\n },\n _trigger_source_type: \'automation\',\n _trigger_source: \'execution-id/action-id\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "payload": {},\n "errors": [\n {\n "path": "string",\n "message": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `publishCustomEventDefinition`\n\nConditionally activate an immutable custom-event v1.0 definition.\n\n`POST /v1/events/{event_name}:publish`\n\n```ts\nconst { data } = await client.publishCustomEventDefinition(\n {\n event_name: \'example\',\n },\n {\n enabled: true,\n auto_trigger: true,\n base_auto_trigger_enabled: true\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "AddMeterReading",\n "event_title": "Add Meter Reading",\n "event_description": "Triggered when a new meter reading is added",\n "event_version": "1.0",\n "event_status": "active",\n "event_tags": ["builtin", "metering", "erp"],\n "schema_fields": {},\n "entity_graph": {\n "nodes": [\n {\n "id": "contact",\n "schema": "contact",\n "cardinality": "one",\n "fields": ["_id", "_title", "first_name", "account", "!account.*._files", "**._product"]\n }\n ],\n "edges": [\n {\n "from": "contact",\n "to": "billing_account"\n }\n ]\n },\n "entity_operation": {\n "operation": ["createEntity", "updateEntity"],\n "schema": ["contact", "contract", "order"],\n "attribute": ["email", "phone", "status"],\n "purpose": ["K\xFCndigung", "Umzug/Auszug"],\n "purpose_filters": [\n {\n "id": "string",\n "display_name": "string"\n }\n ]\n },\n "enabled": true,\n "auto_trigger": true,\n "automation_trigger": true,\n "api_trigger": true,\n "automation_trigger_only": true,\n "automation_trigger_seed_node": "ticket",\n "event_origin": "builtin",\n "mapping": {\n "mode": "guided",\n "jsonata": "string"\n },\n "lineage": {\n "base_event_name": "string",\n "base_event_version": "string"\n },\n "success_criteria": [\n {\n "entity_schema": "contract",\n "attribute": "installment_amount"\n },\n {\n "entity_schema": "billing_account",\n "attribute": "due_date"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getEventJSONSchema`\n\nRetrieve the JSON Schema of a specific business event. Pass an optional\n`Epilot-Event-Version` header to retrieve a specific version\'s schema;\nwhen omitted, the event\'s latest version is returned.\n\n`GET /v1/events/{event_name}/json_schema`\n\n```ts\nconst { data } = await client.getEventJSONSchema({\n event_name: \'example\',\n Epilot-Event-Version: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "object",\n "properties": {\n "_org_id": {\n "type": "string",\n "description": "epilot tenant/organization ID"\n },\n "_event_time": {\n "type": "string",\n "format": "date-time",\n "description": "ISO 8601 timestamp when event occurred"\n },\n "_event_id": {\n "type": "string",\n "description": "Unique event identifier (ULID)"\n },\n "_event_name": {\n "type": "string",\n "description": "Event name from catalog"\n },\n "_event_version": {\n "type": "string",\n "description": "Event payload version (MAJOR.MINOR)"\n },\n "_event_source": {\n "type": "string",\n "description": "Source that triggered the event"\n },\n "reading_value": {\n "type": "number",\n "description": "The meter reading value"\n },\n "reading_date": {\n "type": "string",\n "format": "date-time",\n "description": "ISO 8601 timestamp when reading was taken"\n },\n "read_by": {\n "type": "string",\n "description": "Name or identifier of who submitted the reading"\n },\n "reason": {\n "type": "string",\n "enum": ["regular", "move-in", "move-out", "supplier-change", "correction", "final"],\n "description": "Reason for the meter reading"\n },\n "direction": {\n "type": "string",\n "enum": ["feed-in", "feed-out"],\n "description": "Direction of energy flow"\n },\n "source": {\n "type": "string",\n "enum": ["portal", "360", "api", "automation"],\n "description": "Source system where reading was submitted"\n },\n "meter_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the meter"\n },\n "counter_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the meter counter"\n },\n "meter_number": {\n "type": "string",\n "description": "Human-readable meter number"\n },\n "obis_number": {\n "type": "string",\n "description": "OBIS code of the counter"\n },\n "unit": {\n "type": "string",\n "description": "Unit of measurement (e.g., kWh, m3)"\n },\n "customer_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the customer"\n },\n "contract_id": {\n "type": "string",\n "format": "uuid",\n "description": "Entity ID of the contract"\n },\n "user_id": {\n "type": "string",\n "description": "ID of the user who submitted the reading"\n },\n "user_email": {\n "type": "string",\n "format": "email",\n "description": "Email of the user who submitted the reading"\n }\n },\n "required": ["_org_id", "_event_time", "_event_id", "_event_name", "_event_version", "_event_source", "reading_value", "reading_date", "read_by", "reason", "direction", "source", "meter_id", "counter_id", "meter_number", "obis_number", "unit", "customer_id", "contract_id"]\n}\n```\n\n</details>\n\n---\n\n### `getEventExample`\n\nGenerate a sample event payload based on the event\'s JSON Schema. Pass an\noptional `Epilot-Event-Version` header to generate the example for a\nspecific version; when omitted, the event\'s latest versio\n\n`GET /v1/events/{event_name}/example`\n\n```ts\nconst { data } = await client.getEventExample({\n event_name: \'example\',\n Epilot-Event-Version: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{}\n```\n\n</details>\n\n---\n\n### `listEventVersions`\n\nList every known version of an event, along with the `latest`\nand the set of currently `active` versions. See \xA73.2 of the\nEvent Payload Versioning RFC.\n\n`GET /v1/events/{event_name}/versions`\n\n```ts\nconst { data } = await client.listEventVersions({\n event_name: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "event_name": "MeterReadingAdded",\n "latest": "1.0",\n "versions": [\n {\n "version": "1.0",\n "released_at": "2025-11-15",\n "change_summary": "string",\n "change_notes": "string",\n "changes": [\n {\n "field": "reading",\n "op": "added",\n "type_old": "string",\n "type_new": "string"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `searchEventHistory`\n\nPaginated history of events\n\n`POST /v1/events/{event_name}:history`\n\n```ts\nconst { data } = await client.searchEventHistory(\n {\n event_name: \'example\',\n },\n {\n limit: 10,\n cursor: {\n event_time: \'2025-10-31 12:34:56\',\n event_id: \'evt_1234567890abcdef\'\n },\n timestamp: {\n from: \'2025-10-01T00:00:00Z\',\n to: \'2025-10-31T23:59:59Z\'\n },\n event_id: \'evt_1234567890abcdef\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_org_id": "org_123456",\n "_event_time": "2024-01-01T12:00:00Z",\n "_event_id": "01FZ4Z5FZ5FZ5FZ5FZ5FZ5FZ5F",\n "_event_name": "MeterReading",\n "_event_version": "1.0",\n "_event_source": "api",\n "_trigger_source_type": "api",\n "_trigger_source": "user_123456",\n "reading_value": 123.45,\n "reading_date": "2024-01-01T11:59:00Z",\n "read_by": "John Doe",\n "reason": "regular",\n "direction": "feed-out",\n "source": "portal",\n "meter_id": "550e8400-e29b-41d4-a716-446655440000",\n "counter_id": "660e8400-e29b-41d4-a716-446655440000",\n "meter_number": "MT123456789",\n "obis_number": "1-0:1.8.0",\n "unit": "kWh",\n "customer_id": "770e8400-e29b-41d4-a716-446655440000",\n "contract_id": "880e8400-e29b-41d4-a716-446655440000"\n }\n ],\n "next_cursor": {\n "event_time": "2025-10-31T12:34:56Z",\n "event_id": "evt_1234567890abcdef"\n }\n}\n```\n\n</details>\n\n---\n\n### `searchEventHistoryV2`\n\nPaginated history of events with projected/lightweight payload (v2).\n\n`POST /v2/events/{event_name}:history`\n\n```ts\nconst { data } = await client.searchEventHistoryV2(\n {\n event_name: \'example\',\n },\n {\n limit: 10,\n cursor: {\n event_time: \'2025-10-31 12:34:56\',\n event_id: \'evt_1234567890abcdef\'\n },\n timestamp: {\n from: \'2025-10-01T00:00:00Z\',\n to: \'2025-10-31T23:59:59Z\'\n },\n event_id: \'evt_1234567890abcdef\',\n fields: [\'_id\', \'_title\', \'first_name\', \'account\', \'!account.*._files\', \'**._product\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_org_id": "string",\n "_event_time": "1970-01-01T00:00:00.000Z",\n "_event_id": "string",\n "_event_name": "string",\n "_event_version": "1.0",\n "_event_source": "string",\n "_trigger_source_type": "api",\n "_trigger_source": "string",\n "_ack_id": "string"\n }\n ],\n "next_cursor": {\n "event_time": "2025-10-31T12:34:56Z",\n "event_id": "evt_1234567890abcdef"\n }\n}\n```\n\n</details>\n\n---\n\n### `getHistoricalEvent`\n\nFetch a single historical event by id with full hydration\n\n`GET /v2/events/{event_name}/history/{event_id}`\n\n```ts\nconst { data } = await client.getHistoricalEvent({\n event_name: \'example\',\n event_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_org_id": "org_123456",\n "_event_time": "2024-01-01T12:00:00Z",\n "_event_id": "01FZ4Z5FZ5FZ5FZ5FZ5FZ5FZ5F",\n "_event_name": "MeterReading",\n "_event_version": "1.0",\n "_event_source": "api",\n "_trigger_source_type": "api",\n "_trigger_source": "user_123456",\n "reading_value": 123.45,\n "reading_date": "2024-01-01T11:59:00Z",\n "read_by": "John Doe",\n "reason": "regular",\n "direction": "feed-out",\n "source": "portal",\n "meter_id": "550e8400-e29b-41d4-a716-446655440000",\n "counter_id": "660e8400-e29b-41d4-a716-446655440000",\n "meter_number": "MT123456789",\n "obis_number": "1-0:1.8.0",\n "unit": "kWh",\n "customer_id": "770e8400-e29b-41d4-a716-446655440000",\n "contract_id": "880e8400-e29b-41d4-a716-446655440000"\n}\n```\n\n</details>\n\n---\n\n### `triggerEvent`\n\nExplicitly trigger an event by providing input field values and an optional entity seed\nfor graph hydration. The event must be enabled for the organization.\n\n`POST /v1/events/{event_name}:trigger`\n\n```ts\nconst { data } = await client.triggerEvent(\n {\n event_name: \'example\',\n },\n {\n seed: {\n entity_id: \'3fa85f64-5717-4562-b3fc-2c963f66afa6\',\n node_id: \'ticket\'\n },\n _trigger_source_type: \'automation\',\n _trigger_source: \'execution-id/action-id\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "success": true,\n "event_id": "string",\n "event_bridge_event_id": "string"\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `EventConfigBase`\n\nBase properties shared between EventConfig and UpdateEventPayload\n\n```ts\ntype EventConfigBase = {\n event_name?: string\n event_title?: string\n event_description?: string\n event_version?: string\n event_status?: "active" | "deprecated" | "draft" | "disabled"\n event_tags?: string[]\n schema_fields?: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n } | {\n items: {\n entity_id: { ... }\n filename?: { ... }\n mime_type?: { ... }\n size_bytes?: { ... }\n s3ref?: { ... }\n version_index: { ... }\n readable_size?: { ... }\n }\n required?: boolean\n }>\n entity_graph?: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n purpose_filters?: Array<{\n id: { ... }\n display_name: { ... }\n }>\n }\n enabled?: boolean\n auto_trigger?: boolean\n automation_trigger?: boolean\n api_trigger?: boolean\n automation_trigger_only?: boolean\n automation_trigger_seed_node?: string\n event_origin?: "builtin" | "custom"\n mapping?: {\n mode: "guided" | "jsonata"\n jsonata?: string\n }\n lineage?: {\n base_event_name: string\n base_event_version: string\n }\n success_criteria?: Array<{\n entity_schema: string\n attribute: string\n }>\n}\n```\n\n### `EventConfig`\n\nEvent configuration with required fields\n\n```ts\ntype EventConfig = {\n event_name: string\n event_title?: string\n event_description?: string\n event_version: string\n event_status?: "active" | "deprecated" | "draft" | "disabled"\n event_tags?: string[]\n schema_fields: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n } | {\n items: {\n entity_id: { ... }\n filename?: { ... }\n mime_type?: { ... }\n size_bytes?: { ... }\n s3ref?: { ... }\n version_index: { ... }\n readable_size?: { ... }\n }\n required?: boolean\n }>\n entity_graph?: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n purpose_filters?: Array<{\n id: { ... }\n display_name: { ... }\n }>\n }\n enabled?: boolean\n auto_trigger?: boolean\n automation_trigger?: boolean\n api_trigger?: boolean\n automation_trigger_only?: boolean\n automation_trigger_seed_node?: string\n event_origin?: "builtin" | "custom"\n mapping?: {\n mode: "guided" | "jsonata"\n jsonata?: string\n }\n lineage?: {\n base_event_name: string\n base_event_version: string\n }\n success_criteria?: Array<{\n entity_schema: string\n attribute: string\n }>\n}\n```\n\n### `CreateCustomEventPayload`\n\nComplete immutable custom-event v1.0 definition projected from a required entity graph. Publication is a separate conditional action.\n\n```ts\ntype CreateCustomEventPayload = {\n event_name: string\n event_title: string\n event_description?: string\n event_tags?: string[]\n schema_fields: Record<string, {\n json_schema: object\n required?: boolean\n graph_source?: string\n } | {\n entity_schema: string\n required?: boolean\n }>\n entity_graph: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n entity_operation?: {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n purpose_filters?: Array<{\n id: { ... }\n display_name: { ... }\n }>\n }\n automation_trigger?: boolean\n api_trigger?: boolean\n automation_trigger_only?: boolean\n automation_trigger_seed_node?: string\n mapping?: {\n mode: "guided" | "jsonata"\n jsonata?: string\n }\n lineage?: {\n base_event_name: string\n base_event_version: string\n }\n example?: Record<string, unknown>\n}\n```\n\n### `EventMapping`\n\nGuided mappings use schema_fields graph_source expressions; raw mode evaluates one JSONata object transform.\n\n```ts\ntype EventMapping = {\n mode: "guided" | "jsonata"\n jsonata?: string\n}\n```\n\n### `CustomEventLineage`\n\nOptional catalog lineage to a separately named base event. Built-in inheritance is validated against this exact registered version; its trigger restrictions cannot be removed or replaced. It does not replace the base event.\n\n```ts\ntype CustomEventLineage = {\n base_event_name: string\n base_event_version: string\n}\n```\n\n### `PurposeFilterSnapshot`\n\n```ts\ntype PurposeFilterSnapshot = {\n id: string\n display_name: string\n}\n```\n\n### `PublishCustomEventPayload`\n\n```ts\ntype PublishCustomEventPayload = {\n enabled?: boolean\n auto_trigger?: boolean\n base_auto_trigger_enabled?: boolean\n}\n```\n\n### `ValidationIssue`\n\n```ts\ntype ValidationIssue = {\n path: string\n message: string\n}\n```\n\n### `PreviewEventResponse`\n\n```ts\ntype PreviewEventResponse = {\n payload: Record<string, unknown>\n errors: Array<{\n path: string\n message: string\n }>\n}\n```\n\n### `UpdateEventPayload`\n\nMutable org activation overlay. Immutable event definition fields are not accepted.\n\n```ts\ntype UpdateEventPayload = {\n enabled?: boolean\n auto_trigger?: boolean\n success_criteria?: Array<{\n entity_schema: string\n attribute: string\n }>\n}\n```\n\n### `PrimitiveField`\n\nA primitive JSON Schema field definition\n\n```ts\ntype PrimitiveField = {\n json_schema: object\n required?: boolean\n graph_source?: string\n}\n```\n\n### `ContextEntity`\n\n```ts\ntype ContextEntity = {\n entity_schema: string\n required?: boolean\n}\n```\n\n### `AttachmentField`\n\nA schema field representing file attachments associated with the event.\nPresent in schema_fields for events tagged with "attachment".\n\n\n```ts\ntype AttachmentField = {\n items: {\n entity_id: string // uuid\n filename?: string\n mime_type?: string\n size_bytes?: number\n s3ref?: {\n bucket: { ... }\n key: { ... }\n }\n version_index: number\n readable_size?: string\n }\n required?: boolean\n}\n```\n\n### `CustomSchemaField`\n\nCustom v1 fields support graph-projected JSON Schema values and context entities; attachment semantics are built-in-only.\n\n```ts\ntype CustomSchemaField = {\n json_schema: object\n required?: boolean\n graph_source?: string\n} | {\n entity_schema: string\n required?: boolean\n}\n```\n\n### `SchemaField`\n\n```ts\ntype SchemaField = {\n json_schema: object\n required?: boolean\n graph_source?: string\n} | {\n entity_schema: string\n required?: boolean\n} | {\n items: {\n entity_id: string // uuid\n filename?: string\n mime_type?: string\n size_bytes?: number\n s3ref?: {\n bucket: { ... }\n key: { ... }\n }\n version_index: number\n readable_size?: string\n }\n required?: boolean\n}\n```\n\n### `SuccessCriterion`\n\nA single org-defined success criterion: an entity attribute that must be captured\nfor this event\'s change request to be considered complete.\n\nIdentity is the entity schema plus the attribute name \u2014 mirroring the\nEntityOperationTrigger `schema`/`attribute` vocabulary. On write (PATCH), both\n`attribut\n\n```ts\ntype SuccessCriterion = {\n entity_schema: string\n attribute: string\n}\n```\n\n### `CommonEventMetadata`\n\nCommon metadata fields present in all event payloads\n\n```ts\ntype CommonEventMetadata = object\n```\n\n### `EventJsonSchema`\n\nJSON Schema declaring the event payload structure\n\n```ts\ntype EventJsonSchema = object\n```\n\n### `InlineDowngradeStep`\n\nOne step of an event\'s inline `_downgrades` chain. Maps the current-version payload to the previous version via a JSONata expression. Stamped by Event Catalog at publish time; executed by consumers during walk-back, never by EC itself.\n\n```ts\ntype InlineDowngradeStep = {\n to: string\n jsonata: string\n}\n```\n\n### `Event`\n\nAn event instance in the event history\n\n```ts\ntype Event = {\n _org_id: string\n _event_time: string // date-time\n _event_id: string\n _event_name: string\n _event_version: string\n _event_source: string\n _trigger_source_type?: string\n _trigger_source?: string\n _ack_id?: string\n _downgrades?: Array<{\n to: string\n jsonata: string\n }>\n _automation_chain?: string[]\n}\n```\n\n### `EventSummary`\n\nA lightweight event summary returned by the v2 history endpoint.\n\nIncludes the standard `_*` metadata fields plus a projected subset of the\nevent payload. Hydrated entity objects (values carrying `_schema` or `_id`)\n\u2014 and arrays of such objects \u2014 are reduced to reference stubs\n`{_schema, _id, _title\n\n```ts\ntype EventSummary = {\n _org_id: string\n _event_time: string // date-time\n _event_id: string\n _event_name: string\n _event_version: string\n _event_source: string\n _trigger_source_type?: string\n _trigger_source?: string\n _ack_id?: string\n}\n```\n\n### `GraphDefinition`\n\nEntity graph definition for resolving related entities\n\n```ts\ntype GraphDefinition = {\n nodes: Array<{\n id: string\n schema: string\n cardinality?: "one" | "many"\n fields?: object\n }>\n edges: Array<{\n from: string\n to: string\n }>\n}\n```\n\n### `GraphNode`\n\nA node in the entity graph\n\n```ts\ntype GraphNode = {\n id: string\n schema: string\n cardinality?: "one" | "many"\n fields?: object\n}\n```\n\n### `GraphEdge`\n\nAn edge connecting two nodes in the graph\n\n```ts\ntype GraphEdge = {\n from: string\n to: string\n}\n```\n\n### `EntityOperationTrigger`\n\nConfiguration for triggering an event based on entity operations.\n\nWhen an entity operation matches the configured criteria, the event will be triggered.\n- On createEntity: the attribute must be present in the entity payload\n- On updateEntity: the attribute must be in diff.added, diff.updated, or di\n\n```ts\ntype EntityOperationTrigger = {\n operation: "createEntity" | "updateEntity" | "deleteEntity"[]\n schema: string[]\n attribute?: string[]\n purpose?: string[]\n purpose_filters?: Array<{\n id: string\n display_name: string\n }>\n}\n```\n\n### `SearchOptions`\n\n```ts\ntype SearchOptions = {\n limit?: number\n cursor?: {\n event_time?: string\n event_id?: string\n }\n timestamp?: {\n from?: string // date-time\n to?: string // date-time\n }\n event_id?: string\n}\n```\n\n### `SearchOptionsV2`\n\nSearch options for the v2 history endpoint.\n\nExtends `SearchOptions` with an optional `fields` projection. When `fields`\nis omitted, the response includes all `_*` metadata plus all scalar payload\nfields (and primitive arrays / empty objects/arrays) after entity stripping.\nWhen `fields` is provided,\n\n```ts\ntype SearchOptionsV2 = {\n limit?: number\n cursor?: {\n event_time?: string\n event_id?: string\n }\n timestamp?: {\n from?: string // date-time\n to?: string // date-time\n }\n event_id?: string\n fields?: string[]\n}\n```\n\n### `FieldsParam`\n\nList of entity fields to include or exclude in the response\n\nUse ! to exclude fields, e.g. `!_id` to exclude the `_id` field.\n\nGlobbing and globstart (**) is supported for nested fields.\n\n\n```ts\ntype FieldsParam = string[]\n```\n\n### `TriggerEventPayload`\n\nPayload for explicitly triggering an event via API\n\n```ts\ntype TriggerEventPayload = {\n seed?: {\n entity_id: string // uuid\n node_id: string\n }\n fields?: Record<string, unknown>\n skip_hydration?: string[]\n _trigger_source_type?: string\n _trigger_source?: string\n _automation_chain?: string[]\n}\n```\n\n### `TriggerEventResponse`\n\nResponse from triggering an event\n\n```ts\ntype TriggerEventResponse = {\n success: boolean\n event_id: string\n event_bridge_event_id?: string\n}\n```\n\n### `EventAttachment`\n\nA file attachment associated with an event\n\n```ts\ntype EventAttachment = {\n entity_id: string // uuid\n filename?: string\n mime_type?: string\n size_bytes?: number\n s3ref?: {\n bucket: string\n key: string\n }\n version_index: number\n readable_size?: string\n}\n```\n\n### `FieldChange`\n\nA field-level change descriptor. Powers the declarative half of the\nversion DSL.\n\n\n```ts\ntype FieldChange = {\n field: string\n op: "added" | "removed" | "type-changed"\n type_old?: string\n type_new?: string\n}\n```\n\n### `VersionMeta`\n\nOne entry of an event\'s version timeline.\n\n```ts\ntype VersionMeta = {\n version: string\n released_at: string\n change_summary: string\n change_notes?: string\n changes: Array<{\n field: string\n op: "added" | "removed" | "type-changed"\n type_old?: string\n type_new?: string\n }>\n}\n```\n\n### `EventVersionRegistrySummary`\n\nSummary of an event\'s version timeline returned by\n`GET /v1/events/{event_name}/versions`.\n\n\n```ts\ntype EventVersionRegistrySummary = {\n event_name: string\n latest: string\n versions: Array<{\n version: string\n released_at: string\n change_summary: string\n change_notes?: string\n changes: Array<{\n field: { ... }\n op: { ... }\n type_old?: { ... }\n type_new?: { ... }\n }>\n }>\n}\n```\n';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.default = event_catalog_default;
|