@37signals/basecamp 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/client.d.ts +5 -2
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +4 -2
  4. package/dist/client.js.map +1 -1
  5. package/dist/download.d.ts.map +1 -1
  6. package/dist/download.js +70 -19
  7. package/dist/download.js.map +1 -1
  8. package/dist/errors.d.ts +14 -0
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/errors.js +88 -3
  11. package/dist/errors.js.map +1 -1
  12. package/dist/generated/metadata.d.ts.map +1 -1
  13. package/dist/generated/metadata.js +156 -1
  14. package/dist/generated/metadata.js.map +1 -1
  15. package/dist/generated/metadata.ts +156 -1
  16. package/dist/generated/openapi-stripped.json +2055 -623
  17. package/dist/generated/path-mapping.d.ts.map +1 -1
  18. package/dist/generated/path-mapping.js +12 -0
  19. package/dist/generated/path-mapping.js.map +1 -1
  20. package/dist/generated/path-mapping.ts +12 -0
  21. package/dist/generated/schema.d.ts +1190 -36
  22. package/dist/generated/services/bubble-ups.d.ts +48 -0
  23. package/dist/generated/services/bubble-ups.d.ts.map +1 -0
  24. package/dist/generated/services/bubble-ups.js +67 -0
  25. package/dist/generated/services/bubble-ups.js.map +1 -0
  26. package/dist/generated/services/bubble-ups.ts +98 -0
  27. package/dist/generated/services/index.d.ts +1 -0
  28. package/dist/generated/services/index.d.ts.map +1 -1
  29. package/dist/generated/services/index.js +1 -0
  30. package/dist/generated/services/index.js.map +1 -1
  31. package/dist/generated/services/index.ts +1 -0
  32. package/dist/generated/services/people.d.ts +48 -0
  33. package/dist/generated/services/people.d.ts.map +1 -1
  34. package/dist/generated/services/people.js +81 -0
  35. package/dist/generated/services/people.js.map +1 -1
  36. package/dist/generated/services/people.ts +108 -0
  37. package/dist/generated/services/projects.d.ts +22 -0
  38. package/dist/generated/services/projects.d.ts.map +1 -1
  39. package/dist/generated/services/projects.js +42 -0
  40. package/dist/generated/services/projects.js.map +1 -1
  41. package/dist/generated/services/projects.ts +53 -0
  42. package/dist/generated/services/recordings.d.ts +24 -0
  43. package/dist/generated/services/recordings.d.ts.map +1 -1
  44. package/dist/generated/services/recordings.js +49 -0
  45. package/dist/generated/services/recordings.js.map +1 -1
  46. package/dist/generated/services/recordings.ts +59 -0
  47. package/dist/generated/services/templates.d.ts +46 -0
  48. package/dist/generated/services/templates.d.ts.map +1 -1
  49. package/dist/generated/services/templates.js +70 -0
  50. package/dist/generated/services/templates.js.map +1 -1
  51. package/dist/generated/services/templates.ts +98 -0
  52. package/dist/index.d.ts +4 -3
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/oauth/device.d.ts.map +1 -1
  57. package/dist/oauth/device.js +9 -71
  58. package/dist/oauth/device.js.map +1 -1
  59. package/dist/oauth/exchange.d.ts.map +1 -1
  60. package/dist/oauth/exchange.js +55 -16
  61. package/dist/oauth/exchange.js.map +1 -1
  62. package/dist/oauth/limits.d.ts +33 -2
  63. package/dist/oauth/limits.d.ts.map +1 -1
  64. package/dist/oauth/limits.js +76 -2
  65. package/dist/oauth/limits.js.map +1 -1
  66. package/package.json +3 -3
  67. package/src/generated/metadata.ts +156 -1
  68. package/src/generated/openapi-stripped.json +2055 -623
  69. package/src/generated/path-mapping.ts +12 -0
  70. package/src/generated/schema.d.ts +1190 -36
  71. package/src/generated/services/bubble-ups.ts +98 -0
  72. package/src/generated/services/index.ts +1 -0
  73. package/src/generated/services/people.ts +108 -0
  74. package/src/generated/services/projects.ts +53 -0
  75. package/src/generated/services/recordings.ts +59 -0
  76. package/src/generated/services/templates.ts +98 -0
@@ -1731,6 +1731,31 @@ export interface paths {
1731
1731
  patch?: never;
1732
1732
  trace?: never;
1733
1733
  };
