@remit/api-openapi-types 0.0.40 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/types.d.ts +994 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remit/api-openapi-types",
3
- "version": "0.0.40",
3
+ "version": "0.0.42",
4
4
  "type": "module",
5
5
  "main": "types.d.ts",
6
6
  "types": "types.d.ts",
package/types.d.ts CHANGED
@@ -137,6 +137,34 @@ current enum emitter anyway, so the wire contract uses the bare form.
137
137
  * Lifecycle state of a smart-organize back-apply job (RFC 034, #1278). Mirrors the account-export job's lifecycle: a Pending row the worker picks up, drives to Running, then to a terminal Complete or Failed.
138
138
  */
139
139
  export type OrganizeJobState = "Pending" | "Running" | "Complete" | "Failed";
140
+ /**
141
+ * Display color for a calendar collection. Positional rather than named: the palette is a client-side concern, so the store carries the slot and the client owns what it renders (issue #15).
142
+ */
143
+ export type CalendarColor = "Cal1" | "Cal2" | "Cal3" | "Cal4" | "Cal5" | "Cal6";
144
+ /**
145
+ * Which iCalendar components a collection accepts (RFC 4791 supported-calendar-component-set). Only VEVENT is stored today; VTODO and VJOURNAL collections would be separate members, so the value is a property of the collection rather than of each object.
146
+ */
147
+ export type CalendarComponentSet = "VeventOnly";
148
+ /**
149
+ * Where a calendar collection came from. `Default` is the one provisioned per account config on first use and is never deleted; `UserCreated` is one a person made; `MailDerived` is one populated from mail rather than by a person.
150
+ */
151
+ export type CalendarSource = "Default" | "UserCreated" | "MailDerived";
152
+ /**
153
+ * Projection of a VEVENT's STATUS property (RFC 5545 3.8.1.11). A VEVENT with no STATUS projects as `Confirmed`, which is the value RFC 5545 gives an event whose status is unstated.
154
+ */
155
+ export type CalendarEventStatus = "Confirmed" | "Tentative" | "Cancelled";
156
+ /**
157
+ * Projection of a VEVENT's TRANSP property (RFC 5545 3.8.2.7) — whether the event consumes free/busy time. A VEVENT with no TRANSP projects as `Opaque`, the RFC default.
158
+ */
159
+ export type CalendarTransparency = "Opaque" | "Transparent";
160
+ /**
161
+ * How confidently a stored time was placed on the clock. A calendar that cannot say this hides its worst failure: an event read in the wrong zone is off by hours and looks exactly like an event read correctly.
162
+ */
163
+ export type ZoneCertainty = "Local" | "Explicit" | "Ambiguous";
164
+ /**
165
+ * Which occurrences of a recurring event a write applies to (issue #15). A request parameter, never a stored column: the resource records what the series is, and this records what the caller meant by editing one drawing of it.
166
+ */
167
+ export type RecurrenceScope = "This" | "Following" | "All";
140
168
  /**
141
169
  * Sort order for list operations
142
170
  */
@@ -391,6 +419,24 @@ a compile-time error rather than a value that silently sorts incorrectly.
391
419
  */
392
420
  details?: Record;
393
421
  }
422
+ /**
423
+ * Not found error response
424
+ */
425
+ export interface NotFoundError {
426
+ statusCode: 404;
427
+ error: ApiError;
428
+ }
429
+ /**
430
+ * The condition the request stated is no longer true. Answered when an
431
+ `If-Match` names an etag the stored resource no longer carries: somebody else
432
+ wrote it in between, so applying this request would silently discard their
433
+ change. The client re-reads the resource and decides what to do with the
434
+ version it now has.
435
+ */
436
+ export interface PreconditionFailedError {
437
+ statusCode: 412;
438
+ error: ApiError;
439
+ }
394
440
  /**
395
441
  * The same flat 409 body, with the two codes this endpoint can answer with.
396
442
 
@@ -439,13 +485,6 @@ a compile-time error rather than a value that silently sorts incorrectly.
439
485
  passthroughBehavior: "when_no_match";
440
486
  uri: any;
441
487
  }
442
- /**
443
- * Not found error response
444
- */
445
- export interface NotFoundError {
446
- statusCode: 404;
447
- error: ApiError;
448
- }
449
488
  /**
450
489
  * Internal server error response
451
490
  */
@@ -2225,6 +2264,503 @@ standing to persist.
2225
2264
  */
2226
2265
  updatedAt: number;
2227
2266
  }
