@37signals/basecamp 0.7.3 → 0.9.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 (162) hide show
  1. package/README.md +82 -2
  2. package/dist/client.d.ts +7 -4
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +32 -23
  5. package/dist/client.js.map +1 -1
  6. package/dist/download.d.ts.map +1 -1
  7. package/dist/errors.d.ts +10 -0
  8. package/dist/errors.d.ts.map +1 -1
  9. package/dist/errors.js +7 -1
  10. package/dist/errors.js.map +1 -1
  11. package/dist/generated/metadata.d.ts +32 -0
  12. package/dist/generated/metadata.d.ts.map +1 -0
  13. package/dist/generated/metadata.js +2723 -0
  14. package/dist/generated/metadata.js.map +1 -0
  15. package/dist/generated/{metadata.json → metadata.ts} +141 -35
  16. package/dist/generated/openapi-stripped.json +1713 -478
  17. package/dist/generated/path-mapping.d.ts.map +1 -1
  18. package/dist/generated/path-mapping.js +10 -5
  19. package/dist/generated/path-mapping.js.map +1 -1
  20. package/dist/generated/path-mapping.ts +10 -5
  21. package/dist/generated/schema.d.ts +1027 -265
  22. package/dist/generated/services/campfires.d.ts +22 -1
  23. package/dist/generated/services/campfires.d.ts.map +1 -1
  24. package/dist/generated/services/campfires.js +33 -1
  25. package/dist/generated/services/campfires.js.map +1 -1
  26. package/dist/generated/services/campfires.ts +46 -1
  27. package/dist/generated/services/card-columns.d.ts +31 -28
  28. package/dist/generated/services/card-columns.d.ts.map +1 -1
  29. package/dist/generated/services/card-columns.js +57 -51
  30. package/dist/generated/services/card-columns.js.map +1 -1
  31. package/dist/generated/services/card-columns.ts +65 -59
  32. package/dist/generated/services/checkins.d.ts +3 -1
  33. package/dist/generated/services/checkins.d.ts.map +1 -1
  34. package/dist/generated/services/checkins.js +2 -1
  35. package/dist/generated/services/checkins.js.map +1 -1
  36. package/dist/generated/services/checkins.ts +4 -1
  37. package/dist/generated/services/documents.d.ts +2 -0
  38. package/dist/generated/services/documents.d.ts.map +1 -1
  39. package/dist/generated/services/documents.js +1 -0
  40. package/dist/generated/services/documents.js.map +1 -1
  41. package/dist/generated/services/documents.ts +3 -0
  42. package/dist/generated/services/gauges.d.ts +2 -2
  43. package/dist/generated/services/gauges.js +2 -2
  44. package/dist/generated/services/gauges.ts +2 -2
  45. package/dist/generated/services/index.d.ts +3 -2
  46. package/dist/generated/services/index.d.ts.map +1 -1
  47. package/dist/generated/services/index.js +3 -2
  48. package/dist/generated/services/index.js.map +1 -1
  49. package/dist/generated/services/index.ts +3 -2
  50. package/dist/generated/services/messages.d.ts +2 -0
  51. package/dist/generated/services/messages.d.ts.map +1 -1
  52. package/dist/generated/services/messages.js +1 -0
  53. package/dist/generated/services/messages.js.map +1 -1
  54. package/dist/generated/services/messages.ts +3 -0
  55. package/dist/generated/services/people.d.ts +2 -2
  56. package/dist/generated/services/people.js +2 -2
  57. package/dist/generated/services/people.ts +2 -2
  58. package/dist/generated/services/reports.d.ts +1 -1
  59. package/dist/generated/services/reports.js +1 -1
  60. package/dist/generated/services/reports.ts +1 -1
  61. package/dist/generated/services/schedules.d.ts +2 -0
  62. package/dist/generated/services/schedules.d.ts.map +1 -1
  63. package/dist/generated/services/schedules.js +1 -0
  64. package/dist/generated/services/schedules.js.map +1 -1
  65. package/dist/generated/services/schedules.ts +3 -0
  66. package/dist/generated/services/search.d.ts +30 -1
  67. package/dist/generated/services/search.d.ts.map +1 -1
  68. package/dist/generated/services/search.js +1 -1
  69. package/dist/generated/services/search.js.map +1 -1
  70. package/dist/generated/services/search.ts +31 -2
  71. package/dist/generated/services/templates.d.ts +3 -5
  72. package/dist/generated/services/templates.d.ts.map +1 -1
  73. package/dist/generated/services/templates.js +4 -5
  74. package/dist/generated/services/templates.js.map +1 -1
  75. package/dist/generated/services/templates.ts +6 -9
  76. package/dist/generated/services/todolists.d.ts +22 -0
  77. package/dist/generated/services/todolists.d.ts.map +1 -1
  78. package/dist/generated/services/todolists.js +31 -0
  79. package/dist/generated/services/todolists.js.map +1 -1
  80. package/dist/generated/services/todolists.ts +46 -0
  81. package/dist/generated/services/todos.d.ts +8 -8
  82. package/dist/generated/services/todos.d.ts.map +1 -1
  83. package/dist/generated/services/todos.js +9 -6
  84. package/dist/generated/services/todos.js.map +1 -1
  85. package/dist/generated/services/todos.ts +12 -9
  86. package/dist/generated/services/tools.d.ts +11 -10
  87. package/dist/generated/services/tools.d.ts.map +1 -1
  88. package/dist/generated/services/tools.js +16 -8
  89. package/dist/generated/services/tools.js.map +1 -1
  90. package/dist/generated/services/tools.ts +21 -13
  91. package/dist/generated/services/uploads.d.ts +2 -0
  92. package/dist/generated/services/uploads.d.ts.map +1 -1
  93. package/dist/generated/services/uploads.js +1 -0
  94. package/dist/generated/services/uploads.js.map +1 -1
  95. package/dist/generated/services/uploads.ts +3 -0
  96. package/dist/generated/services/webhooks.js +2 -2
  97. package/dist/generated/services/webhooks.js.map +1 -1
  98. package/dist/generated/services/webhooks.ts +2 -2
  99. package/dist/generated/services/wormholes.d.ts +70 -0
  100. package/dist/generated/services/wormholes.d.ts.map +1 -0
  101. package/dist/generated/services/wormholes.js +103 -0
  102. package/dist/generated/services/wormholes.js.map +1 -0
  103. package/dist/generated/services/wormholes.ts +145 -0
  104. package/dist/index.d.ts +8 -5
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +4 -3
  107. package/dist/index.js.map +1 -1
  108. package/dist/oauth/discovery.d.ts +105 -23
  109. package/dist/oauth/discovery.d.ts.map +1 -1
  110. package/dist/oauth/discovery.js +453 -61
  111. package/dist/oauth/discovery.js.map +1 -1
  112. package/dist/oauth/index.d.ts +2 -2
  113. package/dist/oauth/index.d.ts.map +1 -1
  114. package/dist/oauth/index.js +1 -1
  115. package/dist/oauth/index.js.map +1 -1
  116. package/dist/oauth/interactive-login.d.ts +20 -2
  117. package/dist/oauth/interactive-login.d.ts.map +1 -1
  118. package/dist/oauth/interactive-login.js +58 -4
  119. package/dist/oauth/interactive-login.js.map +1 -1
  120. package/dist/oauth/types.d.ts +54 -2
  121. package/dist/oauth/types.d.ts.map +1 -1
  122. package/dist/security.d.ts +22 -0
  123. package/dist/security.d.ts.map +1 -1
  124. package/dist/security.js +56 -1
  125. package/dist/security.js.map +1 -1
  126. package/dist/services/authorization.d.ts.map +1 -1
  127. package/dist/services/authorization.js +3 -0
  128. package/dist/services/authorization.js.map +1 -1
  129. package/dist/services/base.d.ts.map +1 -1
  130. package/dist/services/base.js +1 -3
  131. package/dist/services/base.js.map +1 -1
  132. package/dist/services/todos-extensions.d.ts +118 -0
  133. package/dist/services/todos-extensions.d.ts.map +1 -0
  134. package/dist/services/todos-extensions.js +113 -0
  135. package/dist/services/todos-extensions.js.map +1 -0
  136. package/dist/services/uploads-extensions.d.ts +33 -0
  137. package/dist/services/uploads-extensions.d.ts.map +1 -0
  138. package/dist/services/uploads-extensions.js +48 -0
  139. package/dist/services/uploads-extensions.js.map +1 -0
  140. package/package.json +7 -4
  141. package/src/generated/{metadata.json → metadata.ts} +141 -35
  142. package/src/generated/openapi-stripped.json +1713 -478
  143. package/src/generated/path-mapping.ts +10 -5
  144. package/src/generated/schema.d.ts +1027 -265
  145. package/src/generated/services/campfires.ts +46 -1
  146. package/src/generated/services/card-columns.ts +65 -59
  147. package/src/generated/services/checkins.ts +4 -1
  148. package/src/generated/services/documents.ts +3 -0
  149. package/src/generated/services/gauges.ts +2 -2
  150. package/src/generated/services/index.ts +3 -2
  151. package/src/generated/services/messages.ts +3 -0
  152. package/src/generated/services/people.ts +2 -2
  153. package/src/generated/services/reports.ts +1 -1
  154. package/src/generated/services/schedules.ts +3 -0
  155. package/src/generated/services/search.ts +31 -2
  156. package/src/generated/services/templates.ts +6 -9
  157. package/src/generated/services/todolists.ts +46 -0
  158. package/src/generated/services/todos.ts +12 -9
  159. package/src/generated/services/tools.ts +21 -13
  160. package/src/generated/services/uploads.ts +3 -0
  161. package/src/generated/services/webhooks.ts +2 -2
  162. package/src/generated/services/wormholes.ts +145 -0
@@ -95,6 +95,99 @@ export interface paths {
95
95
  patch?: never;
96
96
  trace?: never;
97
97
  };