1734
+ "/my/recent_projects.json": {
1735
+ parameters: {
1736
+ query?: never;
1737
+ header?: never;
1738
+ path?: never;
1739
+ cookie?: never;
1740
+ };
1741
+ /**
1742
+ * @description List the projects the current user has most recently visited, most recent visit first.
1743
+ * Reads the per-user visit log — capped at the 50 most recent visits, keeping
1744
+ * only active projects the user can still access — not the home grid's
1745
+ * pinned-exclusion and padding. This endpoint is not paginated. Each entry is
1746
+ * the standard project projection plus the current user's bookmarked flag. A
1747
+ * visit is recorded when the user opens a project in Basecamp, when they
1748
+ * create one, and by RecordProjectVisit.
1749
+ */
1750
+ get: operations["ListRecentProjects"];
1751
+ put?: never;
1752
+ post?: never;
1753
+ delete?: never;
1754
+ options?: never;
1755
+ head?: never;
1756
+ patch?: never;
1757
+ trace?: never;
1758
+ };
1734
1759
  "/my/unreads.json": {
1735
1760
  parameters: {
1736
1761
  query?: never;
@@ -1876,6 +1901,41 @@ export interface paths {
1876
1901
  patch?: never;
1877
1902
  trace?: never;
1878
1903
  };
1904
+ "/projects/{projectId}/client_enablement.json": {
1905
+ parameters: {
1906
+ query?: never;
1907
+ header?: never;
1908
+ path?: never;
1909
+ cookie?: never;
1910
+ };
1911
+ get?: never;
1912
+ put?: never;
1913
+ /**
1914
+ * @description Enable clients on a project so client users can be added to it
1915
+ *
1916
+ * A deliberate step separate from adding clients: it turns on the project's
1917
+ * client-facing surface and applies the default client visibility (the
1918
+ * timeline and most docked tools become client-visible; the card table,
1919
+ * Campfire, and Doors stay private). UpdateProjectClientAccess never enables
1920
+ * clients implicitly — enable first, then add. 403 unless the project can have
1921
+ * clients (the account supports clients and the project is a standard
1922
+ * project). Naturally idempotent: enabling an enabled project re-answers
1923
+ * `{"clients_enabled": true}`.
1924
+ */
1925
+ post: operations["EnableProjectClients"];
1926
+ /**
1927
+ * @description Disable clients on a project
1928
+ *
1929
+ * 403 while the project still has any client users — revoke them first with
1930
+ * UpdateProjectClientAccess. Naturally idempotent: disabling a project with
1931
+ * clients already off re-answers `{"clients_enabled": false}`.
1932
+ */
1933
+ delete: operations["DisableProjectClients"];
1934
+ options?: never;
1935
+ head?: never;
1936
+ patch?: never;
1937
+ trace?: never;
1938
+ };
1879
1939
  "/projects/{projectId}/gauge.json": {
1880
1940
  parameters: {
1881
1941
  query?: never;
@@ -1933,6 +1993,46 @@ export interface paths {
1933
1993
  patch?: never;
1934
1994
  trace?: never;
1935
1995
  };
1996
+ "/projects/{projectId}/people/client_users.json": {
1997
+ parameters: {
1998
+ query?: never;
1999
+ header?: never;
2000
+ path?: never;
2001
+ cookie?: never;
2002
+ };
2003
+ get?: never;
2004
+ /**
2005
+ * @description Update project client access (grant/revoke/create client users)
2006
+ *
2007
+ * The client-side counterpart to UpdateProjectAccess: `grant` adds existing
2008
+ * client users by id, `revoke` removes client users, and `create` invites
2009
+ * brand-new clients by email (`name` optional, defaulting to the address).
2010
+ * Only client users are eligible — a `grant` id belonging to a team member is
2011
+ * rejected (omitted from `granted`) rather than cross-graded, and `revoke` never removes a team
2012
+ * member. The response mirrors UpdateProjectAccess: `granted` and `revoked`
2013
+ * people, each with `client: true`.
2014
+ *
2015
+ * Requires clients to be enabled on the project (EnableProjectClients);
2016
+ * otherwise 403. Invitations are all-or-nothing: an invalid `create` row
2017
+ * (including one with no email address) answers 422 with the rejected
2018
+ * addresses and nobody is invited; new addresses that would exceed the
2019
+ * account's user limit answer 429 and nobody is invited. Addresses already on
2020
+ * the account take no seat and a repeated address counts once.
2021
+ *
2022
+ * The seat-limit 429 is a verdict, not throttling: it carries no Retry-After
2023
+ * and re-asking cannot change the answer, so this operation declares
2024
+ * `retryOn: [503]` and a 429 surfaces on the first attempt (status-mapped to
2025
+ * `rate_limit`, since the wire status is the only signal). Every other
2026
+ * operation retries on 429.
2027
+ */
2028
+ put: operations["UpdateProjectClientAccess"];
2029
+ post?: never;
2030
+ delete?: never;
2031
+ options?: never;
2032
+ head?: never;
2033
+ patch?: never;
2034
+ trace?: never;
2035
+ };
1936
2036
  "/projects/{projectId}/people/users.json": {
1937
2037
  parameters: {
1938
2038
  query?: never;
@@ -1950,6 +2050,28 @@ export interface paths {
1950
2050
  patch?: never;
1951
2051
  trace?: never;
1952
2052
  };
2053
+ "/projects/{projectId}/recent_visit.json": {
2054
+ parameters: {
2055
+ query?: never;
2056
+ header?: never;
2057
+ path?: never;
2058
+ cookie?: never;
2059
+ };
2060
+ get?: never;
2061
+ put?: never;
2062
+ /**
2063
+ * @description Record that the current user visited a project, moving it to the front of ListRecentProjects (returns 204 No Content).
2064
+ * Idempotent: re-recording a visit refreshes the same entry. Visits to
2065
+ * archived or trashed projects are accepted but not recorded, and an
2066
+ * inaccessible project answers 404.
2067
+ */
2068
+ post: operations["RecordProjectVisit"];
2069
+ delete?: never;
2070
+ options?: never;
2071
+ head?: never;
2072
+ patch?: never;
2073
+ trace?: never;
2074
+ };
1953
2075
  "/projects/{projectId}/status/active.json": {
1954
2076
  parameters: {
1955
2077
  query?: never;
@@ -2265,6 +2387,42 @@ export interface paths {
2265
2387
  patch?: never;
2266
2388
  trace?: never;
2267
2389
  };
2390
+ "/recordings/{recordingId}/bubble_up.json": {
2391
+ parameters: {
2392
+ query?: never;
2393
+ header?: never;
2394
+ path?: never;
2395
+ cookie?: never;
2396
+ };
2397
+ get?: never;
2398
+ put?: never;
2399
+ /**
2400
+ * @description Bubble up a recording for the current user, resurfacing it in the current
2401
+ * user's readings (the BC5 successor to "save"). Returns 204 No Content with
2402
+ * no body.
2403
+ *
2404
+ * The `at` field controls timing. Send `"now"` to bubble up immediately, or a
2405
+ * scheduling keyword (`"today"`, `"tomorrow"`, `"weekend"`, `"next_week"`) or
2406
+ * an ISO8601 date (e.g. `"2026-09-10"`) to schedule it to resurface later.
2407
+ * NOTE: bc3 currently requires `at` — omitting it raises on the server
2408
+ * (`Date.iso8601(nil)`), so send `"now"` for the immediate case. The field is
2409
+ * modeled optional (not `@required`) so a future bc3 default (`params[:at] ||=
2410
+ * "now"`) makes omission mean "now" without an SDK change.
2411
+ *
2412
+ * Idempotent: bubbling up an already-bubbled recording is set-membership and
2413
+ * still returns 204.
2414
+ */
2415
+ post: operations["CreateBubbleUp"];
2416
+ /**
2417
+ * @description Remove the current user's bubble-up from a recording (returns 204 No Content).
2418
+ * Idempotent: popping an absent bubble-up also returns 204.
2419
+ */
2420
+ delete: operations["DeleteBubbleUp"];
2421
+ options?: never;
2422
+ head?: never;
2423
+ patch?: never;
2424
+ trace?: never;
2425
+ };
2268
2426
  "/recordings/{recordingId}/client_visibility.json": {
2269
2427
  parameters: {
2270
2428
  query?: never;
@@ -2345,6 +2503,30 @@ export interface paths {
2345
2503
  patch?: never;
2346
2504
  trace?: never;
2347
2505
  };
2506
+ "/recordings/{recordingId}/spotlight.json": {
2507
+ parameters: {
2508
+ query?: never;
2509
+ header?: never;
2510
+ path?: never;
2511
+ cookie?: never;
2512
+ };
2513
+ get?: never;
2514
+ put?: never;
2515
+ /**
2516
+ * @description Put a recording's card in the spotlight area on its project or template home page.
2517
+ * Idempotent: spotlighting an already-spotlighted recording still returns 201.
2518
+ */
2519
+ post: operations["SpotlightRecording"];
2520
+ /**
2521
+ * @description Remove a recording from the spotlight area.
2522
+ * Idempotent: removing an absent spotlight also returns 204.
2523
+ */
2524
+ delete: operations["UnspotlightRecording"];
2525
+ options?: never;
2526
+ head?: never;
2527
+ patch?: never;
2528
+ trace?: never;
2529
+ };
2348
2530
  "/recordings/{recordingId}/status/active.json": {
2349
2531
  parameters: {
2350
2532
  query?: never;
@@ -2830,6 +3012,57 @@ export interface paths {
2830
3012
  patch?: never;
2831
3013
  trace?: never;
2832
3014
  };
3015
+ "/template_library.json": {
3016
+ parameters: {
3017
+ query?: never;
3018
+ header?: never;
3019
+ path?: never;
3020
+ cookie?: never;
3021
+ };
3022
+ /** @description Get the account's to-do list template library */
3023
+ get: operations["GetTemplateLibrary"];
3024
+ put?: never;
3025
+ post?: never;
3026
+ delete?: never;
3027
+ options?: never;
3028
+ head?: never;
3029
+ patch?: never;
3030
+ trace?: never;
3031
+ };
3032
+ "/template_library/copies.json": {
3033
+ parameters: {
3034
+ query?: never;
3035
+ header?: never;
3036
+ path?: never;
3037
+ cookie?: never;
3038
+ };
3039
+ get?: never;
3040
+ put?: never;
3041
+ /** @description Start copying a to-do list template into a project */
3042
+ post: operations["CreateTemplateLibraryCopy"];
3043
+ delete?: never;
3044
+ options?: never;
3045
+ head?: never;
3046
+ patch?: never;
3047
+ trace?: never;
3048
+ };
3049
+ "/template_library/copies/{copyId}": {
3050
+ parameters: {
3051
+ query?: never;
3052
+ header?: never;
3053
+ path?: never;
3054
+ cookie?: never;
3055
+ };
3056
+ /** @description Get the current status of a to-do list template copy */
3057
+ get: operations["GetTemplateLibraryCopy"];
3058
+ put?: never;
3059
+ post?: never;
3060
+ delete?: never;
3061
+ options?: never;
3062
+ head?: never;
3063
+ patch?: never;
3064
+ trace?: never;
3065
+ };
2833
3066
  "/templates.json": {
2834
3067
  parameters: {
2835
3068
  query?: never;
@@ -3811,6 +4044,23 @@ export interface components {
3811
4044
  replies_count?: number;
3812
4045
  replies_url?: string;
3813
4046
  };
4047
+ /**
4048
+ * @description One rejected `create` row: the address as submitted and the validation
4049
+ * messages for it. Always emitted; `null` when the row carried no address (the
4050
+ * row is still rejected, with a "can't be blank" message). `@required` models
4051
+ * the presence and the nullability is layered on in the OpenAPI
4052
+ * (smithy-build.json jsonAdd -> type: ["string","null"]), the Wormhole.color
4053
+ * treatment.
4054
+ */
4055
+ ClientInvitationError: {
4056
+ email_address: string | null;
4057
+ messages: string[];
4058
+ };
4059
+ /** @description The per-row 422 body: {"errors": [{"email_address": ..., "messages": [...]}]}. */
4060
+ ClientInvitationErrors: {
4061
+ errors: components["schemas"]["ClientInvitationError"][];
4062
+ };
4063
+ ClientInvitationValidationErrorResponseContent: components["schemas"]["ClientInvitationErrors"];
3814
4064
  ClientReply: {
3815
4065
  /** Format: int64 */
3816
4066
  id: number;
@@ -3929,6 +4179,16 @@ export interface components {
3929
4179
  attachable_sgid?: string;
3930
4180
  };
3931
4181
  CreateBookmarkResponseContent: components["schemas"]["Bookmark"];
4182
+ CreateBubbleUpRequestContent: {
4183
+ /**
4184
+ * @description Timing for the bubble-up. `"now"` bubbles up immediately; a scheduling
4185
+ * keyword (`"today"`, `"tomorrow"`, `"weekend"`, `"next_week"`) or an ISO8601
4186
+ * date (e.g. `"2026-09-10"`) schedules it to resurface later. bc3 requires a
4187
+ * value — omitting `at` errors server-side (`Date.iso8601(nil)`) — so send
4188
+ * `"now"` for the immediate case.
4189
+ */
4190
+ at?: string;
4191
+ };
3932
4192
  CreateCampfireLineRequestContent: {
3933
4193
  content: string;
3934
4194
  content_type?: string;
@@ -3963,6 +4223,20 @@ export interface components {
3963
4223
  command_url?: string;
3964
4224
  };
3965
4225
  CreateChatbotResponseContent: components["schemas"]["Chatbot"];
4226
+ /**
4227
+ * @description A new client to invite. Unlike CreatePersonRequest, only the address is
4228
+ * required: bc3 defaults `name` to the email address when omitted.
4229
+ */
4230
+ CreateClientRequest: {
4231
+ /** Format: password */
4232
+ email_address: string;
4233
+ /** Format: password */
4234
+ name?: string;
4235
+ /** Format: password */
4236
+ title?: string;
4237
+ /** Format: password */
4238
+ company_name?: string;
4239
+ };
3966
4240
  CreateCloudFileRequestContent: {
3967
4241
  url: string;
3968
4242
  /**
@@ -4163,6 +4437,15 @@ export interface components {
4163
4437
  visible_to_clients?: boolean;
4164
4438
  };
4165
4439
  CreateScheduleEntryResponseContent: components["schemas"]["ScheduleEntry"];
4440
+ CreateTemplateLibraryCopyRequestContent: {
4441
+ /** Format: int64 */
4442
+ template_recording_id: number;
4443
+ /** Format: int64 */
4444
+ destination_parent_id: number;
4445
+ /** @description Confirm granting destination-project access to people referenced by the template. */
4446
+ adding_people_confirmed?: boolean;
4447
+ };
4448
+ CreateTemplateLibraryCopyResponseContent: components["schemas"]["TemplateLibraryCopy"];
4166
4449
  CreateTemplateRequestContent: {
4167
4450
  name: string;
4168
4451
  description?: string;
@@ -4262,6 +4545,7 @@ export interface components {
4262
4545
  };
4263
4546
  CreateWormholeResponseContent: components["schemas"]["Wormhole"];
4264
4547
  DisableCardColumnOnHoldResponseContent: components["schemas"]["CardColumn"];
4548
+ DisableProjectClientsResponseContent: components["schemas"]["ProjectClientEnablement"];
4265
4549
  DockItem: {
4266
4550
  /** Format: int64 */
4267
4551
  id: number;
@@ -4360,6 +4644,7 @@ export interface components {
4360
4644
  out_of_office: components["schemas"]["OutOfOfficePayload"];
4361
4645
  };
4362
4646
  EnableOutOfOfficeResponseContent: components["schemas"]["OutOfOffice"];
4647
+ EnableProjectClientsResponseContent: components["schemas"]["ProjectClientEnablement"];
4363
4648
  Event: {
4364
4649
  /** Format: int64 */
4365
4650
  id: number;
@@ -4789,6 +5074,8 @@ export interface components {
4789
5074
  GetScheduleResponseContent: components["schemas"]["Schedule"];
4790
5075
  GetSearchMetadataResponseContent: components["schemas"]["SearchMetadata"];
4791
5076
  GetSubscriptionResponseContent: components["schemas"]["Subscription"];
5077
+ GetTemplateLibraryCopyResponseContent: components["schemas"]["TemplateLibraryCopy"];
5078
+ GetTemplateLibraryResponseContent: components["schemas"]["TemplateLibrary"];
4792
5079
  GetTemplateResponseContent: components["schemas"]["Template"];
4793
5080
  GetTimesheetEntryResponseContent: components["schemas"]["TimesheetEntry"];
4794
5081
  GetTimesheetReportResponseContent: components["schemas"]["TimesheetEntry"][];
@@ -4937,6 +5224,7 @@ export interface components {
4937
5224
  ListProjectsResponseContent: components["schemas"]["Project"][];
4938
5225
  ListQuestionAnswerersResponseContent: components["schemas"]["Person"][];
4939
5226
  ListQuestionsResponseContent: components["schemas"]["Question"][];
5227
+ ListRecentProjectsResponseContent: components["schemas"]["Project"][];
4940
5228
  ListRecordingBoostsResponseContent: components["schemas"]["Boost"][];
4941
5229
  ListRecordingsResponseContent: components["schemas"]["Recording"][];
4942
5230
  ListScheduleEntriesResponseContent: components["schemas"]["ScheduleEntry"][];
@@ -5192,6 +5480,14 @@ export interface components {
5192
5480
  PauseQuestionResponseContent: {
5193
5481
  paused?: boolean;
5194
5482
  };
5483
+ /**
5484
+ * @description The copy requires confirmation before granting destination-project access
5485
+ * to people referenced by the template.
5486
+ */
5487
+ PeopleConfirmationRequiredErrorResponseContent: {
5488
+ error: string;
5489
+ people: components["schemas"]["TemplateLibraryConfirmationPerson"][];
5490
+ };
5195
5491
  Person: {
5196
5492
  /** Format: int64 */
5197
5493
  id: number;
@@ -5293,10 +5589,18 @@ export interface components {
5293
5589
  end_date?: string;
5294
5590
  clients_enabled?: boolean;
5295
5591
  bookmark_url?: string;
5592
+ /** @description Bucket stars collection for this project (`/buckets/{id}/stars.json`). */
5593
+ star_url?: string;
5296
5594
  url: string;
5297
5595
  app_url: string;
5298
5596
  dock?: components["schemas"]["DockItem"][];
5597
+ /**
5598
+ * @description True when the project is pinned on the current user's home page at all,
5599
+ * whether starred or filed into a stack.
5600
+ */
5299
5601
  bookmarked?: boolean;
5602
+ /** @description True only when the project carries a star on the current user's home page. */
5603
+ starred?: boolean;
5300
5604
  client_company?: components["schemas"]["ClientCompany"];
5301
5605
  /** @deprecated */
5302
5606
  clientside?: components["schemas"]["ClientSide"];
@@ -5305,6 +5609,10 @@ export interface components {
5305
5609
  granted?: components["schemas"]["Person"][];
5306
5610
  revoked?: components["schemas"]["Person"][];
5307
5611
  };
5612
+ /** @description The project's client-enablement state after a toggle. */
5613
+ ProjectClientEnablement: {
5614
+ clients_enabled: boolean;
5615
+ };
5308
5616
  ProjectConstruction: {
5309
5617
  /** Format: int64 */
5310
5618
  id: number;
@@ -6130,6 +6438,7 @@ export interface components {
6130
6438
  visible_to_clients: boolean;
6131
6439
  };
6132
6440
  SetClientVisibilityResponseContent: components["schemas"]["Recording"];
6441
+ SpotlightRecordingResponseContent: components["schemas"]["Recording"];
6133
6442
  /**
6134
6443
  * @description The account has reached its file storage limit.
6135
6444
  *
@@ -6161,6 +6470,31 @@ export interface components {
6161
6470
  app_url?: string;
6162
6471
  dock?: components["schemas"]["DockItem"][];
6163
6472
  };
6473
+ TemplateLibrary: {
6474
+ bucket: components["schemas"]["RecordingBucket"];
6475
+ todoset: components["schemas"]["RecordingParent"];
6476
+ todolists: components["schemas"]["Todolist"][];
6477
+ };
6478
+ TemplateLibraryConfirmationPerson: {
6479
+ /** Format: int64 */
6480
+ id: number;
6481
+ /** Format: password */
6482
+ name: string;
6483
+ /** Format: password */
6484
+ avatar_url: string;
6485
+ };
6486
+ TemplateLibraryCopy: {
6487
+ /** Format: int64 */
6488
+ id: number;
6489
+ /** @description pending|processing|completed|failed */
6490
+ status: string;
6491
+ /** Format: int64 */
6492
+ source_recording_id: number;
6493
+ /** Format: int64 */
6494
+ destination_parent_id: number;
6495
+ url: string;
6496
+ destination_todolist?: components["schemas"]["Todolist"];
6497
+ };
6164
6498
  /**
6165
6499
  * @description A single timeline-event attachment. This is an optional-field superset over
6166
6500
  * two wire variants — a full Upload recording (upload-kind recordings, rendered
@@ -6949,6 +7283,15 @@ export interface components {
6949
7283
  create?: components["schemas"]["CreatePersonRequest"][];
6950
7284
  };
6951
7285
  UpdateProjectAccessResponseContent: components["schemas"]["ProjectAccessResult"];
7286
+ UpdateProjectClientAccessRequestContent: {
7287
+ /** @description Existing client people IDs to add to the project. */
7288
+ grant?: number[];
7289
+ /** @description Client people IDs to remove from the project. */
7290
+ revoke?: number[];
7291
+ /** @description New clients to invite by email. */
7292
+ create?: components["schemas"]["CreateClientRequest"][];
7293
+ };
7294
+ UpdateProjectClientAccessResponseContent: components["schemas"]["ProjectAccessResult"];
6952
7295
  UpdateProjectRequestContent: {
6953
7296
  name: string;
6954
7297
  description?: string;
@@ -14975,6 +15318,62 @@ export interface operations {
14975
15318
  };
14976
15319
  };
14977
15320
  };
15321
+ ListRecentProjects: {
15322
+ parameters: {
15323
+ query?: never;
15324
+ header?: never;
15325
+ path?: never;
15326
+ cookie?: never;
15327
+ };
15328
+ requestBody?: never;
15329
+ responses: {
15330
+ /** @description ListRecentProjects 200 response */
15331
+ 200: {
15332
+ headers: {
15333
+ [name: string]: unknown;
15334
+ };
15335
+ content: {
15336
+ "application/json": components["schemas"]["ListRecentProjectsResponseContent"];
15337
+ };
15338
+ };
15339
+ /** @description UnauthorizedError 401 response */
15340
+ 401: {
15341
+ headers: {
15342
+ [name: string]: unknown;
15343
+ };
15344
+ content: {
15345
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
15346
+ };
15347
+ };
15348
+ /** @description ForbiddenError 403 response */
15349
+ 403: {
15350
+ headers: {
15351
+ [name: string]: unknown;
15352
+ };
15353
+ content: {
15354
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
15355
+ };
15356
+ };
15357
+ /** @description RateLimitError 429 response */
15358
+ 429: {
15359
+ headers: {
15360
+ [name: string]: unknown;
15361
+ };
15362
+ content: {
15363
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
15364
+ };
15365
+ };
15366
+ /** @description InternalServerError 500 response */
15367
+ 500: {
15368
+ headers: {
15369
+ [name: string]: unknown;
15370
+ };
15371
+ content: {
15372
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
15373
+ };
15374
+ };
15375
+ };
15376
+ };
14978
15377
  MarkAsRead: {
14979
15378
  parameters: {
14980
15379
  query?: never;
@@ -15727,7 +16126,7 @@ export interface operations {
15727
16126
  };
15728
16127
  };
15729
16128
  };
15730
- ToggleGauge: {
16129
+ EnableProjectClients: {
15731
16130
  parameters: {
15732
16131
  query?: never;
15733
16132
  header?: never;
@@ -15736,13 +16135,147 @@ export interface operations {
15736
16135
  };
15737
16136
  cookie?: never;
15738
16137
  };
15739
- requestBody: {
15740
- content: {
15741
- "application/json": components["schemas"]["ToggleGaugeRequestContent"];
15742
- };
15743
- };
16138
+ requestBody?: never;
15744
16139
  responses: {
15745
- /** @description ToggleGauge 200 response */
16140
+ /** @description EnableProjectClients 200 response */
16141
+ 200: {
16142
+ headers: {
16143
+ [name: string]: unknown;
16144
+ };
16145
+ content: {
16146
+ "application/json": components["schemas"]["EnableProjectClientsResponseContent"];
16147
+ };
16148
+ };
16149
+ /** @description UnauthorizedError 401 response */
16150
+ 401: {
16151
+ headers: {
16152
+ [name: string]: unknown;
16153
+ };
16154
+ content: {
16155
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
16156
+ };
16157
+ };
16158
+ /** @description ForbiddenError 403 response */
16159
+ 403: {
16160
+ headers: {
16161
+ [name: string]: unknown;
16162
+ };
16163
+ content: {
16164
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
16165
+ };
16166
+ };
16167
+ /** @description NotFoundError 404 response */
16168
+ 404: {
16169
+ headers: {
16170
+ [name: string]: unknown;
16171
+ };
16172
+ content: {
16173
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
16174
+ };
16175
+ };
16176
+ /** @description RateLimitError 429 response */
16177
+ 429: {
16178
+ headers: {
16179
+ [name: string]: unknown;
16180
+ };
16181
+ content: {
16182
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
16183
+ };
16184
+ };
16185
+ /** @description InternalServerError 500 response */
16186
+ 500: {
16187
+ headers: {
16188
+ [name: string]: unknown;
16189
+ };
16190
+ content: {
16191
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
16192
+ };
16193
+ };
16194
+ };
16195
+ };
16196
+ DisableProjectClients: {
16197
+ parameters: {
16198
+ query?: never;
16199
+ header?: never;
16200
+ path: {
16201
+ projectId: number;
16202
+ };
16203
+ cookie?: never;
16204
+ };
16205
+ requestBody?: never;
16206
+ responses: {
16207
+ /** @description DisableProjectClients 200 response */
16208
+ 200: {
16209
+ headers: {
16210
+ [name: string]: unknown;
16211
+ };
16212
+ content: {
16213
+ "application/json": components["schemas"]["DisableProjectClientsResponseContent"];
16214
+ };
16215
+ };
16216
+ /** @description UnauthorizedError 401 response */
16217
+ 401: {
16218
+ headers: {
16219
+ [name: string]: unknown;
16220
+ };
16221
+ content: {
16222
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
16223
+ };
16224
+ };
16225
+ /** @description ForbiddenError 403 response */
16226
+ 403: {
16227
+ headers: {
16228
+ [name: string]: unknown;
16229
+ };
16230
+ content: {
16231
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
16232
+ };
16233
+ };
16234
+ /** @description NotFoundError 404 response */
16235
+ 404: {
16236
+ headers: {
16237
+ [name: string]: unknown;
16238
+ };
16239
+ content: {
16240
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
16241
+ };
16242
+ };
16243
+ /** @description RateLimitError 429 response */
16244
+ 429: {
16245
+ headers: {
16246
+ [name: string]: unknown;
16247
+ };
16248
+ content: {
16249
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
16250
+ };
16251
+ };
16252
+ /** @description InternalServerError 500 response */
16253
+ 500: {
16254
+ headers: {
16255
+ [name: string]: unknown;
16256
+ };
16257
+ content: {
16258
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
16259
+ };
16260
+ };
16261
+ };
16262
+ };
16263
+ ToggleGauge: {
16264
+ parameters: {
16265
+ query?: never;
16266
+ header?: never;
16267
+ path: {
16268
+ projectId: number;
16269
+ };
16270
+ cookie?: never;
16271
+ };
16272
+ requestBody: {
16273
+ content: {
16274
+ "application/json": components["schemas"]["ToggleGaugeRequestContent"];
16275
+ };
16276
+ };
16277
+ responses: {
16278
+ /** @description ToggleGauge 200 response */
15746
16279
  200: {
15747
16280
  headers: {
15748
16281
  [name: string]: unknown;
@@ -15989,6 +16522,86 @@ export interface operations {
15989
16522
  };
15990
16523
  };
15991
16524
  };
16525
+ UpdateProjectClientAccess: {
16526
+ parameters: {
16527
+ query?: never;
16528
+ header?: never;
16529
+ path: {
16530
+ projectId: number;
16531
+ };
16532
+ cookie?: never;
16533
+ };
16534
+ requestBody?: {
16535
+ content: {
16536
+ "application/json": components["schemas"]["UpdateProjectClientAccessRequestContent"];
16537
+ };
16538
+ };
16539
+ responses: {
16540
+ /** @description UpdateProjectClientAccess 200 response */
16541
+ 200: {
16542
+ headers: {
16543
+ [name: string]: unknown;
16544
+ };
16545
+ content: {
16546
+ "application/json": components["schemas"]["UpdateProjectClientAccessResponseContent"];
16547
+ };
16548
+ };
16549
+ /** @description UnauthorizedError 401 response */
16550
+ 401: {
16551
+ headers: {
16552
+ [name: string]: unknown;
16553
+ };
16554
+ content: {
16555
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
16556
+ };
16557
+ };
16558
+ /** @description ForbiddenError 403 response */
16559
+ 403: {
16560
+ headers: {
16561
+ [name: string]: unknown;
16562
+ };
16563
+ content: {
16564
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
16565
+ };
16566
+ };
16567
+ /** @description NotFoundError 404 response */
16568
+ 404: {
16569
+ headers: {
16570
+ [name: string]: unknown;
16571
+ };
16572
+ content: {
16573
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
16574
+ };
16575
+ };
16576
+ /** @description ClientInvitationValidationError 422 response */
16577
+ 422: {
16578
+ headers: {
16579
+ [name: string]: unknown;
16580
+ };
16581
+ content: {
16582
+ "application/json": components["schemas"]["ClientInvitationValidationErrorResponseContent"];
16583
+ };
16584
+ };
16585
+ /** @description RateLimitError 429 response */
16586
+ 429: {
16587
+ headers: {
16588
+ [name: string]: unknown;
16589
+ };
16590
+ content: {
16591
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
16592
+ };
16593
+ };
16594
+ /** @description InternalServerError 500 response */
16595
+ 500: {
16596
+ headers: {
16597
+ [name: string]: unknown;
16598
+ };
16599
+ content: {
16600
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
16601
+ };
16602
+ };
16603
+ };
16604
+ };
15992
16605
  UpdateProjectAccess: {
15993
16606
  parameters: {
15994
16607
  query?: never;
@@ -16069,6 +16682,71 @@ export interface operations {
16069
16682
  };
16070
16683
  };
16071
16684
  };
16685
+ RecordProjectVisit: {
16686
+ parameters: {
16687
+ query?: never;
16688
+ header?: never;
16689
+ path: {
16690
+ projectId: number;
16691
+ };
16692
+ cookie?: never;
16693
+ };
16694
+ requestBody?: never;
16695
+ responses: {
16696
+ /** @description RecordProjectVisit 204 response */
16697
+ 204: {
16698
+ headers: {
16699
+ [name: string]: unknown;
16700
+ };
16701
+ content?: never;
16702
+ };
16703
+ /** @description UnauthorizedError 401 response */
16704
+ 401: {
16705
+ headers: {
16706
+ [name: string]: unknown;
16707
+ };
16708
+ content: {
16709
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
16710
+ };
16711
+ };
16712
+ /** @description ForbiddenError 403 response */
16713
+ 403: {
16714
+ headers: {
16715
+ [name: string]: unknown;
16716
+ };
16717
+ content: {
16718
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
16719
+ };
16720
+ };
16721
+ /** @description NotFoundError 404 response */
16722
+ 404: {
16723
+ headers: {
16724
+ [name: string]: unknown;
16725
+ };
16726
+ content: {
16727
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
16728
+ };
16729
+ };
16730
+ /** @description RateLimitError 429 response */
16731
+ 429: {
16732
+ headers: {
16733
+ [name: string]: unknown;
16734
+ };
16735
+ content: {
16736
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
16737
+ };
16738
+ };
16739
+ /** @description InternalServerError 500 response */
16740
+ 500: {
16741
+ headers: {
16742
+ [name: string]: unknown;
16743
+ };
16744
+ content: {
16745
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
16746
+ };
16747
+ };
16748
+ };
16749
+ };
16072
16750
  UnarchiveProject: {
16073
16751
  parameters: {
16074
16752
  query?: never;
@@ -17688,6 +18366,140 @@ export interface operations {
17688
18366
  };
17689
18367
  };
17690
18368
  };
18369
+ CreateBubbleUp: {
18370
+ parameters: {
18371
+ query?: never;
18372
+ header?: never;
18373
+ path: {
18374
+ recordingId: number;
18375
+ };
18376
+ cookie?: never;
18377
+ };
18378
+ requestBody?: {
18379
+ content: {
18380
+ "application/json": components["schemas"]["CreateBubbleUpRequestContent"];
18381
+ };
18382
+ };
18383
+ responses: {
18384
+ /** @description CreateBubbleUp 204 response */
18385
+ 204: {
18386
+ headers: {
18387
+ [name: string]: unknown;
18388
+ };
18389
+ content?: never;
18390
+ };
18391
+ /** @description UnauthorizedError 401 response */
18392
+ 401: {
18393
+ headers: {
18394
+ [name: string]: unknown;
18395
+ };
18396
+ content: {
18397
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
18398
+ };
18399
+ };
18400
+ /** @description ForbiddenError 403 response */
18401
+ 403: {
18402
+ headers: {
18403
+ [name: string]: unknown;
18404
+ };
18405
+ content: {
18406
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18407
+ };
18408
+ };
18409
+ /** @description NotFoundError 404 response */
18410
+ 404: {
18411
+ headers: {
18412
+ [name: string]: unknown;
18413
+ };
18414
+ content: {
18415
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18416
+ };
18417
+ };
18418
+ /** @description RateLimitError 429 response */
18419
+ 429: {
18420
+ headers: {
18421
+ [name: string]: unknown;
18422
+ };
18423
+ content: {
18424
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
18425
+ };
18426
+ };
18427
+ /** @description InternalServerError 500 response */
18428
+ 500: {
18429
+ headers: {
18430
+ [name: string]: unknown;
18431
+ };
18432
+ content: {
18433
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
18434
+ };
18435
+ };
18436
+ };
18437
+ };
18438
+ DeleteBubbleUp: {
18439
+ parameters: {
18440
+ query?: never;
18441
+ header?: never;
18442
+ path: {
18443
+ recordingId: number;
18444
+ };
18445
+ cookie?: never;
18446
+ };
18447
+ requestBody?: never;
18448
+ responses: {
18449
+ /** @description DeleteBubbleUp 204 response */
18450
+ 204: {
18451
+ headers: {
18452
+ [name: string]: unknown;
18453
+ };
18454
+ content?: never;
18455
+ };
18456
+ /** @description UnauthorizedError 401 response */
18457
+ 401: {
18458
+ headers: {
18459
+ [name: string]: unknown;
18460
+ };
18461
+ content: {
18462
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
18463
+ };
18464
+ };
18465
+ /** @description ForbiddenError 403 response */
18466
+ 403: {
18467
+ headers: {
18468
+ [name: string]: unknown;
18469
+ };
18470
+ content: {
18471
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18472
+ };
18473
+ };
18474
+ /** @description NotFoundError 404 response */
18475
+ 404: {
18476
+ headers: {
18477
+ [name: string]: unknown;
18478
+ };
18479
+ content: {
18480
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18481
+ };
18482
+ };
18483
+ /** @description RateLimitError 429 response */
18484
+ 429: {
18485
+ headers: {
18486
+ [name: string]: unknown;
18487
+ };
18488
+ content: {
18489
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
18490
+ };
18491
+ };
18492
+ /** @description InternalServerError 500 response */
18493
+ 500: {
18494
+ headers: {
18495
+ [name: string]: unknown;
18496
+ };
18497
+ content: {
18498
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
18499
+ };
18500
+ };
18501
+ };
18502
+ };
17691
18503
  SetClientVisibility: {
17692
18504
  parameters: {
17693
18505
  query?: never;
@@ -17901,17 +18713,142 @@ export interface operations {
17901
18713
  path: {
17902
18714
  recordingId: number;
17903
18715
  };
17904
- cookie?: never;
18716
+ cookie?: never;
18717
+ };
18718
+ requestBody?: never;
18719
+ responses: {
18720
+ /** @description ListEvents 200 response */
18721
+ 200: {
18722
+ headers: {
18723
+ [name: string]: unknown;
18724
+ };
18725
+ content: {
18726
+ "application/json": components["schemas"]["ListEventsResponseContent"];
18727
+ };
18728
+ };
18729
+ /** @description UnauthorizedError 401 response */
18730
+ 401: {
18731
+ headers: {
18732
+ [name: string]: unknown;
18733
+ };
18734
+ content: {
18735
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
18736
+ };
18737
+ };
18738
+ /** @description ForbiddenError 403 response */
18739
+ 403: {
18740
+ headers: {
18741
+ [name: string]: unknown;
18742
+ };
18743
+ content: {
18744
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18745
+ };
18746
+ };
18747
+ /** @description RateLimitError 429 response */
18748
+ 429: {
18749
+ headers: {
18750
+ [name: string]: unknown;
18751
+ };
18752
+ content: {
18753
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
18754
+ };
18755
+ };
18756
+ /** @description InternalServerError 500 response */
18757
+ 500: {
18758
+ headers: {
18759
+ [name: string]: unknown;
18760
+ };
18761
+ content: {
18762
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
18763
+ };
18764
+ };
18765
+ };
18766
+ };
18767
+ ListEventBoosts: {
18768
+ parameters: {
18769
+ query?: {
18770
+ /** @description Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
18771
+ page?: number;
18772
+ };
18773
+ header?: never;
18774
+ path: {
18775
+ recordingId: number;
18776
+ eventId: number;
18777
+ };
18778
+ cookie?: never;
18779
+ };
18780
+ requestBody?: never;
18781
+ responses: {
18782
+ /** @description ListEventBoosts 200 response */
18783
+ 200: {
18784
+ headers: {
18785
+ [name: string]: unknown;
18786
+ };
18787
+ content: {
18788
+ "application/json": components["schemas"]["ListEventBoostsResponseContent"];
18789
+ };
18790
+ };
18791
+ /** @description UnauthorizedError 401 response */
18792
+ 401: {
18793
+ headers: {
18794
+ [name: string]: unknown;
18795
+ };
18796
+ content: {
18797
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
18798
+ };
18799
+ };
18800
+ /** @description ForbiddenError 403 response */
18801
+ 403: {
18802
+ headers: {
18803
+ [name: string]: unknown;
18804
+ };
18805
+ content: {
18806
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18807
+ };
18808
+ };
18809
+ /** @description NotFoundError 404 response */
18810
+ 404: {
18811
+ headers: {
18812
+ [name: string]: unknown;
18813
+ };
18814
+ content: {
18815
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18816
+ };
18817
+ };
18818
+ /** @description InternalServerError 500 response */
18819
+ 500: {
18820
+ headers: {
18821
+ [name: string]: unknown;
18822
+ };
18823
+ content: {
18824
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
18825
+ };
18826
+ };
18827
+ };
18828
+ };
18829
+ CreateEventBoost: {
18830
+ parameters: {
18831
+ query?: never;
18832
+ header?: never;
18833
+ path: {
18834
+ recordingId: number;
18835
+ eventId: number;
18836
+ };
18837
+ cookie?: never;
18838
+ };
18839
+ requestBody: {
18840
+ content: {
18841
+ "application/json": components["schemas"]["CreateEventBoostRequestContent"];
18842
+ };
17905
18843
  };
17906
- requestBody?: never;
17907
18844
  responses: {
17908
- /** @description ListEvents 200 response */
17909
- 200: {
18845
+ /** @description CreateEventBoost 201 response */
18846
+ 201: {
17910
18847
  headers: {
17911
18848
  [name: string]: unknown;
17912
18849
  };
17913
18850
  content: {
17914
- "application/json": components["schemas"]["ListEventsResponseContent"];
18851
+ "application/json": components["schemas"]["CreateEventBoostResponseContent"];
17915
18852
  };
17916
18853
  };
17917
18854
  /** @description UnauthorizedError 401 response */
@@ -17932,6 +18869,15 @@ export interface operations {
17932
18869
  "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
17933
18870
  };
17934
18871
  };
18872
+ /** @description ValidationError 422 response */
18873
+ 422: {
18874
+ headers: {
18875
+ [name: string]: unknown;
18876
+ };
18877
+ content: {
18878
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
18879
+ };
18880
+ };
17935
18881
  /** @description RateLimitError 429 response */
17936
18882
  429: {
17937
18883
  headers: {
@@ -17952,28 +18898,24 @@ export interface operations {
17952
18898
  };
17953
18899
  };
17954
18900
  };
17955
- ListEventBoosts: {
18901
+ SpotlightRecording: {
17956
18902
  parameters: {
17957
- query?: {
17958
- /** @description Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
17959
- page?: number;
17960
- };
18903
+ query?: never;
17961
18904
  header?: never;
17962
18905
  path: {
17963
18906
  recordingId: number;
17964
- eventId: number;
17965
18907
  };
17966
18908
  cookie?: never;
17967
18909
  };
17968
18910
  requestBody?: never;
17969
18911
  responses: {
17970
- /** @description ListEventBoosts 200 response */
17971
- 200: {
18912
+ /** @description SpotlightRecording 201 response */
18913
+ 201: {
17972
18914
  headers: {
17973
18915
  [name: string]: unknown;
17974
18916
  };
17975
18917
  content: {
17976
- "application/json": components["schemas"]["ListEventBoostsResponseContent"];
18918
+ "application/json": components["schemas"]["SpotlightRecordingResponseContent"];
17977
18919
  };
17978
18920
  };
17979
18921
  /** @description UnauthorizedError 401 response */
@@ -18003,6 +18945,24 @@ export interface operations {
18003
18945
  "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18004
18946
  };
18005
18947
  };
18948
+ /** @description ValidationError 422 response */
18949
+ 422: {
18950
+ headers: {
18951
+ [name: string]: unknown;
18952
+ };
18953
+ content: {
18954
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
18955
+ };
18956
+ };
18957
+ /** @description RateLimitError 429 response */
18958
+ 429: {
18959
+ headers: {
18960
+ [name: string]: unknown;
18961
+ };
18962
+ content: {
18963
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
18964
+ };
18965
+ };
18006
18966
  /** @description InternalServerError 500 response */
18007
18967
  500: {
18008
18968
  headers: {
@@ -18014,30 +18974,23 @@ export interface operations {
18014
18974
  };
18015
18975
  };
18016
18976
  };
18017
- CreateEventBoost: {
18977
+ UnspotlightRecording: {
18018
18978
  parameters: {
18019
18979
  query?: never;
18020
18980
  header?: never;
18021
18981
  path: {
18022
18982
  recordingId: number;
18023
- eventId: number;
18024
18983
  };
18025
18984
  cookie?: never;
18026
18985
  };
18027
- requestBody: {
18028
- content: {
18029
- "application/json": components["schemas"]["CreateEventBoostRequestContent"];
18030
- };
18031
- };
18986
+ requestBody?: never;
18032
18987
  responses: {
18033
- /** @description CreateEventBoost 201 response */
18034
- 201: {
18988
+ /** @description UnspotlightRecording 204 response */
18989
+ 204: {
18035
18990
  headers: {
18036
18991
  [name: string]: unknown;
18037
18992
  };
18038
- content: {
18039
- "application/json": components["schemas"]["CreateEventBoostResponseContent"];
18040
- };
18993
+ content?: never;
18041
18994
  };
18042
18995
  /** @description UnauthorizedError 401 response */
18043
18996
  401: {
@@ -18057,13 +19010,13 @@ export interface operations {
18057
19010
  "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18058
19011
  };
18059
19012
  };
18060
- /** @description ValidationError 422 response */
18061
- 422: {
19013
+ /** @description NotFoundError 404 response */
19014
+ 404: {
18062
19015
  headers: {
18063
19016
  [name: string]: unknown;
18064
19017
  };
18065
19018
  content: {
18066
- "application/json": components["schemas"]["ValidationErrorResponseContent"];
19019
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18067
19020
  };
18068
19021
  };
18069
19022
  /** @description RateLimitError 429 response */
@@ -20293,6 +21246,207 @@ export interface operations {
20293
21246
  };
20294
21247
  };
20295
21248
  };
21249
+ GetTemplateLibrary: {
21250
+ parameters: {
21251
+ query?: never;
21252
+ header?: never;
21253
+ path?: never;
21254
+ cookie?: never;
21255
+ };
21256
+ requestBody?: never;
21257
+ responses: {
21258
+ /** @description GetTemplateLibrary 200 response */
21259
+ 200: {
21260
+ headers: {
21261
+ [name: string]: unknown;
21262
+ };
21263
+ content: {
21264
+ "application/json": components["schemas"]["GetTemplateLibraryResponseContent"];
21265
+ };
21266
+ };
21267
+ /** @description UnauthorizedError 401 response */
21268
+ 401: {
21269
+ headers: {
21270
+ [name: string]: unknown;
21271
+ };
21272
+ content: {
21273
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
21274
+ };
21275
+ };
21276
+ /** @description ForbiddenError 403 response */
21277
+ 403: {
21278
+ headers: {
21279
+ [name: string]: unknown;
21280
+ };
21281
+ content: {
21282
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
21283
+ };
21284
+ };
21285
+ /** @description RateLimitError 429 response */
21286
+ 429: {
21287
+ headers: {
21288
+ [name: string]: unknown;
21289
+ };
21290
+ content: {
21291
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
21292
+ };
21293
+ };
21294
+ /** @description InternalServerError 500 response */
21295
+ 500: {
21296
+ headers: {
21297
+ [name: string]: unknown;
21298
+ };
21299
+ content: {
21300
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
21301
+ };
21302
+ };
21303
+ };
21304
+ };
21305
+ CreateTemplateLibraryCopy: {
21306
+ parameters: {
21307
+ query?: never;
21308
+ header?: never;
21309
+ path?: never;
21310
+ cookie?: never;
21311
+ };
21312
+ requestBody: {
21313
+ content: {
21314
+ "application/json": components["schemas"]["CreateTemplateLibraryCopyRequestContent"];
21315
+ };
21316
+ };
21317
+ responses: {
21318
+ /** @description CreateTemplateLibraryCopy 201 response */
21319
+ 201: {
21320
+ headers: {
21321
+ [name: string]: unknown;
21322
+ };
21323
+ content: {
21324
+ "application/json": components["schemas"]["CreateTemplateLibraryCopyResponseContent"];
21325
+ };
21326
+ };
21327
+ /** @description UnauthorizedError 401 response */
21328
+ 401: {
21329
+ headers: {
21330
+ [name: string]: unknown;
21331
+ };
21332
+ content: {
21333
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
21334
+ };
21335
+ };
21336
+ /** @description ForbiddenError 403 response */
21337
+ 403: {
21338
+ headers: {
21339
+ [name: string]: unknown;
21340
+ };
21341
+ content: {
21342
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
21343
+ };
21344
+ };
21345
+ /** @description NotFoundError 404 response */
21346
+ 404: {
21347
+ headers: {
21348
+ [name: string]: unknown;
21349
+ };
21350
+ content: {
21351
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
21352
+ };
21353
+ };
21354
+ /** @description PeopleConfirmationRequiredError 422 response */
21355
+ 422: {
21356
+ headers: {
21357
+ [name: string]: unknown;
21358
+ };
21359
+ content: {
21360
+ "application/json": components["schemas"]["PeopleConfirmationRequiredErrorResponseContent"];
21361
+ };
21362
+ };
21363
+ /** @description RateLimitError 429 response */
21364
+ 429: {
21365
+ headers: {
21366
+ [name: string]: unknown;
21367
+ };
21368
+ content: {
21369
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
21370
+ };
21371
+ };
21372
+ /** @description InternalServerError 500 response */
21373
+ 500: {
21374
+ headers: {
21375
+ [name: string]: unknown;
21376
+ };
21377
+ content: {
21378
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
21379
+ };
21380
+ };
21381
+ };
21382
+ };
21383
+ GetTemplateLibraryCopy: {
21384
+ parameters: {
21385
+ query?: never;
21386
+ header?: never;
21387
+ path: {
21388
+ copyId: number;
21389
+ };
21390
+ cookie?: never;
21391
+ };
21392
+ requestBody?: never;
21393
+ responses: {
21394
+ /** @description GetTemplateLibraryCopy 200 response */
21395
+ 200: {
21396
+ headers: {
21397
+ [name: string]: unknown;
21398
+ };
21399
+ content: {
21400
+ "application/json": components["schemas"]["GetTemplateLibraryCopyResponseContent"];
21401
+ };
21402
+ };
21403
+ /** @description UnauthorizedError 401 response */
21404
+ 401: {
21405
+ headers: {
21406
+ [name: string]: unknown;
21407
+ };
21408
+ content: {
21409
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
21410
+ };
21411
+ };
21412
+ /** @description ForbiddenError 403 response */
21413
+ 403: {
21414
+ headers: {
21415
+ [name: string]: unknown;
21416
+ };
21417
+ content: {
21418
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
21419
+ };
21420
+ };
21421
+ /** @description NotFoundError 404 response */
21422
+ 404: {
21423
+ headers: {
21424
+ [name: string]: unknown;
21425
+ };
21426
+ content: {
21427
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
21428
+ };
21429
+ };
21430
+ /** @description RateLimitError 429 response */
21431
+ 429: {
21432
+ headers: {
21433
+ [name: string]: unknown;
21434
+ };
21435
+ content: {
21436
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
21437
+ };
21438
+ };
21439
+ /** @description InternalServerError 500 response */
21440
+ 500: {
21441
+ headers: {
21442
+ [name: string]: unknown;
21443
+ };
21444
+ content: {
21445
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
21446
+ };
21447
+ };
21448
+ };
21449
+ };
20296
21450
  ListTemplates: {
20297
21451
  parameters: {
20298
21452
  query?: {