@37signals/basecamp 0.15.0 → 0.16.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 (70) 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 +54 -2
  11. package/dist/errors.js.map +1 -1
  12. package/dist/generated/metadata.d.ts.map +1 -1
  13. package/dist/generated/metadata.js +115 -1
  14. package/dist/generated/metadata.js.map +1 -1
  15. package/dist/generated/metadata.ts +115 -1
  16. package/dist/generated/openapi-stripped.json +1135 -182
  17. package/dist/generated/path-mapping.d.ts.map +1 -1
  18. package/dist/generated/path-mapping.js +9 -0
  19. package/dist/generated/path-mapping.js.map +1 -1
  20. package/dist/generated/path-mapping.ts +9 -0
  21. package/dist/generated/schema.d.ts +821 -2
  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/projects.d.ts +22 -0
  33. package/dist/generated/services/projects.d.ts.map +1 -1
  34. package/dist/generated/services/projects.js +42 -0
  35. package/dist/generated/services/projects.js.map +1 -1
  36. package/dist/generated/services/projects.ts +53 -0
  37. package/dist/generated/services/recordings.d.ts +24 -0
  38. package/dist/generated/services/recordings.d.ts.map +1 -1
  39. package/dist/generated/services/recordings.js +49 -0
  40. package/dist/generated/services/recordings.js.map +1 -1
  41. package/dist/generated/services/recordings.ts +59 -0
  42. package/dist/generated/services/templates.d.ts +46 -0
  43. package/dist/generated/services/templates.d.ts.map +1 -1
  44. package/dist/generated/services/templates.js +70 -0
  45. package/dist/generated/services/templates.js.map +1 -1
  46. package/dist/generated/services/templates.ts +98 -0
  47. package/dist/index.d.ts +3 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +2 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/oauth/device.d.ts.map +1 -1
  52. package/dist/oauth/device.js +9 -71
  53. package/dist/oauth/device.js.map +1 -1
  54. package/dist/oauth/exchange.d.ts.map +1 -1
  55. package/dist/oauth/exchange.js +55 -16
  56. package/dist/oauth/exchange.js.map +1 -1
  57. package/dist/oauth/limits.d.ts +33 -2
  58. package/dist/oauth/limits.d.ts.map +1 -1
  59. package/dist/oauth/limits.js +76 -2
  60. package/dist/oauth/limits.js.map +1 -1
  61. package/package.json +2 -2
  62. package/src/generated/metadata.ts +115 -1
  63. package/src/generated/openapi-stripped.json +1135 -182
  64. package/src/generated/path-mapping.ts +9 -0
  65. package/src/generated/schema.d.ts +821 -2
  66. package/src/generated/services/bubble-ups.ts +98 -0
  67. package/src/generated/services/index.ts +1 -0
  68. package/src/generated/services/projects.ts +53 -0
  69. package/src/generated/services/recordings.ts +59 -0
  70. 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;
@@ -1950,6 +1975,28 @@ export interface paths {
1950
1975
  patch?: never;
1951
1976
  trace?: never;
1952
1977
  };
