@epilot/sdk 2.18.18 → 2.18.20
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/billing-runtime.json +1 -1
- package/definitions/billing.json +195 -19
- package/definitions/calendar.json +18 -4
- 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 +8 -8
- package/dist/apis/billing.d.cts +2 -2
- package/dist/apis/billing.d.ts +2 -2
- package/dist/apis/billing.js +2 -2
- 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.d.cts +2 -2
- package/dist/apis/calendar.d.ts +2 -2
- package/dist/apis/calendar.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 +6 -6
- package/dist/apis/event-catalog.js +1 -1
- 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 +6 -6
- package/dist/apis/integration-toolkit.js +1 -1
- 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.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/billing-MN36KAKQ.cjs +7 -0
- package/dist/billing-UAVEPNBZ.js +7 -0
- package/dist/{billing-runtime-3OCFZU2K.js → billing-runtime-OSGDEA63.js} +1 -1
- package/dist/{billing-runtime-PKKLWPQY.cjs → billing-runtime-YZEHKRAZ.cjs} +2 -2
- package/dist/{billing.d-N_1F759g.d.cts → billing.d-Blv16_el.d.cts} +205 -34
- package/dist/{billing.d-N_1F759g.d.ts → billing.d-Blv16_el.d.ts} +205 -34
- package/dist/calendar-2H4RGMV3.js +7 -0
- package/dist/calendar-UADWQX7G.cjs +7 -0
- package/dist/{calendar.d-Cz8R-GJ5.d.cts → calendar.d-mk-ltGpk.d.cts} +10 -5
- package/dist/{calendar.d-Cz8R-GJ5.d.ts → calendar.d-mk-ltGpk.d.ts} +10 -5
- package/dist/{chunk-U5XZ4ERL.js → chunk-5SAISAQY.js} +1 -1
- package/dist/{chunk-WCF2QVZE.js → chunk-JH7NETLC.js} +3 -3
- package/dist/{chunk-4XOJVIUQ.cjs → chunk-PNVSKDMV.cjs} +1 -1
- package/dist/{chunk-GZMYWGJR.cjs → chunk-YGOX7IZC.cjs} +3 -3
- package/dist/index.cjs +10 -10
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/docs/billing.md +553 -171
- package/docs/calendar.md +8 -2
- package/package.json +1 -1
- package/dist/billing-C45UEPBV.cjs +0 -7
- package/dist/billing-IV5ABNW4.js +0 -7
- package/dist/calendar-EMNHW6ME.cjs +0 -7
- package/dist/calendar-PZFEAXYE.js +0 -7
package/docs/calendar.md
CHANGED
|
@@ -682,6 +682,7 @@ const { data } = await client.listCalendars({
|
|
|
682
682
|
"description": "string",
|
|
683
683
|
"color": "string",
|
|
684
684
|
"is_default": true,
|
|
685
|
+
"is_epilot_default": true,
|
|
685
686
|
"read_only": true,
|
|
686
687
|
"owner_email": "user@example.com",
|
|
687
688
|
"source": {
|
|
@@ -732,6 +733,7 @@ const { data } = await client.createCalendar(
|
|
|
732
733
|
"description": "string",
|
|
733
734
|
"color": "string",
|
|
734
735
|
"is_default": true,
|
|
736
|
+
"is_epilot_default": true,
|
|
735
737
|
"read_only": true,
|
|
736
738
|
"owner_email": "user@example.com",
|
|
737
739
|
"source": {
|
|
@@ -778,6 +780,7 @@ const { data } = await client.addOutlookCalendar(
|
|
|
778
780
|
"description": "string",
|
|
779
781
|
"color": "string",
|
|
780
782
|
"is_default": true,
|
|
783
|
+
"is_epilot_default": true,
|
|
781
784
|
"read_only": true,
|
|
782
785
|
"owner_email": "user@example.com",
|
|
783
786
|
"source": {
|
|
@@ -882,6 +885,7 @@ const { data } = await client.getCalendar({
|
|
|
882
885
|
"description": "string",
|
|
883
886
|
"color": "string",
|
|
884
887
|
"is_default": true,
|
|
888
|
+
"is_epilot_default": true,
|
|
885
889
|
"read_only": true,
|
|
886
890
|
"owner_email": "user@example.com",
|
|
887
891
|
"source": {
|
|
@@ -931,6 +935,7 @@ const { data } = await client.updateCalendar(
|
|
|
931
935
|
"description": "string",
|
|
932
936
|
"color": "string",
|
|
933
937
|
"is_default": true,
|
|
938
|
+
"is_epilot_default": true,
|
|
934
939
|
"read_only": true,
|
|
935
940
|
"owner_email": "user@example.com",
|
|
936
941
|
"source": {
|
|
@@ -1042,7 +1047,7 @@ const { data } = await client.listEvents({
|
|
|
1042
1047
|
|
|
1043
1048
|
### `createEvent`
|
|
1044
1049
|
|
|
1045
|
-
Create a native epilot calendar event.
|
|
1050
|
+
Create a native epilot calendar event. Omit `calendar_id` to use the caller’s epilot default calendar.
|
|
1046
1051
|
|
|
1047
1052
|
`POST /v1/calendar/events`
|
|
1048
1053
|
|
|
@@ -1549,6 +1554,7 @@ type Calendar = {
|
|
|
1549
1554
|
description?: string
|
|
1550
1555
|
color?: string
|
|
1551
1556
|
is_default: boolean
|
|
1557
|
+
is_epilot_default: boolean
|
|
1552
1558
|
read_only: boolean
|
|
1553
1559
|
owner_email?: string // email
|
|
1554
1560
|
source: {
|
|
@@ -1735,7 +1741,7 @@ type EventSource = {
|
|
|
1735
1741
|
|
|
1736
1742
|
```ts
|
|
1737
1743
|
type CalendarEventCreateBody = {
|
|
1738
|
-
calendar_id
|
|
1744
|
+
calendar_id?: string
|
|
1739
1745
|
description?: string
|
|
1740
1746
|
start_time: string // date-time
|
|
1741
1747
|
end_time: string // date-time
|
package/package.json
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
|
|
2
|
-
|
|
3
|
-
// src/docs/billing.json
|
|
4
|
-
var billing_default = '# Billing API\n\n- **Base URL:** `https://billing.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/billing](https://docs.epilot.io/api/billing)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.billing.getBillingEvents(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/billing\'\n\nconst billingClient = getClient()\nauthorize(billingClient, () => \'<token>\')\nconst { data } = await billingClient.getBillingEvents(...)\n```\n\n## Operations\n\n**Billing Events**\n- [`getBillingEvents`](#getbillingevents)\n- [`createBillingEvent`](#createbillingevent)\n- [`getBillingEvent`](#getbillingevent)\n- [`updateBillingEvent`](#updatebillingevent)\n- [`deleteBillingEvent`](#deletebillingevent)\n- [`getBillingEventByExternalId`](#getbillingeventbyexternalid)\n\n**Contracts**\n- [`createContractEntity`](#createcontractentity)\n- [`updateContractEntity`](#updatecontractentity)\n- [`deleteContractEntity`](#deletecontractentity)\n\n**Pricing Information**\n- [`getContractPricingInformation`](#getcontractpricinginformation)\n- [`getBillingAccountPricingInformation`](#getbillingaccountpricinginformation)\n\n**Configuration History**\n- [`getContractConfigurationHistory`](#getcontractconfigurationhistory)\n- [`getBillingAccountConfigurationHistory`](#getbillingaccountconfigurationhistory)\n\n**Balance**\n- [`getCustomerBalance`](#getcustomerbalance)\n\n**Schemas**\n- [`Error`](#error)\n- [`BaseEntity`](#baseentity)\n- [`EntityId`](#entityid)\n- [`EntitySlug`](#entityslug)\n- [`EntityRelationItem`](#entityrelationitem)\n- [`BaseBillingEvent`](#basebillingevent)\n- [`BillingEvent`](#billingevent)\n- [`BillingEventUpdate`](#billingeventupdate)\n- [`InstallmentEvent`](#installmentevent)\n- [`PaymentEvent`](#paymentevent)\n- [`ReimbursementEvent`](#reimbursementevent)\n- [`DunningFeeEvent`](#dunningfeeevent)\n- [`InvoiceEvent`](#invoiceevent)\n- [`FinalBillEvent`](#finalbillevent)\n- [`BonusEvent`](#bonusevent)\n- [`CorrectionEvent`](#correctionevent)\n- [`CustomEvent`](#customevent)\n- [`Contract`](#contract)\n- [`ContractItem`](#contractitem)\n- [`InstallmentAmountValue`](#installmentamountvalue)\n- [`PriceContext`](#pricecontext)\n- [`DynamicTariffPriceContext`](#dynamictariffpricecontext)\n- [`ConfigurationHistoryContext`](#configurationhistorycontext)\n- [`ConfigurationHistoryRow`](#configurationhistoryrow)\n- [`ConfigurationHistoryResponse`](#configurationhistoryresponse)\n- [`PricingInformationBalance`](#pricinginformationbalance)\n- [`ContractPricingSchedule`](#contractpricingschedule)\n- [`ContractPricingInformation`](#contractpricinginformation)\n- [`BillingAccountPricingInformation`](#billingaccountpricinginformation)\n- [`Balance`](#balance)\n- [`Currency`](#currency)\n\n### `getBillingEvents`\n\nRetrieve and filter billing events (Buchungss\xE4tze) such as installments (Abschlagszahlungen),\npayments (Zahlungseing\xE4nge), and reimbursements (R\xFCckerstattungen).\n\n`GET /v1/billing/events`\n\n```ts\nconst { data } = await client.getBillingEvents({\n from: 1,\n size: 1,\n entity_id: [\'...\'],\n contact_id: \'example\',\n event_type: \'example\',\n date_after: \'example\',\n date_before: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 42,\n "results": [\n {\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createBillingEvent`\n\nCreate a new billing event (Buchungssatz) such as an installment (Abschlagszahlung),\npayment (Zahlungseingang), or reimbursement (R\xFCckerstattung).\n\n`POST /v1/billing/events`\n\n```ts\nconst { data } = await client.createBillingEvent(\n null,\n {\n type: \'installment\',\n direction: \'debit\',\n note: \'July power & gas installment payment\',\n status: \'open\',\n booking_date: \'2025-07-10\',\n due_date: \'2025-07-10\',\n billing_amount: 5000,\n billing_amount_decimal: \'50.00\',\n billing_currency: \'EUR\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `getBillingEvent`\n\nRetrieve a single billing event (Buchungssatz) by its unique ID.\n\n`GET /v1/billing/events/{id}`\n\n```ts\nconst { data } = await client.getBillingEvent({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `updateBillingEvent`\n\nUpdate an existing billing event (Buchungssatz).\n\n`PATCH /v1/billing/events/{id}`\n\n```ts\nconst { data } = await client.updateBillingEvent(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n type: \'installment\',\n direction: \'debit\',\n billing_amount: 10000,\n billing_amount_decimal: \'100.00\',\n billing_currency: \'EUR\',\n external_id: \'SAP-54321\',\n contract: {\n $relation: [\n {\n entity_id: \'f589786b-3024-43cd-9cb3-5a3c953f2896\'\n }\n ]\n },\n booking_date: \'2025-06-15\',\n due_date: \'2025-06-30\',\n paid_date: \'2025-06-15T10:00:00Z\',\n status: \'closed\',\n related_event: \'d4fb2a4e-3f74-4fc4-8fba-6fdaaaa3b08e\',\n external_link: {\n href: \'https://billing.example.com/invoices/12345\',\n title: \'Invoice 12345\'\n },\n attachments: {\n $relation: [\n {\n entity_id: \'f589786b-3024-43cd-9cb3-5a3c953f2896\'\n }\n ]\n },\n note: \'Teilzahlung f\xFCr Abschlag Juni\',\n internal_note: \'R\xFCckmeldung von SAP: Betrag aus Zahlungsavis 2025-06-14 \xFCbernommen\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `deleteBillingEvent`\n\nDelete an existing billing event (Buchungssatz).\n\n`DELETE /v1/billing/events/{id}`\n\n```ts\nconst { data } = await client.deleteBillingEvent({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n---\n\n### `getBillingEventByExternalId`\n\nRetrieve a billing event (Buchungssatz) by its external system identifier.\n\n`GET /v1/billing/external/{external_id}`\n\n```ts\nconst { data } = await client.getBillingEventByExternalId({\n external_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `createContractEntity`\n\nCreate a new contract entity (Vertrag) for billing purposes.\n\n`POST /v1/billing/contracts`\n\n```ts\nconst { data } = await client.createContractEntity(\n null,\n {\n _id: \'5da0a718-c822-403d-9f5d-20d4584e0528\',\n _title: \'Abschlagszahlung Juli 2025\',\n _org: \'123456\',\n _schema: \'billing_event\',\n _tags: [\'billing\', \'energy\'],\n _created_at: \'2025-06-15T10:30:00Z\',\n _updated_at: \'2025-06-15T14:45:00Z\',\n contract_name: \'Stromvertrag Haushalt\',\n contract_number: \'STR-2025-001234\',\n status: \'active\',\n description: \'Haushaltsstrom-Tarif mit 24 Monaten Preisgarantie\',\n account_number: \'KD-67890\',\n branch: \'power\',\n billing_address: \'Musterstra\xDFe 123, 50667 K\xF6ln\',\n delivery_address: \'Musterstra\xDFe 123, 50667 K\xF6ln\',\n additional_addresses: \'Postfach 456, 50668 K\xF6ln\',\n termination_date: \'2025-12-31\',\n termination_reason: \'Kundenk\xFCndigung\',\n billing_period: \'monthly\',\n billing_duration_amount: 30,\n renewal_duration_amount: 12,\n renewal_duration_unit: \'months\',\n notice_time_amount: 30,\n notice_time_unit: \'months\',\n start_date: \'2025-01-01\',\n billing_due_day: 15,\n installment_amount: 8500,\n balance: 8990,\n balance_currency: \'EUR\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "5da0a718-c822-403d-9f5d-20d4584e0528",\n "_title": "Abschlagszahlung Juli 2025",\n "_org": "123456",\n "_schema": "billing_event",\n "_tags": ["billing", "energy"],\n "_created_at": "2025-06-15T10:30:00Z",\n "_updated_at": "2025-06-15T14:45:00Z",\n "contract_name": "Stromvertrag Haushalt",\n "contract_number": "STR-2025-001234",\n "status": "active",\n "description": "Haushaltsstrom-Tarif mit 24 Monaten Preisgarantie",\n "account_number": "KD-67890",\n "branch": "power",\n "billing_address": "Musterstra\xDFe 123, 50667 K\xF6ln",\n "delivery_address": "Musterstra\xDFe 123, 50667 K\xF6ln",\n "additional_addresses": "Postfach 456, 50668 K\xF6ln",\n "termination_date": "2025-12-31",\n "termination_reason": "Kundenk\xFCndigung",\n "billing_period": "monthly",\n "billing_duration_amount": 30,\n "renewal_duration_amount": 12,\n "renewal_duration_unit": "months",\n "notice_time_amount": 30,\n "notice_time_unit": "months",\n "start_date": "2025-01-01",\n "billing_due_day": 15,\n "installment_amount": 8500,\n "balance": 8990,\n "balance_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `updateContractEntity`\n\nUpdate an existing contract entity (Vertrag).\n\n`PATCH /v1/billing/contracts/{id}`\n\n```ts\nconst { data } = await client.updateContractEntity(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n _id: \'5da0a718-c822-403d-9f5d-20d4584e0528\',\n _title: \'Abschlagszahlung Juli 2025\',\n _org: \'123456\',\n _schema: \'billing_event\',\n _tags: [\'billing\', \'energy\'],\n _created_at: \'2025-06-15T10:30:00Z\',\n _updated_at: \'2025-06-15T14:45:00Z\',\n contract_name: \'Stromvertrag Haushalt\',\n contract_number: \'STR-2025-001234\',\n status: \'active\',\n description: \'Haushaltsstrom-Tarif mit 24 Monaten Preisgarantie\',\n account_number: \'KD-67890\',\n branch: \'power\',\n billing_address: \'Musterstra\xDFe 123, 50667 K\xF6ln\',\n delivery_address: \'Musterstra\xDFe 123, 50667 K\xF6ln\',\n additional_addresses: \'Postfach 456, 50668 K\xF6ln\',\n termination_date: \'2025-12-31\',\n termination_reason: \'Kundenk\xFCndigung\',\n billing_period: \'monthly\',\n billing_duration_amount: 30,\n renewal_duration_amount: 12,\n renewal_duration_unit: \'months\',\n notice_time_amount: 30,\n notice_time_unit: \'months\',\n start_date: \'2025-01-01\',\n billing_due_day: 15,\n installment_amount: 8500,\n balance: 8990,\n balance_currency: \'EUR\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "5da0a718-c822-403d-9f5d-20d4584e0528",\n "_title": "Abschlagszahlung Juli 2025",\n "_org": "123456",\n "_schema": "billing_event",\n "_tags": ["billing", "energy"],\n "_created_at": "2025-06-15T10:30:00Z",\n "_updated_at": "2025-06-15T14:45:00Z",\n "contract_name": "Stromvertrag Haushalt",\n "contract_number": "STR-2025-001234",\n "status": "active",\n "description": "Haushaltsstrom-Tarif mit 24 Monaten Preisgarantie",\n "account_number": "KD-67890",\n "branch": "power",\n "billing_address": "Musterstra\xDFe 123, 50667 K\xF6ln",\n "delivery_address": "Musterstra\xDFe 123, 50667 K\xF6ln",\n "additional_addresses": "Postfach 456, 50668 K\xF6ln",\n "termination_date": "2025-12-31",\n "termination_reason": "Kundenk\xFCndigung",\n "billing_period": "monthly",\n "billing_duration_amount": 30,\n "renewal_duration_amount": 12,\n "renewal_duration_unit": "months",\n "notice_time_amount": 30,\n "notice_time_unit": "months",\n "start_date": "2025-01-01",\n "billing_due_day": 15,\n "installment_amount": 8500,\n "balance": 8990,\n "balance_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `deleteContractEntity`\n\nDelete an existing contract entity (Vertrag).\n\n`DELETE /v1/billing/contracts/{id}`\n\n```ts\nconst { data } = await client.deleteContractEntity({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n---\n\n### `getContractPricingInformation`\n\nGet current pricing information and recent configuration history for a Contract.\n\n`GET /v1/billing/contracts/{id}/pricing_information`\n\n```ts\nconst { data } = await client.getContractPricingInformation({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_type": "contract",\n "entity_id": "string",\n "title": "string",\n "current_installment_amount": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "context": {\n "base_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {}\n },\n "working_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {}\n }\n },\n "balance": {\n "amount": 8990,\n "amount_decimal": "89.90",\n "currency": "EUR"\n },\n "schedule": {\n "billing_due_day": 0,\n "billing_period": "weekly",\n "installments_per_year": 0,\n "inferred": true\n },\n "pending_installment_change": true,\n "history": [\n {\n "event_id": "string",\n "org_id": "string",\n "entity_type": "contract",\n "entity_id": "string",\n "change_type": "installment_amount_changed",\n "schema_version": 1,\n "effective_at": "1970-01-01T00:00:00.000Z",\n "changed_at": "1970-01-01T00:00:00.000Z",\n "created_at": "1970-01-01T00:00:00.000Z",\n "source": "portal",\n "source_label": "string",\n "source_system": "string",\n "source_reference": "string",\n "previous_value": {},\n "new_value": {},\n "context": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getBillingAccountPricingInformation`\n\nGet current pricing information for the active Contracts linked to a Billing Account.\n\n`GET /v1/billing/billing_accounts/{id}/pricing_information`\n\n```ts\nconst { data } = await client.getBillingAccountPricingInformation({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_type": "billing_account",\n "entity_id": "string",\n "title": "string",\n "balance": {\n "amount": 8990,\n "amount_decimal": "89.90",\n "currency": "EUR"\n },\n "contracts": [\n {\n "entity_type": "contract",\n "entity_id": "string",\n "title": "string",\n "current_installment_amount": {},\n "context": {},\n "balance": {},\n "schedule": {},\n "pending_installment_change": true,\n "history": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getContractConfigurationHistory`\n\nGet billing configuration history for a Contract.\n\n`GET /v1/billing/contracts/{id}/configuration_history`\n\n```ts\nconst { data } = await client.getContractConfigurationHistory({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n change_type: \'example\',\n from: 1,\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "history": [\n {\n "event_id": "string",\n "org_id": "string",\n "entity_type": "contract",\n "entity_id": "string",\n "change_type": "installment_amount_changed",\n "schema_version": 1,\n "effective_at": "1970-01-01T00:00:00.000Z",\n "changed_at": "1970-01-01T00:00:00.000Z",\n "created_at": "1970-01-01T00:00:00.000Z",\n "source": "portal",\n "source_label": "string",\n "source_system": "string",\n "source_reference": "string",\n "previous_value": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "new_value": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "context": {\n "base_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {\n "mode": "string",\n "interval": "string",\n "average_price_decimal": "string",\n "markup_amount_decimal": "string",\n "markup_amount_net_decimal": "string",\n "markup_amount_gross_decimal": "string",\n "market_price_decimal": "string",\n "market_price_currency": "EUR",\n "market": "string",\n "bidding_zone": "string",\n "timestamp": "string"\n }\n },\n "working_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {\n "mode": "string",\n "interval": "string",\n "average_price_decimal": "string",\n "markup_amount_decimal": "string",\n "markup_amount_net_decimal": "string",\n "markup_amount_gross_decimal": "string",\n "market_price_decimal": "string",\n "market_price_currency": "EUR",\n "market": "string",\n "bidding_zone": "string",\n "timestamp": "string"\n }\n }\n }\n }\n ],\n "total": 0\n}\n```\n\n</details>\n\n---\n\n### `getBillingAccountConfigurationHistory`\n\nGet merged billing configuration history for active Contracts linked to a Billing Account.\n\n`GET /v1/billing/billing_accounts/{id}/configuration_history`\n\n```ts\nconst { data } = await client.getBillingAccountConfigurationHistory({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n change_type: \'example\',\n from: 1,\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "history": [\n {\n "event_id": "string",\n "org_id": "string",\n "entity_type": "contract",\n "entity_id": "string",\n "change_type": "installment_amount_changed",\n "schema_version": 1,\n "effective_at": "1970-01-01T00:00:00.000Z",\n "changed_at": "1970-01-01T00:00:00.000Z",\n "created_at": "1970-01-01T00:00:00.000Z",\n "source": "portal",\n "source_label": "string",\n "source_system": "string",\n "source_reference": "string",\n "previous_value": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "new_value": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "context": {\n "base_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {\n "mode": "string",\n "interval": "string",\n "average_price_decimal": "string",\n "markup_amount_decimal": "string",\n "markup_amount_net_decimal": "string",\n "markup_amount_gross_decimal": "string",\n "market_price_decimal": "string",\n "market_price_currency": "EUR",\n "market": "string",\n "bidding_zone": "string",\n "timestamp": "string"\n }\n },\n "working_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {\n "mode": "string",\n "interval": "string",\n "average_price_decimal": "string",\n "markup_amount_decimal": "string",\n "markup_amount_net_decimal": "string",\n "markup_amount_gross_decimal": "string",\n "market_price_decimal": "string",\n "market_price_currency": "EUR",\n "market": "string",\n "bidding_zone": "string",\n "timestamp": "string"\n }\n }\n }\n }\n ],\n "total": 0\n}\n```\n\n</details>\n\n---\n\n### `getCustomerBalance`\n\nRetrieve the total balance (Kontostand) across all contracts and orders for a customer.\n\n`GET /v1/billing/customers/{id}/balance`\n\n```ts\nconst { data } = await client.getCustomerBalance({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "balance": 8990,\n "balance_decimal": "89.90",\n "balance_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Error`\n\nStandard error response format\n\n```ts\ntype Error = {\n error: string\n message: string\n}\n```\n\n### `BaseEntity`\n\nBase schema for all epilot entities with common system fields\n\n```ts\ntype BaseEntity = {\n _id?: string\n _title?: string\n _org?: string\n _schema?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n}\n```\n\n### `EntityId`\n\nUnique entity identifier (UUID format)\n\n```ts\ntype EntityId = string\n```\n\n### `EntitySlug`\n\nURL-friendly identifier for the entity schema (Schema-Slug)\n\n```ts\ntype EntitySlug = string\n```\n\n### `EntityRelationItem`\n\nReference to a related entity\n\n```ts\ntype EntityRelationItem = {\n entity_id?: string\n}\n```\n\n### `BaseBillingEvent`\n\nRepresents a single financial transaction entry (Buchungssatz) in the billing ledger.\nEach entry is either a debit or a credit, following double-entry accounting principles.\nCommon types include Abschlagszahlung (installment), Zahlungseingang (payment), R\xFCckerstattung (reimbursement), etc.\n\n\n```ts\ntype BaseBillingEvent = {\n _id?: string\n _title?: string\n _org?: string\n _schema?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n type: string\n direction?: "debit" | "credit"\n billing_amount: number\n billing_amount_decimal: string\n billing_currency: string\n external_id?: string\n contract: {\n $relation?: Array<{\n entity_id?: { ... }\n }>\n }\n booking_date: string // date\n due_date?: string // date\n paid_date?: string // date-time\n status?: "closed" | "open"\n related_event?: string\n external_link?: {\n href?: string // uri\n title?: string\n }\n attachments?: {\n $relation?: Array<{\n entity_id?: { ... }\n }>\n }\n note?: string\n internal_note?: string\n}\n```\n\n### `BillingEvent`\n\nCollection of supported billing event types (Buchungsarten).\nEach type represents a different kind of financial transaction\nthat affects the customer\'s balance.\n\n\n```ts\ntype BillingEvent = {\n type?: "installment"\n} | {\n type?: "payment"\n} | {\n type?: "reimbursement"\n} | {\n type?: "dunning_fee"\n} | {\n type?: "invoice"\n} | {\n type?: "final_bill"\n} | {\n type?: "bonus"\n} | {\n type?: "correction"\n} | {\n type?: string\n}\n```\n\n### `BillingEventUpdate`\n\nFields to update on an existing billing event.\n\n```ts\ntype BillingEventUpdate = {\n type?: string\n direction?: "debit" | "credit"\n billing_amount?: number\n billing_amount_decimal?: string\n billing_currency?: string\n external_id?: string\n contract?: {\n $relation?: Array<{\n entity_id?: { ... }\n }>\n }\n booking_date?: string // date\n due_date?: string // date\n paid_date?: string // date-time\n status?: "closed" | "open"\n related_event?: string\n external_link?: {\n href?: string // uri\n title?: string\n }\n attachments?: {\n $relation?: Array<{\n entity_id?: { ... }\n }>\n }\n note?: string\n internal_note?: string\n}\n```\n\n### `InstallmentEvent`\n\nInstallment billing event (Abschlagszahlung).\nRepresents a scheduled partial payment that the customer owes,\ntypically billed monthly for utilities like electricity or gas.\n\n\n```ts\ntype InstallmentEvent = {\n type?: "installment"\n}\n```\n\n### `PaymentEvent`\n\nPayment received event (Zahlungseingang).\nRepresents money received from the customer, reducing their balance.\nThis is a credit transaction.\n\n\n```ts\ntype PaymentEvent = {\n type?: "payment"\n}\n```\n\n### `ReimbursementEvent`\n\nReimbursement event (R\xFCckerstattung).\nRepresents a refund to the customer, typically after overpayment\nor billing correction. This is a credit transaction.\n\n\n```ts\ntype ReimbursementEvent = {\n type?: "reimbursement"\n}\n```\n\n### `DunningFeeEvent`\n\nDunning fee event (Mahngeb\xFChr).\nRepresents a late payment fee charged to the customer\nafter a payment reminder has been sent. This is a debit transaction.\n\n\n```ts\ntype DunningFeeEvent = {\n type?: "dunning_fee"\n}\n```\n\n### `InvoiceEvent`\n\n```ts\ntype InvoiceEvent = {\n type?: "invoice"\n}\n```\n\n### `FinalBillEvent`\n\nFinal bill event (Endabrechnung/Schlussrechnung).\nRepresents the final settlement when a contract ends,\naccounting for actual consumption vs. paid installments.\nCan be either debit (customer owes more) or credit (customer overpaid).\n\n\n```ts\ntype FinalBillEvent = {\n type?: "final_bill"\n}\n```\n\n### `BonusEvent`\n\nBonus/credit event (Gutschrift/Bonus).\nRepresents a promotional credit or bonus applied to the customer\'s account,\nsuch as welcome bonuses or loyalty rewards. This is a credit transaction.\n\n\n```ts\ntype BonusEvent = {\n type?: "bonus"\n}\n```\n\n### `CorrectionEvent`\n\nCorrection event (Korrekturbuchung).\nRepresents an adjustment to a previous billing entry,\nsuch as correcting an overcharge or undercharge.\nCan be either debit or credit depending on the correction.\n\n\n```ts\ntype CorrectionEvent = {\n type?: "correction"\n}\n```\n\n### `CustomEvent`\n\nCustom billing event (Benutzerdefinierte Buchung).\nAllows for organization-specific billing event types not covered\nby the standard types. Use a descriptive type name.\n\n\n```ts\ntype CustomEvent = {\n type?: string\n}\n```\n\n### `Contract`\n\nRepresents a customer contract (Vertrag) for billing purposes.\nContracts are the parent entities for billing events and contain\nbilling configuration such as installment amounts and billing cycles.\n\n\n```ts\ntype Contract = {\n _id?: string\n _title?: string\n _org?: string\n _schema?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n contract_name?: string\n contract_number?: string\n status?: "draft" | "in_approval_process" | "approved" | "active" | "deactivated" | "revoked" | "terminated" | "expired"\n description?: string\n account_number?: string\n branch?: "power" | "gas" | "water" | "waste_water" | "district_heating"\n billing_address?: string\n delivery_address?: string\n additional_addresses?: string\n termination_date?: string // date\n termination_reason?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n billing_duration_amount?: number\n renewal_duration_amount?: number\n renewal_duration_unit?: "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "weeks" | "months" | "years"\n start_date?: string // date\n billing_due_day?: number\n installment_amount?: number\n balance?: number\n balance_currency?: string\n}\n```\n\n### `ContractItem`\n\nContract entity with all required system fields populated\n\n```ts\ntype ContractItem = {\n _id?: string\n _title?: string\n _org?: string\n _schema?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n contract_name?: string\n contract_number?: string\n status?: "draft" | "in_approval_process" | "approved" | "active" | "deactivated" | "revoked" | "terminated" | "expired"\n description?: string\n account_number?: string\n branch?: "power" | "gas" | "water" | "waste_water" | "district_heating"\n billing_address?: string\n delivery_address?: string\n additional_addresses?: string\n termination_date?: string // date\n termination_reason?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n billing_duration_amount?: number\n renewal_duration_amount?: number\n renewal_duration_unit?: "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "weeks" | "months" | "years"\n start_date?: string // date\n billing_due_day?: number\n installment_amount?: number\n balance?: number\n balance_currency?: string\n}\n```\n\n### `InstallmentAmountValue`\n\n```ts\ntype InstallmentAmountValue = {\n amount?: number\n amount_decimal?: string\n currency?: string\n}\n```\n\n### `PriceContext`\n\n```ts\ntype PriceContext = {\n price_id?: string\n price_title?: string\n pricing_model?: string\n unit_amount_gross_decimal?: string\n unit_amount_net_decimal?: string\n before_discount_unit_amount_gross_decimal?: string\n before_discount_unit_amount_net_decimal?: string\n unit_discount_amount_decimal?: string\n unit_discount_amount_net_decimal?: string\n currency?: string\n billing_period?: string\n unit?: string\n has_discount?: boolean\n is_dynamic_tariff?: boolean\n dynamic_tariff?: {\n mode?: string\n interval?: string\n average_price_decimal?: string\n markup_amount_decimal?: string\n markup_amount_net_decimal?: string\n markup_amount_gross_decimal?: string\n market_price_decimal?: string\n market_price_currency?: string\n market?: string\n bidding_zone?: string\n timestamp?: string\n }\n}\n```\n\n### `DynamicTariffPriceContext`\n\n```ts\ntype DynamicTariffPriceContext = {\n mode?: string\n interval?: string\n average_price_decimal?: string\n markup_amount_decimal?: string\n markup_amount_net_decimal?: string\n markup_amount_gross_decimal?: string\n market_price_decimal?: string\n market_price_currency?: string\n market?: string\n bidding_zone?: string\n timestamp?: string\n}\n```\n\n### `ConfigurationHistoryContext`\n\n```ts\ntype ConfigurationHistoryContext = {\n base_price?: {\n price_id?: string\n price_title?: string\n pricing_model?: string\n unit_amount_gross_decimal?: string\n unit_amount_net_decimal?: string\n before_discount_unit_amount_gross_decimal?: string\n before_discount_unit_amount_net_decimal?: string\n unit_discount_amount_decimal?: string\n unit_discount_amount_net_decimal?: string\n currency?: string\n billing_period?: string\n unit?: string\n has_discount?: boolean\n is_dynamic_tariff?: boolean\n dynamic_tariff?: {\n mode?: { ... }\n interval?: { ... }\n average_price_decimal?: { ... }\n markup_amount_decimal?: { ... }\n markup_amount_net_decimal?: { ... }\n markup_amount_gross_decimal?: { ... }\n market_price_decimal?: { ... }\n market_price_currency?: { ... }\n market?: { ... }\n bidding_zone?: { ... }\n timestamp?: { ... }\n }\n }\n working_price?: {\n price_id?: string\n price_title?: string\n pricing_model?: string\n unit_amount_gross_decimal?: string\n unit_amount_net_decimal?: string\n before_discount_unit_amount_gross_decimal?: string\n before_discount_unit_amount_net_decimal?: string\n unit_discount_amount_decimal?: string\n unit_discount_amount_net_decimal?: string\n currency?: string\n billing_period?: string\n unit?: string\n has_discount?: boolean\n is_dynamic_tariff?: boolean\n dynamic_tariff?: {\n mode?: { ... }\n interval?: { ... }\n average_price_decimal?: { ... }\n markup_amount_decimal?: { ... }\n markup_amount_net_decimal?: { ... }\n markup_amount_gross_decimal?: { ... }\n market_price_decimal?: { ... }\n market_price_currency?: { ... }\n market?: { ... }\n bidding_zone?: { ... }\n timestamp?: { ... }\n }\n }\n}\n```\n\n### `ConfigurationHistoryRow`\n\n```ts\ntype ConfigurationHistoryRow = {\n event_id: string\n org_id: string\n entity_type: "contract" | "billing_account"\n entity_id: string\n change_type: "installment_amount_changed"\n schema_version: number\n effective_at?: string // date-time\n changed_at: string // date-time\n created_at: string // date-time\n source: "portal" | "epilot" | "erp" | "system" | "api" | "external" | "journey" | "automation" | "unknown"\n source_label?: string\n source_system?: string\n source_reference?: string\n previous_value?: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n new_value: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n context?: {\n base_price?: {\n price_id?: { ... }\n price_title?: { ... }\n pricing_model?: { ... }\n unit_amount_gross_decimal?: { ... }\n unit_amount_net_decimal?: { ... }\n before_discount_unit_amount_gross_decimal?: { ... }\n before_discount_unit_amount_net_decimal?: { ... }\n unit_discount_amount_decimal?: { ... }\n unit_discount_amount_net_decimal?: { ... }\n currency?: { ... }\n billing_period?: { ... }\n unit?: { ... }\n has_discount?: { ... }\n is_dynamic_tariff?: { ... }\n dynamic_tariff?: { ... }\n }\n working_price?: {\n price_id?: { ... }\n price_title?: { ... }\n pricing_model?: { ... }\n unit_amount_gross_decimal?: { ... }\n unit_amount_net_decimal?: { ... }\n before_discount_unit_amount_gross_decimal?: { ... }\n before_discount_unit_amount_net_decimal?: { ... }\n unit_discount_amount_decimal?: { ... }\n unit_discount_amount_net_decimal?: { ... }\n currency?: { ... }\n billing_period?: { ... }\n unit?: { ... }\n has_discount?: { ... }\n is_dynamic_tariff?: { ... }\n dynamic_tariff?: { ... }\n }\n }\n}\n```\n\n### `ConfigurationHistoryResponse`\n\n```ts\ntype ConfigurationHistoryResponse = {\n history: Array<{\n event_id: string\n org_id: string\n entity_type: "contract" | "billing_account"\n entity_id: string\n change_type: "installment_amount_changed"\n schema_version: number\n effective_at?: string // date-time\n changed_at: string // date-time\n created_at: string // date-time\n source: "portal" | "epilot" | "erp" | "system" | "api" | "external" | "journey" | "automation" | "unknown"\n source_label?: string\n source_system?: string\n source_reference?: string\n previous_value?: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n new_value: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n context?: {\n base_price?: { ... }\n working_price?: { ... }\n }\n }>\n total: number\n}\n```\n\n### `PricingInformationBalance`\n\n```ts\ntype PricingInformationBalance = {\n amount?: number\n amount_decimal?: string\n currency?: string\n}\n```\n\n### `ContractPricingSchedule`\n\n```ts\ntype ContractPricingSchedule = {\n billing_due_day?: number\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n installments_per_year?: number\n inferred: boolean\n}\n```\n\n### `ContractPricingInformation`\n\n```ts\ntype ContractPricingInformation = {\n entity_type: "contract"\n entity_id: string\n title?: string\n current_installment_amount?: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n context?: {\n base_price?: {\n price_id?: { ... }\n price_title?: { ... }\n pricing_model?: { ... }\n unit_amount_gross_decimal?: { ... }\n unit_amount_net_decimal?: { ... }\n before_discount_unit_amount_gross_decimal?: { ... }\n before_discount_unit_amount_net_decimal?: { ... }\n unit_discount_amount_decimal?: { ... }\n unit_discount_amount_net_decimal?: { ... }\n currency?: { ... }\n billing_period?: { ... }\n unit?: { ... }\n has_discount?: { ... }\n is_dynamic_tariff?: { ... }\n dynamic_tariff?: { ... }\n }\n working_price?: {\n price_id?: { ... }\n price_title?: { ... }\n pricing_model?: { ... }\n unit_amount_gross_decimal?: { ... }\n unit_amount_net_decimal?: { ... }\n before_discount_unit_amount_gross_decimal?: { ... }\n before_discount_unit_amount_net_decimal?: { ... }\n unit_discount_amount_decimal?: { ... }\n unit_discount_amount_net_decimal?: { ... }\n currency?: { ... }\n billing_period?: { ... }\n unit?: { ... }\n has_discount?: { ... }\n is_dynamic_tariff?: { ... }\n dynamic_tariff?: { ... }\n }\n }\n balance?: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n schedule?: {\n billing_due_day?: number\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n installments_per_year?: number\n inferred: boolean\n }\n pending_installment_change?: boolean\n history: Array<{\n event_id: string\n org_id: string\n entity_type: "contract" | "billing_account"\n entity_id: string\n change_type: "installment_amount_changed"\n schema_version: number\n effective_at?: string // date-time\n changed_at: string // date-time\n created_at: string // date-time\n source: "portal" | "epilot" | "erp" | "system" | "api" | "external" | "journey" | "automation" | "unknown"\n source_label?: string\n source_system?: string\n source_reference?: string\n previous_value?: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n new_value: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n context?: {\n base_price?: { ... }\n working_price?: { ... }\n }\n }>\n}\n```\n\n### `BillingAccountPricingInformation`\n\n```ts\ntype BillingAccountPricingInformation = {\n entity_type: "billing_account"\n entity_id: string\n title?: string\n balance?: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n contracts: Array<{\n entity_type: "contract"\n entity_id: string\n title?: string\n current_installment_amount?: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n context?: {\n base_price?: { ... }\n working_price?: { ... }\n }\n balance?: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n schedule?: {\n billing_due_day?: { ... }\n billing_period?: { ... }\n installments_per_year?: { ... }\n inferred: { ... }\n }\n pending_installment_change?: boolean\n history: Array<{\n event_id: { ... }\n org_id: { ... }\n entity_type: { ... }\n entity_id: { ... }\n change_type: { ... }\n schema_version: { ... }\n effective_at?: { ... }\n changed_at: { ... }\n created_at: { ... }\n source: { ... }\n source_label?: { ... }\n source_system?: { ... }\n source_reference?: { ... }\n previous_value?: { ... }\n new_value: { ... }\n context?: { ... }\n }>\n }>\n}\n```\n\n### `Balance`\n\nCustomer balance summary (Kontostand\xFCbersicht).\nRepresents the aggregated balance across all contracts and orders for a customer.\n\n\n```ts\ntype Balance = {\n balance?: number\n balance_decimal?: string\n balance_currency?: string\n}\n```\n\n### `Currency`\n\nCurrency code in ISO 4217 format (W\xE4hrungscode).\nCommon values: EUR (Euro), CHF (Swiss Franc)\n\n\n```ts\ntype Currency = string\n```\n';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.default = billing_default;
|
package/dist/billing-IV5ABNW4.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./chunk-YPSWSI3M.js";
|
|
2
|
-
|
|
3
|
-
// src/docs/billing.json
|
|
4
|
-
var billing_default = '# Billing API\n\n- **Base URL:** `https://billing.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/billing](https://docs.epilot.io/api/billing)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.billing.getBillingEvents(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/billing\'\n\nconst billingClient = getClient()\nauthorize(billingClient, () => \'<token>\')\nconst { data } = await billingClient.getBillingEvents(...)\n```\n\n## Operations\n\n**Billing Events**\n- [`getBillingEvents`](#getbillingevents)\n- [`createBillingEvent`](#createbillingevent)\n- [`getBillingEvent`](#getbillingevent)\n- [`updateBillingEvent`](#updatebillingevent)\n- [`deleteBillingEvent`](#deletebillingevent)\n- [`getBillingEventByExternalId`](#getbillingeventbyexternalid)\n\n**Contracts**\n- [`createContractEntity`](#createcontractentity)\n- [`updateContractEntity`](#updatecontractentity)\n- [`deleteContractEntity`](#deletecontractentity)\n\n**Pricing Information**\n- [`getContractPricingInformation`](#getcontractpricinginformation)\n- [`getBillingAccountPricingInformation`](#getbillingaccountpricinginformation)\n\n**Configuration History**\n- [`getContractConfigurationHistory`](#getcontractconfigurationhistory)\n- [`getBillingAccountConfigurationHistory`](#getbillingaccountconfigurationhistory)\n\n**Balance**\n- [`getCustomerBalance`](#getcustomerbalance)\n\n**Schemas**\n- [`Error`](#error)\n- [`BaseEntity`](#baseentity)\n- [`EntityId`](#entityid)\n- [`EntitySlug`](#entityslug)\n- [`EntityRelationItem`](#entityrelationitem)\n- [`BaseBillingEvent`](#basebillingevent)\n- [`BillingEvent`](#billingevent)\n- [`BillingEventUpdate`](#billingeventupdate)\n- [`InstallmentEvent`](#installmentevent)\n- [`PaymentEvent`](#paymentevent)\n- [`ReimbursementEvent`](#reimbursementevent)\n- [`DunningFeeEvent`](#dunningfeeevent)\n- [`InvoiceEvent`](#invoiceevent)\n- [`FinalBillEvent`](#finalbillevent)\n- [`BonusEvent`](#bonusevent)\n- [`CorrectionEvent`](#correctionevent)\n- [`CustomEvent`](#customevent)\n- [`Contract`](#contract)\n- [`ContractItem`](#contractitem)\n- [`InstallmentAmountValue`](#installmentamountvalue)\n- [`PriceContext`](#pricecontext)\n- [`DynamicTariffPriceContext`](#dynamictariffpricecontext)\n- [`ConfigurationHistoryContext`](#configurationhistorycontext)\n- [`ConfigurationHistoryRow`](#configurationhistoryrow)\n- [`ConfigurationHistoryResponse`](#configurationhistoryresponse)\n- [`PricingInformationBalance`](#pricinginformationbalance)\n- [`ContractPricingSchedule`](#contractpricingschedule)\n- [`ContractPricingInformation`](#contractpricinginformation)\n- [`BillingAccountPricingInformation`](#billingaccountpricinginformation)\n- [`Balance`](#balance)\n- [`Currency`](#currency)\n\n### `getBillingEvents`\n\nRetrieve and filter billing events (Buchungss\xE4tze) such as installments (Abschlagszahlungen),\npayments (Zahlungseing\xE4nge), and reimbursements (R\xFCckerstattungen).\n\n`GET /v1/billing/events`\n\n```ts\nconst { data } = await client.getBillingEvents({\n from: 1,\n size: 1,\n entity_id: [\'...\'],\n contact_id: \'example\',\n event_type: \'example\',\n date_after: \'example\',\n date_before: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 42,\n "results": [\n {\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createBillingEvent`\n\nCreate a new billing event (Buchungssatz) such as an installment (Abschlagszahlung),\npayment (Zahlungseingang), or reimbursement (R\xFCckerstattung).\n\n`POST /v1/billing/events`\n\n```ts\nconst { data } = await client.createBillingEvent(\n null,\n {\n type: \'installment\',\n direction: \'debit\',\n note: \'July power & gas installment payment\',\n status: \'open\',\n booking_date: \'2025-07-10\',\n due_date: \'2025-07-10\',\n billing_amount: 5000,\n billing_amount_decimal: \'50.00\',\n billing_currency: \'EUR\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `getBillingEvent`\n\nRetrieve a single billing event (Buchungssatz) by its unique ID.\n\n`GET /v1/billing/events/{id}`\n\n```ts\nconst { data } = await client.getBillingEvent({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `updateBillingEvent`\n\nUpdate an existing billing event (Buchungssatz).\n\n`PATCH /v1/billing/events/{id}`\n\n```ts\nconst { data } = await client.updateBillingEvent(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n type: \'installment\',\n direction: \'debit\',\n billing_amount: 10000,\n billing_amount_decimal: \'100.00\',\n billing_currency: \'EUR\',\n external_id: \'SAP-54321\',\n contract: {\n $relation: [\n {\n entity_id: \'f589786b-3024-43cd-9cb3-5a3c953f2896\'\n }\n ]\n },\n booking_date: \'2025-06-15\',\n due_date: \'2025-06-30\',\n paid_date: \'2025-06-15T10:00:00Z\',\n status: \'closed\',\n related_event: \'d4fb2a4e-3f74-4fc4-8fba-6fdaaaa3b08e\',\n external_link: {\n href: \'https://billing.example.com/invoices/12345\',\n title: \'Invoice 12345\'\n },\n attachments: {\n $relation: [\n {\n entity_id: \'f589786b-3024-43cd-9cb3-5a3c953f2896\'\n }\n ]\n },\n note: \'Teilzahlung f\xFCr Abschlag Juni\',\n internal_note: \'R\xFCckmeldung von SAP: Betrag aus Zahlungsavis 2025-06-14 \xFCbernommen\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `deleteBillingEvent`\n\nDelete an existing billing event (Buchungssatz).\n\n`DELETE /v1/billing/events/{id}`\n\n```ts\nconst { data } = await client.deleteBillingEvent({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n---\n\n### `getBillingEventByExternalId`\n\nRetrieve a billing event (Buchungssatz) by its external system identifier.\n\n`GET /v1/billing/external/{external_id}`\n\n```ts\nconst { data } = await client.getBillingEventByExternalId({\n external_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "type": "installment",\n "direction": "debit",\n "note": "July power & gas installment payment",\n "status": "open",\n "booking_date": "2025-07-10",\n "due_date": "2025-07-10",\n "billing_amount": 5000,\n "billing_amount_decimal": "50.00",\n "billing_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `createContractEntity`\n\nCreate a new contract entity (Vertrag) for billing purposes.\n\n`POST /v1/billing/contracts`\n\n```ts\nconst { data } = await client.createContractEntity(\n null,\n {\n _id: \'5da0a718-c822-403d-9f5d-20d4584e0528\',\n _title: \'Abschlagszahlung Juli 2025\',\n _org: \'123456\',\n _schema: \'billing_event\',\n _tags: [\'billing\', \'energy\'],\n _created_at: \'2025-06-15T10:30:00Z\',\n _updated_at: \'2025-06-15T14:45:00Z\',\n contract_name: \'Stromvertrag Haushalt\',\n contract_number: \'STR-2025-001234\',\n status: \'active\',\n description: \'Haushaltsstrom-Tarif mit 24 Monaten Preisgarantie\',\n account_number: \'KD-67890\',\n branch: \'power\',\n billing_address: \'Musterstra\xDFe 123, 50667 K\xF6ln\',\n delivery_address: \'Musterstra\xDFe 123, 50667 K\xF6ln\',\n additional_addresses: \'Postfach 456, 50668 K\xF6ln\',\n termination_date: \'2025-12-31\',\n termination_reason: \'Kundenk\xFCndigung\',\n billing_period: \'monthly\',\n billing_duration_amount: 30,\n renewal_duration_amount: 12,\n renewal_duration_unit: \'months\',\n notice_time_amount: 30,\n notice_time_unit: \'months\',\n start_date: \'2025-01-01\',\n billing_due_day: 15,\n installment_amount: 8500,\n balance: 8990,\n balance_currency: \'EUR\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "5da0a718-c822-403d-9f5d-20d4584e0528",\n "_title": "Abschlagszahlung Juli 2025",\n "_org": "123456",\n "_schema": "billing_event",\n "_tags": ["billing", "energy"],\n "_created_at": "2025-06-15T10:30:00Z",\n "_updated_at": "2025-06-15T14:45:00Z",\n "contract_name": "Stromvertrag Haushalt",\n "contract_number": "STR-2025-001234",\n "status": "active",\n "description": "Haushaltsstrom-Tarif mit 24 Monaten Preisgarantie",\n "account_number": "KD-67890",\n "branch": "power",\n "billing_address": "Musterstra\xDFe 123, 50667 K\xF6ln",\n "delivery_address": "Musterstra\xDFe 123, 50667 K\xF6ln",\n "additional_addresses": "Postfach 456, 50668 K\xF6ln",\n "termination_date": "2025-12-31",\n "termination_reason": "Kundenk\xFCndigung",\n "billing_period": "monthly",\n "billing_duration_amount": 30,\n "renewal_duration_amount": 12,\n "renewal_duration_unit": "months",\n "notice_time_amount": 30,\n "notice_time_unit": "months",\n "start_date": "2025-01-01",\n "billing_due_day": 15,\n "installment_amount": 8500,\n "balance": 8990,\n "balance_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `updateContractEntity`\n\nUpdate an existing contract entity (Vertrag).\n\n`PATCH /v1/billing/contracts/{id}`\n\n```ts\nconst { data } = await client.updateContractEntity(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n _id: \'5da0a718-c822-403d-9f5d-20d4584e0528\',\n _title: \'Abschlagszahlung Juli 2025\',\n _org: \'123456\',\n _schema: \'billing_event\',\n _tags: [\'billing\', \'energy\'],\n _created_at: \'2025-06-15T10:30:00Z\',\n _updated_at: \'2025-06-15T14:45:00Z\',\n contract_name: \'Stromvertrag Haushalt\',\n contract_number: \'STR-2025-001234\',\n status: \'active\',\n description: \'Haushaltsstrom-Tarif mit 24 Monaten Preisgarantie\',\n account_number: \'KD-67890\',\n branch: \'power\',\n billing_address: \'Musterstra\xDFe 123, 50667 K\xF6ln\',\n delivery_address: \'Musterstra\xDFe 123, 50667 K\xF6ln\',\n additional_addresses: \'Postfach 456, 50668 K\xF6ln\',\n termination_date: \'2025-12-31\',\n termination_reason: \'Kundenk\xFCndigung\',\n billing_period: \'monthly\',\n billing_duration_amount: 30,\n renewal_duration_amount: 12,\n renewal_duration_unit: \'months\',\n notice_time_amount: 30,\n notice_time_unit: \'months\',\n start_date: \'2025-01-01\',\n billing_due_day: 15,\n installment_amount: 8500,\n balance: 8990,\n balance_currency: \'EUR\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "5da0a718-c822-403d-9f5d-20d4584e0528",\n "_title": "Abschlagszahlung Juli 2025",\n "_org": "123456",\n "_schema": "billing_event",\n "_tags": ["billing", "energy"],\n "_created_at": "2025-06-15T10:30:00Z",\n "_updated_at": "2025-06-15T14:45:00Z",\n "contract_name": "Stromvertrag Haushalt",\n "contract_number": "STR-2025-001234",\n "status": "active",\n "description": "Haushaltsstrom-Tarif mit 24 Monaten Preisgarantie",\n "account_number": "KD-67890",\n "branch": "power",\n "billing_address": "Musterstra\xDFe 123, 50667 K\xF6ln",\n "delivery_address": "Musterstra\xDFe 123, 50667 K\xF6ln",\n "additional_addresses": "Postfach 456, 50668 K\xF6ln",\n "termination_date": "2025-12-31",\n "termination_reason": "Kundenk\xFCndigung",\n "billing_period": "monthly",\n "billing_duration_amount": 30,\n "renewal_duration_amount": 12,\n "renewal_duration_unit": "months",\n "notice_time_amount": 30,\n "notice_time_unit": "months",\n "start_date": "2025-01-01",\n "billing_due_day": 15,\n "installment_amount": 8500,\n "balance": 8990,\n "balance_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n### `deleteContractEntity`\n\nDelete an existing contract entity (Vertrag).\n\n`DELETE /v1/billing/contracts/{id}`\n\n```ts\nconst { data } = await client.deleteContractEntity({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n---\n\n### `getContractPricingInformation`\n\nGet current pricing information and recent configuration history for a Contract.\n\n`GET /v1/billing/contracts/{id}/pricing_information`\n\n```ts\nconst { data } = await client.getContractPricingInformation({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_type": "contract",\n "entity_id": "string",\n "title": "string",\n "current_installment_amount": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "context": {\n "base_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {}\n },\n "working_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {}\n }\n },\n "balance": {\n "amount": 8990,\n "amount_decimal": "89.90",\n "currency": "EUR"\n },\n "schedule": {\n "billing_due_day": 0,\n "billing_period": "weekly",\n "installments_per_year": 0,\n "inferred": true\n },\n "pending_installment_change": true,\n "history": [\n {\n "event_id": "string",\n "org_id": "string",\n "entity_type": "contract",\n "entity_id": "string",\n "change_type": "installment_amount_changed",\n "schema_version": 1,\n "effective_at": "1970-01-01T00:00:00.000Z",\n "changed_at": "1970-01-01T00:00:00.000Z",\n "created_at": "1970-01-01T00:00:00.000Z",\n "source": "portal",\n "source_label": "string",\n "source_system": "string",\n "source_reference": "string",\n "previous_value": {},\n "new_value": {},\n "context": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getBillingAccountPricingInformation`\n\nGet current pricing information for the active Contracts linked to a Billing Account.\n\n`GET /v1/billing/billing_accounts/{id}/pricing_information`\n\n```ts\nconst { data } = await client.getBillingAccountPricingInformation({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "entity_type": "billing_account",\n "entity_id": "string",\n "title": "string",\n "balance": {\n "amount": 8990,\n "amount_decimal": "89.90",\n "currency": "EUR"\n },\n "contracts": [\n {\n "entity_type": "contract",\n "entity_id": "string",\n "title": "string",\n "current_installment_amount": {},\n "context": {},\n "balance": {},\n "schedule": {},\n "pending_installment_change": true,\n "history": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getContractConfigurationHistory`\n\nGet billing configuration history for a Contract.\n\n`GET /v1/billing/contracts/{id}/configuration_history`\n\n```ts\nconst { data } = await client.getContractConfigurationHistory({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n change_type: \'example\',\n from: 1,\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "history": [\n {\n "event_id": "string",\n "org_id": "string",\n "entity_type": "contract",\n "entity_id": "string",\n "change_type": "installment_amount_changed",\n "schema_version": 1,\n "effective_at": "1970-01-01T00:00:00.000Z",\n "changed_at": "1970-01-01T00:00:00.000Z",\n "created_at": "1970-01-01T00:00:00.000Z",\n "source": "portal",\n "source_label": "string",\n "source_system": "string",\n "source_reference": "string",\n "previous_value": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "new_value": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "context": {\n "base_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {\n "mode": "string",\n "interval": "string",\n "average_price_decimal": "string",\n "markup_amount_decimal": "string",\n "markup_amount_net_decimal": "string",\n "markup_amount_gross_decimal": "string",\n "market_price_decimal": "string",\n "market_price_currency": "EUR",\n "market": "string",\n "bidding_zone": "string",\n "timestamp": "string"\n }\n },\n "working_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {\n "mode": "string",\n "interval": "string",\n "average_price_decimal": "string",\n "markup_amount_decimal": "string",\n "markup_amount_net_decimal": "string",\n "markup_amount_gross_decimal": "string",\n "market_price_decimal": "string",\n "market_price_currency": "EUR",\n "market": "string",\n "bidding_zone": "string",\n "timestamp": "string"\n }\n }\n }\n }\n ],\n "total": 0\n}\n```\n\n</details>\n\n---\n\n### `getBillingAccountConfigurationHistory`\n\nGet merged billing configuration history for active Contracts linked to a Billing Account.\n\n`GET /v1/billing/billing_accounts/{id}/configuration_history`\n\n```ts\nconst { data } = await client.getBillingAccountConfigurationHistory({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n change_type: \'example\',\n from: 1,\n size: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "history": [\n {\n "event_id": "string",\n "org_id": "string",\n "entity_type": "contract",\n "entity_id": "string",\n "change_type": "installment_amount_changed",\n "schema_version": 1,\n "effective_at": "1970-01-01T00:00:00.000Z",\n "changed_at": "1970-01-01T00:00:00.000Z",\n "created_at": "1970-01-01T00:00:00.000Z",\n "source": "portal",\n "source_label": "string",\n "source_system": "string",\n "source_reference": "string",\n "previous_value": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "new_value": {\n "amount": 10050,\n "amount_decimal": "100.50",\n "currency": "EUR"\n },\n "context": {\n "base_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {\n "mode": "string",\n "interval": "string",\n "average_price_decimal": "string",\n "markup_amount_decimal": "string",\n "markup_amount_net_decimal": "string",\n "markup_amount_gross_decimal": "string",\n "market_price_decimal": "string",\n "market_price_currency": "EUR",\n "market": "string",\n "bidding_zone": "string",\n "timestamp": "string"\n }\n },\n "working_price": {\n "price_id": "string",\n "price_title": "string",\n "pricing_model": "string",\n "unit_amount_gross_decimal": "string",\n "unit_amount_net_decimal": "string",\n "before_discount_unit_amount_gross_decimal": "string",\n "before_discount_unit_amount_net_decimal": "string",\n "unit_discount_amount_decimal": "string",\n "unit_discount_amount_net_decimal": "string",\n "currency": "EUR",\n "billing_period": "string",\n "unit": "string",\n "has_discount": true,\n "is_dynamic_tariff": true,\n "dynamic_tariff": {\n "mode": "string",\n "interval": "string",\n "average_price_decimal": "string",\n "markup_amount_decimal": "string",\n "markup_amount_net_decimal": "string",\n "markup_amount_gross_decimal": "string",\n "market_price_decimal": "string",\n "market_price_currency": "EUR",\n "market": "string",\n "bidding_zone": "string",\n "timestamp": "string"\n }\n }\n }\n }\n ],\n "total": 0\n}\n```\n\n</details>\n\n---\n\n### `getCustomerBalance`\n\nRetrieve the total balance (Kontostand) across all contracts and orders for a customer.\n\n`GET /v1/billing/customers/{id}/balance`\n\n```ts\nconst { data } = await client.getCustomerBalance({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "balance": 8990,\n "balance_decimal": "89.90",\n "balance_currency": "EUR"\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `Error`\n\nStandard error response format\n\n```ts\ntype Error = {\n error: string\n message: string\n}\n```\n\n### `BaseEntity`\n\nBase schema for all epilot entities with common system fields\n\n```ts\ntype BaseEntity = {\n _id?: string\n _title?: string\n _org?: string\n _schema?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n}\n```\n\n### `EntityId`\n\nUnique entity identifier (UUID format)\n\n```ts\ntype EntityId = string\n```\n\n### `EntitySlug`\n\nURL-friendly identifier for the entity schema (Schema-Slug)\n\n```ts\ntype EntitySlug = string\n```\n\n### `EntityRelationItem`\n\nReference to a related entity\n\n```ts\ntype EntityRelationItem = {\n entity_id?: string\n}\n```\n\n### `BaseBillingEvent`\n\nRepresents a single financial transaction entry (Buchungssatz) in the billing ledger.\nEach entry is either a debit or a credit, following double-entry accounting principles.\nCommon types include Abschlagszahlung (installment), Zahlungseingang (payment), R\xFCckerstattung (reimbursement), etc.\n\n\n```ts\ntype BaseBillingEvent = {\n _id?: string\n _title?: string\n _org?: string\n _schema?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n type: string\n direction?: "debit" | "credit"\n billing_amount: number\n billing_amount_decimal: string\n billing_currency: string\n external_id?: string\n contract: {\n $relation?: Array<{\n entity_id?: { ... }\n }>\n }\n booking_date: string // date\n due_date?: string // date\n paid_date?: string // date-time\n status?: "closed" | "open"\n related_event?: string\n external_link?: {\n href?: string // uri\n title?: string\n }\n attachments?: {\n $relation?: Array<{\n entity_id?: { ... }\n }>\n }\n note?: string\n internal_note?: string\n}\n```\n\n### `BillingEvent`\n\nCollection of supported billing event types (Buchungsarten).\nEach type represents a different kind of financial transaction\nthat affects the customer\'s balance.\n\n\n```ts\ntype BillingEvent = {\n type?: "installment"\n} | {\n type?: "payment"\n} | {\n type?: "reimbursement"\n} | {\n type?: "dunning_fee"\n} | {\n type?: "invoice"\n} | {\n type?: "final_bill"\n} | {\n type?: "bonus"\n} | {\n type?: "correction"\n} | {\n type?: string\n}\n```\n\n### `BillingEventUpdate`\n\nFields to update on an existing billing event.\n\n```ts\ntype BillingEventUpdate = {\n type?: string\n direction?: "debit" | "credit"\n billing_amount?: number\n billing_amount_decimal?: string\n billing_currency?: string\n external_id?: string\n contract?: {\n $relation?: Array<{\n entity_id?: { ... }\n }>\n }\n booking_date?: string // date\n due_date?: string // date\n paid_date?: string // date-time\n status?: "closed" | "open"\n related_event?: string\n external_link?: {\n href?: string // uri\n title?: string\n }\n attachments?: {\n $relation?: Array<{\n entity_id?: { ... }\n }>\n }\n note?: string\n internal_note?: string\n}\n```\n\n### `InstallmentEvent`\n\nInstallment billing event (Abschlagszahlung).\nRepresents a scheduled partial payment that the customer owes,\ntypically billed monthly for utilities like electricity or gas.\n\n\n```ts\ntype InstallmentEvent = {\n type?: "installment"\n}\n```\n\n### `PaymentEvent`\n\nPayment received event (Zahlungseingang).\nRepresents money received from the customer, reducing their balance.\nThis is a credit transaction.\n\n\n```ts\ntype PaymentEvent = {\n type?: "payment"\n}\n```\n\n### `ReimbursementEvent`\n\nReimbursement event (R\xFCckerstattung).\nRepresents a refund to the customer, typically after overpayment\nor billing correction. This is a credit transaction.\n\n\n```ts\ntype ReimbursementEvent = {\n type?: "reimbursement"\n}\n```\n\n### `DunningFeeEvent`\n\nDunning fee event (Mahngeb\xFChr).\nRepresents a late payment fee charged to the customer\nafter a payment reminder has been sent. This is a debit transaction.\n\n\n```ts\ntype DunningFeeEvent = {\n type?: "dunning_fee"\n}\n```\n\n### `InvoiceEvent`\n\n```ts\ntype InvoiceEvent = {\n type?: "invoice"\n}\n```\n\n### `FinalBillEvent`\n\nFinal bill event (Endabrechnung/Schlussrechnung).\nRepresents the final settlement when a contract ends,\naccounting for actual consumption vs. paid installments.\nCan be either debit (customer owes more) or credit (customer overpaid).\n\n\n```ts\ntype FinalBillEvent = {\n type?: "final_bill"\n}\n```\n\n### `BonusEvent`\n\nBonus/credit event (Gutschrift/Bonus).\nRepresents a promotional credit or bonus applied to the customer\'s account,\nsuch as welcome bonuses or loyalty rewards. This is a credit transaction.\n\n\n```ts\ntype BonusEvent = {\n type?: "bonus"\n}\n```\n\n### `CorrectionEvent`\n\nCorrection event (Korrekturbuchung).\nRepresents an adjustment to a previous billing entry,\nsuch as correcting an overcharge or undercharge.\nCan be either debit or credit depending on the correction.\n\n\n```ts\ntype CorrectionEvent = {\n type?: "correction"\n}\n```\n\n### `CustomEvent`\n\nCustom billing event (Benutzerdefinierte Buchung).\nAllows for organization-specific billing event types not covered\nby the standard types. Use a descriptive type name.\n\n\n```ts\ntype CustomEvent = {\n type?: string\n}\n```\n\n### `Contract`\n\nRepresents a customer contract (Vertrag) for billing purposes.\nContracts are the parent entities for billing events and contain\nbilling configuration such as installment amounts and billing cycles.\n\n\n```ts\ntype Contract = {\n _id?: string\n _title?: string\n _org?: string\n _schema?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n contract_name?: string\n contract_number?: string\n status?: "draft" | "in_approval_process" | "approved" | "active" | "deactivated" | "revoked" | "terminated" | "expired"\n description?: string\n account_number?: string\n branch?: "power" | "gas" | "water" | "waste_water" | "district_heating"\n billing_address?: string\n delivery_address?: string\n additional_addresses?: string\n termination_date?: string // date\n termination_reason?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n billing_duration_amount?: number\n renewal_duration_amount?: number\n renewal_duration_unit?: "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "weeks" | "months" | "years"\n start_date?: string // date\n billing_due_day?: number\n installment_amount?: number\n balance?: number\n balance_currency?: string\n}\n```\n\n### `ContractItem`\n\nContract entity with all required system fields populated\n\n```ts\ntype ContractItem = {\n _id?: string\n _title?: string\n _org?: string\n _schema?: string\n _tags?: string[]\n _created_at?: string // date-time\n _updated_at?: string // date-time\n contract_name?: string\n contract_number?: string\n status?: "draft" | "in_approval_process" | "approved" | "active" | "deactivated" | "revoked" | "terminated" | "expired"\n description?: string\n account_number?: string\n branch?: "power" | "gas" | "water" | "waste_water" | "district_heating"\n billing_address?: string\n delivery_address?: string\n additional_addresses?: string\n termination_date?: string // date\n termination_reason?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n billing_duration_amount?: number\n renewal_duration_amount?: number\n renewal_duration_unit?: "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "weeks" | "months" | "years"\n start_date?: string // date\n billing_due_day?: number\n installment_amount?: number\n balance?: number\n balance_currency?: string\n}\n```\n\n### `InstallmentAmountValue`\n\n```ts\ntype InstallmentAmountValue = {\n amount?: number\n amount_decimal?: string\n currency?: string\n}\n```\n\n### `PriceContext`\n\n```ts\ntype PriceContext = {\n price_id?: string\n price_title?: string\n pricing_model?: string\n unit_amount_gross_decimal?: string\n unit_amount_net_decimal?: string\n before_discount_unit_amount_gross_decimal?: string\n before_discount_unit_amount_net_decimal?: string\n unit_discount_amount_decimal?: string\n unit_discount_amount_net_decimal?: string\n currency?: string\n billing_period?: string\n unit?: string\n has_discount?: boolean\n is_dynamic_tariff?: boolean\n dynamic_tariff?: {\n mode?: string\n interval?: string\n average_price_decimal?: string\n markup_amount_decimal?: string\n markup_amount_net_decimal?: string\n markup_amount_gross_decimal?: string\n market_price_decimal?: string\n market_price_currency?: string\n market?: string\n bidding_zone?: string\n timestamp?: string\n }\n}\n```\n\n### `DynamicTariffPriceContext`\n\n```ts\ntype DynamicTariffPriceContext = {\n mode?: string\n interval?: string\n average_price_decimal?: string\n markup_amount_decimal?: string\n markup_amount_net_decimal?: string\n markup_amount_gross_decimal?: string\n market_price_decimal?: string\n market_price_currency?: string\n market?: string\n bidding_zone?: string\n timestamp?: string\n}\n```\n\n### `ConfigurationHistoryContext`\n\n```ts\ntype ConfigurationHistoryContext = {\n base_price?: {\n price_id?: string\n price_title?: string\n pricing_model?: string\n unit_amount_gross_decimal?: string\n unit_amount_net_decimal?: string\n before_discount_unit_amount_gross_decimal?: string\n before_discount_unit_amount_net_decimal?: string\n unit_discount_amount_decimal?: string\n unit_discount_amount_net_decimal?: string\n currency?: string\n billing_period?: string\n unit?: string\n has_discount?: boolean\n is_dynamic_tariff?: boolean\n dynamic_tariff?: {\n mode?: { ... }\n interval?: { ... }\n average_price_decimal?: { ... }\n markup_amount_decimal?: { ... }\n markup_amount_net_decimal?: { ... }\n markup_amount_gross_decimal?: { ... }\n market_price_decimal?: { ... }\n market_price_currency?: { ... }\n market?: { ... }\n bidding_zone?: { ... }\n timestamp?: { ... }\n }\n }\n working_price?: {\n price_id?: string\n price_title?: string\n pricing_model?: string\n unit_amount_gross_decimal?: string\n unit_amount_net_decimal?: string\n before_discount_unit_amount_gross_decimal?: string\n before_discount_unit_amount_net_decimal?: string\n unit_discount_amount_decimal?: string\n unit_discount_amount_net_decimal?: string\n currency?: string\n billing_period?: string\n unit?: string\n has_discount?: boolean\n is_dynamic_tariff?: boolean\n dynamic_tariff?: {\n mode?: { ... }\n interval?: { ... }\n average_price_decimal?: { ... }\n markup_amount_decimal?: { ... }\n markup_amount_net_decimal?: { ... }\n markup_amount_gross_decimal?: { ... }\n market_price_decimal?: { ... }\n market_price_currency?: { ... }\n market?: { ... }\n bidding_zone?: { ... }\n timestamp?: { ... }\n }\n }\n}\n```\n\n### `ConfigurationHistoryRow`\n\n```ts\ntype ConfigurationHistoryRow = {\n event_id: string\n org_id: string\n entity_type: "contract" | "billing_account"\n entity_id: string\n change_type: "installment_amount_changed"\n schema_version: number\n effective_at?: string // date-time\n changed_at: string // date-time\n created_at: string // date-time\n source: "portal" | "epilot" | "erp" | "system" | "api" | "external" | "journey" | "automation" | "unknown"\n source_label?: string\n source_system?: string\n source_reference?: string\n previous_value?: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n new_value: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n context?: {\n base_price?: {\n price_id?: { ... }\n price_title?: { ... }\n pricing_model?: { ... }\n unit_amount_gross_decimal?: { ... }\n unit_amount_net_decimal?: { ... }\n before_discount_unit_amount_gross_decimal?: { ... }\n before_discount_unit_amount_net_decimal?: { ... }\n unit_discount_amount_decimal?: { ... }\n unit_discount_amount_net_decimal?: { ... }\n currency?: { ... }\n billing_period?: { ... }\n unit?: { ... }\n has_discount?: { ... }\n is_dynamic_tariff?: { ... }\n dynamic_tariff?: { ... }\n }\n working_price?: {\n price_id?: { ... }\n price_title?: { ... }\n pricing_model?: { ... }\n unit_amount_gross_decimal?: { ... }\n unit_amount_net_decimal?: { ... }\n before_discount_unit_amount_gross_decimal?: { ... }\n before_discount_unit_amount_net_decimal?: { ... }\n unit_discount_amount_decimal?: { ... }\n unit_discount_amount_net_decimal?: { ... }\n currency?: { ... }\n billing_period?: { ... }\n unit?: { ... }\n has_discount?: { ... }\n is_dynamic_tariff?: { ... }\n dynamic_tariff?: { ... }\n }\n }\n}\n```\n\n### `ConfigurationHistoryResponse`\n\n```ts\ntype ConfigurationHistoryResponse = {\n history: Array<{\n event_id: string\n org_id: string\n entity_type: "contract" | "billing_account"\n entity_id: string\n change_type: "installment_amount_changed"\n schema_version: number\n effective_at?: string // date-time\n changed_at: string // date-time\n created_at: string // date-time\n source: "portal" | "epilot" | "erp" | "system" | "api" | "external" | "journey" | "automation" | "unknown"\n source_label?: string\n source_system?: string\n source_reference?: string\n previous_value?: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n new_value: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n context?: {\n base_price?: { ... }\n working_price?: { ... }\n }\n }>\n total: number\n}\n```\n\n### `PricingInformationBalance`\n\n```ts\ntype PricingInformationBalance = {\n amount?: number\n amount_decimal?: string\n currency?: string\n}\n```\n\n### `ContractPricingSchedule`\n\n```ts\ntype ContractPricingSchedule = {\n billing_due_day?: number\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n installments_per_year?: number\n inferred: boolean\n}\n```\n\n### `ContractPricingInformation`\n\n```ts\ntype ContractPricingInformation = {\n entity_type: "contract"\n entity_id: string\n title?: string\n current_installment_amount?: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n context?: {\n base_price?: {\n price_id?: { ... }\n price_title?: { ... }\n pricing_model?: { ... }\n unit_amount_gross_decimal?: { ... }\n unit_amount_net_decimal?: { ... }\n before_discount_unit_amount_gross_decimal?: { ... }\n before_discount_unit_amount_net_decimal?: { ... }\n unit_discount_amount_decimal?: { ... }\n unit_discount_amount_net_decimal?: { ... }\n currency?: { ... }\n billing_period?: { ... }\n unit?: { ... }\n has_discount?: { ... }\n is_dynamic_tariff?: { ... }\n dynamic_tariff?: { ... }\n }\n working_price?: {\n price_id?: { ... }\n price_title?: { ... }\n pricing_model?: { ... }\n unit_amount_gross_decimal?: { ... }\n unit_amount_net_decimal?: { ... }\n before_discount_unit_amount_gross_decimal?: { ... }\n before_discount_unit_amount_net_decimal?: { ... }\n unit_discount_amount_decimal?: { ... }\n unit_discount_amount_net_decimal?: { ... }\n currency?: { ... }\n billing_period?: { ... }\n unit?: { ... }\n has_discount?: { ... }\n is_dynamic_tariff?: { ... }\n dynamic_tariff?: { ... }\n }\n }\n balance?: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n schedule?: {\n billing_due_day?: number\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n installments_per_year?: number\n inferred: boolean\n }\n pending_installment_change?: boolean\n history: Array<{\n event_id: string\n org_id: string\n entity_type: "contract" | "billing_account"\n entity_id: string\n change_type: "installment_amount_changed"\n schema_version: number\n effective_at?: string // date-time\n changed_at: string // date-time\n created_at: string // date-time\n source: "portal" | "epilot" | "erp" | "system" | "api" | "external" | "journey" | "automation" | "unknown"\n source_label?: string\n source_system?: string\n source_reference?: string\n previous_value?: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n new_value: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n context?: {\n base_price?: { ... }\n working_price?: { ... }\n }\n }>\n}\n```\n\n### `BillingAccountPricingInformation`\n\n```ts\ntype BillingAccountPricingInformation = {\n entity_type: "billing_account"\n entity_id: string\n title?: string\n balance?: {\n amount?: number\n amount_decimal?: string\n currency?: string\n }\n contracts: Array<{\n entity_type: "contract"\n entity_id: string\n title?: string\n current_installment_amount?: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n context?: {\n base_price?: { ... }\n working_price?: { ... }\n }\n balance?: {\n amount?: { ... }\n amount_decimal?: { ... }\n currency?: { ... }\n }\n schedule?: {\n billing_due_day?: { ... }\n billing_period?: { ... }\n installments_per_year?: { ... }\n inferred: { ... }\n }\n pending_installment_change?: boolean\n history: Array<{\n event_id: { ... }\n org_id: { ... }\n entity_type: { ... }\n entity_id: { ... }\n change_type: { ... }\n schema_version: { ... }\n effective_at?: { ... }\n changed_at: { ... }\n created_at: { ... }\n source: { ... }\n source_label?: { ... }\n source_system?: { ... }\n source_reference?: { ... }\n previous_value?: { ... }\n new_value: { ... }\n context?: { ... }\n }>\n }>\n}\n```\n\n### `Balance`\n\nCustomer balance summary (Kontostand\xFCbersicht).\nRepresents the aggregated balance across all contracts and orders for a customer.\n\n\n```ts\ntype Balance = {\n balance?: number\n balance_decimal?: string\n balance_currency?: string\n}\n```\n\n### `Currency`\n\nCurrency code in ISO 4217 format (W\xE4hrungscode).\nCommon values: EUR (Euro), CHF (Swiss Franc)\n\n\n```ts\ntype Currency = string\n```\n';
|
|
5
|
-
export {
|
|
6
|
-
billing_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/calendar.json
|
|
4
|
-
var calendar_default = '# Calendar API\n\n- **Base URL:** `https://calendar.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/calendar](https://docs.epilot.io/api/calendar)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.calendar.listUsersAbsence(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/calendar\'\n\nconst calendarClient = getClient()\nauthorize(calendarClient, () => \'<token>\')\nconst { data } = await calendarClient.listUsersAbsence(...)\n```\n\n## Operations\n\n**Absence**\n- [`listUsersAbsence`](#listusersabsence)\n- [`searchAbsence`](#searchabsence)\n- [`searchNowAbsence`](#searchnowabsence)\n- [`listAbsenceAdjustments`](#listabsenceadjustments)\n- [`createAbsenceAdjustment`](#createabsenceadjustment)\n- [`getAbsenceAdjustment`](#getabsenceadjustment)\n- [`patchAbsenceAdjustment`](#patchabsenceadjustment)\n- [`deleteAbsenceAdjustment`](#deleteabsenceadjustment)\n- [`getUserAbsence`](#getuserabsence)\n\n**Working Hours**\n- [`getWorkingHours`](#getworkinghours)\n- [`putWorkingHours`](#putworkinghours)\n- [`deleteWorkingHours`](#deleteworkinghours)\n\n**Calendars**\n- [`listCalendars`](#listcalendars)\n- [`createCalendar`](#createcalendar)\n- [`addOutlookCalendar`](#addoutlookcalendar)\n- [`listOutlookCalendars`](#listoutlookcalendars)\n- [`deleteOutlookCalendar`](#deleteoutlookcalendar)\n- [`outlookWebhook`](#outlookwebhook)\n- [`getCalendar`](#getcalendar)\n- [`updateCalendar`](#updatecalendar)\n- [`deleteCalendar`](#deletecalendar)\n\n**Calendar Events**\n- [`listEvents`](#listevents)\n- [`createEvent`](#createevent)\n- [`getEvent`](#getevent)\n- [`updateEvent`](#updateevent)\n- [`deleteEvent`](#deleteevent)\n- [`shareEvent`](#shareevent)\n- [`unshareEvent`](#unshareevent)\n\n**Schemas**\n- [`AbsenceInterval`](#absenceinterval)\n- [`AbsenceIntervalSource`](#absenceintervalsource)\n- [`Error`](#error)\n- [`SearchAbsenceBody`](#searchabsencebody)\n- [`SearchNowAbsenceBody`](#searchnowabsencebody)\n- [`AbsenceAdjustment`](#absenceadjustment)\n- [`AbsenceStatus`](#absencestatus)\n- [`AbsenceType`](#absencetype)\n- [`CreateAbsenceAdjustmentBody`](#createabsenceadjustmentbody)\n- [`PatchAbsenceAdjustmentBody`](#patchabsenceadjustmentbody)\n- [`ExternalCalendar`](#externalcalendar)\n- [`WorkingHours`](#workinghours)\n- [`UpsertWorkingHoursBody`](#upsertworkinghoursbody)\n- [`TimeWindow`](#timewindow)\n- [`Calendar`](#calendar)\n- [`CalendarSource`](#calendarsource)\n- [`Provider`](#provider)\n- [`CalendarCreateBody`](#calendarcreatebody)\n- [`AddOutlookCalendarRequest`](#addoutlookcalendarrequest)\n- [`AvailableOutlookCalendar`](#availableoutlookcalendar)\n- [`CalendarPatchBody`](#calendarpatchbody)\n- [`CalendarEvent`](#calendarevent)\n- [`EventType`](#eventtype)\n- [`EventStatus`](#eventstatus)\n- [`Sensitivity`](#sensitivity)\n- [`Importance`](#importance)\n- [`ResponseStatus`](#responsestatus)\n- [`Attendee`](#attendee)\n- [`EventSource`](#eventsource)\n- [`CalendarEventCreateBody`](#calendareventcreatebody)\n- [`CalendarEventPatchBody`](#calendareventpatchbody)\n- [`ShareEventBody`](#shareeventbody)\n\n### `listUsersAbsence`\n\nList organization users with known absence metadata in the requested time window.\n\n`GET /v1/calendar/absence/users`\n\n```ts\nconst { data } = await client.listUsersAbsence({\n from: \'example\',\n to: \'example\',\n include_busy: true,\n working_hours_granularity: \'example\',\n query: \'example\',\n limit: 1,\n offset: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "hits": 0,\n "results": [\n {\n "absent": true,\n "absence_intervals": [\n {\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "original_from": "1970-01-01T00:00:00.000Z",\n "original_to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "source": "calendar_event",\n "calendar_event_id": "string",\n "absence_adjustment_id": "string",\n "reason": "string"\n }\n ],\n "user_id": "string",\n "display_name": "string",\n "email": "user@example.com",\n "status": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `searchAbsence`\n\nSearch known absence for candidate users in the requested time window.\n\n`POST /v1/calendar/absence:search`\n\n```ts\nconst { data } = await client.searchAbsence(\n null,\n {\n from: \'1970-01-01T00:00:00.000Z\',\n to: \'1970-01-01T00:00:00.000Z\',\n user_ids: [\'string\'],\n include_busy: false,\n working_hours_granularity: \'time\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "users": {}\n}\n```\n\n</details>\n\n---\n\n### `searchNowAbsence`\n\nSearch known absence for candidate users at the current server time.\n\n`POST /v1/calendar/absence:search-now`\n\n```ts\nconst { data } = await client.searchNowAbsence(\n null,\n {\n user_ids: [\'string\'],\n include_busy: false,\n working_hours_granularity: \'time\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "users": {}\n}\n```\n\n</details>\n\n---\n\n### `listAbsenceAdjustments`\n\nList absence adjustments for a user in a time window.\n\n`GET /v1/calendar/absence/users/{user_id}/adjustments`\n\n```ts\nconst { data } = await client.listAbsenceAdjustments({\n user_id: \'example\',\n from: \'example\',\n to: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "results": [\n {\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "status": "oof",\n "type": "string",\n "reason": "string",\n "adjustment_id": "string",\n "user_id": "string",\n "created_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createAbsenceAdjustment`\n\nCreate a time-bound absence adjustment for a user in the caller organization.\n\n`POST /v1/calendar/absence/users/{user_id}/adjustments`\n\n```ts\nconst { data } = await client.createAbsenceAdjustment(\n {\n user_id: \'example\',\n },\n {\n from: \'1970-01-01T00:00:00.000Z\',\n to: \'1970-01-01T00:00:00.000Z\',\n absent: true,\n status: \'oof\',\n type: \'string\',\n reason: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "status": "oof",\n "type": "string",\n "reason": "string",\n "adjustment_id": "string",\n "user_id": "string",\n "created_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `getAbsenceAdjustment`\n\nGet an absence adjustment by ID.\n\n`GET /v1/calendar/absence/users/{user_id}/adjustments/{adjustment_id}`\n\n```ts\nconst { data } = await client.getAbsenceAdjustment({\n user_id: \'example\',\n adjustment_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "status": "oof",\n "type": "string",\n "reason": "string",\n "adjustment_id": "string",\n "user_id": "string",\n "created_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `patchAbsenceAdjustment`\n\nUpdate an absence adjustment in the caller organization.\n\n`PATCH /v1/calendar/absence/users/{user_id}/adjustments/{adjustment_id}`\n\n```ts\nconst { data } = await client.patchAbsenceAdjustment(\n {\n user_id: \'example\',\n adjustment_id: \'example\',\n },\n {\n from: \'1970-01-01T00:00:00.000Z\',\n to: \'1970-01-01T00:00:00.000Z\',\n absent: true,\n status: \'oof\',\n type: \'string\',\n reason: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "status": "oof",\n "type": "string",\n "reason": "string",\n "adjustment_id": "string",\n "user_id": "string",\n "created_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `deleteAbsenceAdjustment`\n\nDelete an absence adjustment.\n\n`DELETE /v1/calendar/absence/users/{user_id}/adjustments/{adjustment_id}`\n\n```ts\nconst { data } = await client.deleteAbsenceAdjustment({\n user_id: \'example\',\n adjustment_id: \'example\',\n})\n```\n\n---\n\n### `getUserAbsence`\n\nGet known absence for a user in a time window. absent=false means no known absence, not guaranteed availability.\n\n`GET /v1/calendar/absence/users/{user_id}`\n\n```ts\nconst { data } = await client.getUserAbsence({\n user_id: \'example\',\n from: \'example\',\n to: \'example\',\n include_busy: true,\n working_hours_granularity: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "absent": true,\n "absence_intervals": [\n {\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "original_from": "1970-01-01T00:00:00.000Z",\n "original_to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "source": "calendar_event",\n "calendar_event_id": "string",\n "absence_adjustment_id": "string",\n "reason": "string"\n }\n ],\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "user_id": "string",\n "external_calendars": [\n {\n "provider": "outlook",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getWorkingHours`\n\nGet the recurring weekly working hours of a user. 404 means no record exists and the user is treated as always available.\n\n`GET /v1/calendar/working-hours/users/{user_id}`\n\n```ts\nconst { data } = await client.getWorkingHours({\n user_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "monday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "tuesday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "wednesday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "thursday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "friday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "saturday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "sunday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "timezone": "string",\n "user_id": "string",\n "updated_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `putWorkingHours`\n\nCreate or fully replace the working hours of a user in the caller organization. This is a full replace, not a merge.\n\n`PUT /v1/calendar/working-hours/users/{user_id}`\n\n```ts\nconst { data } = await client.putWorkingHours(\n {\n user_id: \'example\',\n },\n {\n monday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n tuesday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n wednesday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n thursday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n friday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n saturday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n sunday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n timezone: \'Europe/Berlin\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "monday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "tuesday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "wednesday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "thursday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "friday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "saturday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "sunday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "timezone": "string",\n "user_id": "string",\n "updated_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `deleteWorkingHours`\n\nDelete the working hours of a user. The user is then treated as always available again.\n\n`DELETE /v1/calendar/working-hours/users/{user_id}`\n\n```ts\nconst { data } = await client.deleteWorkingHours({\n user_id: \'example\',\n})\n```\n\n---\n\n### `listCalendars`\n\nList calendars visible to the caller.\n\n`GET /v1/calendar`\n\n```ts\nconst { data } = await client.listCalendars({\n size: 1,\n cursor: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": "string"\n}\n```\n\n</details>\n\n---\n\n### `createCalendar`\n\nCreate a native epilot calendar.\n\n`POST /v1/calendar`\n\n```ts\nconst { data } = await client.createCalendar(\n null,\n {\n name: \'string\',\n description: \'string\',\n color: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `addOutlookCalendar`\n\nRegisters one of the caller\'s Outlook calendars as an epilot calendar.\n\n`POST /v1/calendar/sources/outlook`\n\n```ts\nconst { data } = await client.addOutlookCalendar(\n null,\n {\n provider_calendar_id: \'string\',\n name: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `listOutlookCalendars`\n\nLists the calling user\'s Outlook calendars available to import as epilot calendars.\n\n`GET /v1/calendar/sources/outlook/available`\n\n```ts\nconst { data } = await client.listOutlookCalendars()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "calendars": [\n {\n "provider_calendar_id": "string",\n "name": "string",\n "color": "string",\n "is_default": true,\n "can_edit": true,\n "owner": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `deleteOutlookCalendar`\n\nDisconnects a previously registered Outlook calendar.\n\n`DELETE /v1/calendar/sources/outlook/{calendar_id}`\n\n```ts\nconst { data } = await client.deleteOutlookCalendar({\n calendar_id: \'example\',\n})\n```\n\n---\n\n### `outlookWebhook`\n\nPublic Microsoft Graph webhook receiver for per-user Outlook calendar\nsubscriptions. Unauthenticated by design (API Gateway `Authorizer: NONE`):\nGraph calls it with no epilot token.\n\n`POST /v1/calendar/outlook/webhook`\n\n```ts\nconst { data } = await client.outlookWebhook({\n validationToken: \'example\',\n})\n```\n\n---\n\n### `getCalendar`\n\nGet a single calendar by its epilot ID.\n\n`GET /v1/calendar/{calendar_id}`\n\n```ts\nconst { data } = await client.getCalendar({\n calendar_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateCalendar`\n\nUpdate local calendar details. Changes to synced calendars do not modify the provider calendar.\n\n`PATCH /v1/calendar/{calendar_id}`\n\n```ts\nconst { data } = await client.updateCalendar(\n {\n calendar_id: \'example\',\n },\n {\n name: \'string\',\n description: \'string\',\n color: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `deleteCalendar`\n\nDelete a native epilot calendar or disconnect a synced calendar, including its locally stored events.\n\n`DELETE /v1/calendar/{calendar_id}`\n\n```ts\nconst { data } = await client.deleteCalendar({\n calendar_id: \'example\',\n})\n```\n\n---\n\n### `listEvents`\n\nList events in a time window. Recurring events are returned as expanded occurrences \u2013 each instance appears as its own event.\n\n`GET /v1/calendar/events`\n\n```ts\nconst { data } = await client.listEvents({\n from: \'example\',\n to: \'example\',\n calendar_id: \'example\',\n size: 1,\n cursor: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_id": "string",\n "_schema": "calendar_event",\n "_org": "string",\n "_title": "string",\n "_tags": ["string"],\n "calendar_id": "string",\n "event_type": "singleInstance",\n "description": "string",\n "start_time": "1970-01-01T00:00:00.000Z",\n "end_time": "1970-01-01T00:00:00.000Z",\n "timezone": "string",\n "is_all_day": true,\n "location": "string",\n "status": "free",\n "busy": true,\n "is_cancelled": true,\n "is_draft": true,\n "sensitivity": "normal",\n "importance": "low",\n "is_online_meeting": true,\n "online_meeting_url": "https://example.com/path",\n "web_link": "https://example.com/path",\n "response_status": "none",\n "organizer_email": "user@example.com",\n "attendees": [\n {\n "email": "user@example.com",\n "name": "string",\n "response": "none",\n "type": "required"\n }\n ],\n "metadata": {},\n "is_recurring": true,\n "series_master_id": "string",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_event_id": "string",\n "provider_event_url": "https://example.com/path",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "etag": "string"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": "string"\n}\n```\n\n</details>\n\n---\n\n### `createEvent`\n\nCreate a native epilot calendar event.\n\n`POST /v1/calendar/events`\n\n```ts\nconst { data } = await client.createEvent(\n null,\n {\n calendar_id: \'string\',\n description: \'string\',\n start_time: \'1970-01-01T00:00:00.000Z\',\n end_time: \'1970-01-01T00:00:00.000Z\',\n timezone: \'string\',\n is_all_day: true,\n location: \'string\',\n status: \'free\',\n sensitivity: \'normal\',\n metadata: {},\n _title: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar_event",\n "_org": "string",\n "_title": "string",\n "_tags": ["string"],\n "calendar_id": "string",\n "event_type": "singleInstance",\n "description": "string",\n "start_time": "1970-01-01T00:00:00.000Z",\n "end_time": "1970-01-01T00:00:00.000Z",\n "timezone": "string",\n "is_all_day": true,\n "location": "string",\n "status": "free",\n "busy": true,\n "is_cancelled": true,\n "is_draft": true,\n "sensitivity": "normal",\n "importance": "low",\n "is_online_meeting": true,\n "online_meeting_url": "https://example.com/path",\n "web_link": "https://example.com/path",\n "response_status": "none",\n "organizer_email": "user@example.com",\n "attendees": [\n {\n "email": "user@example.com",\n "name": "string",\n "response": "none",\n "type": "required"\n }\n ],\n "metadata": {},\n "is_recurring": true,\n "series_master_id": "string",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_event_id": "string",\n "provider_event_url": "https://example.com/path",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "etag": "string"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `getEvent`\n\nGet a single event by its epilot ID.\n\n`GET /v1/calendar/events/{event_id}`\n\n```ts\nconst { data } = await client.getEvent({\n event_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar_event",\n "_org": "string",\n "_title": "string",\n "_tags": ["string"],\n "calendar_id": "string",\n "event_type": "singleInstance",\n "description": "string",\n "start_time": "1970-01-01T00:00:00.000Z",\n "end_time": "1970-01-01T00:00:00.000Z",\n "timezone": "string",\n "is_all_day": true,\n "location": "string",\n "status": "free",\n "busy": true,\n "is_cancelled": true,\n "is_draft": true,\n "sensitivity": "normal",\n "importance": "low",\n "is_online_meeting": true,\n "online_meeting_url": "https://example.com/path",\n "web_link": "https://example.com/path",\n "response_status": "none",\n "organizer_email": "user@example.com",\n "attendees": [\n {\n "email": "user@example.com",\n "name": "string",\n "response": "none",\n "type": "required"\n }\n ],\n "metadata": {},\n "is_recurring": true,\n "series_master_id": "string",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_event_id": "string",\n "provider_event_url": "https://example.com/path",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "etag": "string"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateEvent`\n\nUpdate a native epilot calendar event.\n\n`PATCH /v1/calendar/events/{event_id}`\n\n```ts\nconst { data } = await client.updateEvent(\n {\n event_id: \'example\',\n },\n {\n description: \'string\',\n start_time: \'1970-01-01T00:00:00.000Z\',\n end_time: \'1970-01-01T00:00:00.000Z\',\n timezone: \'string\',\n is_all_day: true,\n location: \'string\',\n status: \'free\',\n is_cancelled: true,\n sensitivity: \'normal\',\n _title: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar_event",\n "_org": "string",\n "_title": "string",\n "_tags": ["string"],\n "calendar_id": "string",\n "event_type": "singleInstance",\n "description": "string",\n "start_time": "1970-01-01T00:00:00.000Z",\n "end_time": "1970-01-01T00:00:00.000Z",\n "timezone": "string",\n "is_all_day": true,\n "location": "string",\n "status": "free",\n "busy": true,\n "is_cancelled": true,\n "is_draft": true,\n "sensitivity": "normal",\n "importance": "low",\n "is_online_meeting": true,\n "online_meeting_url": "https://example.com/path",\n "web_link": "https://example.com/path",\n "response_status": "none",\n "organizer_email": "user@example.com",\n "attendees": [\n {\n "email": "user@example.com",\n "name": "string",\n "response": "none",\n "type": "required"\n }\n ],\n "metadata": {},\n "is_recurring": true,\n "series_master_id": "string",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_event_id": "string",\n "provider_event_url": "https://example.com/path",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "etag": "string"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `deleteEvent`\n\nDelete a native epilot calendar event.\n\n`DELETE /v1/calendar/events/{event_id}`\n\n```ts\nconst { data } = await client.deleteEvent({\n event_id: \'example\',\n})\n```\n\n---\n\n### `shareEvent`\n\nShare a calendar event with another user of the same organization, view-only. Owner-only: recipients of a share cannot re-share. Sharing an already-shared event is a no-op.\n\n`POST /v1/calendar/events/{event_id}/share`\n\n```ts\nconst { data } = await client.shareEvent(\n {\n event_id: \'example\',\n },\n {\n user_id: \'string\'\n },\n)\n```\n\n---\n\n### `unshareEvent`\n\nRevoke a per-event share. The recipient loses access immediately. Owner-only.\n\n`DELETE /v1/calendar/events/{event_id}/share/{user_id}`\n\n```ts\nconst { data } = await client.unshareEvent({\n event_id: \'example\',\n user_id: \'example\',\n})\n```\n\n---\n\n## Schemas\n\n### `AbsenceInterval`\n\n```ts\ntype AbsenceInterval = {\n from: string // date-time\n to: string // date-time\n original_from: string // date-time\n original_to: string // date-time\n absent: boolean\n source: "calendar_event" | "absence_adjustment" | "working_hours"\n calendar_event_id?: string\n absence_adjustment_id?: string\n reason?: string\n}\n```\n\n### `AbsenceIntervalSource`\n\n```ts\ntype AbsenceIntervalSource = "calendar_event" | "absence_adjustment" | "working_hours"\n```\n\n### `Error`\n\n```ts\ntype Error = {\n status: number\n error: string | unknown[]\n}\n```\n\n### `SearchAbsenceBody`\n\n```ts\ntype SearchAbsenceBody = {\n from: string // date-time\n to: string // date-time\n user_ids: string[]\n include_busy?: boolean\n working_hours_granularity?: "time" | "day"\n}\n```\n\n### `SearchNowAbsenceBody`\n\n```ts\ntype SearchNowAbsenceBody = {\n user_ids: string[]\n include_busy?: boolean\n working_hours_granularity?: "time" | "day"\n}\n```\n\n### `AbsenceAdjustment`\n\n```ts\ntype AbsenceAdjustment = {\n from: string // date-time\n to: string // date-time\n absent: boolean\n status: "oof" | "busy"\n type?: string\n reason?: string\n adjustment_id: string\n user_id: string\n created_by: string\n created_at: string // date-time\n updated_at: string // date-time\n}\n```\n\n### `AbsenceStatus`\n\nCalendar status targeted by the absence adjustment.\n\n```ts\ntype AbsenceStatus = "oof" | "busy"\n```\n\n### `AbsenceType`\n\nOptional producer-defined reference stored with an absence adjustment.\n\n```ts\ntype AbsenceType = string\n```\n\n### `CreateAbsenceAdjustmentBody`\n\n```ts\ntype CreateAbsenceAdjustmentBody = {\n from: string // date-time\n to: string // date-time\n absent: boolean\n status: "oof" | "busy"\n type?: string\n reason?: string\n}\n```\n\n### `PatchAbsenceAdjustmentBody`\n\n```ts\ntype PatchAbsenceAdjustmentBody = {\n from?: string // date-time\n to?: string // date-time\n absent?: boolean\n status?: "oof" | "busy"\n type?: string\n reason?: string\n}\n```\n\n### `ExternalCalendar`\n\n```ts\ntype ExternalCalendar = {\n provider: "outlook" | "google"\n last_synced_at: string // date-time\n}\n```\n\n### `WorkingHours`\n\nRecurring weekly working hours of a user. The absence of a record means the user is treated as always available.\n\n```ts\ntype WorkingHours = {\n monday: Array<{\n start: string\n end: string\n }>\n tuesday: Array<{\n start: string\n end: string\n }>\n wednesday: Array<{\n start: string\n end: string\n }>\n thursday: Array<{\n start: string\n end: string\n }>\n friday: Array<{\n start: string\n end: string\n }>\n saturday: Array<{\n start: string\n end: string\n }>\n sunday: Array<{\n start: string\n end: string\n }>\n timezone: string\n user_id: string\n updated_by: string\n created_at: string // date-time\n updated_at: string // date-time\n}\n```\n\n### `UpsertWorkingHoursBody`\n\nFull replacement of the working-hours record. All weekdays are required; an empty array means a day off. Users without a working-hours record are treated as always available.\n\n```ts\ntype UpsertWorkingHoursBody = {\n monday: Array<{\n start: string\n end: string\n }>\n tuesday: Array<{\n start: string\n end: string\n }>\n wednesday: Array<{\n start: string\n end: string\n }>\n thursday: Array<{\n start: string\n end: string\n }>\n friday: Array<{\n start: string\n end: string\n }>\n saturday: Array<{\n start: string\n end: string\n }>\n sunday: Array<{\n start: string\n end: string\n }>\n timezone?: string\n}\n```\n\n### `TimeWindow`\n\nA wall-clock working window within a single day.\n\n```ts\ntype TimeWindow = {\n start: string\n end: string\n}\n```\n\n### `Calendar`\n\n```ts\ntype Calendar = {\n _id: string\n _schema: "calendar"\n _org: string\n _title?: string\n name: string\n description?: string\n color?: string\n is_default: boolean\n read_only: boolean\n owner_email?: string // email\n source: {\n type: "native" | "synced"\n provider?: "outlook" | "google" | null\n provider_calendar_id?: string\n last_synced_at?: string // date-time\n }\n _created_at?: string // date-time\n _updated_at?: string // date-time\n}\n```\n\n### `CalendarSource`\n\n```ts\ntype CalendarSource = {\n type: "native" | "synced"\n provider?: "outlook" | "google" | null\n provider_calendar_id?: string\n last_synced_at?: string // date-time\n}\n```\n\n### `Provider`\n\nNull for native epilot calendars\n\n```ts\ntype Provider = "outlook" | "google" | null\n```\n\n### `CalendarCreateBody`\n\n```ts\ntype CalendarCreateBody = {\n name: string\n description?: string\n color?: string\n}\n```\n\n### `AddOutlookCalendarRequest`\n\n```ts\ntype AddOutlookCalendarRequest = {\n provider_calendar_id: string\n name?: string\n}\n```\n\n### `AvailableOutlookCalendar`\n\n```ts\ntype AvailableOutlookCalendar = {\n provider_calendar_id: string\n name: string\n color?: string\n is_default?: boolean\n can_edit?: boolean\n owner?: string\n}\n```\n\n### `CalendarPatchBody`\n\n```ts\ntype CalendarPatchBody = {\n name?: string\n description?: string\n color?: string\n}\n```\n\n### `CalendarEvent`\n\n```ts\ntype CalendarEvent = {\n _id: string\n _schema: "calendar_event"\n _org: string\n _title?: string\n _tags?: string[]\n calendar_id: string\n event_type: "singleInstance" | "occurrence" | "exception" | "seriesMaster"\n description?: string\n start_time: string // date-time\n end_time: string // date-time\n timezone: string\n is_all_day: boolean\n location?: string\n status: "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown"\n busy: boolean\n is_cancelled: boolean\n is_draft: boolean\n sensitivity: "normal" | "personal" | "private" | "confidential"\n importance: "low" | "normal" | "high"\n is_online_meeting: boolean\n online_meeting_url?: string // uri\n web_link?: string // uri\n response_status: "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded"\n organizer_email?: string // email\n attendees?: Array<{\n email: string // email\n name?: string\n response: "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded"\n type: "required" | "optional" | "resource"\n }>\n metadata?: Record<string, unknown>\n is_recurring: boolean\n series_master_id?: string\n source: {\n type: "native" | "synced"\n provider?: "outlook" | "google" | null\n provider_event_id?: string\n provider_event_url?: string // uri\n last_synced_at?: string // date-time\n etag?: string\n }\n _created_at?: string // date-time\n _updated_at?: string // date-time\n}\n```\n\n### `EventType`\n\n```ts\ntype EventType = "singleInstance" | "occurrence" | "exception" | "seriesMaster"\n```\n\n### `EventStatus`\n\nFree/busy state derived from provider `showAs`\n\n```ts\ntype EventStatus = "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown"\n```\n\n### `Sensitivity`\n\n```ts\ntype Sensitivity = "normal" | "personal" | "private" | "confidential"\n```\n\n### `Importance`\n\n```ts\ntype Importance = "low" | "normal" | "high"\n```\n\n### `ResponseStatus`\n\nCaller\'s response to the invite\n\n```ts\ntype ResponseStatus = "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded"\n```\n\n### `Attendee`\n\n```ts\ntype Attendee = {\n email: string // email\n name?: string\n response: "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded"\n type: "required" | "optional" | "resource"\n}\n```\n\n### `EventSource`\n\n```ts\ntype EventSource = {\n type: "native" | "synced"\n provider?: "outlook" | "google" | null\n provider_event_id?: string\n provider_event_url?: string // uri\n last_synced_at?: string // date-time\n etag?: string\n}\n```\n\n### `CalendarEventCreateBody`\n\n```ts\ntype CalendarEventCreateBody = {\n calendar_id: string\n description?: string\n start_time: string // date-time\n end_time: string // date-time\n timezone: string\n is_all_day: boolean\n location?: string\n status: "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown"\n sensitivity: "normal" | "personal" | "private" | "confidential"\n metadata?: Record<string, unknown>\n _title: string\n}\n```\n\n### `CalendarEventPatchBody`\n\n```ts\ntype CalendarEventPatchBody = {\n description?: string\n start_time?: string // date-time\n end_time?: string // date-time\n timezone?: string\n is_all_day?: boolean\n location?: string\n status?: "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown"\n is_cancelled?: boolean\n sensitivity?: "normal" | "personal" | "private" | "confidential"\n _title?: string\n}\n```\n\n### `ShareEventBody`\n\n```ts\ntype ShareEventBody = {\n user_id: string\n}\n```\n';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.default = calendar_default;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./chunk-YPSWSI3M.js";
|
|
2
|
-
|
|
3
|
-
// src/docs/calendar.json
|
|
4
|
-
var calendar_default = '# Calendar API\n\n- **Base URL:** `https://calendar.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/calendar](https://docs.epilot.io/api/calendar)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.calendar.listUsersAbsence(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/calendar\'\n\nconst calendarClient = getClient()\nauthorize(calendarClient, () => \'<token>\')\nconst { data } = await calendarClient.listUsersAbsence(...)\n```\n\n## Operations\n\n**Absence**\n- [`listUsersAbsence`](#listusersabsence)\n- [`searchAbsence`](#searchabsence)\n- [`searchNowAbsence`](#searchnowabsence)\n- [`listAbsenceAdjustments`](#listabsenceadjustments)\n- [`createAbsenceAdjustment`](#createabsenceadjustment)\n- [`getAbsenceAdjustment`](#getabsenceadjustment)\n- [`patchAbsenceAdjustment`](#patchabsenceadjustment)\n- [`deleteAbsenceAdjustment`](#deleteabsenceadjustment)\n- [`getUserAbsence`](#getuserabsence)\n\n**Working Hours**\n- [`getWorkingHours`](#getworkinghours)\n- [`putWorkingHours`](#putworkinghours)\n- [`deleteWorkingHours`](#deleteworkinghours)\n\n**Calendars**\n- [`listCalendars`](#listcalendars)\n- [`createCalendar`](#createcalendar)\n- [`addOutlookCalendar`](#addoutlookcalendar)\n- [`listOutlookCalendars`](#listoutlookcalendars)\n- [`deleteOutlookCalendar`](#deleteoutlookcalendar)\n- [`outlookWebhook`](#outlookwebhook)\n- [`getCalendar`](#getcalendar)\n- [`updateCalendar`](#updatecalendar)\n- [`deleteCalendar`](#deletecalendar)\n\n**Calendar Events**\n- [`listEvents`](#listevents)\n- [`createEvent`](#createevent)\n- [`getEvent`](#getevent)\n- [`updateEvent`](#updateevent)\n- [`deleteEvent`](#deleteevent)\n- [`shareEvent`](#shareevent)\n- [`unshareEvent`](#unshareevent)\n\n**Schemas**\n- [`AbsenceInterval`](#absenceinterval)\n- [`AbsenceIntervalSource`](#absenceintervalsource)\n- [`Error`](#error)\n- [`SearchAbsenceBody`](#searchabsencebody)\n- [`SearchNowAbsenceBody`](#searchnowabsencebody)\n- [`AbsenceAdjustment`](#absenceadjustment)\n- [`AbsenceStatus`](#absencestatus)\n- [`AbsenceType`](#absencetype)\n- [`CreateAbsenceAdjustmentBody`](#createabsenceadjustmentbody)\n- [`PatchAbsenceAdjustmentBody`](#patchabsenceadjustmentbody)\n- [`ExternalCalendar`](#externalcalendar)\n- [`WorkingHours`](#workinghours)\n- [`UpsertWorkingHoursBody`](#upsertworkinghoursbody)\n- [`TimeWindow`](#timewindow)\n- [`Calendar`](#calendar)\n- [`CalendarSource`](#calendarsource)\n- [`Provider`](#provider)\n- [`CalendarCreateBody`](#calendarcreatebody)\n- [`AddOutlookCalendarRequest`](#addoutlookcalendarrequest)\n- [`AvailableOutlookCalendar`](#availableoutlookcalendar)\n- [`CalendarPatchBody`](#calendarpatchbody)\n- [`CalendarEvent`](#calendarevent)\n- [`EventType`](#eventtype)\n- [`EventStatus`](#eventstatus)\n- [`Sensitivity`](#sensitivity)\n- [`Importance`](#importance)\n- [`ResponseStatus`](#responsestatus)\n- [`Attendee`](#attendee)\n- [`EventSource`](#eventsource)\n- [`CalendarEventCreateBody`](#calendareventcreatebody)\n- [`CalendarEventPatchBody`](#calendareventpatchbody)\n- [`ShareEventBody`](#shareeventbody)\n\n### `listUsersAbsence`\n\nList organization users with known absence metadata in the requested time window.\n\n`GET /v1/calendar/absence/users`\n\n```ts\nconst { data } = await client.listUsersAbsence({\n from: \'example\',\n to: \'example\',\n include_busy: true,\n working_hours_granularity: \'example\',\n query: \'example\',\n limit: 1,\n offset: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "hits": 0,\n "results": [\n {\n "absent": true,\n "absence_intervals": [\n {\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "original_from": "1970-01-01T00:00:00.000Z",\n "original_to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "source": "calendar_event",\n "calendar_event_id": "string",\n "absence_adjustment_id": "string",\n "reason": "string"\n }\n ],\n "user_id": "string",\n "display_name": "string",\n "email": "user@example.com",\n "status": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `searchAbsence`\n\nSearch known absence for candidate users in the requested time window.\n\n`POST /v1/calendar/absence:search`\n\n```ts\nconst { data } = await client.searchAbsence(\n null,\n {\n from: \'1970-01-01T00:00:00.000Z\',\n to: \'1970-01-01T00:00:00.000Z\',\n user_ids: [\'string\'],\n include_busy: false,\n working_hours_granularity: \'time\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "users": {}\n}\n```\n\n</details>\n\n---\n\n### `searchNowAbsence`\n\nSearch known absence for candidate users at the current server time.\n\n`POST /v1/calendar/absence:search-now`\n\n```ts\nconst { data } = await client.searchNowAbsence(\n null,\n {\n user_ids: [\'string\'],\n include_busy: false,\n working_hours_granularity: \'time\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "users": {}\n}\n```\n\n</details>\n\n---\n\n### `listAbsenceAdjustments`\n\nList absence adjustments for a user in a time window.\n\n`GET /v1/calendar/absence/users/{user_id}/adjustments`\n\n```ts\nconst { data } = await client.listAbsenceAdjustments({\n user_id: \'example\',\n from: \'example\',\n to: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "results": [\n {\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "status": "oof",\n "type": "string",\n "reason": "string",\n "adjustment_id": "string",\n "user_id": "string",\n "created_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createAbsenceAdjustment`\n\nCreate a time-bound absence adjustment for a user in the caller organization.\n\n`POST /v1/calendar/absence/users/{user_id}/adjustments`\n\n```ts\nconst { data } = await client.createAbsenceAdjustment(\n {\n user_id: \'example\',\n },\n {\n from: \'1970-01-01T00:00:00.000Z\',\n to: \'1970-01-01T00:00:00.000Z\',\n absent: true,\n status: \'oof\',\n type: \'string\',\n reason: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "status": "oof",\n "type": "string",\n "reason": "string",\n "adjustment_id": "string",\n "user_id": "string",\n "created_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `getAbsenceAdjustment`\n\nGet an absence adjustment by ID.\n\n`GET /v1/calendar/absence/users/{user_id}/adjustments/{adjustment_id}`\n\n```ts\nconst { data } = await client.getAbsenceAdjustment({\n user_id: \'example\',\n adjustment_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "status": "oof",\n "type": "string",\n "reason": "string",\n "adjustment_id": "string",\n "user_id": "string",\n "created_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `patchAbsenceAdjustment`\n\nUpdate an absence adjustment in the caller organization.\n\n`PATCH /v1/calendar/absence/users/{user_id}/adjustments/{adjustment_id}`\n\n```ts\nconst { data } = await client.patchAbsenceAdjustment(\n {\n user_id: \'example\',\n adjustment_id: \'example\',\n },\n {\n from: \'1970-01-01T00:00:00.000Z\',\n to: \'1970-01-01T00:00:00.000Z\',\n absent: true,\n status: \'oof\',\n type: \'string\',\n reason: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "status": "oof",\n "type": "string",\n "reason": "string",\n "adjustment_id": "string",\n "user_id": "string",\n "created_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `deleteAbsenceAdjustment`\n\nDelete an absence adjustment.\n\n`DELETE /v1/calendar/absence/users/{user_id}/adjustments/{adjustment_id}`\n\n```ts\nconst { data } = await client.deleteAbsenceAdjustment({\n user_id: \'example\',\n adjustment_id: \'example\',\n})\n```\n\n---\n\n### `getUserAbsence`\n\nGet known absence for a user in a time window. absent=false means no known absence, not guaranteed availability.\n\n`GET /v1/calendar/absence/users/{user_id}`\n\n```ts\nconst { data } = await client.getUserAbsence({\n user_id: \'example\',\n from: \'example\',\n to: \'example\',\n include_busy: true,\n working_hours_granularity: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "absent": true,\n "absence_intervals": [\n {\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "original_from": "1970-01-01T00:00:00.000Z",\n "original_to": "1970-01-01T00:00:00.000Z",\n "absent": true,\n "source": "calendar_event",\n "calendar_event_id": "string",\n "absence_adjustment_id": "string",\n "reason": "string"\n }\n ],\n "from": "1970-01-01T00:00:00.000Z",\n "to": "1970-01-01T00:00:00.000Z",\n "user_id": "string",\n "external_calendars": [\n {\n "provider": "outlook",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getWorkingHours`\n\nGet the recurring weekly working hours of a user. 404 means no record exists and the user is treated as always available.\n\n`GET /v1/calendar/working-hours/users/{user_id}`\n\n```ts\nconst { data } = await client.getWorkingHours({\n user_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "monday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "tuesday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "wednesday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "thursday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "friday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "saturday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "sunday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "timezone": "string",\n "user_id": "string",\n "updated_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `putWorkingHours`\n\nCreate or fully replace the working hours of a user in the caller organization. This is a full replace, not a merge.\n\n`PUT /v1/calendar/working-hours/users/{user_id}`\n\n```ts\nconst { data } = await client.putWorkingHours(\n {\n user_id: \'example\',\n },\n {\n monday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n tuesday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n wednesday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n thursday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n friday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n saturday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n sunday: [\n {\n start: \'string\',\n end: \'string\'\n }\n ],\n timezone: \'Europe/Berlin\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "monday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "tuesday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "wednesday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "thursday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "friday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "saturday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "sunday": [\n {\n "start": "string",\n "end": "string"\n }\n ],\n "timezone": "string",\n "user_id": "string",\n "updated_by": "string",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `deleteWorkingHours`\n\nDelete the working hours of a user. The user is then treated as always available again.\n\n`DELETE /v1/calendar/working-hours/users/{user_id}`\n\n```ts\nconst { data } = await client.deleteWorkingHours({\n user_id: \'example\',\n})\n```\n\n---\n\n### `listCalendars`\n\nList calendars visible to the caller.\n\n`GET /v1/calendar`\n\n```ts\nconst { data } = await client.listCalendars({\n size: 1,\n cursor: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": "string"\n}\n```\n\n</details>\n\n---\n\n### `createCalendar`\n\nCreate a native epilot calendar.\n\n`POST /v1/calendar`\n\n```ts\nconst { data } = await client.createCalendar(\n null,\n {\n name: \'string\',\n description: \'string\',\n color: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `addOutlookCalendar`\n\nRegisters one of the caller\'s Outlook calendars as an epilot calendar.\n\n`POST /v1/calendar/sources/outlook`\n\n```ts\nconst { data } = await client.addOutlookCalendar(\n null,\n {\n provider_calendar_id: \'string\',\n name: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `listOutlookCalendars`\n\nLists the calling user\'s Outlook calendars available to import as epilot calendars.\n\n`GET /v1/calendar/sources/outlook/available`\n\n```ts\nconst { data } = await client.listOutlookCalendars()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "calendars": [\n {\n "provider_calendar_id": "string",\n "name": "string",\n "color": "string",\n "is_default": true,\n "can_edit": true,\n "owner": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `deleteOutlookCalendar`\n\nDisconnects a previously registered Outlook calendar.\n\n`DELETE /v1/calendar/sources/outlook/{calendar_id}`\n\n```ts\nconst { data } = await client.deleteOutlookCalendar({\n calendar_id: \'example\',\n})\n```\n\n---\n\n### `outlookWebhook`\n\nPublic Microsoft Graph webhook receiver for per-user Outlook calendar\nsubscriptions. Unauthenticated by design (API Gateway `Authorizer: NONE`):\nGraph calls it with no epilot token.\n\n`POST /v1/calendar/outlook/webhook`\n\n```ts\nconst { data } = await client.outlookWebhook({\n validationToken: \'example\',\n})\n```\n\n---\n\n### `getCalendar`\n\nGet a single calendar by its epilot ID.\n\n`GET /v1/calendar/{calendar_id}`\n\n```ts\nconst { data } = await client.getCalendar({\n calendar_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateCalendar`\n\nUpdate local calendar details. Changes to synced calendars do not modify the provider calendar.\n\n`PATCH /v1/calendar/{calendar_id}`\n\n```ts\nconst { data } = await client.updateCalendar(\n {\n calendar_id: \'example\',\n },\n {\n name: \'string\',\n description: \'string\',\n color: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar",\n "_org": "string",\n "_title": "string",\n "name": "string",\n "description": "string",\n "color": "string",\n "is_default": true,\n "read_only": true,\n "owner_email": "user@example.com",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_calendar_id": "string",\n "last_synced_at": "1970-01-01T00:00:00.000Z"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `deleteCalendar`\n\nDelete a native epilot calendar or disconnect a synced calendar, including its locally stored events.\n\n`DELETE /v1/calendar/{calendar_id}`\n\n```ts\nconst { data } = await client.deleteCalendar({\n calendar_id: \'example\',\n})\n```\n\n---\n\n### `listEvents`\n\nList events in a time window. Recurring events are returned as expanded occurrences \u2013 each instance appears as its own event.\n\n`GET /v1/calendar/events`\n\n```ts\nconst { data } = await client.listEvents({\n from: \'example\',\n to: \'example\',\n calendar_id: \'example\',\n size: 1,\n cursor: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_id": "string",\n "_schema": "calendar_event",\n "_org": "string",\n "_title": "string",\n "_tags": ["string"],\n "calendar_id": "string",\n "event_type": "singleInstance",\n "description": "string",\n "start_time": "1970-01-01T00:00:00.000Z",\n "end_time": "1970-01-01T00:00:00.000Z",\n "timezone": "string",\n "is_all_day": true,\n "location": "string",\n "status": "free",\n "busy": true,\n "is_cancelled": true,\n "is_draft": true,\n "sensitivity": "normal",\n "importance": "low",\n "is_online_meeting": true,\n "online_meeting_url": "https://example.com/path",\n "web_link": "https://example.com/path",\n "response_status": "none",\n "organizer_email": "user@example.com",\n "attendees": [\n {\n "email": "user@example.com",\n "name": "string",\n "response": "none",\n "type": "required"\n }\n ],\n "metadata": {},\n "is_recurring": true,\n "series_master_id": "string",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_event_id": "string",\n "provider_event_url": "https://example.com/path",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "etag": "string"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n }\n ],\n "next_cursor": "string"\n}\n```\n\n</details>\n\n---\n\n### `createEvent`\n\nCreate a native epilot calendar event.\n\n`POST /v1/calendar/events`\n\n```ts\nconst { data } = await client.createEvent(\n null,\n {\n calendar_id: \'string\',\n description: \'string\',\n start_time: \'1970-01-01T00:00:00.000Z\',\n end_time: \'1970-01-01T00:00:00.000Z\',\n timezone: \'string\',\n is_all_day: true,\n location: \'string\',\n status: \'free\',\n sensitivity: \'normal\',\n metadata: {},\n _title: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar_event",\n "_org": "string",\n "_title": "string",\n "_tags": ["string"],\n "calendar_id": "string",\n "event_type": "singleInstance",\n "description": "string",\n "start_time": "1970-01-01T00:00:00.000Z",\n "end_time": "1970-01-01T00:00:00.000Z",\n "timezone": "string",\n "is_all_day": true,\n "location": "string",\n "status": "free",\n "busy": true,\n "is_cancelled": true,\n "is_draft": true,\n "sensitivity": "normal",\n "importance": "low",\n "is_online_meeting": true,\n "online_meeting_url": "https://example.com/path",\n "web_link": "https://example.com/path",\n "response_status": "none",\n "organizer_email": "user@example.com",\n "attendees": [\n {\n "email": "user@example.com",\n "name": "string",\n "response": "none",\n "type": "required"\n }\n ],\n "metadata": {},\n "is_recurring": true,\n "series_master_id": "string",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_event_id": "string",\n "provider_event_url": "https://example.com/path",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "etag": "string"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `getEvent`\n\nGet a single event by its epilot ID.\n\n`GET /v1/calendar/events/{event_id}`\n\n```ts\nconst { data } = await client.getEvent({\n event_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar_event",\n "_org": "string",\n "_title": "string",\n "_tags": ["string"],\n "calendar_id": "string",\n "event_type": "singleInstance",\n "description": "string",\n "start_time": "1970-01-01T00:00:00.000Z",\n "end_time": "1970-01-01T00:00:00.000Z",\n "timezone": "string",\n "is_all_day": true,\n "location": "string",\n "status": "free",\n "busy": true,\n "is_cancelled": true,\n "is_draft": true,\n "sensitivity": "normal",\n "importance": "low",\n "is_online_meeting": true,\n "online_meeting_url": "https://example.com/path",\n "web_link": "https://example.com/path",\n "response_status": "none",\n "organizer_email": "user@example.com",\n "attendees": [\n {\n "email": "user@example.com",\n "name": "string",\n "response": "none",\n "type": "required"\n }\n ],\n "metadata": {},\n "is_recurring": true,\n "series_master_id": "string",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_event_id": "string",\n "provider_event_url": "https://example.com/path",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "etag": "string"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `updateEvent`\n\nUpdate a native epilot calendar event.\n\n`PATCH /v1/calendar/events/{event_id}`\n\n```ts\nconst { data } = await client.updateEvent(\n {\n event_id: \'example\',\n },\n {\n description: \'string\',\n start_time: \'1970-01-01T00:00:00.000Z\',\n end_time: \'1970-01-01T00:00:00.000Z\',\n timezone: \'string\',\n is_all_day: true,\n location: \'string\',\n status: \'free\',\n is_cancelled: true,\n sensitivity: \'normal\',\n _title: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "_id": "string",\n "_schema": "calendar_event",\n "_org": "string",\n "_title": "string",\n "_tags": ["string"],\n "calendar_id": "string",\n "event_type": "singleInstance",\n "description": "string",\n "start_time": "1970-01-01T00:00:00.000Z",\n "end_time": "1970-01-01T00:00:00.000Z",\n "timezone": "string",\n "is_all_day": true,\n "location": "string",\n "status": "free",\n "busy": true,\n "is_cancelled": true,\n "is_draft": true,\n "sensitivity": "normal",\n "importance": "low",\n "is_online_meeting": true,\n "online_meeting_url": "https://example.com/path",\n "web_link": "https://example.com/path",\n "response_status": "none",\n "organizer_email": "user@example.com",\n "attendees": [\n {\n "email": "user@example.com",\n "name": "string",\n "response": "none",\n "type": "required"\n }\n ],\n "metadata": {},\n "is_recurring": true,\n "series_master_id": "string",\n "source": {\n "type": "native",\n "provider": "outlook",\n "provider_event_id": "string",\n "provider_event_url": "https://example.com/path",\n "last_synced_at": "1970-01-01T00:00:00.000Z",\n "etag": "string"\n },\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n}\n```\n\n</details>\n\n---\n\n### `deleteEvent`\n\nDelete a native epilot calendar event.\n\n`DELETE /v1/calendar/events/{event_id}`\n\n```ts\nconst { data } = await client.deleteEvent({\n event_id: \'example\',\n})\n```\n\n---\n\n### `shareEvent`\n\nShare a calendar event with another user of the same organization, view-only. Owner-only: recipients of a share cannot re-share. Sharing an already-shared event is a no-op.\n\n`POST /v1/calendar/events/{event_id}/share`\n\n```ts\nconst { data } = await client.shareEvent(\n {\n event_id: \'example\',\n },\n {\n user_id: \'string\'\n },\n)\n```\n\n---\n\n### `unshareEvent`\n\nRevoke a per-event share. The recipient loses access immediately. Owner-only.\n\n`DELETE /v1/calendar/events/{event_id}/share/{user_id}`\n\n```ts\nconst { data } = await client.unshareEvent({\n event_id: \'example\',\n user_id: \'example\',\n})\n```\n\n---\n\n## Schemas\n\n### `AbsenceInterval`\n\n```ts\ntype AbsenceInterval = {\n from: string // date-time\n to: string // date-time\n original_from: string // date-time\n original_to: string // date-time\n absent: boolean\n source: "calendar_event" | "absence_adjustment" | "working_hours"\n calendar_event_id?: string\n absence_adjustment_id?: string\n reason?: string\n}\n```\n\n### `AbsenceIntervalSource`\n\n```ts\ntype AbsenceIntervalSource = "calendar_event" | "absence_adjustment" | "working_hours"\n```\n\n### `Error`\n\n```ts\ntype Error = {\n status: number\n error: string | unknown[]\n}\n```\n\n### `SearchAbsenceBody`\n\n```ts\ntype SearchAbsenceBody = {\n from: string // date-time\n to: string // date-time\n user_ids: string[]\n include_busy?: boolean\n working_hours_granularity?: "time" | "day"\n}\n```\n\n### `SearchNowAbsenceBody`\n\n```ts\ntype SearchNowAbsenceBody = {\n user_ids: string[]\n include_busy?: boolean\n working_hours_granularity?: "time" | "day"\n}\n```\n\n### `AbsenceAdjustment`\n\n```ts\ntype AbsenceAdjustment = {\n from: string // date-time\n to: string // date-time\n absent: boolean\n status: "oof" | "busy"\n type?: string\n reason?: string\n adjustment_id: string\n user_id: string\n created_by: string\n created_at: string // date-time\n updated_at: string // date-time\n}\n```\n\n### `AbsenceStatus`\n\nCalendar status targeted by the absence adjustment.\n\n```ts\ntype AbsenceStatus = "oof" | "busy"\n```\n\n### `AbsenceType`\n\nOptional producer-defined reference stored with an absence adjustment.\n\n```ts\ntype AbsenceType = string\n```\n\n### `CreateAbsenceAdjustmentBody`\n\n```ts\ntype CreateAbsenceAdjustmentBody = {\n from: string // date-time\n to: string // date-time\n absent: boolean\n status: "oof" | "busy"\n type?: string\n reason?: string\n}\n```\n\n### `PatchAbsenceAdjustmentBody`\n\n```ts\ntype PatchAbsenceAdjustmentBody = {\n from?: string // date-time\n to?: string // date-time\n absent?: boolean\n status?: "oof" | "busy"\n type?: string\n reason?: string\n}\n```\n\n### `ExternalCalendar`\n\n```ts\ntype ExternalCalendar = {\n provider: "outlook" | "google"\n last_synced_at: string // date-time\n}\n```\n\n### `WorkingHours`\n\nRecurring weekly working hours of a user. The absence of a record means the user is treated as always available.\n\n```ts\ntype WorkingHours = {\n monday: Array<{\n start: string\n end: string\n }>\n tuesday: Array<{\n start: string\n end: string\n }>\n wednesday: Array<{\n start: string\n end: string\n }>\n thursday: Array<{\n start: string\n end: string\n }>\n friday: Array<{\n start: string\n end: string\n }>\n saturday: Array<{\n start: string\n end: string\n }>\n sunday: Array<{\n start: string\n end: string\n }>\n timezone: string\n user_id: string\n updated_by: string\n created_at: string // date-time\n updated_at: string // date-time\n}\n```\n\n### `UpsertWorkingHoursBody`\n\nFull replacement of the working-hours record. All weekdays are required; an empty array means a day off. Users without a working-hours record are treated as always available.\n\n```ts\ntype UpsertWorkingHoursBody = {\n monday: Array<{\n start: string\n end: string\n }>\n tuesday: Array<{\n start: string\n end: string\n }>\n wednesday: Array<{\n start: string\n end: string\n }>\n thursday: Array<{\n start: string\n end: string\n }>\n friday: Array<{\n start: string\n end: string\n }>\n saturday: Array<{\n start: string\n end: string\n }>\n sunday: Array<{\n start: string\n end: string\n }>\n timezone?: string\n}\n```\n\n### `TimeWindow`\n\nA wall-clock working window within a single day.\n\n```ts\ntype TimeWindow = {\n start: string\n end: string\n}\n```\n\n### `Calendar`\n\n```ts\ntype Calendar = {\n _id: string\n _schema: "calendar"\n _org: string\n _title?: string\n name: string\n description?: string\n color?: string\n is_default: boolean\n read_only: boolean\n owner_email?: string // email\n source: {\n type: "native" | "synced"\n provider?: "outlook" | "google" | null\n provider_calendar_id?: string\n last_synced_at?: string // date-time\n }\n _created_at?: string // date-time\n _updated_at?: string // date-time\n}\n```\n\n### `CalendarSource`\n\n```ts\ntype CalendarSource = {\n type: "native" | "synced"\n provider?: "outlook" | "google" | null\n provider_calendar_id?: string\n last_synced_at?: string // date-time\n}\n```\n\n### `Provider`\n\nNull for native epilot calendars\n\n```ts\ntype Provider = "outlook" | "google" | null\n```\n\n### `CalendarCreateBody`\n\n```ts\ntype CalendarCreateBody = {\n name: string\n description?: string\n color?: string\n}\n```\n\n### `AddOutlookCalendarRequest`\n\n```ts\ntype AddOutlookCalendarRequest = {\n provider_calendar_id: string\n name?: string\n}\n```\n\n### `AvailableOutlookCalendar`\n\n```ts\ntype AvailableOutlookCalendar = {\n provider_calendar_id: string\n name: string\n color?: string\n is_default?: boolean\n can_edit?: boolean\n owner?: string\n}\n```\n\n### `CalendarPatchBody`\n\n```ts\ntype CalendarPatchBody = {\n name?: string\n description?: string\n color?: string\n}\n```\n\n### `CalendarEvent`\n\n```ts\ntype CalendarEvent = {\n _id: string\n _schema: "calendar_event"\n _org: string\n _title?: string\n _tags?: string[]\n calendar_id: string\n event_type: "singleInstance" | "occurrence" | "exception" | "seriesMaster"\n description?: string\n start_time: string // date-time\n end_time: string // date-time\n timezone: string\n is_all_day: boolean\n location?: string\n status: "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown"\n busy: boolean\n is_cancelled: boolean\n is_draft: boolean\n sensitivity: "normal" | "personal" | "private" | "confidential"\n importance: "low" | "normal" | "high"\n is_online_meeting: boolean\n online_meeting_url?: string // uri\n web_link?: string // uri\n response_status: "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded"\n organizer_email?: string // email\n attendees?: Array<{\n email: string // email\n name?: string\n response: "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded"\n type: "required" | "optional" | "resource"\n }>\n metadata?: Record<string, unknown>\n is_recurring: boolean\n series_master_id?: string\n source: {\n type: "native" | "synced"\n provider?: "outlook" | "google" | null\n provider_event_id?: string\n provider_event_url?: string // uri\n last_synced_at?: string // date-time\n etag?: string\n }\n _created_at?: string // date-time\n _updated_at?: string // date-time\n}\n```\n\n### `EventType`\n\n```ts\ntype EventType = "singleInstance" | "occurrence" | "exception" | "seriesMaster"\n```\n\n### `EventStatus`\n\nFree/busy state derived from provider `showAs`\n\n```ts\ntype EventStatus = "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown"\n```\n\n### `Sensitivity`\n\n```ts\ntype Sensitivity = "normal" | "personal" | "private" | "confidential"\n```\n\n### `Importance`\n\n```ts\ntype Importance = "low" | "normal" | "high"\n```\n\n### `ResponseStatus`\n\nCaller\'s response to the invite\n\n```ts\ntype ResponseStatus = "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded"\n```\n\n### `Attendee`\n\n```ts\ntype Attendee = {\n email: string // email\n name?: string\n response: "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded"\n type: "required" | "optional" | "resource"\n}\n```\n\n### `EventSource`\n\n```ts\ntype EventSource = {\n type: "native" | "synced"\n provider?: "outlook" | "google" | null\n provider_event_id?: string\n provider_event_url?: string // uri\n last_synced_at?: string // date-time\n etag?: string\n}\n```\n\n### `CalendarEventCreateBody`\n\n```ts\ntype CalendarEventCreateBody = {\n calendar_id: string\n description?: string\n start_time: string // date-time\n end_time: string // date-time\n timezone: string\n is_all_day: boolean\n location?: string\n status: "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown"\n sensitivity: "normal" | "personal" | "private" | "confidential"\n metadata?: Record<string, unknown>\n _title: string\n}\n```\n\n### `CalendarEventPatchBody`\n\n```ts\ntype CalendarEventPatchBody = {\n description?: string\n start_time?: string // date-time\n end_time?: string // date-time\n timezone?: string\n is_all_day?: boolean\n location?: string\n status?: "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown"\n is_cancelled?: boolean\n sensitivity?: "normal" | "personal" | "private" | "confidential"\n _title?: string\n}\n```\n\n### `ShareEventBody`\n\n```ts\ntype ShareEventBody = {\n user_id: string\n}\n```\n';
|
|
5
|
-
export {
|
|
6
|
-
calendar_default as default
|
|
7
|
-
};
|