2267
+ /**
2268
+ * Every calendar collection of the caller's account config, url segment first. Unpaginated: an account holds a handful of calendars, and a page boundary in a sidebar is a bug waiting to happen.
2269
+ */
2270
+ export interface CalendarListResponse {
2271
+ items: CalendarResponse[];
2272
+ }
2273
+ /**
2274
+ * A calendar collection scoped to an account config (issue #15) — the CalDAV
2275
+ collection a client mounts, and the parent of every CalendarObject.
2276
+
2277
+ `calendarId` is derived from `(accountConfigId, urlSegment)`, so the DAV path
2278
+ a client bookmarks resolves to a row without a lookup table, and provisioning
2279
+ the same collection twice writes the same row instead of a second one.
2280
+ `displayName` is the mutable human overlay and is never the key.
2281
+
2282
+ `syncSequence` is the collection's monotonic change counter: every write
2283
+ through the calendar service's put path bumps it and stamps the new value on
2284
+ the object it wrote, which is what a later WebDAV-Sync `sync-token` reports
2285
+ and what `CalendarObject.bySyncSequence` pages by.
2286
+ */
2287
+ export interface CalendarCollection {
2288
+ /**
2289
+ * Primary identifier, derived from accountConfigId + urlSegment
2290
+ */
2291
+ calendarId: UUID;
2292
+ /**
2293
+ * Owning account configuration
2294
+ */
2295
+ accountConfigId: UUID;
2296
+ /**
2297
+ * Path segment this collection is addressed by, unique within the account config. Stored case-folded, the same folding `calendarId` is derived from — a DAV path is matched case-insensitively, and storing the writer's casing would let a lookup by segment and a lookup by derived id disagree about one path. The default collection provisioned on first use holds "default".
2298
+ */
2299
+ urlSegment: String64;
2300
+ /**
2301
+ * Human-readable collection name (display)
2302
+ */
2303
+ displayName: String140;
2304
+ /**
2305
+ * Display color slot for this collection
2306
+ */
2307
+ color: CalendarColor;
2308
+ /**
2309
+ * Which iCalendar components this collection accepts
2310
+ */
2311
+ componentSet: CalendarComponentSet;
2312
+ /**
2313
+ * Where this collection came from
2314
+ */
2315
+ source: CalendarSource;
2316
+ /**
2317
+ * IANA time zone this collection's floating times are read in, e.g. "Europe/Amsterdam". `""` when none is set, which reads as UTC.
2318
+ */
2319
+ timezone: String64;
2320
+ /**
2321
+ * Monotonic change counter for this collection. Bumped by every write to one of its objects; the value stamped on `CalendarObject.syncSequence` is the value this counter held after that write.
2322
+ */
2323
+ syncSequence: number;
2324
+ createdAt: number;
2325
+ updatedAt: number;
2326
+ }
2327
+ /**
2328
+ * A calendar collection as the API returns it.
2329
+ */
2330
+ export interface CalendarResponse {
2331
+ /**
2332
+ * Primary identifier, derived from accountConfigId + urlSegment
2333
+ */
2334
+ calendarId: UUID;
2335
+ /**
2336
+ * Owning account configuration
2337
+ */
2338
+ accountConfigId: UUID;
2339
+ /**
2340
+ * Path segment this collection is addressed by, unique within the account config. Stored case-folded, the same folding `calendarId` is derived from — a DAV path is matched case-insensitively, and storing the writer's casing would let a lookup by segment and a lookup by derived id disagree about one path. The default collection provisioned on first use holds "default".
2341
+ */
2342
+ urlSegment: String64;
2343
+ /**
2344
+ * Human-readable collection name (display)
2345
+ */
2346
+ displayName: String140;
2347
+ /**
2348
+ * Display color slot for this collection
2349
+ */
2350
+ color: CalendarColor;
2351
+ /**
2352
+ * Which iCalendar components this collection accepts
2353
+ */
2354
+ componentSet: CalendarComponentSet;
2355
+ /**
2356
+ * Where this collection came from
2357
+ */
2358
+ source: CalendarSource;
2359
+ /**
2360
+ * IANA time zone this collection's floating times are read in, e.g. "Europe/Amsterdam". `""` when none is set, which reads as UTC.
2361
+ */
2362
+ timezone: String64;
2363
+ /**
2364
+ * Monotonic change counter for this collection. Bumped by every write to one of its objects; the value stamped on `CalendarObject.syncSequence` is the value this counter held after that write.
2365
+ */
2366
+ syncSequence: number;
2367
+ createdAt: number;
2368
+ updatedAt: number;
2369
+ }
2370
+ /**
2371
+ * Input for creating a calendar collection (issue #15).
2372
+
2373
+ `urlSegment` is supplied rather than derived from the display name: it is the
2374
+ collection's identity — `calendarId` is a hash of it — and the path a CalDAV
2375
+ client will later bookmark. Slugging a name would make two calendars called
2376
+ "Work" one row, and a rename would either move a bookmarked path or leave a
2377
+ segment that no longer matches anything a person recognises. The name is the
2378
+ mutable overlay; this is the address.
2379
+ */
2380
+ export interface CreateCalendarInput {
2381
+ /**
2382
+ * Human-readable collection name (display)
2383
+ */
2384
+ displayName: String140;
2385
+ /**
2386
+ * Path segment addressing this collection, unique within the account config. Case-folded on write, so "Work" and "work" name the same collection and the second create is refused rather than silently merged into the first.
2387
+ */
2388
+ urlSegment: String64;
2389
+ /**
2390
+ * Display colour slot. Absent takes the collection's own default.
2391
+ */
2392
+ color?: CalendarColor;
2393
+ /**
2394
+ * IANA time zone this collection's floating times are read in. Absent reads them as UTC.
2395
+ */
2396
+ timezone?: String64;
2397
+ }
2398
+ /**
2399
+ * Input for updating a calendar collection. The name, colour and timezone are the mutable overlay; `urlSegment` is not among them, because it is the collection's identity and the path a client has bookmarked.
2400
+ */
2401
+ export interface UpdateCalendarInput {
2402
+ /**
2403
+ * Human-readable collection name (display)
2404
+ */
2405
+ displayName: String140;
2406
+ /**
2407
+ * Display color slot for this collection
2408
+ */
2409
+ color: CalendarColor;
2410
+ /**
2411
+ * IANA time zone this collection's floating times are read in, e.g. "Europe/Amsterdam". `""` when none is set, which reads as UTC.
2412
+ */
2413
+ timezone: String64;
2414
+ }
2415
+ /**
2416
+ * Nothing to return. The resource, or the occurrence, is gone.
2417
+ */
2418
+ export interface CalendarNoContent {
2419
+ statusCode: 204;
2420
+ }
2421
+ /**
2422
+ * Expanded occurrences in the requested window, in start order.
2423
+
2424
+ Includes an occurrence that began before `from` and runs into the window, up
2425
+ to a bounded lookback — a meeting that started last night is part of this
2426
+ morning. Unpaginated: the window is the bound.
2427
+ */
2428
+ export interface CalendarEventListResponse {
2429
+ items: CalendarEventInstance[];
2430
+ }
2431
+ /**
2432
+ * One occurrence of an event, in the window the caller asked for (issue #15).
2433
+
2434
+ Instances are expanded by the server. A client never reads an RRULE and never
2435
+ reconstructs a series: it renders what this returns, and addresses one
2436
+ occurrence by `calendarObjectId` plus `recurrenceId`.
2437
+ */
2438
+ export interface CalendarEventInstance {
2439
+ /**
2440
+ * Collection this occurrence belongs to
2441
+ */
2442
+ calendarId: UUID;
2443
+ /**
2444
+ * Resource this occurrence was expanded from
2445
+ */
2446
+ calendarObjectId: UUID;
2447
+ /**
2448
+ * RECURRENCE-ID of this occurrence as an ISO 8601 UTC instant, or `""` for a resource that does not recur. This is the value a scoped write passes back to name the occurrence it means.
2449
+ */
2450
+ recurrenceId: String64;
2451
+ /**
2452
+ * The event's iCalendar UID, shared by every occurrence of the series
2453
+ */
2454
+ icalUid: String512;
2455
+ /**
2456
+ * Projection of the VEVENT's SUMMARY. `""` when the event carries none.
2457
+ */
2458
+ summary: String512;
2459
+ /**
2460
+ * When this occurrence starts, as an ISO 8601 date-time with zone offset, read in the collection's timezone. A business date, not an epoch instant: an all-day occurrence carries midnight of its civil date.
2461
+ */
2462
+ start: String64;
2463
+ /**
2464
+ * When this occurrence ends, as an ISO 8601 date-time with zone offset. Exclusive for an all-day occurrence, per RFC 5545 3.6.1.
2465
+ */
2466
+ end: String64;
2467
+ /**
2468
+ * Whether this occurrence is all-day
2469
+ */
2470
+ allDay: boolean;
2471
+ /**
2472
+ * Projection of the occurrence's STATUS
2473
+ */
2474
+ status: CalendarEventStatus;
2475
+ /**
2476
+ * Projection of the occurrence's TRANSP — whether it consumes free/busy time
2477
+ */
2478
+ transparency: CalendarTransparency;
2479
+ /**
2480
+ * How the resource's start was placed on the clock. `Ambiguous` means the resource named a zone nothing could resolve, so this occurrence may be hours out; a client says so rather than presenting the guess as a fact.
2481
+ */
2482
+ zoneCertainty: ZoneCertainty;
2483
+ /**
2484
+ * Entity tag of the resource this occurrence came from. Pass it as `If-Match` on a scoped write to refuse an edit built on a version somebody has since replaced.
2485
+ */
2486
+ etag: String64;
2487
+ /**
2488
+ * Whether the resource this occurrence came from expands to more than one instance. A client showing the recurrence-scope prompt gates on this.
2489
+ */
2490
+ hasRecurrence: boolean;
2491
+ }
2492
+ /**
2493
+ * Input for creating an event (issue #15). The server builds the VEVENT and
2494
+ writes it through the single calendar write path, so an event created here,
2495
+ one accepted from an invitation, and one PUT over CalDAV are the same bytes
2496
+ written the same way.
2497
+
2498
+ Times are ISO 8601 with zone offset — or a bare `YYYY-MM-DD` date when
2499
+ `allDay` is set. The offset pins the instant; `timeZone` names the zone the
2500
+ event is anchored in, which is what a recurring event needs to survive a DST
2501
+ transition. An offset alone cannot: a weekly 09:00 meeting written as
2502
+ `+02:00` becomes an 08:00 meeting in November.
2503
+ */
2504
+ export interface CreateCalendarEventInput {
2505
+ /**
2506
+ * Collection to write the event into
2507
+ */
2508
+ calendarId: UUID;
2509
+ /**
2510
+ * SUMMARY of the event
2511
+ */
2512
+ summary: String512;
2513
+ /**
2514
+ * DESCRIPTION of the event. Absent writes none.
2515
+ */
2516
+ description?: String2048;
2517
+ /**
2518
+ * LOCATION of the event. Absent writes none.
2519
+ */
2520
+ location?: String512;
2521
+ /**
2522
+ * When the event starts: an ISO 8601 date-time with zone offset, or a `YYYY-MM-DD` date when `allDay` is set.
2523
+ */
2524
+ start: String64;
2525
+ /**
2526
+ * When the event ends, in the same form as `start`. Exclusive for an all-day event, per RFC 5545 3.6.1.
2527
+ */
2528
+ end: String64;
2529
+ /**
2530
+ * Whether this is an all-day event, whose times are civil dates rather than instants
2531
+ */
2532
+ allDay?: boolean;
2533
+ /**
2534
+ * IANA time zone the event is anchored in, e.g. "Europe/Amsterdam", written as the DTSTART TZID. Absent anchors the event in UTC. Refused with 400 when the zone is one this server cannot resolve — a calendar that accepted an unknown zone would draw the event hours away from where it belongs.
2535
+ */
2536
+ timeZone?: String64;
2537
+ /**
2538
+ * STATUS of the event
2539
+ */
2540
+ status?: CalendarEventStatus;
2541
+ /**
2542
+ * TRANSP of the event — whether it consumes free/busy time
2543
+ */
2544
+ transparency?: CalendarTransparency;
2545
+ /**
2546
+ * RRULE value for a recurring event, e.g. "FREQ=WEEKLY;BYDAY=MO" (RFC 5545 3.8.5.3), without the property name. `""` creates a single event. Refused with 400 when it is not a rule this server can read.
2547
+ */
2548
+ recurrenceRule?: String512;
2549
+ }
2550
+ /**
2551
+ * One calendar resource — the bytes behind one `.ics` URL (issue #15).
2552
+
2553
+ `icalData` is the canonical value. Every other column on this row is a
2554
+ projection of it, computed on write and never written independently: a reader
2555
+ that needs a fact the projection does not carry re-parses `icalData` rather
2556
+ than adding a column that could disagree with it.
2557
+
2558
+ The write path parses the bytes to validate and project them and then stores
2559
+ the bytes it was handed, never a reserialization of them. That is what keeps
2560
+ `etag` honest: the tag is a digest of exactly what the writer sent, so it
2561
+ moves only when a writer sends something different. It is not a digest that
2562
+ survives a round trip through the parser — ical.js refolds long lines and
2563
+ reorders properties, so a resource stored as its own reserialization would
2564
+ change tag without anyone editing it, and every client's cache would miss.
2565
+
2566
+ `calendarObjectId` is derived from `(calendarId, resourceName)`: the resource
2567
+ name is the last path segment of the resource's URL, so the URL a client holds
2568
+ resolves to a row directly, and a repeated PUT of the same resource rewrites
2569
+ its own row.
2570
+ */
2571
+ export interface CalendarObject {
2572
+ /**
2573
+ * Primary identifier, derived from calendarId + resourceName
2574
+ */
2575
+ calendarObjectId: UUID;
2576
+ /**
2577
+ * Collection this resource belongs to
2578
+ */
2579
+ calendarId: UUID;
2580
+ /**
2581
+ * Last path segment of the resource's URL, e.g. "a1b2c3.ics". Unique within the collection and chosen by whoever wrote the resource, never derived from its contents — a client is free to rename a resource without changing the event it holds.
2582
+ */
2583
+ resourceName: String256;
2584
+ /**
2585
+ * The VEVENT's UID property (RFC 5545 3.8.4.7). Identifies the event across collections and servers, which `resourceName` does not.
2586
+ */
2587
+ icalUid: String512;
2588
+ /**
2589
+ * The complete VCALENDAR text, byte-for-byte as stored — CANONICAL. Line endings are CRLF and are never normalized; unknown properties and components are preserved verbatim.
2590
+ */
2591
+ icalData: string;
2592
+ /**
2593
+ * Strong entity tag over the stored `icalData` bytes, used for If-Match on a conditional write and for change detection on read.
2594
+ */
2595
+ etag: String64;
2596
+ /**
2597
+ * The VEVENT's SEQUENCE property (RFC 5545 3.8.7.4) — the organizer's own revision counter, carried for scheduling comparisons. `0` when the event declares none, which is the RFC default.
2598
+ */
2599
+ sequence: number;
2600
+ /**
2601
+ * Value the owning collection's `syncSequence` held after the write that produced this row. Pages the `bySyncSequence` read.
2602
+ */
2603
+ syncSequence: number;
2604
+ /**
2605
+ * Projection of the VEVENT's SUMMARY (RFC 5545 3.8.1.12). `""` when the event carries none.
2606
+ */
2607
+ summary: String512;
2608
+ /**
2609
+ * Projection of the master VEVENT's DTSTART as an ISO 8601 date-time with zone offset — a business date, not an epoch instant. An all-day event carries midnight in the event's own zone.
2610
+ */
2611
+ dtStart: String64;
2612
+ /**
2613
+ * Projection of the master VEVENT's effective end as an ISO 8601 date-time with zone offset, resolved from DTEND or from DTSTART + DURATION. An event with neither ends when it starts (RFC 5545 3.6.1).
2614
+ */
2615
+ dtEnd: String64;
2616
+ /**
2617
+ * Whether the master VEVENT's DTSTART is a DATE rather than a DATE-TIME (RFC 5545 3.3.4) — an all-day or multi-day event, whose end is exclusive.
2618
+ */
2619
+ allDay: boolean;
2620
+ /**
2621
+ * How the master VEVENT's DTSTART was placed on the clock. `Ambiguous` means the resource named a zone nothing could resolve, so `dtStart` and every occurrence expanded from it may be off by hours — a client shows the event and says so rather than presenting a guess as a fact.
2622
+ */
2623
+ zoneCertainty: ZoneCertainty;
2624
+ /**
2625
+ * Projection of the master VEVENT's STATUS
2626
+ */
2627
+ status: CalendarEventStatus;
2628
+ /**
2629
+ * Projection of the master VEVENT's TRANSP
2630
+ */
2631
+ transparency: CalendarTransparency;
2632
+ /**
2633
+ * Whether the resource expands to more than its master instance — an RRULE, an RDATE, or an override VEVENT. Overrides count on their own: a client that edits one instance and then drops the rule leaves a resource with a master and its exceptions, and each of those is still an occurrence.
2634
+ */
2635
+ hasRecurrence: boolean;
2636
+ /**
2637
+ * ISO 8601 UTC instant through which `CalendarEventIndex` rows exist for this resource, when the series runs past the expansion horizon and the index is therefore incomplete. `""` when the index is exhaustive — a single event, or a series that ends inside the horizon. A later live-expansion pass reads this to find the resources whose instances it must compute rather than query.
2638
+ */
2639
+ expandedThrough: String64;
2640
+ createdAt: number;
2641
+ updatedAt: number;
2642
+ }
2643
+ /**
2644
+ * A stored calendar resource — the bytes behind one event, plus the columns projected from them. `icalData` is canonical; every other field is derived from it on write.
2645
+ */
2646
+ export interface CalendarEventResponse {
2647
+ /**
2648
+ * Primary identifier, derived from calendarId + resourceName
2649
+ */
2650
+ calendarObjectId: UUID;
2651
+ /**
2652
+ * Collection this resource belongs to
2653
+ */
2654
+ calendarId: UUID;
2655
+ /**
2656
+ * Last path segment of the resource's URL, e.g. "a1b2c3.ics". Unique within the collection and chosen by whoever wrote the resource, never derived from its contents — a client is free to rename a resource without changing the event it holds.
2657
+ */
2658
+ resourceName: String256;
2659
+ /**
2660
+ * The VEVENT's UID property (RFC 5545 3.8.4.7). Identifies the event across collections and servers, which `resourceName` does not.
2661
+ */
2662
+ icalUid: String512;
2663
+ /**
2664
+ * The complete VCALENDAR text, byte-for-byte as stored — CANONICAL. Line endings are CRLF and are never normalized; unknown properties and components are preserved verbatim.
2665
+ */
2666
+ icalData: string;
2667
+ /**
2668
+ * Strong entity tag over the stored `icalData` bytes, used for If-Match on a conditional write and for change detection on read.
2669
+ */
2670
+ etag: String64;
2671
+ /**
2672
+ * The VEVENT's SEQUENCE property (RFC 5545 3.8.7.4) — the organizer's own revision counter, carried for scheduling comparisons. `0` when the event declares none, which is the RFC default.
2673
+ */
2674
+ sequence: number;
2675
+ /**
2676
+ * Value the owning collection's `syncSequence` held after the write that produced this row. Pages the `bySyncSequence` read.
2677
+ */
2678
+ syncSequence: number;
2679
+ /**
2680
+ * Projection of the VEVENT's SUMMARY (RFC 5545 3.8.1.12). `""` when the event carries none.
2681
+ */
2682
+ summary: String512;
2683
+ /**
2684
+ * Projection of the master VEVENT's DTSTART as an ISO 8601 date-time with zone offset — a business date, not an epoch instant. An all-day event carries midnight in the event's own zone.
2685
+ */
2686
+ dtStart: String64;
2687
+ /**
2688
+ * Projection of the master VEVENT's effective end as an ISO 8601 date-time with zone offset, resolved from DTEND or from DTSTART + DURATION. An event with neither ends when it starts (RFC 5545 3.6.1).
2689
+ */
2690
+ dtEnd: String64;
2691
+ /**
2692
+ * Whether the master VEVENT's DTSTART is a DATE rather than a DATE-TIME (RFC 5545 3.3.4) — an all-day or multi-day event, whose end is exclusive.
2693
+ */
2694
+ allDay: boolean;
2695
+ /**
2696
+ * How the master VEVENT's DTSTART was placed on the clock. `Ambiguous` means the resource named a zone nothing could resolve, so `dtStart` and every occurrence expanded from it may be off by hours — a client shows the event and says so rather than presenting a guess as a fact.
2697
+ */
2698
+ zoneCertainty: ZoneCertainty;
2699
+ /**
2700
+ * Projection of the master VEVENT's STATUS
2701
+ */
2702
+ status: CalendarEventStatus;
2703
+ /**
2704
+ * Projection of the master VEVENT's TRANSP
2705
+ */
2706
+ transparency: CalendarTransparency;
2707
+ /**
2708
+ * Whether the resource expands to more than its master instance — an RRULE, an RDATE, or an override VEVENT. Overrides count on their own: a client that edits one instance and then drops the rule leaves a resource with a master and its exceptions, and each of those is still an occurrence.
2709
+ */
2710
+ hasRecurrence: boolean;
2711
+ /**
2712
+ * ISO 8601 UTC instant through which `CalendarEventIndex` rows exist for this resource, when the series runs past the expansion horizon and the index is therefore incomplete. `""` when the index is exhaustive — a single event, or a series that ends inside the horizon. A later live-expansion pass reads this to find the resources whose instances it must compute rather than query.
2713
+ */
2714
+ expandedThrough: String64;
2715
+ createdAt: number;
2716
+ updatedAt: number;
2717
+ }
2718
+ /**
2719
+ * Input for updating an event. Every field is optional and absence means
2720
+ untouched — a patch that carries only `summary` renames the event and moves
2721
+ nothing.
2722
+
2723
+ What the patch applies to is the `scope` parameter's business: `All` rewrites
2724
+ the master, `This` writes a RECURRENCE-ID override for one occurrence, and
2725
+ `Following` splits the series at one occurrence and applies the patch to the
2726
+ remainder.
2727
+ */
2728
+ export interface UpdateCalendarEventInput {
2729
+ summary?: String512;
2730
+ description?: String2048;
2731
+ location?: String512;
2732
+ start?: String64;
2733
+ end?: String64;
2734
+ allDay?: boolean;
2735
+ timeZone?: String64;
2736
+ status?: CalendarEventStatus;
2737
+ transparency?: CalendarTransparency;
2738
+ /**
2739
+ * RRULE value, or `""` to drop the rule. Only meaningful with `scope=All` or `scope=Following`: an override is one occurrence and carries no rule of its own.
2740
+ */
2741
+ recurrenceRule?: String512;
2742
+ }
2743
+ /**
2744
+ * Merged busy spans over the requested window, in start order. An event marked TRANSP:TRANSPARENT or STATUS:CANCELLED is not busy time and never appears here.
2745
+ */
2746
+ export interface CalendarFreeBusyResponse {
2747
+ items: CalendarFreeBusySpan[];
2748
+ }
2749
+ /**
2750
+ * One stretch of time the caller is busy in. Merged across every calendar they
2751
+ hold, so two overlapping meetings in two calendars are one span and a caller
2752
+ asking "is this slot free" never has to do the merging itself.
2753
+ */
2754
+ export interface CalendarFreeBusySpan {
2755
+ /**
2756
+ * When the busy stretch starts, as an ISO 8601 date-time with a `+00:00` offset. A busy span is an interval on the clock rather than a civil date, so it carries no calendar's local zone — the caller renders it in whichever zone it is drawing.
2757
+ */
2758
+ start: String64;
2759
+ /**
2760
+ * When the busy stretch ends, as an ISO 8601 date-time with a `+00:00` offset
2761
+ */
2762
+ end: String64;
2763
+ }
2228
2764
  /**
2229
2765
  * Response from emptying trash
2230
2766
  */