1978
+ "/projects/{projectId}/recent_visit.json": {
1979
+ parameters: {
1980
+ query?: never;
1981
+ header?: never;
1982
+ path?: never;
1983
+ cookie?: never;
1984
+ };
1985
+ get?: never;
1986
+ put?: never;
1987
+ /**
1988
+ * @description Record that the current user visited a project, moving it to the front of ListRecentProjects (returns 204 No Content).
1989
+ * Idempotent: re-recording a visit refreshes the same entry. Visits to
1990
+ * archived or trashed projects are accepted but not recorded, and an
1991
+ * inaccessible project answers 404.
1992
+ */
1993
+ post: operations["RecordProjectVisit"];
1994
+ delete?: never;
1995
+ options?: never;
1996
+ head?: never;
1997
+ patch?: never;
1998
+ trace?: never;
1999
+ };
1953
2000
  "/projects/{projectId}/status/active.json": {
1954
2001
  parameters: {
1955
2002
  query?: never;
@@ -2265,6 +2312,42 @@ export interface paths {
2265
2312
  patch?: never;
2266
2313
  trace?: never;
2267
2314
  };
2315
+ "/recordings/{recordingId}/bubble_up.json": {
2316
+ parameters: {
2317
+ query?: never;
2318
+ header?: never;
2319
+ path?: never;
2320
+ cookie?: never;
2321
+ };
2322
+ get?: never;
2323
+ put?: never;
2324
+ /**
2325
+ * @description Bubble up a recording for the current user, resurfacing it in the current
2326
+ * user's readings (the BC5 successor to "save"). Returns 204 No Content with
2327
+ * no body.
2328
+ *
2329
+ * The `at` field controls timing. Send `"now"` to bubble up immediately, or a
2330
+ * scheduling keyword (`"today"`, `"tomorrow"`, `"weekend"`, `"next_week"`) or
2331
+ * an ISO8601 date (e.g. `"2026-09-10"`) to schedule it to resurface later.
2332
+ * NOTE: bc3 currently requires `at` — omitting it raises on the server
2333
+ * (`Date.iso8601(nil)`), so send `"now"` for the immediate case. The field is
2334
+ * modeled optional (not `@required`) so a future bc3 default (`params[:at] ||=
2335
+ * "now"`) makes omission mean "now" without an SDK change.
2336
+ *
2337
+ * Idempotent: bubbling up an already-bubbled recording is set-membership and
2338
+ * still returns 204.
2339
+ */
2340
+ post: operations["CreateBubbleUp"];
2341
+ /**
2342
+ * @description Remove the current user's bubble-up from a recording (returns 204 No Content).
2343
+ * Idempotent: popping an absent bubble-up also returns 204.
2344
+ */
2345
+ delete: operations["DeleteBubbleUp"];
2346
+ options?: never;
2347
+ head?: never;
2348
+ patch?: never;
2349
+ trace?: never;
2350
+ };
2268
2351
  "/recordings/{recordingId}/client_visibility.json": {
2269
2352
  parameters: {
2270
2353
  query?: never;
@@ -2345,6 +2428,30 @@ export interface paths {
2345
2428
  patch?: never;
2346
2429
  trace?: never;
2347
2430
  };
2431
+ "/recordings/{recordingId}/spotlight.json": {
2432
+ parameters: {
2433
+ query?: never;
2434
+ header?: never;
2435
+ path?: never;
2436
+ cookie?: never;
2437
+ };
2438
+ get?: never;
2439
+ put?: never;
2440
+ /**
2441
+ * @description Put a recording's card in the spotlight area on its project or template home page.
2442
+ * Idempotent: spotlighting an already-spotlighted recording still returns 201.
2443
+ */
2444
+ post: operations["SpotlightRecording"];
2445
+ /**
2446
+ * @description Remove a recording from the spotlight area.
2447
+ * Idempotent: removing an absent spotlight also returns 204.
2448
+ */
2449
+ delete: operations["UnspotlightRecording"];
2450
+ options?: never;
2451
+ head?: never;
2452
+ patch?: never;
2453
+ trace?: never;
2454
+ };
2348
2455
  "/recordings/{recordingId}/status/active.json": {
2349
2456
  parameters: {
2350
2457
  query?: never;
@@ -2830,6 +2937,57 @@ export interface paths {
2830
2937
  patch?: never;
2831
2938
  trace?: never;
2832
2939
  };
2940
+ "/template_library.json": {
2941
+ parameters: {
2942
+ query?: never;
2943
+ header?: never;
2944
+ path?: never;
2945
+ cookie?: never;
2946
+ };
2947
+ /** @description Get the account's to-do list template library */
2948
+ get: operations["GetTemplateLibrary"];
2949
+ put?: never;
2950
+ post?: never;
2951
+ delete?: never;
2952
+ options?: never;
2953
+ head?: never;
2954
+ patch?: never;
2955
+ trace?: never;
2956
+ };
2957
+ "/template_library/copies.json": {
2958
+ parameters: {
2959
+ query?: never;
2960
+ header?: never;
2961
+ path?: never;
2962
+ cookie?: never;
2963
+ };
2964
+ get?: never;
2965
+ put?: never;
2966
+ /** @description Start copying a to-do list template into a project */
2967
+ post: operations["CreateTemplateLibraryCopy"];
2968
+ delete?: never;
2969
+ options?: never;
2970
+ head?: never;
2971
+ patch?: never;
2972
+ trace?: never;
2973
+ };
2974
+ "/template_library/copies/{copyId}": {
2975
+ parameters: {
2976
+ query?: never;
2977
+ header?: never;
2978
+ path?: never;
2979
+ cookie?: never;
2980
+ };
2981
+ /** @description Get the current status of a to-do list template copy */
2982
+ get: operations["GetTemplateLibraryCopy"];
2983
+ put?: never;
2984
+ post?: never;
2985
+ delete?: never;
2986
+ options?: never;
2987
+ head?: never;
2988
+ patch?: never;
2989
+ trace?: never;
2990
+ };
2833
2991
  "/templates.json": {
2834
2992
  parameters: {
2835
2993
  query?: never;
@@ -3929,6 +4087,16 @@ export interface components {
3929
4087
  attachable_sgid?: string;
3930
4088
  };
3931
4089
  CreateBookmarkResponseContent: components["schemas"]["Bookmark"];
4090
+ CreateBubbleUpRequestContent: {
4091
+ /**
4092
+ * @description Timing for the bubble-up. `"now"` bubbles up immediately; a scheduling
4093
+ * keyword (`"today"`, `"tomorrow"`, `"weekend"`, `"next_week"`) or an ISO8601
4094
+ * date (e.g. `"2026-09-10"`) schedules it to resurface later. bc3 requires a
4095
+ * value — omitting `at` errors server-side (`Date.iso8601(nil)`) — so send
4096
+ * `"now"` for the immediate case.
4097
+ */
4098
+ at?: string;
4099
+ };
3932
4100
  CreateCampfireLineRequestContent: {
3933
4101
  content: string;
3934
4102
  content_type?: string;
@@ -4163,6 +4331,15 @@ export interface components {
4163
4331
  visible_to_clients?: boolean;
4164
4332
  };
4165
4333
  CreateScheduleEntryResponseContent: components["schemas"]["ScheduleEntry"];
4334
+ CreateTemplateLibraryCopyRequestContent: {
4335
+ /** Format: int64 */
4336
+ template_recording_id: number;
4337
+ /** Format: int64 */
4338
+ destination_parent_id: number;
4339
+ /** @description Confirm granting destination-project access to people referenced by the template. */
4340
+ adding_people_confirmed?: boolean;
4341
+ };
4342
+ CreateTemplateLibraryCopyResponseContent: components["schemas"]["TemplateLibraryCopy"];
4166
4343
  CreateTemplateRequestContent: {
4167
4344
  name: string;
4168
4345
  description?: string;
@@ -4789,6 +4966,8 @@ export interface components {
4789
4966
  GetScheduleResponseContent: components["schemas"]["Schedule"];
4790
4967
  GetSearchMetadataResponseContent: components["schemas"]["SearchMetadata"];
4791
4968
  GetSubscriptionResponseContent: components["schemas"]["Subscription"];
4969
+ GetTemplateLibraryCopyResponseContent: components["schemas"]["TemplateLibraryCopy"];
4970
+ GetTemplateLibraryResponseContent: components["schemas"]["TemplateLibrary"];
4792
4971
  GetTemplateResponseContent: components["schemas"]["Template"];
4793
4972
  GetTimesheetEntryResponseContent: components["schemas"]["TimesheetEntry"];
4794
4973
  GetTimesheetReportResponseContent: components["schemas"]["TimesheetEntry"][];
@@ -4937,6 +5116,7 @@ export interface components {
4937
5116
  ListProjectsResponseContent: components["schemas"]["Project"][];
4938
5117
  ListQuestionAnswerersResponseContent: components["schemas"]["Person"][];
4939
5118
  ListQuestionsResponseContent: components["schemas"]["Question"][];
5119
+ ListRecentProjectsResponseContent: components["schemas"]["Project"][];
4940
5120
  ListRecordingBoostsResponseContent: components["schemas"]["Boost"][];
4941
5121
  ListRecordingsResponseContent: components["schemas"]["Recording"][];
4942
5122
  ListScheduleEntriesResponseContent: components["schemas"]["ScheduleEntry"][];
@@ -5192,6 +5372,14 @@ export interface components {
5192
5372
  PauseQuestionResponseContent: {
5193
5373
  paused?: boolean;
5194
5374
  };
5375
+ /**
5376
+ * @description The copy requires confirmation before granting destination-project access
5377
+ * to people referenced by the template.
5378
+ */
5379
+ PeopleConfirmationRequiredErrorResponseContent: {
5380
+ error: string;
5381
+ people: components["schemas"]["TemplateLibraryConfirmationPerson"][];
5382
+ };
5195
5383
  Person: {
5196
5384
  /** Format: int64 */
5197
5385
  id: number;
@@ -5293,10 +5481,18 @@ export interface components {
5293
5481
  end_date?: string;
5294
5482
  clients_enabled?: boolean;
5295
5483
  bookmark_url?: string;
5484
+ /** @description Bucket stars collection for this project (`/buckets/{id}/stars.json`). */
5485
+ star_url?: string;
5296
5486
  url: string;
5297
5487
  app_url: string;
5298
5488
  dock?: components["schemas"]["DockItem"][];
5489
+ /**
5490
+ * @description True when the project is pinned on the current user's home page at all,
5491
+ * whether starred or filed into a stack.
5492
+ */
5299
5493
  bookmarked?: boolean;
5494
+ /** @description True only when the project carries a star on the current user's home page. */
5495
+ starred?: boolean;
5300
5496
  client_company?: components["schemas"]["ClientCompany"];
5301
5497
  /** @deprecated */
5302
5498
  clientside?: components["schemas"]["ClientSide"];
@@ -6130,6 +6326,7 @@ export interface components {
6130
6326
  visible_to_clients: boolean;
6131
6327
  };
6132
6328
  SetClientVisibilityResponseContent: components["schemas"]["Recording"];
6329
+ SpotlightRecordingResponseContent: components["schemas"]["Recording"];
6133
6330
  /**
6134
6331
  * @description The account has reached its file storage limit.
6135
6332
  *
@@ -6161,6 +6358,31 @@ export interface components {
6161
6358
  app_url?: string;
6162
6359
  dock?: components["schemas"]["DockItem"][];
6163
6360
  };
6361
+ TemplateLibrary: {
6362
+ bucket: components["schemas"]["RecordingBucket"];
6363
+ todoset: components["schemas"]["RecordingParent"];
6364
+ todolists: components["schemas"]["Todolist"][];
6365
+ };
6366
+ TemplateLibraryConfirmationPerson: {
6367
+ /** Format: int64 */
6368
+ id: number;
6369
+ /** Format: password */
6370
+ name: string;
6371
+ /** Format: password */
6372
+ avatar_url: string;
6373
+ };
6374
+ TemplateLibraryCopy: {
6375
+ /** Format: int64 */
6376
+ id: number;
6377
+ /** @description pending|processing|completed|failed */
6378
+ status: string;
6379
+ /** Format: int64 */
6380
+ source_recording_id: number;
6381
+ /** Format: int64 */
6382
+ destination_parent_id: number;
6383
+ url: string;
6384
+ destination_todolist?: components["schemas"]["Todolist"];
6385
+ };
6164
6386
  /**
6165
6387
  * @description A single timeline-event attachment. This is an optional-field superset over
6166
6388
  * two wire variants — a full Upload recording (upload-kind recordings, rendered
@@ -14975,6 +15197,62 @@ export interface operations {
14975
15197
  };
14976
15198
  };
14977
15199
  };
15200
+ ListRecentProjects: {
15201
+ parameters: {
15202
+ query?: never;
15203
+ header?: never;
15204
+ path?: never;
15205
+ cookie?: never;
15206
+ };
15207
+ requestBody?: never;
15208
+ responses: {
15209
+ /** @description ListRecentProjects 200 response */
15210
+ 200: {
15211
+ headers: {
15212
+ [name: string]: unknown;
15213
+ };
15214
+ content: {
15215
+ "application/json": components["schemas"]["ListRecentProjectsResponseContent"];
15216
+ };
15217
+ };
15218
+ /** @description UnauthorizedError 401 response */
15219
+ 401: {
15220
+ headers: {
15221
+ [name: string]: unknown;
15222
+ };
15223
+ content: {
15224
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
15225
+ };
15226
+ };
15227
+ /** @description ForbiddenError 403 response */
15228
+ 403: {
15229
+ headers: {
15230
+ [name: string]: unknown;
15231
+ };
15232
+ content: {
15233
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
15234
+ };
15235
+ };
15236
+ /** @description RateLimitError 429 response */
15237
+ 429: {
15238
+ headers: {
15239
+ [name: string]: unknown;
15240
+ };
15241
+ content: {
15242
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
15243
+ };
15244
+ };
15245
+ /** @description InternalServerError 500 response */
15246
+ 500: {
15247
+ headers: {
15248
+ [name: string]: unknown;
15249
+ };
15250
+ content: {
15251
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
15252
+ };
15253
+ };
15254
+ };
15255
+ };
14978
15256
  MarkAsRead: {
14979
15257
  parameters: {
14980
15258
  query?: never;
@@ -16069,6 +16347,71 @@ export interface operations {
16069
16347
  };
16070
16348
  };
16071
16349
  };
16350
+ RecordProjectVisit: {
16351
+ parameters: {
16352
+ query?: never;
16353
+ header?: never;
16354
+ path: {
16355
+ projectId: number;
16356
+ };
16357
+ cookie?: never;
16358
+ };
16359
+ requestBody?: never;
16360
+ responses: {
16361
+ /** @description RecordProjectVisit 204 response */
16362
+ 204: {
16363
+ headers: {
16364
+ [name: string]: unknown;
16365
+ };
16366
+ content?: never;
16367
+ };
16368
+ /** @description UnauthorizedError 401 response */
16369
+ 401: {
16370
+ headers: {
16371
+ [name: string]: unknown;
16372
+ };
16373
+ content: {
16374
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
16375
+ };
16376
+ };
16377
+ /** @description ForbiddenError 403 response */
16378
+ 403: {
16379
+ headers: {
16380
+ [name: string]: unknown;
16381
+ };
16382
+ content: {
16383
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
16384
+ };
16385
+ };
16386
+ /** @description NotFoundError 404 response */
16387
+ 404: {
16388
+ headers: {
16389
+ [name: string]: unknown;
16390
+ };
16391
+ content: {
16392
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
16393
+ };
16394
+ };
16395
+ /** @description RateLimitError 429 response */
16396
+ 429: {
16397
+ headers: {
16398
+ [name: string]: unknown;
16399
+ };
16400
+ content: {
16401
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
16402
+ };
16403
+ };
16404
+ /** @description InternalServerError 500 response */
16405
+ 500: {
16406
+ headers: {
16407
+ [name: string]: unknown;
16408
+ };
16409
+ content: {
16410
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
16411
+ };
16412
+ };
16413
+ };
16414
+ };
16072
16415
  UnarchiveProject: {
16073
16416
  parameters: {
16074
16417
  query?: never;
@@ -17688,7 +18031,7 @@ export interface operations {
17688
18031
  };
17689
18032
  };
17690
18033
  };
17691
- SetClientVisibility: {
18034
+ CreateBubbleUp: {
17692
18035
  parameters: {
17693
18036
  query?: never;
17694
18037
  header?: never;
@@ -17697,7 +18040,141 @@ export interface operations {
17697
18040
  };
17698
18041
  cookie?: never;
17699
18042
  };
17700
- requestBody: {
18043
+ requestBody?: {
18044
+ content: {
18045
+ "application/json": components["schemas"]["CreateBubbleUpRequestContent"];
18046
+ };
18047
+ };
18048
+ responses: {
18049
+ /** @description CreateBubbleUp 204 response */
18050
+ 204: {
18051
+ headers: {
18052
+ [name: string]: unknown;
18053
+ };
18054
+ content?: never;
18055
+ };
18056
+ /** @description UnauthorizedError 401 response */
18057
+ 401: {
18058
+ headers: {
18059
+ [name: string]: unknown;
18060
+ };
18061
+ content: {
18062
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
18063
+ };
18064
+ };
18065
+ /** @description ForbiddenError 403 response */
18066
+ 403: {
18067
+ headers: {
18068
+ [name: string]: unknown;
18069
+ };
18070
+ content: {
18071
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18072
+ };
18073
+ };
18074
+ /** @description NotFoundError 404 response */
18075
+ 404: {
18076
+ headers: {
18077
+ [name: string]: unknown;
18078
+ };
18079
+ content: {
18080
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18081
+ };
18082
+ };
18083
+ /** @description RateLimitError 429 response */
18084
+ 429: {
18085
+ headers: {
18086
+ [name: string]: unknown;
18087
+ };
18088
+ content: {
18089
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
18090
+ };
18091
+ };
18092
+ /** @description InternalServerError 500 response */
18093
+ 500: {
18094
+ headers: {
18095
+ [name: string]: unknown;
18096
+ };
18097
+ content: {
18098
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
18099
+ };
18100
+ };
18101
+ };
18102
+ };
18103
+ DeleteBubbleUp: {
18104
+ parameters: {
18105
+ query?: never;
18106
+ header?: never;
18107
+ path: {
18108
+ recordingId: number;
18109
+ };
18110
+ cookie?: never;
18111
+ };
18112
+ requestBody?: never;
18113
+ responses: {
18114
+ /** @description DeleteBubbleUp 204 response */
18115
+ 204: {
18116
+ headers: {
18117
+ [name: string]: unknown;
18118
+ };
18119
+ content?: never;
18120
+ };
18121
+ /** @description UnauthorizedError 401 response */
18122
+ 401: {
18123
+ headers: {
18124
+ [name: string]: unknown;
18125
+ };
18126
+ content: {
18127
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
18128
+ };
18129
+ };
18130
+ /** @description ForbiddenError 403 response */
18131
+ 403: {
18132
+ headers: {
18133
+ [name: string]: unknown;
18134
+ };
18135
+ content: {
18136
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18137
+ };
18138
+ };
18139
+ /** @description NotFoundError 404 response */
18140
+ 404: {
18141
+ headers: {
18142
+ [name: string]: unknown;
18143
+ };
18144
+ content: {
18145
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18146
+ };
18147
+ };
18148
+ /** @description RateLimitError 429 response */
18149
+ 429: {
18150
+ headers: {
18151
+ [name: string]: unknown;
18152
+ };
18153
+ content: {
18154
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
18155
+ };
18156
+ };
18157
+ /** @description InternalServerError 500 response */
18158
+ 500: {
18159
+ headers: {
18160
+ [name: string]: unknown;
18161
+ };
18162
+ content: {
18163
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
18164
+ };
18165
+ };
18166
+ };
18167
+ };
18168
+ SetClientVisibility: {
18169
+ parameters: {
18170
+ query?: never;
18171
+ header?: never;
18172
+ path: {
18173
+ recordingId: number;
18174
+ };
18175
+ cookie?: never;
18176
+ };
18177
+ requestBody: {
17701
18178
  content: {
17702
18179
  "application/json": components["schemas"]["SetClientVisibilityRequestContent"];
17703
18180
  };
@@ -18086,6 +18563,147 @@ export interface operations {
18086
18563
  };
18087
18564
  };
18088
18565
  };
18566
+ SpotlightRecording: {
18567
+ parameters: {
18568
+ query?: never;
18569
+ header?: never;
18570
+ path: {
18571
+ recordingId: number;
18572
+ };
18573
+ cookie?: never;
18574
+ };
18575
+ requestBody?: never;
18576
+ responses: {
18577
+ /** @description SpotlightRecording 201 response */
18578
+ 201: {
18579
+ headers: {
18580
+ [name: string]: unknown;
18581
+ };
18582
+ content: {
18583
+ "application/json": components["schemas"]["SpotlightRecordingResponseContent"];
18584
+ };
18585
+ };
18586
+ /** @description UnauthorizedError 401 response */
18587
+ 401: {
18588
+ headers: {
18589
+ [name: string]: unknown;
18590
+ };
18591
+ content: {
18592
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
18593
+ };
18594
+ };
18595
+ /** @description ForbiddenError 403 response */
18596
+ 403: {
18597
+ headers: {
18598
+ [name: string]: unknown;
18599
+ };
18600
+ content: {
18601
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18602
+ };
18603
+ };
18604
+ /** @description NotFoundError 404 response */
18605
+ 404: {
18606
+ headers: {
18607
+ [name: string]: unknown;
18608
+ };
18609
+ content: {
18610
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18611
+ };
18612
+ };
18613
+ /** @description ValidationError 422 response */
18614
+ 422: {
18615
+ headers: {
18616
+ [name: string]: unknown;
18617
+ };
18618
+ content: {
18619
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
18620
+ };
18621
+ };
18622
+ /** @description RateLimitError 429 response */
18623
+ 429: {
18624
+ headers: {
18625
+ [name: string]: unknown;
18626
+ };
18627
+ content: {
18628
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
18629
+ };
18630
+ };
18631
+ /** @description InternalServerError 500 response */
18632
+ 500: {
18633
+ headers: {
18634
+ [name: string]: unknown;
18635
+ };
18636
+ content: {
18637
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
18638
+ };
18639
+ };
18640
+ };
18641
+ };
18642
+ UnspotlightRecording: {
18643
+ parameters: {
18644
+ query?: never;
18645
+ header?: never;
18646
+ path: {
18647
+ recordingId: number;
18648
+ };
18649
+ cookie?: never;
18650
+ };
18651
+ requestBody?: never;
18652
+ responses: {
18653
+ /** @description UnspotlightRecording 204 response */
18654
+ 204: {
18655
+ headers: {
18656
+ [name: string]: unknown;
18657
+ };
18658
+ content?: never;
18659
+ };
18660
+ /** @description UnauthorizedError 401 response */
18661
+ 401: {
18662
+ headers: {
18663
+ [name: string]: unknown;
18664
+ };
18665
+ content: {
18666
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
18667
+ };
18668
+ };
18669
+ /** @description ForbiddenError 403 response */
18670
+ 403: {
18671
+ headers: {
18672
+ [name: string]: unknown;
18673
+ };
18674
+ content: {
18675
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
18676
+ };
18677
+ };
18678
+ /** @description NotFoundError 404 response */
18679
+ 404: {
18680
+ headers: {
18681
+ [name: string]: unknown;
18682
+ };
18683
+ content: {
18684
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
18685
+ };
18686
+ };
18687
+ /** @description RateLimitError 429 response */
18688
+ 429: {
18689
+ headers: {
18690
+ [name: string]: unknown;
18691
+ };
18692
+ content: {
18693
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
18694
+ };
18695
+ };
18696
+ /** @description InternalServerError 500 response */
18697
+ 500: {
18698
+ headers: {
18699
+ [name: string]: unknown;
18700
+ };
18701
+ content: {
18702
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
18703
+ };
18704
+ };
18705
+ };
18706
+ };
18089
18707
  UnarchiveRecording: {
18090
18708
  parameters: {
18091
18709
  query?: never;
@@ -20293,6 +20911,207 @@ export interface operations {
20293
20911
  };
20294
20912
  };
20295
20913
  };
20914
+ GetTemplateLibrary: {
20915
+ parameters: {
20916
+ query?: never;
20917
+ header?: never;
20918
+ path?: never;
20919
+ cookie?: never;
20920
+ };
20921
+ requestBody?: never;
20922
+ responses: {
20923
+ /** @description GetTemplateLibrary 200 response */
20924
+ 200: {
20925
+ headers: {
20926
+ [name: string]: unknown;
20927
+ };
20928
+ content: {
20929
+ "application/json": components["schemas"]["GetTemplateLibraryResponseContent"];
20930
+ };
20931
+ };
20932
+ /** @description UnauthorizedError 401 response */
20933
+ 401: {
20934
+ headers: {
20935
+ [name: string]: unknown;
20936
+ };
20937
+ content: {
20938
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
20939
+ };
20940
+ };
20941
+ /** @description ForbiddenError 403 response */
20942
+ 403: {
20943
+ headers: {
20944
+ [name: string]: unknown;
20945
+ };
20946
+ content: {
20947
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
20948
+ };
20949
+ };
20950
+ /** @description RateLimitError 429 response */
20951
+ 429: {
20952
+ headers: {
20953
+ [name: string]: unknown;
20954
+ };
20955
+ content: {
20956
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
20957
+ };
20958
+ };
20959
+ /** @description InternalServerError 500 response */
20960
+ 500: {
20961
+ headers: {
20962
+ [name: string]: unknown;
20963
+ };
20964
+ content: {
20965
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
20966
+ };
20967
+ };
20968
+ };
20969
+ };
20970
+ CreateTemplateLibraryCopy: {
20971
+ parameters: {
20972
+ query?: never;
20973
+ header?: never;
20974
+ path?: never;
20975
+ cookie?: never;
20976
+ };
20977
+ requestBody: {
20978
+ content: {
20979
+ "application/json": components["schemas"]["CreateTemplateLibraryCopyRequestContent"];
20980
+ };
20981
+ };
20982
+ responses: {
20983
+ /** @description CreateTemplateLibraryCopy 201 response */
20984
+ 201: {
20985
+ headers: {
20986
+ [name: string]: unknown;
20987
+ };
20988
+ content: {
20989
+ "application/json": components["schemas"]["CreateTemplateLibraryCopyResponseContent"];
20990
+ };
20991
+ };
20992
+ /** @description UnauthorizedError 401 response */
20993
+ 401: {
20994
+ headers: {
20995
+ [name: string]: unknown;
20996
+ };
20997
+ content: {
20998
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
20999
+ };
21000
+ };
21001
+ /** @description ForbiddenError 403 response */
21002
+ 403: {
21003
+ headers: {
21004
+ [name: string]: unknown;
21005
+ };
21006
+ content: {
21007
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
21008
+ };
21009
+ };
21010
+ /** @description NotFoundError 404 response */
21011
+ 404: {
21012
+ headers: {
21013
+ [name: string]: unknown;
21014
+ };
21015
+ content: {
21016
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
21017
+ };
21018
+ };
21019
+ /** @description PeopleConfirmationRequiredError 422 response */
21020
+ 422: {
21021
+ headers: {
21022
+ [name: string]: unknown;
21023
+ };
21024
+ content: {
21025
+ "application/json": components["schemas"]["PeopleConfirmationRequiredErrorResponseContent"];
21026
+ };
21027
+ };
21028
+ /** @description RateLimitError 429 response */
21029
+ 429: {
21030
+ headers: {
21031
+ [name: string]: unknown;
21032
+ };
21033
+ content: {
21034
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
21035
+ };
21036
+ };
21037
+ /** @description InternalServerError 500 response */
21038
+ 500: {
21039
+ headers: {
21040
+ [name: string]: unknown;
21041
+ };
21042
+ content: {
21043
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
21044
+ };
21045
+ };
21046
+ };
21047
+ };
21048
+ GetTemplateLibraryCopy: {
21049
+ parameters: {
21050
+ query?: never;
21051
+ header?: never;
21052
+ path: {
21053
+ copyId: number;
21054
+ };
21055
+ cookie?: never;
21056
+ };
21057
+ requestBody?: never;
21058
+ responses: {
21059
+ /** @description GetTemplateLibraryCopy 200 response */
21060
+ 200: {
21061
+ headers: {
21062
+ [name: string]: unknown;
21063
+ };
21064
+ content: {
21065
+ "application/json": components["schemas"]["GetTemplateLibraryCopyResponseContent"];
21066
+ };
21067
+ };
21068
+ /** @description UnauthorizedError 401 response */
21069
+ 401: {
21070
+ headers: {
21071
+ [name: string]: unknown;
21072
+ };
21073
+ content: {
21074
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
21075
+ };
21076
+ };
21077
+ /** @description ForbiddenError 403 response */
21078
+ 403: {
21079
+ headers: {
21080
+ [name: string]: unknown;
21081
+ };
21082
+ content: {
21083
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
21084
+ };
21085
+ };
21086
+ /** @description NotFoundError 404 response */
21087
+ 404: {
21088
+ headers: {
21089
+ [name: string]: unknown;
21090
+ };
21091
+ content: {
21092
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
21093
+ };
21094
+ };
21095
+ /** @description RateLimitError 429 response */
21096
+ 429: {
21097
+ headers: {
21098
+ [name: string]: unknown;
21099
+ };
21100
+ content: {
21101
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
21102
+ };
21103
+ };
21104
+ /** @description InternalServerError 500 response */
21105
+ 500: {
21106
+ headers: {
21107
+ [name: string]: unknown;
21108
+ };
21109
+ content: {
21110
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
21111
+ };
21112
+ };
21113
+ };
21114
+ };
20296
21115
  ListTemplates: {
20297
21116
  parameters: {
20298
21117
  query?: {