98
+ "/buckets/{bucketId}/card_tables/columns/{columnId}/color.json": {
99
+ parameters: {
100
+ query?: never;
101
+ header?: never;
102
+ path?: never;
103
+ cookie?: never;
104
+ };
105
+ get?: never;
106
+ /** @description Set the color of a column */
107
+ put: operations["SetCardColumnColor"];
108
+ post?: never;
109
+ delete?: never;
110
+ options?: never;
111
+ head?: never;
112
+ patch?: never;
113
+ trace?: never;
114
+ };
115
+ "/buckets/{bucketId}/card_tables/columns/{columnId}/on_hold.json": {
116
+ parameters: {
117
+ query?: never;
118
+ header?: never;
119
+ path?: never;
120
+ cookie?: never;
121
+ };
122
+ get?: never;
123
+ put?: never;
124
+ /** @description Enable on-hold section in a column */
125
+ post: operations["EnableCardColumnOnHold"];
126
+ /** @description Disable on-hold section in a column */
127
+ delete: operations["DisableCardColumnOnHold"];
128
+ options?: never;
129
+ head?: never;
130
+ patch?: never;
131
+ trace?: never;
132
+ };
133
+ "/buckets/{bucketId}/card_tables/wormholes/{wormholeId}": {
134
+ parameters: {
135
+ query?: never;
136
+ header?: never;
137
+ path?: never;
138
+ cookie?: never;
139
+ };
140
+ get?: never;
141
+ /** @description Update a wormhole's destination column */
142
+ put: operations["UpdateWormhole"];
143
+ post?: never;
144
+ /** @description Delete a wormhole */
145
+ delete: operations["DeleteWormhole"];
146
+ options?: never;
147
+ head?: never;
148
+ patch?: never;
149
+ trace?: never;
150
+ };
151
+ "/buckets/{bucketId}/card_tables/{cardTableId}/wormholes.json": {
152
+ parameters: {
153
+ query?: never;
154
+ header?: never;
155
+ path?: never;
156
+ cookie?: never;
157
+ };
158
+ get?: never;
159
+ put?: never;
160
+ /**
161
+ * @description Create a wormhole linking this card table to a column on another card table.
162
+ *
163
+ * A wormhole is the only mechanism for moving a card to a different project: its
164
+ * id is a valid `column_id` for MoveCard, teleporting the card across projects.
165
+ * `destinationRecordingId` is the id of a column on another accessible card table.
166
+ */
167
+ post: operations["CreateWormhole"];
168
+ delete?: never;
169
+ options?: never;
170
+ head?: never;
171
+ patch?: never;
172
+ trace?: never;
173
+ };
174
+ "/buckets/{bucketId}/dock/tools.json": {
175
+ parameters: {
176
+ query?: never;
177
+ header?: never;
178
+ path?: never;
179
+ cookie?: never;
180
+ };
181
+ get?: never;
182
+ put?: never;
183
+ /** @description Create a tool in a project dock */
184
+ post: operations["CreateTool"];
185
+ delete?: never;
186
+ options?: never;
187
+ head?: never;
188
+ patch?: never;
189
+ trace?: never;
190
+ };
98
191
  "/buckets/{bucketId}/webhooks.json": {
99
192
  parameters: {
100
193
  query?: never;
@@ -205,41 +298,6 @@ export interface paths {
205
298
  patch?: never;
206
299
  trace?: never;
207
300
  };
208
- "/card_tables/columns/{columnId}/color.json": {
209
- parameters: {
210
- query?: never;
211
- header?: never;
212
- path?: never;
213
- cookie?: never;
214
- };
215
- get?: never;
216
- /** @description Set the color of a column */
217
- put: operations["SetCardColumnColor"];
218
- post?: never;
219
- delete?: never;
220
- options?: never;
221
- head?: never;
222
- patch?: never;
223
- trace?: never;
224
- };
225
- "/card_tables/columns/{columnId}/on_hold.json": {
226
- parameters: {
227
- query?: never;
228
- header?: never;
229
- path?: never;
230
- cookie?: never;
231
- };
232
- get?: never;
233
- put?: never;
234
- /** @description Enable on-hold section in a column */
235
- post: operations["EnableCardColumnOnHold"];
236
- /** @description Disable on-hold section in a column */
237
- delete: operations["DisableCardColumnOnHold"];
238
- options?: never;
239
- head?: never;
240
- patch?: never;
241
- trace?: never;
242
- };
243
301
  "/card_tables/lists/{columnId}/cards.json": {
244
302
  parameters: {
245
303
  query?: never;
@@ -522,9 +580,18 @@ export interface paths {
522
580
  };
523
581
  /** @description Get a campfire line by ID */
524
582
  get: operations["GetCampfireLine"];
525
- put?: never;
583
+ /**
584
+ * @description Update an existing campfire line; the content is always treated as rich text (HTML).
585
+ * The server coerces every edited line to rich text and ignores any content
586
+ * type hint. Only the line's creator may edit it, and only text and
587
+ * rich-text lines are editable.
588
+ */
589
+ put: operations["UpdateCampfireLine"];
526
590
  post?: never;
527
- /** @description Delete a campfire line */
591
+ /**
592
+ * @description Delete a campfire line; allowed for the line's creator or an admin.
593
+ * The API responds 403 Forbidden otherwise.
594
+ */
528
595
  delete: operations["DeleteCampfireLine"];
529
596
  options?: never;
530
597
  head?: never;
@@ -711,23 +778,6 @@ export interface paths {
711
778
  patch?: never;
712
779
  trace?: never;
713
780
  };
714
- "/dock/tools.json": {
715
- parameters: {
716
- query?: never;
717
- header?: never;
718
- path?: never;
719
- cookie?: never;
720
- };
721
- get?: never;
722
- put?: never;
723
- /** @description Clone an existing tool to create a new one */
724
- post: operations["CloneTool"];
725
- delete?: never;
726
- options?: never;
727
- head?: never;
728
- patch?: never;
729
- trace?: never;
730
- };
731
781
  "/dock/tools/{toolId}": {
732
782
  parameters: {
733
783
  query?: never;
@@ -1104,8 +1154,10 @@ export interface paths {
1104
1154
  };
1105
1155
  /**
1106
1156
  * @description Get the current user's notification inbox (the "Hey!" menu).
1107
- * Notifications are grouped into unreads, reads, and memories.
1108
- * Reads are paginated (50 per page). Unreads are capped at 100.
1157
+ * Notifications are grouped into unreads, reads, bubble-ups, and
1158
+ * scheduled bubble-ups (`memories` remains as an always-empty
1159
+ * placeholder on BC5). Reads are paginated (50 per page). Unreads are
1160
+ * capped at 100. Bubble-ups are capped per `limit_bubble_ups`.
1109
1161
  */
1110
1162
  get: operations["GetMyNotifications"];
1111
1163
  put?: never;
@@ -1848,7 +1900,11 @@ export interface paths {
1848
1900
  path?: never;
1849
1901
  cookie?: never;
1850
1902
  };
1851
- /** @description Get upcoming schedule entries within a date window */
1903
+ /**
1904
+ * @description Get upcoming schedule entries and assignable items within a date window.
1905
+ * This endpoint is preserved as the canonical API path on BC5;
1906
+ * the BC5 `/calendar` web view is HTML-only.
1907
+ */
1852
1908
  get: operations["GetUpcomingSchedule"];
1853
1909
  put?: never;
1854
1910
  post?: never;
@@ -2247,8 +2303,19 @@ export interface paths {
2247
2303
  };
2248
2304
  /** @description Get a single todo by id */
2249
2305
  get: operations["GetTodo"];
2250
- /** @description Update an existing todo */
2251
- put: operations["UpdateTodo"];
2306
+ /**
2307
+ * @description Replace a todo with a new complete representation.
2308
+ * The request body is the todo's full writable state: any writable field
2309
+ * omitted from the request is cleared server-side (empty/missing
2310
+ * assignee_ids clears assignees, missing description clears it, and so
2311
+ * on). content is required — a request without it is rejected.
2312
+ * To set some fields while preserving the rest, use the SDK's merge-safe
2313
+ * update or edit methods, which GET the current todo and PUT the full
2314
+ * representation back. Those read-modify-write helpers are not atomic:
2315
+ * a concurrent write between the GET and PUT is overwritten (last write
2316
+ * wins for the whole representation; the window is one round-trip).
2317
+ */
2318
+ put: operations["ReplaceTodo"];
2252
2319
  post?: never;
2253
2320
  /** @description Trash a todo (returns 204 No Content) */
2254
2321
  delete: operations["TrashTodo"];
@@ -2292,6 +2359,27 @@ export interface paths {
2292
2359
  patch?: never;
2293
2360
  trace?: never;
2294
2361
  };
2362
+ "/todosets/todolists/{todolistId}/position.json": {
2363
+ parameters: {
2364
+ query?: never;
2365
+ header?: never;
2366
+ path?: never;
2367
+ cookie?: never;
2368
+ };
2369
+ get?: never;
2370
+ /**
2371
+ * @description Reposition a to-do list within its to-do set.
2372
+ * position is the 1-based index among the to-do lists the caller can see; the server
2373
+ * translates it relative to loose to-dos and hidden completed lists. Shifts siblings.
2374
+ */
2375
+ put: operations["RepositionTodolist"];
2376
+ post?: never;
2377
+ delete?: never;
2378
+ options?: never;
2379
+ head?: never;
2380
+ patch?: never;
2381
+ trace?: never;
2382
+ };
2295
2383
  "/todosets/{todosetId}": {
2296
2384
  parameters: {
2297
2385
  query?: never;
@@ -2654,6 +2742,7 @@ export interface components {
2654
2742
  position?: number;
2655
2743
  content?: string;
2656
2744
  description?: string;
2745
+ description_attachments: components["schemas"]["RichTextAttachment"][];
2657
2746
  due_on?: string;
2658
2747
  completed?: boolean;
2659
2748
  completed_at?: string;
@@ -2755,6 +2844,7 @@ export interface components {
2755
2844
  creator: components["schemas"]["Person"];
2756
2845
  subscribers?: components["schemas"]["Person"][];
2757
2846
  lists?: components["schemas"]["CardColumn"][];
2847
+ wormholes?: components["schemas"]["Wormhole"][];
2758
2848
  };
2759
2849
  Chatbot: {
2760
2850
  /** Format: int64 */
@@ -2785,6 +2875,7 @@ export interface components {
2785
2875
  bucket: components["schemas"]["RecordingBucket"];
2786
2876
  creator: components["schemas"]["Person"];
2787
2877
  content?: string;
2878
+ content_attachments: components["schemas"]["RichTextAttachment"][];
2788
2879
  subject?: string;
2789
2880
  due_on?: string;
2790
2881
  /** Format: int32 */
@@ -2835,6 +2926,7 @@ export interface components {
2835
2926
  bucket: components["schemas"]["RecordingBucket"];
2836
2927
  creator: components["schemas"]["Person"];
2837
2928
  content?: string;
2929
+ content_attachments: components["schemas"]["RichTextAttachment"][];
2838
2930
  subject: string;
2839
2931
  /** Format: int32 */
2840
2932
  replies_count?: number;
@@ -2857,6 +2949,7 @@ export interface components {
2857
2949
  bucket: components["schemas"]["RecordingBucket"];
2858
2950
  creator: components["schemas"]["Person"];
2859
2951
  content: string;
2952
+ content_attachments: components["schemas"]["RichTextAttachment"][];
2860
2953
  };
2861
2954
  /**
2862
2955
  * @deprecated
@@ -2866,12 +2959,6 @@ export interface components {
2866
2959
  url?: string;
2867
2960
  app_url?: string;
2868
2961
  };
2869
- CloneToolRequestContent: {
2870
- /** Format: int64 */
2871
- source_recording_id: number;
2872
- title?: string;
2873
- };
2874
- CloneToolResponseContent: components["schemas"]["Tool"];
2875
2962
  Comment: {
2876
2963
  /** Format: int64 */
2877
2964
  id: number;
@@ -2889,6 +2976,7 @@ export interface components {
2889
2976
  bucket: components["schemas"]["TodoBucket"];
2890
2977
  creator: components["schemas"]["Person"];
2891
2978
  content: string;
2979
+ content_attachments: components["schemas"]["RichTextAttachment"][];
2892
2980
  /** Format: int32 */
2893
2981
  boosts_count?: number;
2894
2982
  boosts_url?: string;
@@ -2942,6 +3030,7 @@ export interface components {
2942
3030
  /** @description active|drafted */
2943
3031
  status?: string;
2944
3032
  subscriptions?: number[];
3033
+ visible_to_clients?: boolean;
2945
3034
  };
2946
3035
  CreateDocumentResponseContent: components["schemas"]["Document"];
2947
3036
  CreateEventBoostRequestContent: {
@@ -2972,6 +3061,7 @@ export interface components {
2972
3061
  /** Format: int64 */
2973
3062
  category_id?: number;
2974
3063
  subscriptions?: number[];
3064
+ visible_to_clients?: boolean;
2975
3065
  };
2976
3066
  CreateMessageResponseContent: components["schemas"]["Message"];
2977
3067
  CreateMessageTypeRequestContent: {
@@ -2990,8 +3080,7 @@ export interface components {
2990
3080
  company_name?: string;
2991
3081
  };
2992
3082
  CreateProjectFromTemplateRequestContent: {
2993
- name: string;
2994
- description?: string;
3083
+ project: components["schemas"]["ProjectConstructionAttributes"];
2995
3084
  };
2996
3085
  CreateProjectFromTemplateResponseContent: components["schemas"]["ProjectConstruction"];
2997
3086
  CreateProjectRequestContent: {
@@ -3002,6 +3091,7 @@ export interface components {
3002
3091
  CreateQuestionRequestContent: {
3003
3092
  title: string;
3004
3093
  schedule: components["schemas"]["QuestionSchedule"];
3094
+ visible_to_clients?: boolean;
3005
3095
  };
3006
3096
  CreateQuestionResponseContent: components["schemas"]["Question"];
3007
3097
  CreateRecordingBoostRequestContent: {
@@ -3017,6 +3107,7 @@ export interface components {
3017
3107
  all_day?: boolean;
3018
3108
  notify?: boolean;
3019
3109
  subscriptions?: number[];
3110
+ visible_to_clients?: boolean;
3020
3111
  };
3021
3112
  CreateScheduleEntryResponseContent: components["schemas"]["ScheduleEntry"];
3022
3113
  CreateTemplateRequestContent: {
@@ -3049,13 +3140,22 @@ export interface components {
3049
3140
  CreateTodolistRequestContent: {
3050
3141
  name: string;
3051
3142
  description?: string;
3143
+ visible_to_clients?: boolean;
3052
3144
  };
3053
3145
  CreateTodolistResponseContent: components["schemas"]["Todolist"];
3146
+ CreateToolRequestContent: {
3147
+ /** @description Tool type to add to the project dock. Values: Chat::Transcript|Inbox|Kanban::Board|Message::Board|Questionnaire|Schedule|Todoset|Vault. */
3148
+ tool_type: string;
3149
+ /** @description Title for the new tool. When omitted, Basecamp assigns the next available default title for the tool type. */
3150
+ title?: string;
3151
+ };
3152
+ CreateToolResponseContent: components["schemas"]["Tool"];
3054
3153
  CreateUploadRequestContent: {
3055
3154
  attachable_sgid: string;
3056
3155
  description?: string;
3057
3156
  base_name?: string;
3058
3157
  subscriptions?: number[];
3158
+ visible_to_clients?: boolean;
3059
3159
  };
3060
3160
  CreateUploadResponseContent: components["schemas"]["Upload"];
3061
3161
  CreateVaultRequestContent: {
@@ -3068,6 +3168,14 @@ export interface components {
3068
3168
  active?: boolean;
3069
3169
  };
3070
3170
  CreateWebhookResponseContent: components["schemas"]["Webhook"];
3171
+ CreateWormholeRequestContent: {
3172
+ /**
3173
+ * Format: int64
3174
+ * @description Id of the destination column (on another accessible card table) to link to.
3175
+ */
3176
+ destination_recording_id: number;
3177
+ };
3178
+ CreateWormholeResponseContent: components["schemas"]["Wormhole"];
3071
3179
  DisableCardColumnOnHoldResponseContent: components["schemas"]["CardColumn"];
3072
3180
  DockItem: {
3073
3181
  /** Format: int64 */
@@ -3103,6 +3211,7 @@ export interface components {
3103
3211
  bucket: components["schemas"]["TodoBucket"];
3104
3212
  creator: components["schemas"]["Person"];
3105
3213
  content?: string;
3214
+ content_attachments: components["schemas"]["RichTextAttachment"][];
3106
3215
  /** Format: int32 */
3107
3216
  boosts_count?: number;
3108
3217
  boosts_url?: string;
@@ -3154,6 +3263,7 @@ export interface components {
3154
3263
  bucket: components["schemas"]["TodoBucket"];
3155
3264
  creator: components["schemas"]["Person"];
3156
3265
  content?: string;
3266
+ content_attachments: components["schemas"]["RichTextAttachment"][];
3157
3267
  subject: string;
3158
3268
  from?: string;
3159
3269
  /** Format: int32 */
@@ -3177,6 +3287,7 @@ export interface components {
3177
3287
  bucket: components["schemas"]["TodoBucket"];
3178
3288
  creator: components["schemas"]["Person"];
3179
3289
  content: string;
3290
+ content_attachments: components["schemas"]["RichTextAttachment"][];
3180
3291
  /** Format: int32 */
3181
3292
  boosts_count?: number;
3182
3293
  boosts_url?: string;
@@ -3197,6 +3308,13 @@ export interface components {
3197
3308
  bucket?: components["schemas"]["RecordingBucket"];
3198
3309
  creator?: components["schemas"]["Person"];
3199
3310
  description?: string;
3311
+ /**
3312
+ * @description Optional (no `@required`): the type-specific partial renders the
3313
+ * companion array only when the gauge has needles (bc3 `if
3314
+ * gauge.any_needles?`), so a needle-less gauge omits the key entirely.
3315
+ * Non-nullable — never served as JSON `null`.
3316
+ */
3317
+ description_attachments?: components["schemas"]["RichTextAttachment"][];
3200
3318
  enabled?: boolean;
3201
3319
  last_needle_color?: string;
3202
3320
  /** Format: int32 */
@@ -3228,6 +3346,7 @@ export interface components {
3228
3346
  bucket?: components["schemas"]["RecordingBucket"];
3229
3347
  creator?: components["schemas"]["Person"];
3230
3348
  description?: string;
3349
+ description_attachments: components["schemas"]["RichTextAttachment"][];
3231
3350
  color?: string;
3232
3351
  /** Format: int32 */
3233
3352
  position?: number;
@@ -3288,7 +3407,24 @@ export interface components {
3288
3407
  GetMyNotificationsResponseContent: {
3289
3408
  unreads?: components["schemas"]["Notification"][];
3290
3409
  reads?: components["schemas"]["Notification"][];
3410
+ /**
3411
+ * @description Legacy "save forever" collection. Permanently `[]` on BC5 by documented
3412
+ * contract (`doc/api/sections/my_notifications.md`, codified by BC3 #11628):
3413
+ * an always-empty placeholder superseded by `bubble_ups`. BC4 (the `four`
3414
+ * branch) still populates it — an accepted BC4→BC5 subtractive delta
3415
+ * recorded in `spec/api-gaps/memories-emptied-regression.md`. New
3416
+ * integrations should use `bubble_ups` / `scheduled_bubble_ups` and must
3417
+ * not rely on `memories` on BC5.
3418
+ */
3291
3419
  memories?: components["schemas"]["Notification"][];
3420
+ /**
3421
+ * @description Items the user has saved with Bubble Up (BC5 addition). Roughly the
3422
+ * successor to `memories` but with optional scheduling — see
3423
+ * `scheduled_bubble_ups` for the time-deferred subset.
3424
+ */
3425
+ bubble_ups?: components["schemas"]["Notification"][];
3426
+ /** @description Bubble Ups scheduled to resurface in the future (BC5 addition). */
3427
+ scheduled_bubble_ups?: components["schemas"]["Notification"][];
3292
3428
  };
3293
3429
  GetMyPreferencesResponseContent: components["schemas"]["Preferences"];
3294
3430
  GetMyProfileResponseContent: components["schemas"]["Person"];
@@ -3449,6 +3585,7 @@ export interface components {
3449
3585
  creator: components["schemas"]["Person"];
3450
3586
  subject: string;
3451
3587
  content: string;
3588
+ content_attachments: components["schemas"]["RichTextAttachment"][];
3452
3589
  category?: components["schemas"]["MessageType"];
3453
3590
  /** Format: int32 */
3454
3591
  boosts_count?: number;
@@ -3552,6 +3689,10 @@ export interface components {
3552
3689
  id: number;
3553
3690
  created_at: string;
3554
3691
  updated_at: string;
3692
+ /**
3693
+ * @description The notification category: `inbox`, `chats`, `pings`, `bubbles`,
3694
+ * or `mentions`.
3695
+ */
3555
3696
  section?: string;
3556
3697
  /** Format: int32 */
3557
3698
  unread_count?: number;
@@ -3568,6 +3709,16 @@ export interface components {
3568
3709
  unread_url?: string;
3569
3710
  bookmark_url?: string;
3570
3711
  memory_url?: string;
3712
+ /**
3713
+ * @description URL for the Bubble Up record covering this notification (BC5 addition).
3714
+ * Eligibility-gated — only present on items the current user can bubble up.
3715
+ */
3716
+ bubble_up_url?: string;
3717
+ /**
3718
+ * @description Scheduled resurfacing time when this item is queued as a scheduled
3719
+ * Bubble Up (BC5 addition). Absent when there is no scheduled time.
3720
+ */
3721
+ bubble_up_at?: string;
3571
3722
  subscription_url?: string;
3572
3723
  subscribed?: boolean;
3573
3724
  previewable_attachments?: components["schemas"]["PreviewableAttachment"][];
@@ -3578,12 +3729,21 @@ export interface components {
3578
3729
  /** @description Custom image URL (pings only) */
3579
3730
  image_url?: string;
3580
3731
  };
3732
+ /**
3733
+ * @description When out of office is not enabled, `enabled` is `false` and
3734
+ * `start_date`, `end_date`, and `back_on_date` are omitted.
3735
+ */
3581
3736
  OutOfOffice: {
3582
3737
  person?: components["schemas"]["OutOfOfficePerson"];
3583
3738
  enabled?: boolean;
3584
3739
  ongoing?: boolean;
3585
3740
  start_date?: string;
3586
3741
  end_date?: string;
3742
+ /**
3743
+ * @description First working day after the out-of-office window ends.
3744
+ * Omitted when out of office is not enabled.
3745
+ */
3746
+ back_on_date?: string;
3587
3747
  };
3588
3748
  OutOfOfficePayload: {
3589
3749
  /** @description Start date in ISO 8601 format (YYYY-MM-DD) */
@@ -3596,6 +3756,8 @@ export interface components {
3596
3756
  id: number;
3597
3757
  /** Format: password */
3598
3758
  name?: string;
3759
+ /** Format: password */
3760
+ avatar_url?: string;
3599
3761
  };
3600
3762
  PauseQuestionResponseContent: {
3601
3763
  paused?: boolean;
@@ -3615,6 +3777,12 @@ export interface components {
3615
3777
  title?: string;
3616
3778
  /** Format: password */
3617
3779
  bio?: string;
3780
+ /**
3781
+ * Format: password
3782
+ * @description Alias of `bio` introduced in BC5. BC3 emits both keys with identical content;
3783
+ * older BC4 responses may omit `tagline`. Prefer `bio` for cross-version reads.
3784
+ */
3785
+ tagline?: string;
3618
3786
  /** Format: password */
3619
3787
  location?: string;
3620
3788
  created_at?: string;
@@ -3642,12 +3810,18 @@ export interface components {
3642
3810
  Preferences: {
3643
3811
  url?: string;
3644
3812
  app_url?: string;
3813
+ /** @description Returned as a Rails-style name (e.g. "Central Time (US & Canada)"). */
3645
3814
  time_zone_name?: string;
3646
3815
  first_week_day?: string;
3647
3816
  time_format?: string;
3648
3817
  };
3649
3818
  PreferencesPayload: {
3650
- /** @description Time zone name (e.g. "America/Chicago", "London", "UTC") */
3819
+ /**
3820
+ * @description Time zone name. Accepts any valid Rails time zone name (e.g.
3821
+ * "London", "UTC") as well as IANA identifiers (e.g.
3822
+ * "America/Chicago"), which are normalized to the matching
3823
+ * Rails-style name before saving.
3824
+ */
3651
3825
  time_zone_name?: string;
3652
3826
  /** @description First day of the week: Sunday, Monday, Tuesday, etc. */
3653
3827
  first_week_day?: string;
@@ -3678,6 +3852,8 @@ export interface components {
3678
3852
  name: string;
3679
3853
  description?: string;
3680
3854
  purpose?: string;
3855
+ start_date?: string;
3856
+ end_date?: string;
3681
3857
  clients_enabled?: boolean;
3682
3858
  bookmark_url?: string;
3683
3859
  url: string;
@@ -3699,6 +3875,10 @@ export interface components {
3699
3875
  url?: string;
3700
3876
  project?: components["schemas"]["Project"];
3701
3877
  };
3878
+ ProjectConstructionAttributes: {
3879
+ name: string;
3880
+ description?: string;
3881
+ };
3702
3882
  Question: {
3703
3883
  /** Format: int64 */
3704
3884
  id: number;
@@ -3740,6 +3920,7 @@ export interface components {
3740
3920
  comments_count?: number;
3741
3921
  comments_url?: string;
3742
3922
  content: string;
3923
+ content_attachments: components["schemas"]["RichTextAttachment"][];
3743
3924
  group_on?: string;
3744
3925
  parent: components["schemas"]["RecordingParent"];
3745
3926
  bucket: components["schemas"]["RecordingBucket"];
@@ -3819,6 +4000,18 @@ export interface components {
3819
4000
  app_url: string;
3820
4001
  bookmark_url?: string;
3821
4002
  content?: string;
4003
+ /**
4004
+ * @description Rich-text companion arrays carried through the generic recording
4005
+ * projection (`to_recordable_partial_path` renders the full type-specific
4006
+ * partial). A given recording is one type, so it carries only the array
4007
+ * matching its rich-text attribute (`content_attachments` for a
4008
+ * Comment/Message, `description_attachments` for a Todo/Card); a
4009
+ * webhook-sourced recording (base partial) carries neither. Optional (no
4010
+ * `@required`), non-nullable.
4011
+ */
4012
+ content_attachments?: components["schemas"]["RichTextAttachment"][];
4013
+ /** @description See `content_attachments` — the description-attribute companion array. */
4014
+ description_attachments?: components["schemas"]["RichTextAttachment"][];
3822
4015
  /** Format: int32 */
3823
4016
  comments_count?: number;
3824
4017
  comments_url?: string;
@@ -3841,6 +4034,16 @@ export interface components {
3841
4034
  url: string;
3842
4035
  app_url: string;
3843
4036
  };
4037
+ ReplaceTodoRequestContent: {
4038
+ content: string;
4039
+ description?: string;
4040
+ assignee_ids?: number[];
4041
+ completion_subscriber_ids?: number[];
4042
+ notify?: boolean;
4043
+ due_on?: string;
4044
+ starts_on?: string;
4045
+ };
4046
+ ReplaceTodoResponseContent: components["schemas"]["Todo"];
3844
4047
  RepositionCardStepRequestContent: {
3845
4048
  /** Format: int64 */
3846
4049
  source_id: number;
@@ -3863,6 +4066,10 @@ export interface components {
3863
4066
  /** Format: int32 */
3864
4067
  position: number;
3865
4068
  };
4069
+ RepositionTodolistRequestContent: {
4070
+ /** Format: int32 */
4071
+ position: number;
4072
+ };
3866
4073
  RepositionToolRequestContent: {
3867
4074
  /** Format: int32 */
3868
4075
  position: number;
@@ -3870,6 +4077,44 @@ export interface components {
3870
4077
  ResumeQuestionResponseContent: {
3871
4078
  paused?: boolean;
3872
4079
  };
4080
+ /**
4081
+ * @description Structured metadata for a downloadable file attachment embedded in a
4082
+ * rich text attribute. Every rich text attribute in an API response is
4083
+ * accompanied by a corresponding `*_attachments` array named after the
4084
+ * attribute (a Todo's `description_attachments` for its `description`).
4085
+ * Mentions, remote images, and opengraph embeds are excluded — only
4086
+ * downloadable file attachments appear.
4087
+ */
4088
+ RichTextAttachment: {
4089
+ /** Format: int64 */
4090
+ id: number;
4091
+ sgid: string;
4092
+ filename: string;
4093
+ content_type: string;
4094
+ /** Format: int64 */
4095
+ byte_size: number;
4096
+ download_url: string;
4097
+ /**
4098
+ * Format: int32
4099
+ * @description Pixel dimensions, present as keys on every attachment but null for
4100
+ * non-image blobs, and the BC3 API may serialize them float-spelled
4101
+ * (`1024.0`) — hence optional/nullable rather than `@required` (the enhance
4102
+ * pass marks them `nullable: true` in the OpenAPI). All SDKs decode both
4103
+ * forms faithfully and type the nullable value statically: Go `types.FlexInt`
4104
+ * → `*int32`, Kotlin `Int?` via `FlexibleIntSerializer`, Swift `Int32?`,
4105
+ * TypeScript `number | null`, Python `Optional[int | float]` (raw JSON keeps
4106
+ * the float), Ruby nilable. See SPEC.md §10 Type Fidelity.
4107
+ */
4108
+ width?: number | null;
4109
+ /**
4110
+ * Format: int32
4111
+ * @description See `width` — same nullable/float-spelled behavior and cross-SDK note.
4112
+ */
4113
+ height?: number | null;
4114
+ previewable: boolean;
4115
+ preview_url: string;
4116
+ thumbnail_url: string;
4117
+ };
3873
4118
  Schedule: {
3874
4119
  /** Format: int64 */
3875
4120
  id: number;
@@ -3918,6 +4163,7 @@ export interface components {
3918
4163
  creator: components["schemas"]["Person"];
3919
4164
  summary: string;
3920
4165
  description?: string;
4166
+ description_attachments: components["schemas"]["RichTextAttachment"][];
3921
4167
  all_day?: boolean;
3922
4168
  starts_at?: string;
3923
4169
  ends_at?: string;
@@ -3927,12 +4173,13 @@ export interface components {
3927
4173
  boosts_url?: string;
3928
4174
  };
3929
4175
  SearchMetadata: {
3930
- projects?: components["schemas"]["SearchProject"][];
3931
- };
3932
- SearchProject: {
3933
- /** Format: int64 */
3934
- id?: number;
3935
- name?: string;
4176
+ recording_search_types: components["schemas"]["SearchType"][];
4177
+ file_search_types: components["schemas"]["SearchType"][];
4178
+ default_creator_label: string;
4179
+ default_bucket_label: string;
4180
+ default_circle_label: string;
4181
+ default_file_type_label: string;
4182
+ default_type_label: string;
3936
4183
  };
3937
4184
  SearchResponseContent: components["schemas"]["SearchResult"][];
3938
4185
  SearchResult: {
@@ -3953,8 +4200,35 @@ export interface components {
3953
4200
  creator?: components["schemas"]["Person"];
3954
4201
  content?: string;
3955
4202
  description?: string;
4203
+ /**
4204
+ * @description Rich-text companion arrays carried through the polymorphic search
4205
+ * projection. A given result is one recording type, so it carries only
4206
+ * the array matching its rich-text attribute (`content_attachments` for a
4207
+ * Comment/Message, `description_attachments` for a Todo); a webhook-sourced
4208
+ * result carries neither. Optional (no `@required`), non-nullable. Distinct
4209
+ * from the generic `attachments` key (the recording's aggregate downloadable
4210
+ * files), which is a separate projection concern and not modeled here.
4211
+ */
4212
+ content_attachments?: components["schemas"]["RichTextAttachment"][];
4213
+ /** @description See `content_attachments` — the description-attribute companion array. */
4214
+ description_attachments?: components["schemas"]["RichTextAttachment"][];
3956
4215
  subject?: string;
3957
4216
  };
4217
+ /**
4218
+ * @description A selectable search filter option. `key` is the value passed back as a
4219
+ * filter parameter (null represents the default "everything" option); `value`
4220
+ * is the human-readable label.
4221
+ */
4222
+ SearchType: {
4223
+ /**
4224
+ * @description Always present on the wire; `null` for the default "everything" option.
4225
+ * `@required` models the presence; nullability of the value is layered on in
4226
+ * the OpenAPI (smithy-build.json jsonAdd -> type: ["string", "null"]) since
4227
+ * Smithy has no native required-and-nullable.
4228
+ */
4229
+ key: string | null;
4230
+ value: string;
4231
+ };
3958
4232
  SetCardColumnColorRequestContent: {
3959
4233
  /** @description Valid colors: white, red, orange, yellow, green, blue, aqua, purple, gray, pink, brown */
3960
4234
  color: string;
@@ -4052,6 +4326,7 @@ export interface components {
4052
4326
  description?: string;
4053
4327
  completed?: boolean;
4054
4328
  content: string;
4329
+ description_attachments: components["schemas"]["RichTextAttachment"][];
4055
4330
  starts_on?: string;
4056
4331
  due_on?: string;
4057
4332
  assignees?: components["schemas"]["Person"][];
@@ -4060,6 +4335,12 @@ export interface components {
4060
4335
  /** Format: int32 */
4061
4336
  boosts_count?: number;
4062
4337
  boosts_url?: string;
4338
+ /**
4339
+ * @description Steps embedded in the Todo response (BC5 addition). The shared
4340
+ * `steps/step` jbuilder partial emits the same shape as `CardStep`,
4341
+ * so the existing `CardStepList` is reused.
4342
+ */
4343
+ steps?: components["schemas"]["CardStep"][];
4063
4344
  };
4064
4345
  TodoBucket: {
4065
4346
  /** Format: int64 */
@@ -4099,6 +4380,7 @@ export interface components {
4099
4380
  bucket: components["schemas"]["TodoBucket"];
4100
4381
  creator: components["schemas"]["Person"];
4101
4382
  description?: string;
4383
+ description_attachments: components["schemas"]["RichTextAttachment"][];
4102
4384
  completed?: boolean;
4103
4385
  completed_ratio?: string;
4104
4386
  name: string;
@@ -4167,6 +4449,20 @@ export interface components {
4167
4449
  completed_ratio?: string;
4168
4450
  completed?: boolean;
4169
4451
  app_todolists_url?: string;
4452
+ /**
4453
+ * Format: int32
4454
+ * @description Total count of todos across all todolists in this todoset (BC5 addition).
4455
+ */
4456
+ todos_count?: number;
4457
+ /**
4458
+ * Format: int32
4459
+ * @description Count of completed loose todos at the todoset level (BC5 addition).
4460
+ */
4461
+ completed_loose_todos_count?: number;
4462
+ /** @description API URL for listing todos directly under this todoset (BC5 addition). */
4463
+ todos_url?: string;
4464
+ /** @description In-app URL for viewing the todoset's todos (BC5 addition). */
4465
+ app_todos_url?: string;
4170
4466
  };
4171
4467
  ToggleGaugeRequestContent: {
4172
4468
  gauge: components["schemas"]["GaugeTogglePayload"];
@@ -4195,6 +4491,10 @@ export interface components {
4195
4491
  name: string;
4196
4492
  };
4197
4493
  UpdateAccountNameResponseContent: components["schemas"]["Account"];
4494
+ UpdateCampfireLineRequestContent: {
4495
+ /** @description The new line content, interpreted as rich text (HTML) */
4496
+ content: string;
4497
+ };
4198
4498
  UpdateCardColumnRequestContent: {
4199
4499
  title?: string;
4200
4500
  description?: string;
@@ -4335,16 +4635,6 @@ export interface components {
4335
4635
  person_id?: number;
4336
4636
  };
4337
4637
  UpdateTimesheetEntryResponseContent: components["schemas"]["TimesheetEntry"];
4338
- UpdateTodoRequestContent: {
4339
- content?: string;
4340
- description?: string;
4341
- assignee_ids?: number[];
4342
- completion_subscriber_ids?: number[];
4343
- notify?: boolean;
4344
- due_on?: string;
4345
- starts_on?: string;
4346
- };
4347
- UpdateTodoResponseContent: components["schemas"]["Todo"];
4348
4638
  UpdateTodolistOrGroupRequestContent: {
4349
4639
  /** @description Name (required for both Todolist and TodolistGroup) */
4350
4640
  name?: string;
@@ -4371,6 +4661,14 @@ export interface components {
4371
4661
  active?: boolean;
4372
4662
  };
4373
4663
  UpdateWebhookResponseContent: components["schemas"]["Webhook"];
4664
+ UpdateWormholeRequestContent: {
4665
+ /**
4666
+ * Format: int64
4667
+ * @description Id of the new destination column (on another accessible card table).
4668
+ */
4669
+ destination_recording_id: number;
4670
+ };
4671
+ UpdateWormholeResponseContent: components["schemas"]["Wormhole"];
4374
4672
  Upload: {
4375
4673
  /** Format: int64 */
4376
4674
  id: number;
@@ -4394,6 +4692,7 @@ export interface components {
4394
4692
  bucket: components["schemas"]["TodoBucket"];
4395
4693
  creator: components["schemas"]["Person"];
4396
4694
  description?: string;
4695
+ description_attachments: components["schemas"]["RichTextAttachment"][];
4397
4696
  content_type?: string;
4398
4697
  /** Format: int64 */
4399
4698
  byte_size?: number;
@@ -4449,6 +4748,10 @@ export interface components {
4449
4748
  types?: string[];
4450
4749
  url: string;
4451
4750
  app_url: string;
4751
+ /**
4752
+ * @description Up to the 25 most recent delivery exchanges, most recent first.
4753
+ * Empty when the webhook hasn't delivered anything yet.
4754
+ */
4452
4755
  recent_deliveries?: components["schemas"]["WebhookDelivery"][];
4453
4756
  };
4454
4757
  /** @description Reference to a copied/moved recording in copy events. */
@@ -4502,6 +4805,51 @@ export interface components {
4502
4805
  error: string;
4503
4806
  message?: string;
4504
4807
  };
4808
+ /**
4809
+ * @description A wormhole links this card table to a column on another card table, enabling
4810
+ * cards to move across projects. It carries the full recording representation
4811
+ * plus the destination-linkage fields. The wormhole's own `url`/`app_url`/`parent`
4812
+ * point at the *source* board; `destination_url` is the only field identifying
4813
+ * the destination column.
4814
+ */
4815
+ Wormhole: {
4816
+ /** Format: int64 */
4817
+ id: number;
4818
+ status: string;
4819
+ visible_to_clients: boolean;
4820
+ created_at: string;
4821
+ updated_at: string;
4822
+ title: string;
4823
+ inherits_status: boolean;
4824
+ type: string;
4825
+ url: string;
4826
+ app_url: string;
4827
+ bookmark_url?: string;
4828
+ parent: components["schemas"]["RecordingParent"];
4829
+ bucket: components["schemas"]["TodoBucket"];
4830
+ creator: components["schemas"]["Person"];
4831
+ /**
4832
+ * @description Wormhole color; always emitted on the wire (`json.color recording.color`),
4833
+ * `null` when unset. Like destination_url, `@required` models the presence and
4834
+ * the nullability is layered on in the OpenAPI (smithy-build.json jsonAdd ->
4835
+ * type: ["string","null"] + x-go-type "*string").
4836
+ */
4837
+ color: string | null;
4838
+ /**
4839
+ * @description True only while the destination column, its board, and its bucket are all
4840
+ * active; false once the destination is unlinked. Always emitted.
4841
+ */
4842
+ linked: boolean;
4843
+ /**
4844
+ * @description URL of the destination column; always present on the wire, `null` for an
4845
+ * unlinked wormhole. `@required` models the presence; the nullability of the
4846
+ * value is layered on in the OpenAPI (smithy-build.json jsonAdd -> type:
4847
+ * ["string","null"] + x-go-type "*string") since Smithy has no native
4848
+ * required-and-nullable — exactly the SearchType.key treatment. SDKs model it
4849
+ * as required-but-nullable (`string | null`, not `string | null | undefined`).
4850
+ */
4851
+ destination_url: string | null;
4852
+ };
4505
4853
  };
4506
4854
  responses: never;
4507
4855
  parameters: never;
@@ -4936,24 +5284,29 @@ export interface operations {
4936
5284
  };
4937
5285
  };
4938
5286
  };
4939
- ListWebhooks: {
5287
+ SetCardColumnColor: {
4940
5288
  parameters: {
4941
5289
  query?: never;
4942
5290
  header?: never;
4943
5291
  path: {
4944
5292
  bucketId: number;
5293
+ columnId: number;
4945
5294
  };
4946
5295
  cookie?: never;
4947
5296
  };
4948
- requestBody?: never;
5297
+ requestBody: {
5298
+ content: {
5299
+ "application/json": components["schemas"]["SetCardColumnColorRequestContent"];
5300
+ };
5301
+ };
4949
5302
  responses: {
4950
- /** @description ListWebhooks 200 response */
5303
+ /** @description SetCardColumnColor 200 response */
4951
5304
  200: {
4952
5305
  headers: {
4953
5306
  [name: string]: unknown;
4954
5307
  };
4955
5308
  content: {
4956
- "application/json": components["schemas"]["ListWebhooksResponseContent"];
5309
+ "application/json": components["schemas"]["SetCardColumnColorResponseContent"];
4957
5310
  };
4958
5311
  };
4959
5312
  /** @description UnauthorizedError 401 response */
@@ -4974,6 +5327,24 @@ export interface operations {
4974
5327
  "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
4975
5328
  };
4976
5329
  };
5330
+ /** @description NotFoundError 404 response */
5331
+ 404: {
5332
+ headers: {
5333
+ [name: string]: unknown;
5334
+ };
5335
+ content: {
5336
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
5337
+ };
5338
+ };
5339
+ /** @description ValidationError 422 response */
5340
+ 422: {
5341
+ headers: {
5342
+ [name: string]: unknown;
5343
+ };
5344
+ content: {
5345
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
5346
+ };
5347
+ };
4977
5348
  /** @description RateLimitError 429 response */
4978
5349
  429: {
4979
5350
  headers: {
@@ -4994,37 +5365,25 @@ export interface operations {
4994
5365
  };
4995
5366
  };
4996
5367
  };
4997
- CreateWebhook: {
5368
+ EnableCardColumnOnHold: {
4998
5369
  parameters: {
4999
5370
  query?: never;
5000
5371
  header?: never;
5001
5372
  path: {
5002
5373
  bucketId: number;
5374
+ columnId: number;
5003
5375
  };
5004
5376
  cookie?: never;
5005
5377
  };
5006
- requestBody: {
5007
- content: {
5008
- "application/json": components["schemas"]["CreateWebhookRequestContent"];
5009
- };
5010
- };
5378
+ requestBody?: never;
5011
5379
  responses: {
5012
- /** @description CreateWebhook 201 response */
5013
- 201: {
5014
- headers: {
5015
- [name: string]: unknown;
5016
- };
5017
- content: {
5018
- "application/json": components["schemas"]["CreateWebhookResponseContent"];
5019
- };
5020
- };
5021
- /** @description BadRequestError 400 response */
5022
- 400: {
5380
+ /** @description EnableCardColumnOnHold 200 response */
5381
+ 200: {
5023
5382
  headers: {
5024
5383
  [name: string]: unknown;
5025
5384
  };
5026
5385
  content: {
5027
- "application/json": components["schemas"]["BadRequestErrorResponseContent"];
5386
+ "application/json": components["schemas"]["EnableCardColumnOnHoldResponseContent"];
5028
5387
  };
5029
5388
  };
5030
5389
  /** @description UnauthorizedError 401 response */
@@ -5045,53 +5404,54 @@ export interface operations {
5045
5404
  "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
5046
5405
  };
5047
5406
  };
5048
- /** @description RateLimitError 429 response */
5049
- 429: {
5407
+ /** @description ValidationError 422 response */
5408
+ 422: {
5050
5409
  headers: {
5051
5410
  [name: string]: unknown;
5052
5411
  };
5053
5412
  content: {
5054
- "application/json": components["schemas"]["RateLimitErrorResponseContent"];
5413
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
5055
5414
  };
5056
5415
  };
5057
- /** @description InternalServerError 500 response */
5058
- 500: {
5416
+ /** @description RateLimitError 429 response */
5417
+ 429: {
5059
5418
  headers: {
5060
5419
  [name: string]: unknown;
5061
5420
  };
5062
5421
  content: {
5063
- "application/json": components["schemas"]["InternalServerErrorResponseContent"];
5422
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
5064
5423
  };
5065
5424
  };
5066
- /** @description WebhookLimitError 507 response */
5067
- 507: {
5425
+ /** @description InternalServerError 500 response */
5426
+ 500: {
5068
5427
  headers: {
5069
5428
  [name: string]: unknown;
5070
5429
  };
5071
5430
  content: {
5072
- "application/json": components["schemas"]["WebhookLimitErrorResponseContent"];
5431
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
5073
5432
  };
5074
5433
  };
5075
5434
  };
5076
5435
  };
5077
- GetCard: {
5436
+ DisableCardColumnOnHold: {
5078
5437
  parameters: {
5079
5438
  query?: never;
5080
5439
  header?: never;
5081
5440
  path: {
5082
- cardId: number;
5441
+ bucketId: number;
5442
+ columnId: number;
5083
5443
  };
5084
5444
  cookie?: never;
5085
5445
  };
5086
5446
  requestBody?: never;
5087
5447
  responses: {
5088
- /** @description GetCard 200 response */
5448
+ /** @description DisableCardColumnOnHold 200 response */
5089
5449
  200: {
5090
5450
  headers: {
5091
5451
  [name: string]: unknown;
5092
5452
  };
5093
5453
  content: {
5094
- "application/json": components["schemas"]["GetCardResponseContent"];
5454
+ "application/json": components["schemas"]["DisableCardColumnOnHoldResponseContent"];
5095
5455
  };
5096
5456
  };
5097
5457
  /** @description UnauthorizedError 401 response */
@@ -5121,6 +5481,15 @@ export interface operations {
5121
5481
  "application/json": components["schemas"]["NotFoundErrorResponseContent"];
5122
5482
  };
5123
5483
  };
5484
+ /** @description RateLimitError 429 response */
5485
+ 429: {
5486
+ headers: {
5487
+ [name: string]: unknown;
5488
+ };
5489
+ content: {
5490
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
5491
+ };
5492
+ };
5124
5493
  /** @description InternalServerError 500 response */
5125
5494
  500: {
5126
5495
  headers: {
@@ -5132,28 +5501,29 @@ export interface operations {
5132
5501
  };
5133
5502
  };
5134
5503
  };
5135
- UpdateCard: {
5504
+ UpdateWormhole: {
5136
5505
  parameters: {
5137
5506
  query?: never;
5138
5507
  header?: never;
5139
5508
  path: {
5140
- cardId: number;
5509
+ bucketId: number;
5510
+ wormholeId: number;
5141
5511
  };
5142
5512
  cookie?: never;
5143
5513
  };
5144
- requestBody?: {
5514
+ requestBody: {
5145
5515
  content: {
5146
- "application/json": components["schemas"]["UpdateCardRequestContent"];
5516
+ "application/json": components["schemas"]["UpdateWormholeRequestContent"];
5147
5517
  };
5148
5518
  };
5149
5519
  responses: {
5150
- /** @description UpdateCard 200 response */
5520
+ /** @description UpdateWormhole 200 response */
5151
5521
  200: {
5152
5522
  headers: {
5153
5523
  [name: string]: unknown;
5154
5524
  };
5155
5525
  content: {
5156
- "application/json": components["schemas"]["UpdateCardResponseContent"];
5526
+ "application/json": components["schemas"]["UpdateWormholeResponseContent"];
5157
5527
  };
5158
5528
  };
5159
5529
  /** @description UnauthorizedError 401 response */
@@ -5183,13 +5553,70 @@ export interface operations {
5183
5553
  "application/json": components["schemas"]["NotFoundErrorResponseContent"];
5184
5554
  };
5185
5555
  };
5186
- /** @description ValidationError 422 response */
5187
- 422: {
5556
+ /** @description InternalServerError 500 response */
5557
+ 500: {
5188
5558
  headers: {
5189
5559
  [name: string]: unknown;
5190
5560
  };
5191
5561
  content: {
5192
- "application/json": components["schemas"]["ValidationErrorResponseContent"];
5562
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
5563
+ };
5564
+ };
5565
+ };
5566
+ };
5567
+ DeleteWormhole: {
5568
+ parameters: {
5569
+ query?: never;
5570
+ header?: never;
5571
+ path: {
5572
+ bucketId: number;
5573
+ wormholeId: number;
5574
+ };
5575
+ cookie?: never;
5576
+ };
5577
+ requestBody?: never;
5578
+ responses: {
5579
+ /** @description DeleteWormhole 204 response */
5580
+ 204: {
5581
+ headers: {
5582
+ [name: string]: unknown;
5583
+ };
5584
+ content?: never;
5585
+ };
5586
+ /** @description UnauthorizedError 401 response */
5587
+ 401: {
5588
+ headers: {
5589
+ [name: string]: unknown;
5590
+ };
5591
+ content: {
5592
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
5593
+ };
5594
+ };
5595
+ /** @description ForbiddenError 403 response */
5596
+ 403: {
5597
+ headers: {
5598
+ [name: string]: unknown;
5599
+ };
5600
+ content: {
5601
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
5602
+ };
5603
+ };
5604
+ /** @description NotFoundError 404 response */
5605
+ 404: {
5606
+ headers: {
5607
+ [name: string]: unknown;
5608
+ };
5609
+ content: {
5610
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
5611
+ };
5612
+ };
5613
+ /** @description RateLimitError 429 response */
5614
+ 429: {
5615
+ headers: {
5616
+ [name: string]: unknown;
5617
+ };
5618
+ content: {
5619
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
5193
5620
  };
5194
5621
  };
5195
5622
  /** @description InternalServerError 500 response */
@@ -5203,27 +5630,30 @@ export interface operations {
5203
5630
  };
5204
5631
  };
5205
5632
  };
5206
- MoveCard: {
5633
+ CreateWormhole: {
5207
5634
  parameters: {
5208
5635
  query?: never;
5209
5636
  header?: never;
5210
5637
  path: {
5211
- cardId: number;
5638
+ bucketId: number;
5639
+ cardTableId: number;
5212
5640
  };
5213
5641
  cookie?: never;
5214
5642
  };
5215
5643
  requestBody: {
5216
5644
  content: {
5217
- "application/json": components["schemas"]["MoveCardRequestContent"];
5645
+ "application/json": components["schemas"]["CreateWormholeRequestContent"];
5218
5646
  };
5219
5647
  };
5220
5648
  responses: {
5221
- /** @description MoveCard 204 response */
5222
- 204: {
5649
+ /** @description CreateWormhole 201 response */
5650
+ 201: {
5223
5651
  headers: {
5224
5652
  [name: string]: unknown;
5225
5653
  };
5226
- content?: never;
5654
+ content: {
5655
+ "application/json": components["schemas"]["CreateWormholeResponseContent"];
5656
+ };
5227
5657
  };
5228
5658
  /** @description UnauthorizedError 401 response */
5229
5659
  401: {
@@ -5243,6 +5673,15 @@ export interface operations {
5243
5673
  "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
5244
5674
  };
5245
5675
  };
5676
+ /** @description NotFoundError 404 response */
5677
+ 404: {
5678
+ headers: {
5679
+ [name: string]: unknown;
5680
+ };
5681
+ content: {
5682
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
5683
+ };
5684
+ };
5246
5685
  /** @description ValidationError 422 response */
5247
5686
  422: {
5248
5687
  headers: {
@@ -5272,27 +5711,29 @@ export interface operations {
5272
5711
  };
5273
5712
  };
5274
5713
  };
5275
- RepositionCardStep: {
5714
+ CreateTool: {
5276
5715
  parameters: {
5277
5716
  query?: never;
5278
5717
  header?: never;
5279
5718
  path: {
5280
- cardId: number;
5719
+ bucketId: number;
5281
5720
  };
5282
5721
  cookie?: never;
5283
5722
  };
5284
5723
  requestBody: {
5285
5724
  content: {
5286
- "application/json": components["schemas"]["RepositionCardStepRequestContent"];
5725
+ "application/json": components["schemas"]["CreateToolRequestContent"];
5287
5726
  };
5288
5727
  };
5289
5728
  responses: {
5290
- /** @description RepositionCardStep 200 response */
5291
- 200: {
5729
+ /** @description CreateTool 201 response */
5730
+ 201: {
5292
5731
  headers: {
5293
5732
  [name: string]: unknown;
5294
5733
  };
5295
- content?: never;
5734
+ content: {
5735
+ "application/json": components["schemas"]["CreateToolResponseContent"];
5736
+ };
5296
5737
  };
5297
5738
  /** @description UnauthorizedError 401 response */
5298
5739
  401: {
@@ -5341,28 +5782,24 @@ export interface operations {
5341
5782
  };
5342
5783
  };
5343
5784
  };
5344
- CreateCardStep: {
5785
+ ListWebhooks: {
5345
5786
  parameters: {
5346
5787
  query?: never;
5347
5788
  header?: never;
5348
5789
  path: {
5349
- cardId: number;
5790
+ bucketId: number;
5350
5791
  };
5351
5792
  cookie?: never;
5352
5793
  };
5353
- requestBody: {
5354
- content: {
5355
- "application/json": components["schemas"]["CreateCardStepRequestContent"];
5356
- };
5357
- };
5794
+ requestBody?: never;
5358
5795
  responses: {
5359
- /** @description CreateCardStep 201 response */
5360
- 201: {
5796
+ /** @description ListWebhooks 200 response */
5797
+ 200: {
5361
5798
  headers: {
5362
5799
  [name: string]: unknown;
5363
5800
  };
5364
5801
  content: {
5365
- "application/json": components["schemas"]["CreateCardStepResponseContent"];
5802
+ "application/json": components["schemas"]["ListWebhooksResponseContent"];
5366
5803
  };
5367
5804
  };
5368
5805
  /** @description UnauthorizedError 401 response */
@@ -5383,13 +5820,75 @@ export interface operations {
5383
5820
  "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
5384
5821
  };
5385
5822
  };
5386
- /** @description ValidationError 422 response */
5387
- 422: {
5823
+ /** @description RateLimitError 429 response */
5824
+ 429: {
5388
5825
  headers: {
5389
5826
  [name: string]: unknown;
5390
5827
  };
5391
5828
  content: {
5392
- "application/json": components["schemas"]["ValidationErrorResponseContent"];
5829
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
5830
+ };
5831
+ };
5832
+ /** @description InternalServerError 500 response */
5833
+ 500: {
5834
+ headers: {
5835
+ [name: string]: unknown;
5836
+ };
5837
+ content: {
5838
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
5839
+ };
5840
+ };
5841
+ };
5842
+ };
5843
+ CreateWebhook: {
5844
+ parameters: {
5845
+ query?: never;
5846
+ header?: never;
5847
+ path: {
5848
+ bucketId: number;
5849
+ };
5850
+ cookie?: never;
5851
+ };
5852
+ requestBody: {
5853
+ content: {
5854
+ "application/json": components["schemas"]["CreateWebhookRequestContent"];
5855
+ };
5856
+ };
5857
+ responses: {
5858
+ /** @description CreateWebhook 201 response */
5859
+ 201: {
5860
+ headers: {
5861
+ [name: string]: unknown;
5862
+ };
5863
+ content: {
5864
+ "application/json": components["schemas"]["CreateWebhookResponseContent"];
5865
+ };
5866
+ };
5867
+ /** @description BadRequestError 400 response */
5868
+ 400: {
5869
+ headers: {
5870
+ [name: string]: unknown;
5871
+ };
5872
+ content: {
5873
+ "application/json": components["schemas"]["BadRequestErrorResponseContent"];
5874
+ };
5875
+ };
5876
+ /** @description UnauthorizedError 401 response */
5877
+ 401: {
5878
+ headers: {
5879
+ [name: string]: unknown;
5880
+ };
5881
+ content: {
5882
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
5883
+ };
5884
+ };
5885
+ /** @description ForbiddenError 403 response */
5886
+ 403: {
5887
+ headers: {
5888
+ [name: string]: unknown;
5889
+ };
5890
+ content: {
5891
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
5393
5892
  };
5394
5893
  };
5395
5894
  /** @description RateLimitError 429 response */
@@ -5410,26 +5909,35 @@ export interface operations {
5410
5909
  "application/json": components["schemas"]["InternalServerErrorResponseContent"];
5411
5910
  };
5412
5911
  };
5912
+ /** @description WebhookLimitError 507 response */
5913
+ 507: {
5914
+ headers: {
5915
+ [name: string]: unknown;
5916
+ };
5917
+ content: {
5918
+ "application/json": components["schemas"]["WebhookLimitErrorResponseContent"];
5919
+ };
5920
+ };
5413
5921
  };
5414
5922
  };
5415
- GetCardColumn: {
5923
+ GetCard: {
5416
5924
  parameters: {
5417
5925
  query?: never;
5418
5926
  header?: never;
5419
5927
  path: {
5420
- columnId: number;
5928
+ cardId: number;
5421
5929
  };
5422
5930
  cookie?: never;
5423
5931
  };
5424
5932
  requestBody?: never;
5425
5933
  responses: {
5426
- /** @description GetCardColumn 200 response */
5934
+ /** @description GetCard 200 response */
5427
5935
  200: {
5428
5936
  headers: {
5429
5937
  [name: string]: unknown;
5430
5938
  };
5431
5939
  content: {
5432
- "application/json": components["schemas"]["GetCardColumnResponseContent"];
5940
+ "application/json": components["schemas"]["GetCardResponseContent"];
5433
5941
  };
5434
5942
  };
5435
5943
  /** @description UnauthorizedError 401 response */
@@ -5470,28 +5978,28 @@ export interface operations {
5470
5978
  };
5471
5979
  };
5472
5980
  };
5473
- UpdateCardColumn: {
5981
+ UpdateCard: {
5474
5982
  parameters: {
5475
5983
  query?: never;
5476
5984
  header?: never;
5477
5985
  path: {
5478
- columnId: number;
5986
+ cardId: number;
5479
5987
  };
5480
5988
  cookie?: never;
5481
5989
  };
5482
5990
  requestBody?: {
5483
5991
  content: {
5484
- "application/json": components["schemas"]["UpdateCardColumnRequestContent"];
5992
+ "application/json": components["schemas"]["UpdateCardRequestContent"];
5485
5993
  };
5486
5994
  };
5487
5995
  responses: {
5488
- /** @description UpdateCardColumn 200 response */
5996
+ /** @description UpdateCard 200 response */
5489
5997
  200: {
5490
5998
  headers: {
5491
5999
  [name: string]: unknown;
5492
6000
  };
5493
6001
  content: {
5494
- "application/json": components["schemas"]["UpdateCardColumnResponseContent"];
6002
+ "application/json": components["schemas"]["UpdateCardResponseContent"];
5495
6003
  };
5496
6004
  };
5497
6005
  /** @description UnauthorizedError 401 response */
@@ -5541,30 +6049,97 @@ export interface operations {
5541
6049
  };
5542
6050
  };
5543
6051
  };
5544
- SetCardColumnColor: {
6052
+ MoveCard: {
5545
6053
  parameters: {
5546
6054
  query?: never;
5547
6055
  header?: never;
5548
6056
  path: {
5549
- columnId: number;
6057
+ cardId: number;
5550
6058
  };
5551
6059
  cookie?: never;
5552
6060
  };
5553
6061
  requestBody: {
5554
6062
  content: {
5555
- "application/json": components["schemas"]["SetCardColumnColorRequestContent"];
6063
+ "application/json": components["schemas"]["MoveCardRequestContent"];
5556
6064
  };
5557
6065
  };
5558
6066
  responses: {
5559
- /** @description SetCardColumnColor 200 response */
5560
- 200: {
6067
+ /** @description MoveCard 204 response */
6068
+ 204: {
6069
+ headers: {
6070
+ [name: string]: unknown;
6071
+ };
6072
+ content?: never;
6073
+ };
6074
+ /** @description UnauthorizedError 401 response */
6075
+ 401: {
5561
6076
  headers: {
5562
6077
  [name: string]: unknown;
5563
6078
  };
5564
6079
  content: {
5565
- "application/json": components["schemas"]["SetCardColumnColorResponseContent"];
6080
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
6081
+ };
6082
+ };
6083
+ /** @description ForbiddenError 403 response */
6084
+ 403: {
6085
+ headers: {
6086
+ [name: string]: unknown;
6087
+ };
6088
+ content: {
6089
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
6090
+ };
6091
+ };
6092
+ /** @description ValidationError 422 response */
6093
+ 422: {
6094
+ headers: {
6095
+ [name: string]: unknown;
6096
+ };
6097
+ content: {
6098
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
6099
+ };
6100
+ };
6101
+ /** @description RateLimitError 429 response */
6102
+ 429: {
6103
+ headers: {
6104
+ [name: string]: unknown;
6105
+ };
6106
+ content: {
6107
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
6108
+ };
6109
+ };
6110
+ /** @description InternalServerError 500 response */
6111
+ 500: {
6112
+ headers: {
6113
+ [name: string]: unknown;
6114
+ };
6115
+ content: {
6116
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
5566
6117
  };
5567
6118
  };
6119
+ };
6120
+ };
6121
+ RepositionCardStep: {
6122
+ parameters: {
6123
+ query?: never;
6124
+ header?: never;
6125
+ path: {
6126
+ cardId: number;
6127
+ };
6128
+ cookie?: never;
6129
+ };
6130
+ requestBody: {
6131
+ content: {
6132
+ "application/json": components["schemas"]["RepositionCardStepRequestContent"];
6133
+ };
6134
+ };
6135
+ responses: {
6136
+ /** @description RepositionCardStep 200 response */
6137
+ 200: {
6138
+ headers: {
6139
+ [name: string]: unknown;
6140
+ };
6141
+ content?: never;
6142
+ };
5568
6143
  /** @description UnauthorizedError 401 response */
5569
6144
  401: {
5570
6145
  headers: {
@@ -5583,13 +6158,75 @@ export interface operations {
5583
6158
  "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
5584
6159
  };
5585
6160
  };
5586
- /** @description NotFoundError 404 response */
5587
- 404: {
6161
+ /** @description ValidationError 422 response */
6162
+ 422: {
5588
6163
  headers: {
5589
6164
  [name: string]: unknown;
5590
6165
  };
5591
6166
  content: {
5592
- "application/json": components["schemas"]["NotFoundErrorResponseContent"];
6167
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
6168
+ };
6169
+ };
6170
+ /** @description RateLimitError 429 response */
6171
+ 429: {
6172
+ headers: {
6173
+ [name: string]: unknown;
6174
+ };
6175
+ content: {
6176
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
6177
+ };
6178
+ };
6179
+ /** @description InternalServerError 500 response */
6180
+ 500: {
6181
+ headers: {
6182
+ [name: string]: unknown;
6183
+ };
6184
+ content: {
6185
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
6186
+ };
6187
+ };
6188
+ };
6189
+ };
6190
+ CreateCardStep: {
6191
+ parameters: {
6192
+ query?: never;
6193
+ header?: never;
6194
+ path: {
6195
+ cardId: number;
6196
+ };
6197
+ cookie?: never;
6198
+ };
6199
+ requestBody: {
6200
+ content: {
6201
+ "application/json": components["schemas"]["CreateCardStepRequestContent"];
6202
+ };
6203
+ };
6204
+ responses: {
6205
+ /** @description CreateCardStep 201 response */
6206
+ 201: {
6207
+ headers: {
6208
+ [name: string]: unknown;
6209
+ };
6210
+ content: {
6211
+ "application/json": components["schemas"]["CreateCardStepResponseContent"];
6212
+ };
6213
+ };
6214
+ /** @description UnauthorizedError 401 response */
6215
+ 401: {
6216
+ headers: {
6217
+ [name: string]: unknown;
6218
+ };
6219
+ content: {
6220
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
6221
+ };
6222
+ };
6223
+ /** @description ForbiddenError 403 response */
6224
+ 403: {
6225
+ headers: {
6226
+ [name: string]: unknown;
6227
+ };
6228
+ content: {
6229
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
5593
6230
  };
5594
6231
  };
5595
6232
  /** @description ValidationError 422 response */
@@ -5601,6 +6238,15 @@ export interface operations {
5601
6238
  "application/json": components["schemas"]["ValidationErrorResponseContent"];
5602
6239
  };
5603
6240
  };
6241
+ /** @description RateLimitError 429 response */
6242
+ 429: {
6243
+ headers: {
6244
+ [name: string]: unknown;
6245
+ };
6246
+ content: {
6247
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
6248
+ };
6249
+ };
5604
6250
  /** @description InternalServerError 500 response */
5605
6251
  500: {
5606
6252
  headers: {
@@ -5612,7 +6258,7 @@ export interface operations {
5612
6258
  };
5613
6259
  };
5614
6260
  };
5615
- EnableCardColumnOnHold: {
6261
+ GetCardColumn: {
5616
6262
  parameters: {
5617
6263
  query?: never;
5618
6264
  header?: never;
@@ -5623,13 +6269,13 @@ export interface operations {
5623
6269
  };
5624
6270
  requestBody?: never;
5625
6271
  responses: {
5626
- /** @description EnableCardColumnOnHold 200 response */
6272
+ /** @description GetCardColumn 200 response */
5627
6273
  200: {
5628
6274
  headers: {
5629
6275
  [name: string]: unknown;
5630
6276
  };
5631
6277
  content: {
5632
- "application/json": components["schemas"]["EnableCardColumnOnHoldResponseContent"];
6278
+ "application/json": components["schemas"]["GetCardColumnResponseContent"];
5633
6279
  };
5634
6280
  };
5635
6281
  /** @description UnauthorizedError 401 response */
@@ -5650,22 +6296,13 @@ export interface operations {
5650
6296
  "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
5651
6297
  };
5652
6298
  };
5653
- /** @description ValidationError 422 response */
5654
- 422: {
5655
- headers: {
5656
- [name: string]: unknown;
5657
- };
5658
- content: {
5659
- "application/json": components["schemas"]["ValidationErrorResponseContent"];
5660
- };
5661
- };
5662
- /** @description RateLimitError 429 response */
5663
- 429: {
6299
+ /** @description NotFoundError 404 response */
6300
+ 404: {
5664
6301
  headers: {
5665
6302
  [name: string]: unknown;
5666
6303
  };
5667
6304
  content: {
5668
- "application/json": components["schemas"]["RateLimitErrorResponseContent"];
6305
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
5669
6306
  };
5670
6307
  };
5671
6308
  /** @description InternalServerError 500 response */
@@ -5679,7 +6316,7 @@ export interface operations {
5679
6316
  };
5680
6317
  };
5681
6318
  };
5682
- DisableCardColumnOnHold: {
6319
+ UpdateCardColumn: {
5683
6320
  parameters: {
5684
6321
  query?: never;
5685
6322
  header?: never;
@@ -5688,15 +6325,19 @@ export interface operations {
5688
6325
  };
5689
6326
  cookie?: never;
5690
6327
  };
5691
- requestBody?: never;
6328
+ requestBody?: {
6329
+ content: {
6330
+ "application/json": components["schemas"]["UpdateCardColumnRequestContent"];
6331
+ };
6332
+ };
5692
6333
  responses: {
5693
- /** @description DisableCardColumnOnHold 200 response */
6334
+ /** @description UpdateCardColumn 200 response */
5694
6335
  200: {
5695
6336
  headers: {
5696
6337
  [name: string]: unknown;
5697
6338
  };
5698
6339
  content: {
5699
- "application/json": components["schemas"]["DisableCardColumnOnHoldResponseContent"];
6340
+ "application/json": components["schemas"]["UpdateCardColumnResponseContent"];
5700
6341
  };
5701
6342
  };
5702
6343
  /** @description UnauthorizedError 401 response */
@@ -5726,6 +6367,15 @@ export interface operations {
5726
6367
  "application/json": components["schemas"]["NotFoundErrorResponseContent"];
5727
6368
  };
5728
6369
  };
6370
+ /** @description ValidationError 422 response */
6371
+ 422: {
6372
+ headers: {
6373
+ [name: string]: unknown;
6374
+ };
6375
+ content: {
6376
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
6377
+ };
6378
+ };
5729
6379
  /** @description InternalServerError 500 response */
5730
6380
  500: {
5731
6381
  headers: {
@@ -7319,6 +7969,85 @@ export interface operations {
7319
7969
  };
7320
7970
  };
7321
7971
  };
7972
+ UpdateCampfireLine: {
7973
+ parameters: {
7974
+ query?: never;
7975
+ header?: never;
7976
+ path: {
7977
+ campfireId: number;
7978
+ lineId: number;
7979
+ };
7980
+ cookie?: never;
7981
+ };
7982
+ requestBody: {
7983
+ content: {
7984
+ "application/json": components["schemas"]["UpdateCampfireLineRequestContent"];
7985
+ };
7986
+ };
7987
+ responses: {
7988
+ /** @description UpdateCampfireLine 204 response */
7989
+ 204: {
7990
+ headers: {
7991
+ [name: string]: unknown;
7992
+ };
7993
+ content?: never;
7994
+ };
7995
+ /** @description UnauthorizedError 401 response */
7996
+ 401: {
7997
+ headers: {
7998
+ [name: string]: unknown;
7999
+ };
8000
+ content: {
8001
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
8002
+ };
8003
+ };
8004
+ /** @description ForbiddenError 403 response */
8005
+ 403: {
8006
+ headers: {
8007
+ [name: string]: unknown;
8008
+ };
8009
+ content: {
8010
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
8011
+ };
8012
+ };
8013
+ /** @description NotFoundError 404 response */
8014
+ 404: {
8015
+ headers: {
8016
+ [name: string]: unknown;
8017
+ };
8018
+ content: {
8019
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
8020
+ };
8021
+ };
8022
+ /** @description ValidationError 422 response */
8023
+ 422: {
8024
+ headers: {
8025
+ [name: string]: unknown;
8026
+ };
8027
+ content: {
8028
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
8029
+ };
8030
+ };
8031
+ /** @description RateLimitError 429 response */
8032
+ 429: {
8033
+ headers: {
8034
+ [name: string]: unknown;
8035
+ };
8036
+ content: {
8037
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
8038
+ };
8039
+ };
8040
+ /** @description InternalServerError 500 response */
8041
+ 500: {
8042
+ headers: {
8043
+ [name: string]: unknown;
8044
+ };
8045
+ content: {
8046
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
8047
+ };
8048
+ };
8049
+ };
8050
+ };
7322
8051
  DeleteCampfireLine: {
7323
8052
  parameters: {
7324
8053
  query?: never;
@@ -8053,75 +8782,6 @@ export interface operations {
8053
8782
  };
8054
8783
  };
8055
8784
  };
8056
- CloneTool: {
8057
- parameters: {
8058
- query?: never;
8059
- header?: never;
8060
- path?: never;
8061
- cookie?: never;
8062
- };
8063
- requestBody: {
8064
- content: {
8065
- "application/json": components["schemas"]["CloneToolRequestContent"];
8066
- };
8067
- };
8068
- responses: {
8069
- /** @description CloneTool 201 response */
8070
- 201: {
8071
- headers: {
8072
- [name: string]: unknown;
8073
- };
8074
- content: {
8075
- "application/json": components["schemas"]["CloneToolResponseContent"];
8076
- };
8077
- };
8078
- /** @description UnauthorizedError 401 response */
8079
- 401: {
8080
- headers: {
8081
- [name: string]: unknown;
8082
- };
8083
- content: {
8084
- "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
8085
- };
8086
- };
8087
- /** @description ForbiddenError 403 response */
8088
- 403: {
8089
- headers: {
8090
- [name: string]: unknown;
8091
- };
8092
- content: {
8093
- "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
8094
- };
8095
- };
8096
- /** @description ValidationError 422 response */
8097
- 422: {
8098
- headers: {
8099
- [name: string]: unknown;
8100
- };
8101
- content: {
8102
- "application/json": components["schemas"]["ValidationErrorResponseContent"];
8103
- };
8104
- };
8105
- /** @description RateLimitError 429 response */
8106
- 429: {
8107
- headers: {
8108
- [name: string]: unknown;
8109
- };
8110
- content: {
8111
- "application/json": components["schemas"]["RateLimitErrorResponseContent"];
8112
- };
8113
- };
8114
- /** @description InternalServerError 500 response */
8115
- 500: {
8116
- headers: {
8117
- [name: string]: unknown;
8118
- };
8119
- content: {
8120
- "application/json": components["schemas"]["InternalServerErrorResponseContent"];
8121
- };
8122
- };
8123
- };
8124
- };
8125
8785
  GetTool: {
8126
8786
  parameters: {
8127
8787
  query?: never;
@@ -14577,8 +15237,41 @@ export interface operations {
14577
15237
  parameters: {
14578
15238
  query: {
14579
15239
  q: string;
14580
- /** @description best_match|created_at */
15240
+ /**
15241
+ * @description Recording types to include. Use `key` values from the metadata
15242
+ * endpoint's `recording_search_types`. Available since Basecamp 5.
15243
+ */
15244
+ "type_names[]"?: string[];
15245
+ /** @description Project IDs to filter by. Available since Basecamp 5. */
15246
+ "bucket_ids[]"?: number[];
15247
+ /** @description Creator person IDs to filter by. Available since Basecamp 5. */
15248
+ "creator_ids[]"?: number[];
15249
+ /**
15250
+ * @description Filter attachments by type. Use `key` values from the metadata
15251
+ * endpoint's `file_search_types`.
15252
+ */
15253
+ file_type?: string;
15254
+ /** @description Set to true to exclude chat results. */
15255
+ exclude_chat?: boolean;
15256
+ /** @description last_7_days|last_30_days|last_90_days|last_12_months|forever */
15257
+ since?: string;
15258
+ /** @description best_match|recency */
14581
15259
  sort?: string;
15260
+ /**
15261
+ * @deprecated
15262
+ * @description Deprecated: prefer type_names[].
15263
+ */
15264
+ type?: string;
15265
+ /**
15266
+ * @deprecated
15267
+ * @description Deprecated: prefer bucket_ids[].
15268
+ */
15269
+ bucket_id?: number;
15270
+ /**
15271
+ * @deprecated
15272
+ * @description Deprecated: prefer creator_ids[].
15273
+ */
15274
+ creator_id?: number;
14582
15275
  };
14583
15276
  header?: never;
14584
15277
  path?: never;
@@ -15779,7 +16472,7 @@ export interface operations {
15779
16472
  };
15780
16473
  };
15781
16474
  };
15782
- UpdateTodo: {
16475
+ ReplaceTodo: {
15783
16476
  parameters: {
15784
16477
  query?: never;
15785
16478
  header?: never;
@@ -15788,19 +16481,19 @@ export interface operations {
15788
16481
  };
15789
16482
  cookie?: never;
15790
16483
  };
15791
- requestBody?: {
16484
+ requestBody: {
15792
16485
  content: {
15793
- "application/json": components["schemas"]["UpdateTodoRequestContent"];
16486
+ "application/json": components["schemas"]["ReplaceTodoRequestContent"];
15794
16487
  };
15795
16488
  };
15796
16489
  responses: {
15797
- /** @description UpdateTodo 200 response */
16490
+ /** @description ReplaceTodo 200 response */
15798
16491
  200: {
15799
16492
  headers: {
15800
16493
  [name: string]: unknown;
15801
16494
  };
15802
16495
  content: {
15803
- "application/json": components["schemas"]["UpdateTodoResponseContent"];
16496
+ "application/json": components["schemas"]["ReplaceTodoResponseContent"];
15804
16497
  };
15805
16498
  };
15806
16499
  /** @description UnauthorizedError 401 response */
@@ -16096,6 +16789,75 @@ export interface operations {
16096
16789
  };
16097
16790
  };
16098
16791
  };
16792
+ RepositionTodolist: {
16793
+ parameters: {
16794
+ query?: never;
16795
+ header?: never;
16796
+ path: {
16797
+ todolistId: number;
16798
+ };
16799
+ cookie?: never;
16800
+ };
16801
+ requestBody: {
16802
+ content: {
16803
+ "application/json": components["schemas"]["RepositionTodolistRequestContent"];
16804
+ };
16805
+ };
16806
+ responses: {
16807
+ /** @description RepositionTodolist 204 response */
16808
+ 204: {
16809
+ headers: {
16810
+ [name: string]: unknown;
16811
+ };
16812
+ content?: never;
16813
+ };
16814
+ /** @description UnauthorizedError 401 response */
16815
+ 401: {
16816
+ headers: {
16817
+ [name: string]: unknown;
16818
+ };
16819
+ content: {
16820
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
16821
+ };
16822
+ };
16823
+ /** @description ForbiddenError 403 response */
16824
+ 403: {
16825
+ headers: {
16826
+ [name: string]: unknown;
16827
+ };
16828
+ content: {
16829
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
16830
+ };
16831
+ };
16832
+ /** @description NotFoundError 404 response */
16833
+ 404: {
16834
+ headers: {
16835
+ [name: string]: unknown;
16836
+ };
16837
+ content: {
16838
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
16839
+ };
16840
+ };
16841
+ /** @description ValidationError 422 response */
16842
+ 422: {
16843
+ headers: {
16844
+ [name: string]: unknown;
16845
+ };
16846
+ content: {
16847
+ "application/json": components["schemas"]["ValidationErrorResponseContent"];
16848
+ };
16849
+ };
16850
+ /** @description InternalServerError 500 response */
16851
+ 500: {
16852
+ headers: {
16853
+ [name: string]: unknown;
16854
+ };
16855
+ content: {
16856
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
16857
+ };
16858
+ };
16859
+ };
16860
+ };
16099
16861
  GetTodoset: {
16100
16862
  parameters: {
16101
16863
  query?: never;