@@ -4927,6 +5463,67 @@ domain already uses"; it does not close it.
4927
5463
  createdAt: number;
4928
5464
  updatedAt: number;
4929
5465
  }
5466
+ /**
5467
+ * One occurrence of a CalendarObject, flattened so a date range can be queried
5468
+ instead of expanded (issue #15). Every row is derived from
5469
+ `CalendarObject.icalData` and is replaced wholesale whenever that resource is
5470
+ written — nothing here is authoritative, and nothing writes here alone.
5471
+
5472
+ `recurrenceId` is `""` for a resource that does not recur — its one row. A
5473
+ resource that does recur has no `""` row at all: every occurrence carries its
5474
+ own RECURRENCE-ID slot, the first one included, so an occurrence is
5475
+ addressable without a caller having to know whether it happened to be the
5476
+ series' first. It is part of the sort key, so it can never be absent — an
5477
+ optional value there would make the index sparse and hide the single-event
5478
+ row from the range read that has to return it.
5479
+
5480
+ Times here are UTC instants, unlike `CalendarObject.dtStart`, which carries
5481
+ the event's own offset. The two are different jobs: `dtStart` is the value a
5482
+ client displays, and a fixed-width UTC instant is the only form in which a
5483
+ sort key orders correctly — comparing offset-bearing strings would sort
5484
+ `09:00+02:00` after `09:00Z`, and a range read would silently drop
5485
+ occurrences from every zone but its own.
5486
+ */
5487
+ export interface CalendarEventIndex {
5488
+ /**
5489
+ * Collection this occurrence belongs to
5490
+ */
5491
+ calendarId: UUID;
5492
+ /**
5493
+ * Resource this occurrence was expanded from
5494
+ */
5495
+ calendarObjectId: UUID;
5496
+ /**
5497
+ * RECURRENCE-ID of this occurrence as an ISO 8601 UTC instant, or `""` for the one row of a resource that does not recur. Canonicalized to UTC by the same rule the expansion uses, so an override's RECURRENCE-ID and the occurrence it replaces resolve to the same value.
5498
+ */
5499
+ recurrenceId: String64;
5500
+ /**
5501
+ * When this occurrence starts, as an ISO 8601 UTC instant. An all-day occurrence starts at midnight of its civil date read in the collection's timezone.
5502
+ */
5503
+ startAt: String64;
5504
+ /**
5505
+ * When this occurrence ends, as an ISO 8601 UTC instant. Exclusive for an all-day occurrence, per RFC 5545 3.6.1.
5506
+ */
5507
+ endAt: String64;
5508
+ /**
5509
+ * Whether this occurrence is all-day, copied from the resource it came from so a range read never has to join back to it. A client renders an all-day occurrence as the civil date its start falls on in the collection's timezone, not as the instant stored here.
5510
+ */
5511
+ allDay: boolean;
5512
+ /**
5513
+ * Projection of this occurrence's own SUMMARY. An overridden occurrence carries the override's, not the master's — an edit to one instance of a series is exactly the thing a range read must show, and a reader that took the summary from the master would draw the old title over the new one.
5514
+ */
5515
+ summary: String512;
5516
+ /**
5517
+ * Projection of this occurrence's own STATUS. Per occurrence for the same reason as `summary`: one cancelled instance of a series is cancelled, and reading the master's status would keep it in a free/busy answer.
5518
+ */
5519
+ status: CalendarEventStatus;
5520
+ /**
5521
+ * Projection of this occurrence's own TRANSP — whether it consumes free/busy time.
5522
+ */
5523
+ transparency: CalendarTransparency;
5524
+ createdAt: number;
5525
+ updatedAt: number;
5526
+ }
4930
5527
  /**
4931
5528
  * Junction whose existence *is* a label assignment (RFC 030). Holds only ids
4932
5529
  and is hydrated with `batchGet`. Keyed by a deterministic UUID v5 derived
@@ -5260,6 +5857,130 @@ declare namespace Paths {
5260
5857
  export type $200 = void;
5261
5858
  }
5262
5859
  }
5860
+ namespace ListCalendars {
5861
+ namespace Responses {
5862
+ export type $200 = void;
5863
+ }
5864
+ }
5865
+ namespace CreateCalendar {
5866
+ export type RequestBody = Components.Schemas.CreateCalendarInput;
5867
+ namespace Responses {
5868
+ export type $200 = void;
5869
+ export type $400 = void;
5870
+ }
5871
+ }
5872
+ namespace GetCalendar {
5873
+ export interface PathParameters {
5874
+ calendarId: Components.Schemas.UUID;
5875
+ }
5876
+ namespace Responses {
5877
+ export type $200 = void;
5878
+ export type $404 = void;
5879
+ }
5880
+ }
5881
+ namespace UpdateCalendar {
5882
+ export interface PathParameters {
5883
+ calendarId: Components.Schemas.UUID;
5884
+ }
5885
+ export type RequestBody = Components.Schemas.UpdateCalendarInput;
5886
+ namespace Responses {
5887
+ export type $200 = void;
5888
+ export type $400 = void;
5889
+ export type $404 = void;
5890
+ }
5891
+ }
5892
+ namespace DeleteCalendar {
5893
+ export interface PathParameters {
5894
+ calendarId: Components.Schemas.UUID;
5895
+ }
5896
+ namespace Responses {
5897
+ export type $204 = void;
5898
+ export type $400 = void;
5899
+ export type $404 = void;
5900
+ }
5901
+ }
5902
+ namespace ListCalendarEvents {
5903
+ export interface QueryParameters {
5904
+ from: string;
5905
+ to: string;
5906
+ calendarId?: Components.Schemas.UUID[];
5907
+ }
5908
+ namespace Responses {
5909
+ export type $200 = void;
5910
+ export type $400 = void;
5911
+ export type $404 = void;
5912
+ }
5913
+ }
5914
+ namespace CreateCalendarEvent {
5915
+ export type RequestBody = Components.Schemas.CreateCalendarEventInput;
5916
+ namespace Responses {
5917
+ export type $200 = void;
5918
+ export type $400 = void;
5919
+ export type $404 = void;
5920
+ }
5921
+ }
5922
+ namespace GetCalendarEvent {
5923
+ export interface PathParameters {
5924
+ calendarObjectId: Components.Schemas.UUID;
5925
+ }
5926
+ export interface QueryParameters {
5927
+ calendarId: Components.Schemas.UUID;
5928
+ }
5929
+ namespace Responses {
5930
+ export type $200 = void;
5931
+ export type $400 = void;
5932
+ export type $404 = void;
5933
+ }
5934
+ }
5935
+ namespace UpdateCalendarEvent {
5936
+ export interface PathParameters {
5937
+ calendarObjectId: Components.Schemas.UUID;
5938
+ }
5939
+ export interface QueryParameters {
5940
+ calendarId: Components.Schemas.UUID;
5941
+ scope?: Components.Schemas.RecurrenceScope;
5942
+ recurrenceId?: string;
5943
+ }
5944
+ export interface HeaderParameters {
5945
+ ifMatch?: string;
5946
+ }
5947
+ export type RequestBody = Components.Schemas.UpdateCalendarEventInput;
5948
+ namespace Responses {
5949
+ export type $200 = void;
5950
+ export type $400 = void;
5951
+ export type $404 = void;
5952
+ export type $412 = void;
5953
+ }
5954
+ }
5955
+ namespace DeleteCalendarEvent {
5956
+ export interface PathParameters {
5957
+ calendarObjectId: Components.Schemas.UUID;
5958
+ }
5959
+ export interface QueryParameters {
5960
+ calendarId: Components.Schemas.UUID;
5961
+ scope?: Components.Schemas.RecurrenceScope;
5962
+ recurrenceId?: string;
5963
+ }
5964
+ export interface HeaderParameters {
5965
+ ifMatch?: string;
5966
+ }
5967
+ namespace Responses {
5968
+ export type $204 = void;
5969
+ export type $400 = void;
5970
+ export type $404 = void;
5971
+ export type $412 = void;
5972
+ }
5973
+ }
5974
+ namespace ListCalendarFreeBusy {
5975
+ export interface QueryParameters {
5976
+ from: string;
5977
+ to: string;
5978
+ }
5979
+ namespace Responses {
5980
+ export type $200 = void;
5981
+ export type $400 = void;
5982
+ }
5983
+ }
5263
5984
  namespace EmptyTrash {
5264
5985
  export interface PathParameters {
5265
5986
  accountId: Components.Schemas.UUID;
@@ -5793,6 +6514,122 @@ export interface OperationMethods {
5793
6514
  data?: any,
5794
6515
  config?: AxiosRequestConfig
5795
6516
  ): OperationResponse<Paths.GetOrganizeJob.Responses.$200>;
6517
+ /**
6518
+ * listCalendars - List the caller's calendar collections. Provisions the account config's default collection when it has none, so a first read never comes back empty and no client has to know how a calendar gets made.
6519
+ */
6520
+ 'listCalendars'(
6521
+ parameters?: Parameters<UnknownParamsObject> | null,
6522
+ data?: any,
6523
+ config?: AxiosRequestConfig
6524
+ ): OperationResponse<Paths.ListCalendars.Responses.$200>;
6525
+ /**
6526
+ * createCalendar - Create a calendar collection. Refused with 400 when `urlSegment` is empty or already taken in this account config — the segment is the collection's identity, so a second create under the same one would otherwise silently return the collection that already exists.
6527
+ */
6528
+ 'createCalendar'(
6529
+ parameters?: Parameters<UnknownParamsObject> | null,
6530
+ data?: Paths.CreateCalendar.RequestBody,
6531
+ config?: AxiosRequestConfig
6532
+ ): OperationResponse<Paths.CreateCalendar.Responses.$200>;
6533
+ /**
6534
+ * getCalendar
6535
+ */
6536
+ 'getCalendar'(
6537
+ parameters?: Parameters<Paths.GetCalendar.PathParameters> | null,
6538
+ data?: any,
6539
+ config?: AxiosRequestConfig
6540
+ ): OperationResponse<Paths.GetCalendar.Responses.$200>;
6541
+ /**
6542
+ * updateCalendar
6543
+ */
6544
+ 'updateCalendar'(
6545
+ parameters?: Parameters<Paths.UpdateCalendar.PathParameters> | null,
6546
+ data?: Paths.UpdateCalendar.RequestBody,
6547
+ config?: AxiosRequestConfig
6548
+ ): OperationResponse<Paths.UpdateCalendar.Responses.$200>;
6549
+ /**
6550
+ * deleteCalendar - Delete a calendar collection and every event in it. Refused with 400 for the account's default collection: it is the one place an accepted invitation or a first event can land, and an account with no calendar has nowhere to put an event.
6551
+ */
6552
+ 'deleteCalendar'(
6553
+ parameters?: Parameters<Paths.DeleteCalendar.PathParameters> | null,
6554
+ data?: any,
6555
+ config?: AxiosRequestConfig
6556
+ ): OperationResponse<Paths.DeleteCalendar.Responses.$204>;
6557
+ /**
6558
+ * listCalendarEvents - Expanded event occurrences in a window. The server does the recurrence
6559
+ expansion and the client renders instances — no RRULE is ever evaluated
6560
+ in a browser, so a week grid and a day strip agree with each other and
6561
+ with what a native client will later read over CalDAV.
6562
+
6563
+ Occurrences are served from the stored occurrence index. A series whose
6564
+ index stops before `to` — an open-ended event older than the expansion
6565
+ horizon — is expanded live for this window instead, and nothing
6566
+ unbounded is written to serve a read.
6567
+
6568
+ Refused with 400 when `from` and `to` are not ISO 8601 date-times, when
6569
+ `to` is not after `from`, or when the window is wider than a year.
6570
+ */
6571
+ 'listCalendarEvents'(
6572
+ parameters?: Parameters<Paths.ListCalendarEvents.QueryParameters> | null,
6573
+ data?: any,
6574
+ config?: AxiosRequestConfig
6575
+ ): OperationResponse<Paths.ListCalendarEvents.Responses.$200>;
6576
+ /**
6577
+ * createCalendarEvent - Create an event. The server builds the VEVENT and writes it through the single calendar write path — the same one an accepted invitation and a later CalDAV PUT go through — so the object, its expanded occurrences and the collection's sync sequence land together or not at all.
6578
+ */
6579
+ 'createCalendarEvent'(
6580
+ parameters?: Parameters<UnknownParamsObject> | null,
6581
+ data?: Paths.CreateCalendarEvent.RequestBody,
6582
+ config?: AxiosRequestConfig
6583
+ ): OperationResponse<Paths.CreateCalendarEvent.Responses.$200>;
6584
+ /**
6585
+ * getCalendarEvent - Get one stored event, including its canonical iCalendar text and its etag.
6586
+ */
6587
+ 'getCalendarEvent'(
6588
+ parameters?: Parameters<Paths.GetCalendarEvent.PathParameters & Paths.GetCalendarEvent.QueryParameters> | null,
6589
+ data?: any,
6590
+ config?: AxiosRequestConfig
6591
+ ): OperationResponse<Paths.GetCalendarEvent.Responses.$200>;
6592
+ /**
6593
+ * updateCalendarEvent - Update an event. `scope` says what the caller meant by editing one
6594
+ drawing of a series: `All` rewrites the master, `This` writes a
6595
+ RECURRENCE-ID override for the named occurrence, and `Following` splits
6596
+ the series — the master's rule is truncated and a second resource carries
6597
+ the remainder under a UID of its own.
6598
+
6599
+ `recurrenceId` is required for `This` and `Following` and is refused with
6600
+ 400 otherwise, along with a scope other than `All` on an event that does
6601
+ not recur, and a `recurrenceId` naming no occurrence of the series.
6602
+
6603
+ `If-Match` makes the write conditional on the etag the caller read. A
6604
+ mismatch is 412: somebody replaced the resource in between, and applying
6605
+ this patch would discard their change without either of them seeing it.
6606
+ */
6607
+ 'updateCalendarEvent'(
6608
+ parameters?: Parameters<Paths.UpdateCalendarEvent.PathParameters & Paths.UpdateCalendarEvent.QueryParameters & Paths.UpdateCalendarEvent.HeaderParameters> | null,
6609
+ data?: Paths.UpdateCalendarEvent.RequestBody,
6610
+ config?: AxiosRequestConfig
6611
+ ): OperationResponse<Paths.UpdateCalendarEvent.Responses.$200>;
6612
+ /**
6613
+ * deleteCalendarEvent - Delete an event. `All` removes the resource and every occurrence it
6614
+ produced; `This` writes an EXDATE for the named occurrence and keeps the
6615
+ rest of the series; `Following` truncates the series to end just before
6616
+ it.
6617
+
6618
+ Same refusals and the same `If-Match` precondition as the update.
6619
+ */
6620
+ 'deleteCalendarEvent'(
6621
+ parameters?: Parameters<Paths.DeleteCalendarEvent.PathParameters & Paths.DeleteCalendarEvent.QueryParameters & Paths.DeleteCalendarEvent.HeaderParameters> | null,
6622
+ data?: any,
6623
+ config?: AxiosRequestConfig
6624
+ ): OperationResponse<Paths.DeleteCalendarEvent.Responses.$204>;
6625
+ /**
6626
+ * listCalendarFreeBusy - Busy spans over a window, merged across every calendar the caller holds. Backs the clash check beside a mail invitation and the free-stretch maths in the day strip, neither of which should have to fetch every event and merge them itself. Refused with 400 on the same window rules as the event listing.
6627
+ */
6628
+ 'listCalendarFreeBusy'(
6629
+ parameters?: Parameters<Paths.ListCalendarFreeBusy.QueryParameters> | null,
6630
+ data?: any,
6631
+ config?: AxiosRequestConfig
6632
+ ): OperationResponse<Paths.ListCalendarFreeBusy.Responses.$200>;
5796
6633
  /**
5797
6634
  * emptyTrash - Permanently delete all messages in the Trash mailbox
5798
6635
  */
