@37signals/basecamp 0.25.0 → 0.26.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 (61) hide show
  1. package/README.md +1 -0
  2. package/dist/client.d.ts +5 -2
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +5 -2
  5. package/dist/client.js.map +1 -1
  6. package/dist/generated/metadata.d.ts.map +1 -1
  7. package/dist/generated/metadata.js +48 -1
  8. package/dist/generated/metadata.js.map +1 -1
  9. package/dist/generated/metadata.ts +48 -1
  10. package/dist/generated/openapi-stripped.json +500 -6
  11. package/dist/generated/path-mapping.d.ts.map +1 -1
  12. package/dist/generated/path-mapping.js +4 -0
  13. package/dist/generated/path-mapping.js.map +1 -1
  14. package/dist/generated/path-mapping.ts +4 -0
  15. package/dist/generated/person-id-sites.d.ts.map +1 -1
  16. package/dist/generated/person-id-sites.js +12 -0
  17. package/dist/generated/person-id-sites.js.map +1 -1
  18. package/dist/generated/person-id-sites.ts +12 -0
  19. package/dist/generated/schema.d.ts +439 -9
  20. package/dist/generated/services/boosts.d.ts +20 -0
  21. package/dist/generated/services/boosts.d.ts.map +1 -1
  22. package/dist/generated/services/boosts.js +32 -0
  23. package/dist/generated/services/boosts.js.map +1 -1
  24. package/dist/generated/services/boosts.ts +45 -0
  25. package/dist/generated/services/cards.d.ts +3 -2
  26. package/dist/generated/services/cards.d.ts.map +1 -1
  27. package/dist/generated/services/cards.js +1 -1
  28. package/dist/generated/services/cards.js.map +1 -1
  29. package/dist/generated/services/cards.ts +3 -2
  30. package/dist/generated/services/index.d.ts +1 -0
  31. package/dist/generated/services/index.d.ts.map +1 -1
  32. package/dist/generated/services/index.js +1 -0
  33. package/dist/generated/services/index.js.map +1 -1
  34. package/dist/generated/services/index.ts +1 -0
  35. package/dist/generated/services/pings.d.ts +59 -0
  36. package/dist/generated/services/pings.d.ts.map +1 -0
  37. package/dist/generated/services/pings.js +89 -0
  38. package/dist/generated/services/pings.js.map +1 -0
  39. package/dist/generated/services/pings.ts +125 -0
  40. package/dist/generated/services/wormholes.d.ts +3 -3
  41. package/dist/generated/services/wormholes.js +3 -3
  42. package/dist/generated/services/wormholes.ts +3 -3
  43. package/dist/index.d.ts +2 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +2 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/services/recordings-extensions.d.ts +8 -7
  48. package/dist/services/recordings-extensions.d.ts.map +1 -1
  49. package/dist/services/recordings-extensions.js +63 -18
  50. package/dist/services/recordings-extensions.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/generated/metadata.ts +48 -1
  53. package/src/generated/openapi-stripped.json +500 -6
  54. package/src/generated/path-mapping.ts +4 -0
  55. package/src/generated/person-id-sites.ts +12 -0
  56. package/src/generated/schema.d.ts +439 -9
  57. package/src/generated/services/boosts.ts +45 -0
  58. package/src/generated/services/cards.ts +3 -2
  59. package/src/generated/services/index.ts +1 -0
  60. package/src/generated/services/pings.ts +125 -0
  61. package/src/generated/services/wormholes.ts +3 -3
@@ -86,7 +86,14 @@ export interface paths {
86
86
  };
87
87
  /** @description Get a single boost */
88
88
  get: operations["GetBoost"];
89
- put?: never;
89
+ /**
90
+ * @description Replace the content of a boost. Only the boost's creator may update it: an
91
+ * admin updating someone else's boost gets 403 Forbidden, as does any caller
92
+ * when comments are closed on the boosted recording. A boost on a deleted
93
+ * recording, or in another account, answers 404. A missing or invalid
94
+ * `content` answers a bodiless 422. There is no bucket-scoped route.
95
+ */
96
+ put: operations["UpdateBoost"];
90
97
  post?: never;