@@ -6362,6 +7199,132 @@ export interface PathsDictionary {
6362
7199
  config?: AxiosRequestConfig
6363
7200
  ): OperationResponse<Paths.GetOrganizeJob.Responses.$200>;
6364
7201
  };
7202
+ ['/calendars']: {
7203
+ /**
7204
+ * listCalendars - List the caller's calendar collections. Provisions the account config's default collection when it has none, so a first read never comes back empty and no client has to know how a calendar gets made.
7205
+ */
7206
+ 'get'(
7207
+ parameters?: Parameters<UnknownParamsObject> | null,
7208
+ data?: any,
7209
+ config?: AxiosRequestConfig
7210
+ ): OperationResponse<Paths.ListCalendars.Responses.$200>;
7211
+ /**
7212
+ * createCalendar - Create a calendar collection. Refused with 400 when `urlSegment` is empty or already taken in this account config — the segment is the collection's identity, so a second create under the same one would otherwise silently return the collection that already exists.
7213
+ */
7214
+ 'post'(
7215
+ parameters?: Parameters<UnknownParamsObject> | null,
7216
+ data?: Paths.CreateCalendar.RequestBody,
7217
+ config?: AxiosRequestConfig
7218
+ ): OperationResponse<Paths.CreateCalendar.Responses.$200>;
7219
+ };
7220
+ ['/calendars/{calendarId}']: {
7221
+ /**
7222
+ * getCalendar
7223
+ */
7224
+ 'get'(
7225
+ parameters?: Parameters<Paths.GetCalendar.PathParameters> | null,
7226
+ data?: any,
7227
+ config?: AxiosRequestConfig
7228
+ ): OperationResponse<Paths.GetCalendar.Responses.$200>;
7229
+ /**
7230
+ * updateCalendar
7231
+ */
7232
+ 'patch'(
7233
+ parameters?: Parameters<Paths.UpdateCalendar.PathParameters> | null,
7234
+ data?: Paths.UpdateCalendar.RequestBody,
7235
+ config?: AxiosRequestConfig
7236
+ ): OperationResponse<Paths.UpdateCalendar.Responses.$200>;
7237
+ /**
7238
+ * deleteCalendar - Delete a calendar collection and every event in it. Refused with 400 for the account's default collection: it is the one place an accepted invitation or a first event can land, and an account with no calendar has nowhere to put an event.
7239
+ */
7240
+ 'delete'(
7241
+ parameters?: Parameters<Paths.DeleteCalendar.PathParameters> | null,
7242
+ data?: any,
7243
+ config?: AxiosRequestConfig
7244
+ ): OperationResponse<Paths.DeleteCalendar.Responses.$204>;
7245
+ };
7246
+ ['/calendar-events']: {
7247
+ /**
7248
+ * listCalendarEvents - Expanded event occurrences in a window. The server does the recurrence
7249
+ expansion and the client renders instances — no RRULE is ever evaluated
7250
+ in a browser, so a week grid and a day strip agree with each other and
7251
+ with what a native client will later read over CalDAV.
7252
+
7253
+ Occurrences are served from the stored occurrence index. A series whose
7254
+ index stops before `to` — an open-ended event older than the expansion
7255
+ horizon — is expanded live for this window instead, and nothing
7256
+ unbounded is written to serve a read.
7257
+
7258
+ Refused with 400 when `from` and `to` are not ISO 8601 date-times, when
7259
+ `to` is not after `from`, or when the window is wider than a year.
7260
+ */
7261
+ 'get'(
7262
+ parameters?: Parameters<Paths.ListCalendarEvents.QueryParameters> | null,
7263
+ data?: any,
7264
+ config?: AxiosRequestConfig
7265
+ ): OperationResponse<Paths.ListCalendarEvents.Responses.$200>;
7266
+ /**
7267
+ * createCalendarEvent - Create an event. The server builds the VEVENT and writes it through the single calendar write path — the same one an accepted invitation and a later CalDAV PUT go through — so the object, its expanded occurrences and the collection's sync sequence land together or not at all.
7268
+ */
7269
+ 'post'(
7270
+ parameters?: Parameters<UnknownParamsObject> | null,
7271
+ data?: Paths.CreateCalendarEvent.RequestBody,
7272
+ config?: AxiosRequestConfig
7273
+ ): OperationResponse<Paths.CreateCalendarEvent.Responses.$200>;
7274
+ };
7275
+ ['/calendar-events/{calendarObjectId}']: {
7276
+ /**
7277
+ * getCalendarEvent - Get one stored event, including its canonical iCalendar text and its etag.
7278
+ */
7279
+ 'get'(
7280
+ parameters?: Parameters<Paths.GetCalendarEvent.PathParameters & Paths.GetCalendarEvent.QueryParameters> | null,
7281
+ data?: any,
7282
+ config?: AxiosRequestConfig
7283
+ ): OperationResponse<Paths.GetCalendarEvent.Responses.$200>;
7284
+ /**
7285
+ * updateCalendarEvent - Update an event. `scope` says what the caller meant by editing one
7286
+ drawing of a series: `All` rewrites the master, `This` writes a
7287
+ RECURRENCE-ID override for the named occurrence, and `Following` splits
7288
+ the series — the master's rule is truncated and a second resource carries
7289
+ the remainder under a UID of its own.
7290
+
7291
+ `recurrenceId` is required for `This` and `Following` and is refused with
7292
+ 400 otherwise, along with a scope other than `All` on an event that does
7293
+ not recur, and a `recurrenceId` naming no occurrence of the series.
7294
+
7295
+ `If-Match` makes the write conditional on the etag the caller read. A
7296
+ mismatch is 412: somebody replaced the resource in between, and applying
7297
+ this patch would discard their change without either of them seeing it.
7298
+ */
7299
+ 'patch'(
7300
+ parameters?: Parameters<Paths.UpdateCalendarEvent.PathParameters & Paths.UpdateCalendarEvent.QueryParameters> | null,
7301
+ data?: Paths.UpdateCalendarEvent.RequestBody,
7302
+ config?: AxiosRequestConfig
7303
+ ): OperationResponse<Paths.UpdateCalendarEvent.Responses.$200>;
7304
+ /**
7305
+ * deleteCalendarEvent - Delete an event. `All` removes the resource and every occurrence it
7306
+ produced; `This` writes an EXDATE for the named occurrence and keeps the
7307
+ rest of the series; `Following` truncates the series to end just before
7308
+ it.
7309
+
7310
+ Same refusals and the same `If-Match` precondition as the update.
7311
+ */
7312
+ 'delete'(
7313
+ parameters?: Parameters<Paths.DeleteCalendarEvent.PathParameters & Paths.DeleteCalendarEvent.QueryParameters> | null,
7314
+ data?: any,
7315
+ config?: AxiosRequestConfig
7316
+ ): OperationResponse<Paths.DeleteCalendarEvent.Responses.$204>;
7317
+ };
7318
+ ['/calendar-free-busy']: {
7319
+ /**
7320
+ * listCalendarFreeBusy - Busy spans over a window, merged across every calendar the caller holds. Backs the clash check beside a mail invitation and the free-stretch maths in the day strip, neither of which should have to fetch every event and merge them itself. Refused with 400 on the same window rules as the event listing.
7321
+ */
7322
+ 'get'(
7323
+ parameters?: Parameters<Paths.ListCalendarFreeBusy.QueryParameters> | null,
7324
+ data?: any,
7325
+ config?: AxiosRequestConfig
7326
+ ): OperationResponse<Paths.ListCalendarFreeBusy.Responses.$200>;
7327
+ };
6365
7328
  ['/accounts/{accountId}/trash/empty']: {
6366
7329
  /**
6367
7330
  * emptyTrash - Permanently delete all messages in the Trash mailbox
@@ -6729,10 +7692,11 @@ export type AccessPattern = Components.Schemas.AccessPattern;
6729
7692
  export type ResultList = Components.Schemas.ResultList;
6730
7693
  export type FolderRoleConflict = Components.Schemas.FolderRoleConflict;
6731
7694
  export type AppointFolderRoleConflict = Components.Schemas.AppointFolderRoleConflict;
7695
+ export type NotFoundError = Components.Schemas.NotFoundError;
7696
+ export type PreconditionFailedError = Components.Schemas.PreconditionFailedError;
6732
7697
  export type DeleteMessagesConflict = Components.Schemas.DeleteMessagesConflict;
6733
7698
  export type MessagePlacementConflict = Components.Schemas.MessagePlacementConflict;
6734
7699
  export type AmazonApiGatewayIntegration = Components.Schemas.AmazonApiGatewayIntegration;
6735
- export type NotFoundError = Components.Schemas.NotFoundError;
6736
7700
  export type InternalServerError = Components.Schemas.InternalServerError;
6737
7701
  export type UnauthorizedError = Components.Schemas.UnauthorizedError;
6738
7702
  export type ForbiddenError = Components.Schemas.ForbiddenError;
@@ -6784,6 +7748,20 @@ export type CreateOrganizeJobResponse = Components.Schemas.CreateOrganizeJobResp
6784
7748
  export type OrganizePreviewResponse = Components.Schemas.OrganizePreviewResponse;
6785
7749
  export type OrganizeJobRequest = Components.Schemas.OrganizeJobRequest;
6786
7750
  export type OrganizeJobResponse = Components.Schemas.OrganizeJobResponse;
7751
+ export type CalendarListResponse = Components.Schemas.CalendarListResponse;
7752
+ export type CalendarCollection = Components.Schemas.CalendarCollection;
7753
+ export type CalendarResponse = Components.Schemas.CalendarResponse;
7754
+ export type CreateCalendarInput = Components.Schemas.CreateCalendarInput;
7755
+ export type UpdateCalendarInput = Components.Schemas.UpdateCalendarInput;
7756
+ export type CalendarNoContent = Components.Schemas.CalendarNoContent;
7757
+ export type CalendarEventListResponse = Components.Schemas.CalendarEventListResponse;
7758
+ export type CalendarEventInstance = Components.Schemas.CalendarEventInstance;
7759
+ export type CreateCalendarEventInput = Components.Schemas.CreateCalendarEventInput;
7760
+ export type CalendarObject = Components.Schemas.CalendarObject;
7761
+ export type CalendarEventResponse = Components.Schemas.CalendarEventResponse;
7762
+ export type UpdateCalendarEventInput = Components.Schemas.UpdateCalendarEventInput;
7763
+ export type CalendarFreeBusyResponse = Components.Schemas.CalendarFreeBusyResponse;
7764
+ export type CalendarFreeBusySpan = Components.Schemas.CalendarFreeBusySpan;
6787
7765
  export type EmptyTrashResponse = Components.Schemas.EmptyTrashResponse;
6788
7766
  export type SyncTriggerResponse = Components.Schemas.SyncTriggerResponse;
6789
7767
  export type AccountSyncStatusResponse = Components.Schemas.AccountSyncStatusResponse;
@@ -6872,6 +7850,7 @@ export type BodyPartParameter = Components.Schemas.BodyPartParameter;
6872
7850
  export type RawMessageStorage = Components.Schemas.RawMessageStorage;
6873
7851
  export type BodyPartStorage = Components.Schemas.BodyPartStorage;
6874
7852
  export type BodyPartContent = Components.Schemas.BodyPartContent;
7853
+ export type CalendarEventIndex = Components.Schemas.CalendarEventIndex;
6875
7854
  export type MessageLabel = Components.Schemas.MessageLabel;
6876
7855
  export type FilterAnchor = Components.Schemas.FilterAnchor;
6877
7856
  export type MicrosoftOAuthStartRequest = Components.Schemas.MicrosoftOAuthStartRequest;
@@ -6901,6 +7880,13 @@ export type FilterMatchOperator = Components.Schemas.FilterMatchOperator;
6901
7880
  export type FilterClauseField = Components.Schemas.FilterClauseField;
6902
7881
  export type LabelColor = Components.Schemas.LabelColor;
6903
7882
  export type OrganizeJobState = Components.Schemas.OrganizeJobState;
7883
+ export type CalendarColor = Components.Schemas.CalendarColor;
7884
+ export type CalendarComponentSet = Components.Schemas.CalendarComponentSet;
7885
+ export type CalendarSource = Components.Schemas.CalendarSource;
7886
+ export type CalendarEventStatus = Components.Schemas.CalendarEventStatus;
7887
+ export type CalendarTransparency = Components.Schemas.CalendarTransparency;
7888
+ export type ZoneCertainty = Components.Schemas.ZoneCertainty;
7889
+ export type RecurrenceScope = Components.Schemas.RecurrenceScope;
6904
7890
  export type SortOrder = Components.Schemas.SortOrder;
6905
7891
  export type StarColor = Components.Schemas.StarColor;
6906
7892
  export type MessageCategory = Components.Schemas.MessageCategory;