91
98
  /** @description Delete a boost */
92
99
  delete: operations["DeleteBoost"];
@@ -138,10 +145,14 @@ export interface paths {
138
145
  cookie?: never;
139
146
  };
140
147
  get?: never;
141
- /** @description Update a wormhole's destination column */
148
+ /** @description Point a card table's wormhole, its shortcut for sending cards to another card table, at a different destination column */
142
149
  put: operations["UpdateWormhole"];
143
150
  post?: never;
144
- /** @description Delete a wormhole */
151
+ /**
152
+ * @description Permanently delete a card table's wormhole, the shortcut that sends cards to another card table.
153
+ *
154
+ * It does not go to the trash and cannot be restored.
155
+ */
145
156
  delete: operations["DeleteWormhole"];
146
157
  options?: never;
147
158
  head?: never;
@@ -158,10 +169,12 @@ export interface paths {
158
169
  get?: never;
159
170
  put?: never;
160
171
  /**
161
- * @description Create a wormhole linking this card table to a column on another card table.
172
+ * @description Add a wormhole to a card table: a standing shortcut that sends cards to a column on another card table, usually in another project.
162
173
  *
163
174
  * 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.
175
+ * id is a valid `column_id` for MoveCard, teleporting the card there. It is not
176
+ * needed for a one-off move within a project; MoveCard goes to any column there
177
+ * directly. A card table holds at most four wormholes.
165
178
  * `destinationRecordingId` is the id of a column on another accessible card table.
166
179
  */
167
180
  post: operations["CreateWormhole"];
@@ -533,7 +546,18 @@ export interface paths {
533
546
  };
534
547
  get?: never;
535
548
  put?: never;
536
- /** @description Move a card to a different column */
549
+ /**
550
+ * @description Move a card to any column in its project, including on another card table there, or through a linked wormhole to another project (queued: the card gets a new id, and position, if sent, must still be positive but doesn't set placement).
551
+ *
552
+ * `column_id` may be any column in the card's project, including a column on
553
+ * another card table in the same project; the card moves there directly, with
554
+ * no wormhole needed. To send the card to another project, pass the id of a
555
+ * linked wormhole (`linked: true`) the card table already has, listed in
556
+ * GetCardTable's `wormholes`; an unlinked or unreachable one returns not found.
557
+ * A move through a wormhole is queued: the card arrives under a new id and its
558
+ * old id then returns not found. `position` does not control where it lands,
559
+ * but if supplied it must still be a positive integer.
560
+ */
537
561
  post: operations["MoveCard"];
538
562
  delete?: never;
539
563
  options?: never;
@@ -960,6 +984,44 @@ export interface paths {
960
984
  patch?: never;
961
985
  trace?: never;
962
986
  };
987
+ "/circles.json": {
988
+ parameters: {
989
+ query?: never;
990
+ header?: never;
991
+ path?: never;
992
+ cookie?: never;
993
+ };
994
+ /**
995
+ * @description Get Pings: the caller's active Pings that have a line in them, most
996
+ * recently updated first, in one unpaginated response. Archived Pings, and
997
+ * Pings no one has posted in yet, are not listed; GetPing reads either by id.
998
+ *
999
+ * Answers `403 Forbidden` (`{"error": "Pings have been disabled"}`) when the
1000
+ * caller cannot ping.
1001
+ */
1002
+ get: operations["ListPings"];
1003
+ put?: never;
1004
+ /**
1005
+ * @description Create a Ping with people, or return the one that already holds exactly
1006
+ * them.
1007
+ *
1008
+ * The caller is always included. Without `new_group`, an existing active
1009
+ * Ping with exactly these people (the oldest, if several) is returned rather
1010
+ * than a second one created; with `new_group: true` and more than one other
1011
+ * person, a new group is created every time. Either way the answer is
1012
+ * `201 Created` with the Ping.
1013
+ *
1014
+ * Answers `403 Forbidden` (`{"error": "Pings have been disabled"}`) when the
1015
+ * caller cannot ping, and a bodiless `422` when nobody in the Ping would be a
1016
+ * person who can ping.
1017
+ */
1018
+ post: operations["CreatePing"];
1019
+ delete?: never;
1020
+ options?: never;
1021
+ head?: never;
1022
+ patch?: never;
1023
+ trace?: never;
1024
+ };
963
1025
  "/circles/people.json": {
964
1026
  parameters: {
965
1027
  query?: never;
@@ -982,6 +1044,29 @@ export interface paths {
982
1044
  patch?: never;
983
1045
  trace?: never;
984
1046
  };
1047
+ "/circles/{pingId}": {
1048
+ parameters: {
1049
+ query?: never;
1050
+ header?: never;
1051
+ path?: never;
1052
+ cookie?: never;
1053
+ };
1054
+ /**
1055
+ * @description Get a Ping by its id, which is its bucket's id.
1056
+ *
1057
+ * Answers `403 Forbidden` (`{"error": "Pings have been disabled"}`) when the
1058
+ * caller cannot ping, and `404 Not Found` for a bucket that is not a Ping the
1059
+ * caller is in.
1060
+ */
1061
+ get: operations["GetPing"];
1062
+ put?: never;
1063
+ post?: never;
1064
+ delete?: never;
1065
+ options?: never;
1066
+ head?: never;
1067
+ patch?: never;
1068
+ trace?: never;
1069
+ };
985
1070
  "/client/approvals/{approvalId}": {
986
1071
  parameters: {
987
1072
  query?: never;
@@ -4260,6 +4345,13 @@ export interface components {
4260
4345
  creator: components["schemas"]["Person"];
4261
4346
  subscribers?: components["schemas"]["Person"][];
4262
4347
  lists?: components["schemas"]["CardColumn"][];
4348
+ /**
4349
+ * @description The card table's wormholes: shortcuts for sending cards to other card
4350
+ * tables, usually in other projects. Only wormholes whose destination the
4351
+ * requester can reach are listed; the rest are omitted, not shown unlinked.
4352
+ * Not needed to move a card within its project; MoveCard reaches any column
4353
+ * there directly.
4354
+ */
4263
4355
  wormholes?: components["schemas"]["Wormhole"][];
4264
4356
  };
4265
4357
  Chatbot: {
@@ -4660,6 +4752,16 @@ export interface components {
4660
4752
  /** Format: password */
4661
4753
  company_name?: string;
4662
4754
  };
4755
+ CreatePingRequestContent: {
4756
+ /**
4757
+ * @description Person ids of the people to ping. People the caller cannot reach are
4758
+ * dropped.
4759
+ */
4760
+ user_ids: number[];
4761
+ /** @description Create a new group even when a Ping with exactly these people exists. */
4762
+ new_group?: boolean;
4763
+ };
4764
+ CreatePingResponseContent: components["schemas"]["Ping"];
4663
4765
  CreateProjectFromTemplateRequestContent: {
4664
4766
  project: components["schemas"]["ProjectConstructionAttributes"];
4665
4767
  };
@@ -5585,6 +5687,7 @@ export interface components {
5585
5687
  events: components["schemas"]["TimelineEvent"][];
5586
5688
  };
5587
5689
  GetPersonResponseContent: components["schemas"]["Person"];
5690
+ GetPingResponseContent: components["schemas"]["Ping"];
5588
5691
  GetProgressReportResponseContent: components["schemas"]["TimelineEvent"][];
5589
5692
  GetProjectConstructionResponseContent: components["schemas"]["ProjectConstruction"];
5590
5693
  GetProjectResponseContent: components["schemas"]["Project"];
@@ -5779,6 +5882,7 @@ export interface components {
5779
5882
  ListMyDraftsResponseContent: components["schemas"]["Draft"][];
5780
5883
  ListPeopleResponseContent: components["schemas"]["Person"][];
5781
5884
  ListPingablePeopleResponseContent: components["schemas"]["Person"][];
5885
+ ListPingsResponseContent: components["schemas"]["Ping"][];
5782
5886
  ListProjectPeopleResponseContent: components["schemas"]["Person"][];
5783
5887
  ListProjectsResponseContent: components["schemas"]["Project"][];
5784
5888
  ListQuestionAnswerersResponseContent: components["schemas"]["Person"][];
@@ -5882,7 +5986,11 @@ export interface components {
5882
5986
  position?: number;
5883
5987
  };
5884
5988
  MoveCardRequestContent: {
5885
- /** Format: int64 */
5989
+ /**
5990
+ * Format: int64
5991
+ * @description Any column in the card's project, on this or another card table, or a
5992
+ * wormhole id to send the card to another project.
5993
+ */
5886
5994
  column_id: number;
5887
5995
  /**
5888
5996
  * Format: int32
@@ -6122,6 +6230,59 @@ export interface components {
6122
6230
  /** Format: password */
6123
6231
  name: string;
6124
6232
  };
6233
+ /**
6234
+ * @description A Ping: a private conversation between people, held in its own bucket with
6235
+ * one Campfire. The Campfire's lines are read and written through the
6236
+ * Campfires service; `room_url` and `links.lines` name it.
6237
+ */
6238
+ Ping: {
6239
+ /**
6240
+ * Format: int64
6241
+ * @description The Ping's id, which is also its bucket's id.
6242
+ */
6243
+ id: number;
6244
+ created_at: string;
6245
+ updated_at: string;
6246
+ /**
6247
+ * @description The Ping's name for the caller: its given name when `named`, else the
6248
+ * names of the other people in it.
6249
+ */
6250
+ title: string;
6251
+ /** @description Whether someone gave the Ping a name. */
6252
+ named: boolean;
6253
+ /** @description The Ping's own image, present only when one was uploaded. */
6254
+ image_url?: string;
6255
+ /** Format: password */
6256
+ avatar_url: string;
6257
+ url: string;
6258
+ app_url: string;
6259
+ bookmark_url: string;
6260
+ /** @description The Ping's Campfire (`/buckets/{bucketId}/chats/{campfireId}.json`). */
6261
+ room_url: string;
6262
+ /**
6263
+ * @description Present only when the Ping can be renamed: one with more than one other
6264
+ * person in it.
6265
+ */
6266
+ edit_title_url?: string;
6267
+ links: components["schemas"]["PingLinks"];
6268
+ /**
6269
+ * @description The people in the Ping other than the caller; the caller alone when
6270
+ * nobody else is in it.
6271
+ */
6272
+ people: components["schemas"]["Person"][];
6273
+ };
6274
+ /**
6275
+ * @description The Ping's Campfire endpoints, so a client need not derive them from
6276
+ * `room_url`. The wire object also repeats `url`, `app_url`, `bookmark_url`
6277
+ * and `edit_title_url` as `self`, `app`, `bookmark` and `edit_title`; those
6278
+ * are read from the Ping's own fields.
6279
+ */
6280
+ PingLinks: {
6281
+ /** @description The Campfire's lines (`/buckets/{bucketId}/chats/{campfireId}/lines.json`). */
6282
+ lines: string;
6283
+ /** @description The Campfire's uploads. */
6284
+ files: string;
6285
+ };
6125
6286
  /**
6126
6287
  * @description The poll envelope. Every 200 carries `events` and `position`; `next` only
6127
6288
  * while the walk continues.
@@ -7886,6 +8047,10 @@ export interface components {
7886
8047
  name: string;
7887
8048
  };
7888
8049
  UpdateAccountNameResponseContent: components["schemas"]["Account"];
8050
+ UpdateBoostRequestContent: {
8051
+ content: string;
8052
+ };
8053
+ UpdateBoostResponseContent: components["schemas"]["Boost"];
7889
8054
  UpdateCalendarRequestContent: {
7890
8055
  calendar: components["schemas"]["CalendarAttributes"];
7891
8056
  };
@@ -8304,8 +8469,9 @@ export interface components {
8304
8469
  message?: string;
8305
8470
  };
8306
8471
  /**
8307
- * @description A wormhole links this card table to a column on another card table, enabling
8308
- * cards to move across projects. It carries the full recording representation
8472
+ * @description A wormhole is a standing shortcut from this card table to a column on another
8473
+ * card table, usually in another project, and the only way to move a card across
8474
+ * projects. It carries the full recording representation
8309
8475
  * plus the destination-linkage fields. The wormhole's own `url`/`app_url`/`parent`
8310
8476
  * point at the *source* board; `destination_url` is the only field identifying
8311
8477
  * the destination column.
@@ -8741,6 +8907,75 @@ export interface operations {
8741
8907
  };
8742
8908
  };
8743
8909
  };
8910
+ UpdateBoost: {
8911
+ parameters: {
8912
+ query?: never;
8913
+ header?: never;
8914
+ path: {
8915
+ boostId: number;
8916
+ };
8917
+ cookie?: never;
8918
+ };
8919
+ requestBody: {
8920
+ content: {
8921
+ "application/json": components["schemas"]["UpdateBoostRequestContent"];
8922
+ };
8923
+ };
8924
+ responses: {
8925
+ /** @description UpdateBoost 200 response */
8926
+ 200: {
8927
+ headers: {
8928
+ [name: string]: unknown;
8929
+ };
8930
+ content: {
8931
+ "application/json": components["schemas"]["UpdateBoostResponseContent"];
8932
+ };
8933
+ };
8934
+ /** @description UnauthorizedError 401 response */
8935
+ 401: {
8936
+ headers: {
8937
+ [name: string]: unknown;
8938
+ };
8939
+ content: {
8940
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
8941
+ };
8942
+ };
8943
+ /** @description ForbiddenError 403 response */
8944
+ 403: {
8945
+ headers: {
8946
+ [name: string]: unknown;
8947
+ };
8948
+ content: {
8949
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
8950
+ };
8951
+ };
8952
+ /** @description NotFoundError 404 response */
8953
+ 404: {
8954
+ headers: {
8955
+ [name: string]: unknown;
8956
+ };
8957
+ content: {
8958
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
8959
+ };
8960
+ };
8961
+ /** @description BareValidationError 422 response */
8962
+ 422: {
8963
+ headers: {
8964
+ [name: string]: unknown;
8965
+ };
8966
+ content?: never;
8967
+ };
8968
+ /** @description InternalServerError 500 response */
8969
+ 500: {
8970
+ headers: {
8971
+ [name: string]: unknown;
8972
+ };
8973
+ content: {
8974
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
8975
+ };
8976
+ };
8977
+ };
8978
+ };
8744
8979
  DeleteBoost: {
8745
8980
  parameters: {
8746
8981
  query?: never;
@@ -13005,6 +13240,129 @@ export interface operations {
13005
13240
  };
13006
13241
  };
13007
13242
  };
13243
+ ListPings: {
13244
+ parameters: {
13245
+ query?: never;
13246
+ header?: never;
13247
+ path?: never;
13248
+ cookie?: never;
13249
+ };
13250
+ requestBody?: never;
13251
+ responses: {
13252
+ /** @description ListPings 200 response */
13253
+ 200: {
13254
+ headers: {
13255
+ [name: string]: unknown;
13256
+ };
13257
+ content: {
13258
+ "application/json": components["schemas"]["ListPingsResponseContent"];
13259
+ };
13260
+ };
13261
+ /** @description UnauthorizedError 401 response */
13262
+ 401: {
13263
+ headers: {
13264
+ [name: string]: unknown;
13265
+ };
13266
+ content: {
13267
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
13268
+ };
13269
+ };
13270
+ /** @description ForbiddenError 403 response */
13271
+ 403: {
13272
+ headers: {
13273
+ [name: string]: unknown;
13274
+ };
13275
+ content: {
13276
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
13277
+ };
13278
+ };
13279
+ /** @description RateLimitError 429 response */
13280
+ 429: {
13281
+ headers: {
13282
+ [name: string]: unknown;
13283
+ };
13284
+ content: {
13285
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
13286
+ };
13287
+ };
13288
+ /** @description InternalServerError 500 response */
13289
+ 500: {
13290
+ headers: {
13291
+ [name: string]: unknown;
13292
+ };
13293
+ content: {
13294
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
13295
+ };
13296
+ };
13297
+ };
13298
+ };
13299
+ CreatePing: {
13300
+ parameters: {
13301
+ query?: never;
13302
+ header?: never;
13303
+ path?: never;
13304
+ cookie?: never;
13305
+ };
13306
+ requestBody: {
13307
+ content: {
13308
+ "application/json": components["schemas"]["CreatePingRequestContent"];
13309
+ };
13310
+ };
13311
+ responses: {
13312
+ /** @description CreatePing 201 response */
13313
+ 201: {
13314
+ headers: {
13315
+ [name: string]: unknown;
13316
+ };
13317
+ content: {
13318
+ "application/json": components["schemas"]["CreatePingResponseContent"];
13319
+ };
13320
+ };
13321
+ /** @description UnauthorizedError 401 response */
13322
+ 401: {
13323
+ headers: {
13324
+ [name: string]: unknown;
13325
+ };
13326
+ content: {
13327
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
13328
+ };
13329
+ };
13330
+ /** @description ForbiddenError 403 response */
13331
+ 403: {
13332
+ headers: {
13333
+ [name: string]: unknown;
13334
+ };
13335
+ content: {
13336
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
13337
+ };
13338
+ };
13339
+ /** @description BareValidationError 422 response */
13340
+ 422: {
13341
+ headers: {
13342
+ [name: string]: unknown;
13343
+ };
13344
+ content?: never;
13345
+ };
13346
+ /** @description RateLimitError 429 response */
13347
+ 429: {
13348
+ headers: {
13349
+ [name: string]: unknown;
13350
+ };
13351
+ content: {
13352
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
13353
+ };
13354
+ };
13355
+ /** @description InternalServerError 500 response */
13356
+ 500: {
13357
+ headers: {
13358
+ [name: string]: unknown;
13359
+ };
13360
+ content: {
13361
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
13362
+ };
13363
+ };
13364
+ };
13365
+ };
13008
13366
  ListPingablePeople: {
13009
13367
  parameters: {
13010
13368
  query?: never;
@@ -13061,6 +13419,78 @@ export interface operations {
13061
13419
  };
13062
13420
  };
13063
13421
  };
13422
+ GetPing: {
13423
+ parameters: {
13424
+ query?: never;
13425
+ header?: never;
13426
+ path: {
13427
+ /**
13428
+ * @description A Ping's id is the id of the bucket that holds it (the bucket type is
13429
+ * "Circle", which is also the wire path), so the `bucket.id` a Ping's
13430
+ * recordings carry is the id GetPing takes.
13431
+ */
13432
+ pingId: number;
13433
+ };
13434
+ cookie?: never;
13435
+ };
13436
+ requestBody?: never;
13437
+ responses: {
13438
+ /** @description GetPing 200 response */
13439
+ 200: {
13440
+ headers: {
13441
+ [name: string]: unknown;
13442
+ };
13443
+ content: {
13444
+ "application/json": components["schemas"]["GetPingResponseContent"];
13445
+ };
13446
+ };
13447
+ /** @description UnauthorizedError 401 response */
13448
+ 401: {
13449
+ headers: {
13450
+ [name: string]: unknown;
13451
+ };
13452
+ content: {
13453
+ "application/json": components["schemas"]["UnauthorizedErrorResponseContent"];
13454
+ };
13455
+ };
13456
+ /** @description ForbiddenError 403 response */
13457
+ 403: {
13458
+ headers: {
13459
+ [name: string]: unknown;
13460
+ };
13461
+ content: {
13462
+ "application/json": components["schemas"]["ForbiddenErrorResponseContent"];
13463
+ };
13464
+ };
13465
+ /** @description NotFoundError 404 response */
13466
+ 404: {
13467
+ headers: {
13468
+ [name: string]: unknown;
13469
+ };
13470
+ content: {
13471
+ "application/json": components["schemas"]["NotFoundErrorResponseContent"];
13472
+ };
13473
+ };
13474
+ /** @description RateLimitError 429 response */
13475
+ 429: {
13476
+ headers: {
13477
+ [name: string]: unknown;
13478
+ };
13479
+ content: {
13480
+ "application/json": components["schemas"]["RateLimitErrorResponseContent"];
13481
+ };
13482
+ };
13483
+ /** @description InternalServerError 500 response */
13484
+ 500: {
13485
+ headers: {
13486
+ [name: string]: unknown;
13487
+ };
13488
+ content: {
13489
+ "application/json": components["schemas"]["InternalServerErrorResponseContent"];
13490
+ };
13491
+ };
13492
+ };
13493
+ };
13064
13494
  GetClientApproval: {
13065
13495
  parameters: {
13066
13496
  query?: never;
@@ -9,6 +9,13 @@ import { ListResult } from "../../pagination.js";
9
9
  import type { PaginationOptions } from "../../pagination.js";
10
10
  /** Boost entity from the Basecamp API. */
11
11
  export type Boost = components["schemas"]["Boost"];
12
+ /**
13
+ * Request parameters for update.
14
+ */
15
+ export interface UpdateBoostRequest {
16
+ /** Text content */
17
+ content: string;
18
+ }
12
19
  /**
13
20
  * Options for listForRecording.
14
21
  */
@@ -53,6 +60,19 @@ export declare class BoostsService extends BaseService {
53
60
  * ```
54
61
  */
55
62
  get(boostId: number): Promise<Boost>;
63
+ /**
64
+ * Replace the content of a boost. Only the boost's creator may update it: an
65
+ * @param boostId - The boost ID
66
+ * @param req - Boost update parameters
67
+ * @returns The Boost
68
+ * @throws {BasecampError} If the resource is not found or fields are invalid
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const result = await client.boosts.update(123, { content: "Hello world" });
73
+ * ```
74
+ */
75
+ update(boostId: number, req: UpdateBoostRequest): Promise<Boost>;
56
76
  /**
57
77
  * Delete a boost
58
78
  * @param boostId - The boost ID
@@ -1 +1 @@
1
- {"version":3,"file":"boosts.d.ts","sourceRoot":"","sources":["../../../src/generated/services/boosts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO7D,0CAA0C;AAC1C,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB;IACrE,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAmB1C;;;;;;;;;;OAUG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5C;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAoB/G;;;;;;;;;;;OAWG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,8BAA8B,GAAG,OAAO,CAAC,KAAK,CAAC;IAyBlG;;;;;;;;;;;;;;OAcG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAoBxH;;;;;;;;;;;;OAYG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,KAAK,CAAC;CAwB5G"}
1
+ {"version":3,"file":"boosts.d.ts","sourceRoot":"","sources":["../../../src/generated/services/boosts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO7D,0CAA0C;AAC1C,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB;IACrE,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAE5C;;;;;;;;;;OAUG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAmB1C;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IAyBtE;;;;;;;;;;OAUG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5C;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAoB/G;;;;;;;;;;;OAWG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,8BAA8B,GAAG,OAAO,CAAC,KAAK,CAAC;IAyBlG;;;;;;;;;;;;;;OAcG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAoBxH;;;;;;;;;;;;OAYG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,KAAK,CAAC;CAwB5G"}
@@ -37,6 +37,38 @@ export class BoostsService extends BaseService {
37
37
  }));
38
38
  return response;
39
39
  }
40
+ /**
41
+ * Replace the content of a boost. Only the boost's creator may update it: an
42
+ * @param boostId - The boost ID
43
+ * @param req - Boost update parameters
44
+ * @returns The Boost
45
+ * @throws {BasecampError} If the resource is not found or fields are invalid
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * const result = await client.boosts.update(123, { content: "Hello world" });
50
+ * ```
51
+ */
52
+ async update(boostId, req) {
53
+ if (!req.content) {
54
+ throw Errors.validation("Content is required");
55
+ }
56
+ const response = await this.request({
57
+ service: "Boosts",
58
+ operation: "UpdateBoost",
59
+ resourceType: "boost",
60
+ isMutation: true,
61
+ resourceId: boostId,
62
+ }, () => this.client.PUT("/boosts/{boostId}", {
63
+ params: {
64
+ path: { boostId },
65
+ },
66
+ body: {
67
+ content: req.content,
68
+ },
69
+ }));
70
+ return response;
71
+ }
40
72
  /**
41
73
  * Delete a boost
42
74
  * @param boostId - The boost ID
@@ -1 +1 @@
1
- {"version":3,"file":"boosts.js","sourceRoot":"","sources":["../../../src/generated/services/boosts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boosts.js","sourceRoot":"","sources":["../../../src/generated/services/boosts.ts"],"names":[],"mappings":"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"}