@37signals/basecamp 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +5 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -2
- package/dist/client.js.map +1 -1
- package/dist/download.d.ts.map +1 -1
- package/dist/download.js +70 -19
- package/dist/download.js.map +1 -1
- package/dist/errors.d.ts +14 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +54 -2
- package/dist/errors.js.map +1 -1
- package/dist/generated/metadata.d.ts.map +1 -1
- package/dist/generated/metadata.js +115 -1
- package/dist/generated/metadata.js.map +1 -1
- package/dist/generated/metadata.ts +115 -1
- package/dist/generated/openapi-stripped.json +1135 -182
- package/dist/generated/path-mapping.d.ts.map +1 -1
- package/dist/generated/path-mapping.js +9 -0
- package/dist/generated/path-mapping.js.map +1 -1
- package/dist/generated/path-mapping.ts +9 -0
- package/dist/generated/schema.d.ts +821 -2
- package/dist/generated/services/bubble-ups.d.ts +48 -0
- package/dist/generated/services/bubble-ups.d.ts.map +1 -0
- package/dist/generated/services/bubble-ups.js +67 -0
- package/dist/generated/services/bubble-ups.js.map +1 -0
- package/dist/generated/services/bubble-ups.ts +98 -0
- package/dist/generated/services/index.d.ts +1 -0
- package/dist/generated/services/index.d.ts.map +1 -1
- package/dist/generated/services/index.js +1 -0
- package/dist/generated/services/index.js.map +1 -1
- package/dist/generated/services/index.ts +1 -0
- package/dist/generated/services/projects.d.ts +22 -0
- package/dist/generated/services/projects.d.ts.map +1 -1
- package/dist/generated/services/projects.js +42 -0
- package/dist/generated/services/projects.js.map +1 -1
- package/dist/generated/services/projects.ts +53 -0
- package/dist/generated/services/recordings.d.ts +24 -0
- package/dist/generated/services/recordings.d.ts.map +1 -1
- package/dist/generated/services/recordings.js +49 -0
- package/dist/generated/services/recordings.js.map +1 -1
- package/dist/generated/services/recordings.ts +59 -0
- package/dist/generated/services/templates.d.ts +46 -0
- package/dist/generated/services/templates.d.ts.map +1 -1
- package/dist/generated/services/templates.js +70 -0
- package/dist/generated/services/templates.js.map +1 -1
- package/dist/generated/services/templates.ts +98 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/oauth/device.d.ts.map +1 -1
- package/dist/oauth/device.js +9 -71
- package/dist/oauth/device.js.map +1 -1
- package/dist/oauth/exchange.d.ts.map +1 -1
- package/dist/oauth/exchange.js +55 -16
- package/dist/oauth/exchange.js.map +1 -1
- package/dist/oauth/limits.d.ts +33 -2
- package/dist/oauth/limits.d.ts.map +1 -1
- package/dist/oauth/limits.js +76 -2
- package/dist/oauth/limits.js.map +1 -1
- package/package.json +2 -2
- package/src/generated/metadata.ts +115 -1
- package/src/generated/openapi-stripped.json +1135 -182
- package/src/generated/path-mapping.ts +9 -0
- package/src/generated/schema.d.ts +821 -2
- package/src/generated/services/bubble-ups.ts +98 -0
- package/src/generated/services/index.ts +1 -0
- package/src/generated/services/projects.ts +53 -0
- package/src/generated/services/recordings.ts +59 -0
- package/src/generated/services/templates.ts +98 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Basecamp",
|
|
5
|
-
"version": "2026-
|
|
5
|
+
"version": "2026-09-02",
|
|
6
6
|
"description": "Basecamp API",
|
|
7
7
|
"contact": {
|
|
8
8
|
"name": "Basecamp",
|
|
@@ -11204,6 +11204,77 @@
|
|
|
11204
11204
|
}
|
|
11205
11205
|
}
|
|
11206
11206
|
},
|
|
11207
|
+
"/my/recent_projects.json": {
|
|
11208
|
+
"get": {
|
|
11209
|
+
"description": "List the projects the current user has most recently visited, most recent visit first.\nReads the per-user visit log — capped at the 50 most recent visits, keeping\nonly active projects the user can still access — not the home grid's\npinned-exclusion and padding. This endpoint is not paginated. Each entry is\nthe standard project projection plus the current user's bookmarked flag. A\nvisit is recorded when the user opens a project in Basecamp, when they\ncreate one, and by RecordProjectVisit.",
|
|
11210
|
+
"operationId": "ListRecentProjects",
|
|
11211
|
+
"parameters": [],
|
|
11212
|
+
"responses": {
|
|
11213
|
+
"200": {
|
|
11214
|
+
"description": "ListRecentProjects 200 response",
|
|
11215
|
+
"content": {
|
|
11216
|
+
"application/json": {
|
|
11217
|
+
"schema": {
|
|
11218
|
+
"$ref": "#/components/schemas/ListRecentProjectsResponseContent"
|
|
11219
|
+
}
|
|
11220
|
+
}
|
|
11221
|
+
}
|
|
11222
|
+
},
|
|
11223
|
+
"401": {
|
|
11224
|
+
"description": "UnauthorizedError 401 response",
|
|
11225
|
+
"content": {
|
|
11226
|
+
"application/json": {
|
|
11227
|
+
"schema": {
|
|
11228
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
11229
|
+
}
|
|
11230
|
+
}
|
|
11231
|
+
}
|
|
11232
|
+
},
|
|
11233
|
+
"403": {
|
|
11234
|
+
"description": "ForbiddenError 403 response",
|
|
11235
|
+
"content": {
|
|
11236
|
+
"application/json": {
|
|
11237
|
+
"schema": {
|
|
11238
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
11239
|
+
}
|
|
11240
|
+
}
|
|
11241
|
+
}
|
|
11242
|
+
},
|
|
11243
|
+
"429": {
|
|
11244
|
+
"description": "RateLimitError 429 response",
|
|
11245
|
+
"content": {
|
|
11246
|
+
"application/json": {
|
|
11247
|
+
"schema": {
|
|
11248
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
11249
|
+
}
|
|
11250
|
+
}
|
|
11251
|
+
}
|
|
11252
|
+
},
|
|
11253
|
+
"500": {
|
|
11254
|
+
"description": "InternalServerError 500 response",
|
|
11255
|
+
"content": {
|
|
11256
|
+
"application/json": {
|
|
11257
|
+
"schema": {
|
|
11258
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
11259
|
+
}
|
|
11260
|
+
}
|
|
11261
|
+
}
|
|
11262
|
+
}
|
|
11263
|
+
},
|
|
11264
|
+
"tags": [
|
|
11265
|
+
"Projects"
|
|
11266
|
+
],
|
|
11267
|
+
"x-basecamp-retry": {
|
|
11268
|
+
"maxAttempts": 3,
|
|
11269
|
+
"baseDelayMs": 1000,
|
|
11270
|
+
"backoff": "exponential",
|
|
11271
|
+
"retryOn": [
|
|
11272
|
+
429,
|
|
11273
|
+
503
|
|
11274
|
+
]
|
|
11275
|
+
}
|
|
11276
|
+
}
|
|
11277
|
+
},
|
|
11207
11278
|
"/my/unreads.json": {
|
|
11208
11279
|
"put": {
|
|
11209
11280
|
"description": "Mark specified items as read",
|
|
@@ -13012,6 +13083,93 @@
|
|
|
13012
13083
|
}
|
|
13013
13084
|
}
|
|
13014
13085
|
},
|
|
13086
|
+
"/projects/{projectId}/recent_visit.json": {
|
|
13087
|
+
"post": {
|
|
13088
|
+
"description": "Record that the current user visited a project, moving it to the front of ListRecentProjects (returns 204 No Content).\nIdempotent: re-recording a visit refreshes the same entry. Visits to\narchived or trashed projects are accepted but not recorded, and an\ninaccessible project answers 404.",
|
|
13089
|
+
"operationId": "RecordProjectVisit",
|
|
13090
|
+
"parameters": [
|
|
13091
|
+
{
|
|
13092
|
+
"name": "projectId",
|
|
13093
|
+
"in": "path",
|
|
13094
|
+
"schema": {
|
|
13095
|
+
"type": "integer",
|
|
13096
|
+
"format": "int64"
|
|
13097
|
+
},
|
|
13098
|
+
"required": true
|
|
13099
|
+
}
|
|
13100
|
+
],
|
|
13101
|
+
"responses": {
|
|
13102
|
+
"204": {
|
|
13103
|
+
"description": "RecordProjectVisit 204 response"
|
|
13104
|
+
},
|
|
13105
|
+
"401": {
|
|
13106
|
+
"description": "UnauthorizedError 401 response",
|
|
13107
|
+
"content": {
|
|
13108
|
+
"application/json": {
|
|
13109
|
+
"schema": {
|
|
13110
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
13111
|
+
}
|
|
13112
|
+
}
|
|
13113
|
+
}
|
|
13114
|
+
},
|
|
13115
|
+
"403": {
|
|
13116
|
+
"description": "ForbiddenError 403 response",
|
|
13117
|
+
"content": {
|
|
13118
|
+
"application/json": {
|
|
13119
|
+
"schema": {
|
|
13120
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
13121
|
+
}
|
|
13122
|
+
}
|
|
13123
|
+
}
|
|
13124
|
+
},
|
|
13125
|
+
"404": {
|
|
13126
|
+
"description": "NotFoundError 404 response",
|
|
13127
|
+
"content": {
|
|
13128
|
+
"application/json": {
|
|
13129
|
+
"schema": {
|
|
13130
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
13131
|
+
}
|
|
13132
|
+
}
|
|
13133
|
+
}
|
|
13134
|
+
},
|
|
13135
|
+
"429": {
|
|
13136
|
+
"description": "RateLimitError 429 response",
|
|
13137
|
+
"content": {
|
|
13138
|
+
"application/json": {
|
|
13139
|
+
"schema": {
|
|
13140
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
13141
|
+
}
|
|
13142
|
+
}
|
|
13143
|
+
}
|
|
13144
|
+
},
|
|
13145
|
+
"500": {
|
|
13146
|
+
"description": "InternalServerError 500 response",
|
|
13147
|
+
"content": {
|
|
13148
|
+
"application/json": {
|
|
13149
|
+
"schema": {
|
|
13150
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
13151
|
+
}
|
|
13152
|
+
}
|
|
13153
|
+
}
|
|
13154
|
+
}
|
|
13155
|
+
},
|
|
13156
|
+
"tags": [
|
|
13157
|
+
"Projects"
|
|
13158
|
+
],
|
|
13159
|
+
"x-basecamp-idempotent": {
|
|
13160
|
+
"natural": true
|
|
13161
|
+
},
|
|
13162
|
+
"x-basecamp-retry": {
|
|
13163
|
+
"maxAttempts": 3,
|
|
13164
|
+
"baseDelayMs": 1000,
|
|
13165
|
+
"backoff": "exponential",
|
|
13166
|
+
"retryOn": [
|
|
13167
|
+
429,
|
|
13168
|
+
503
|
|
13169
|
+
]
|
|
13170
|
+
}
|
|
13171
|
+
}
|
|
13172
|
+
},
|
|
13015
13173
|
"/projects/{projectId}/status/active.json": {
|
|
13016
13174
|
"put": {
|
|
13017
13175
|
"description": "Restore a project to active status from trash as well as from the archive (returns 204 No Content).\nThis is the inverse of both ArchiveProject and TrashProject. Restoring counts against\nthe account's project limit, so it answers 507 when that limit is already reached.",
|
|
@@ -15321,20 +15479,10 @@
|
|
|
15321
15479
|
}
|
|
15322
15480
|
}
|
|
15323
15481
|
},
|
|
15324
|
-
"/recordings/{recordingId}/
|
|
15325
|
-
"
|
|
15326
|
-
"description": "
|
|
15327
|
-
"operationId": "
|
|
15328
|
-
"requestBody": {
|
|
15329
|
-
"content": {
|
|
15330
|
-
"application/json": {
|
|
15331
|
-
"schema": {
|
|
15332
|
-
"$ref": "#/components/schemas/SetClientVisibilityRequestContent"
|
|
15333
|
-
}
|
|
15334
|
-
}
|
|
15335
|
-
},
|
|
15336
|
-
"required": true
|
|
15337
|
-
},
|
|
15482
|
+
"/recordings/{recordingId}/bubble_up.json": {
|
|
15483
|
+
"delete": {
|
|
15484
|
+
"description": "Remove the current user's bubble-up from a recording (returns 204 No Content).\nIdempotent: popping an absent bubble-up also returns 204.",
|
|
15485
|
+
"operationId": "DeleteBubbleUp",
|
|
15338
15486
|
"parameters": [
|
|
15339
15487
|
{
|
|
15340
15488
|
"name": "recordingId",
|
|
@@ -15347,15 +15495,8 @@
|
|
|
15347
15495
|
}
|
|
15348
15496
|
],
|
|
15349
15497
|
"responses": {
|
|
15350
|
-
"
|
|
15351
|
-
"description": "
|
|
15352
|
-
"content": {
|
|
15353
|
-
"application/json": {
|
|
15354
|
-
"schema": {
|
|
15355
|
-
"$ref": "#/components/schemas/SetClientVisibilityResponseContent"
|
|
15356
|
-
}
|
|
15357
|
-
}
|
|
15358
|
-
}
|
|
15498
|
+
"204": {
|
|
15499
|
+
"description": "DeleteBubbleUp 204 response"
|
|
15359
15500
|
},
|
|
15360
15501
|
"401": {
|
|
15361
15502
|
"description": "UnauthorizedError 401 response",
|
|
@@ -15387,12 +15528,12 @@
|
|
|
15387
15528
|
}
|
|
15388
15529
|
}
|
|
15389
15530
|
},
|
|
15390
|
-
"
|
|
15391
|
-
"description": "
|
|
15531
|
+
"429": {
|
|
15532
|
+
"description": "RateLimitError 429 response",
|
|
15392
15533
|
"content": {
|
|
15393
15534
|
"application/json": {
|
|
15394
15535
|
"schema": {
|
|
15395
|
-
"$ref": "#/components/schemas/
|
|
15536
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
15396
15537
|
}
|
|
15397
15538
|
}
|
|
15398
15539
|
}
|
|
@@ -15409,7 +15550,7 @@
|
|
|
15409
15550
|
}
|
|
15410
15551
|
},
|
|
15411
15552
|
"tags": [
|
|
15412
|
-
"
|
|
15553
|
+
"BubbleUps"
|
|
15413
15554
|
],
|
|
15414
15555
|
"x-basecamp-idempotent": {
|
|
15415
15556
|
"natural": true
|
|
@@ -15423,12 +15564,19 @@
|
|
|
15423
15564
|
503
|
|
15424
15565
|
]
|
|
15425
15566
|
}
|
|
15426
|
-
}
|
|
15427
|
-
|
|
15428
|
-
|
|
15429
|
-
|
|
15430
|
-
"
|
|
15431
|
-
|
|
15567
|
+
},
|
|
15568
|
+
"post": {
|
|
15569
|
+
"description": "Bubble up a recording for the current user, resurfacing it in the current\nuser's readings (the BC5 successor to \"save\"). Returns 204 No Content with\nno body.\n\nThe `at` field controls timing. Send `\"now\"` to bubble up immediately, or a\nscheduling keyword (`\"today\"`, `\"tomorrow\"`, `\"weekend\"`, `\"next_week\"`) or\nan ISO8601 date (e.g. `\"2026-09-10\"`) to schedule it to resurface later.\nNOTE: bc3 currently requires `at` — omitting it raises on the server\n(`Date.iso8601(nil)`), so send `\"now\"` for the immediate case. The field is\nmodeled optional (not `@required`) so a future bc3 default (`params[:at] ||=\n\"now\"`) makes omission mean \"now\" without an SDK change.\n\nIdempotent: bubbling up an already-bubbled recording is set-membership and\nstill returns 204.",
|
|
15570
|
+
"operationId": "CreateBubbleUp",
|
|
15571
|
+
"requestBody": {
|
|
15572
|
+
"content": {
|
|
15573
|
+
"application/json": {
|
|
15574
|
+
"schema": {
|
|
15575
|
+
"$ref": "#/components/schemas/CreateBubbleUpRequestContent"
|
|
15576
|
+
}
|
|
15577
|
+
}
|
|
15578
|
+
}
|
|
15579
|
+
},
|
|
15432
15580
|
"parameters": [
|
|
15433
15581
|
{
|
|
15434
15582
|
"name": "recordingId",
|
|
@@ -15438,28 +15586,11 @@
|
|
|
15438
15586
|
"format": "int64"
|
|
15439
15587
|
},
|
|
15440
15588
|
"required": true
|
|
15441
|
-
},
|
|
15442
|
-
{
|
|
15443
|
-
"name": "page",
|
|
15444
|
-
"in": "query",
|
|
15445
|
-
"description": "Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8.",
|
|
15446
|
-
"schema": {
|
|
15447
|
-
"type": "integer",
|
|
15448
|
-
"description": "Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8.",
|
|
15449
|
-
"format": "int32"
|
|
15450
|
-
}
|
|
15451
15589
|
}
|
|
15452
15590
|
],
|
|
15453
15591
|
"responses": {
|
|
15454
|
-
"
|
|
15455
|
-
"description": "
|
|
15456
|
-
"content": {
|
|
15457
|
-
"application/json": {
|
|
15458
|
-
"schema": {
|
|
15459
|
-
"$ref": "#/components/schemas/ListCommentsResponseContent"
|
|
15460
|
-
}
|
|
15461
|
-
}
|
|
15462
|
-
}
|
|
15592
|
+
"204": {
|
|
15593
|
+
"description": "CreateBubbleUp 204 response"
|
|
15463
15594
|
},
|
|
15464
15595
|
"401": {
|
|
15465
15596
|
"description": "UnauthorizedError 401 response",
|
|
@@ -15481,6 +15612,16 @@
|
|
|
15481
15612
|
}
|
|
15482
15613
|
}
|
|
15483
15614
|
},
|
|
15615
|
+
"404": {
|
|
15616
|
+
"description": "NotFoundError 404 response",
|
|
15617
|
+
"content": {
|
|
15618
|
+
"application/json": {
|
|
15619
|
+
"schema": {
|
|
15620
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
15621
|
+
}
|
|
15622
|
+
}
|
|
15623
|
+
}
|
|
15624
|
+
},
|
|
15484
15625
|
"429": {
|
|
15485
15626
|
"description": "RateLimitError 429 response",
|
|
15486
15627
|
"content": {
|
|
@@ -15503,12 +15644,10 @@
|
|
|
15503
15644
|
}
|
|
15504
15645
|
},
|
|
15505
15646
|
"tags": [
|
|
15506
|
-
"
|
|
15647
|
+
"BubbleUps"
|
|
15507
15648
|
],
|
|
15508
|
-
"x-basecamp-
|
|
15509
|
-
"
|
|
15510
|
-
"totalCountHeader": "X-Total-Count",
|
|
15511
|
-
"maxPageSize": 50
|
|
15649
|
+
"x-basecamp-idempotent": {
|
|
15650
|
+
"natural": true
|
|
15512
15651
|
},
|
|
15513
15652
|
"x-basecamp-retry": {
|
|
15514
15653
|
"maxAttempts": 3,
|
|
@@ -15519,15 +15658,17 @@
|
|
|
15519
15658
|
503
|
|
15520
15659
|
]
|
|
15521
15660
|
}
|
|
15522
|
-
}
|
|
15523
|
-
|
|
15524
|
-
|
|
15525
|
-
|
|
15661
|
+
}
|
|
15662
|
+
},
|
|
15663
|
+
"/recordings/{recordingId}/client_visibility.json": {
|
|
15664
|
+
"put": {
|
|
15665
|
+
"description": "Set client visibility for a recording",
|
|
15666
|
+
"operationId": "SetClientVisibility",
|
|
15526
15667
|
"requestBody": {
|
|
15527
15668
|
"content": {
|
|
15528
15669
|
"application/json": {
|
|
15529
15670
|
"schema": {
|
|
15530
|
-
"$ref": "#/components/schemas/
|
|
15671
|
+
"$ref": "#/components/schemas/SetClientVisibilityRequestContent"
|
|
15531
15672
|
}
|
|
15532
15673
|
}
|
|
15533
15674
|
},
|
|
@@ -15545,12 +15686,12 @@
|
|
|
15545
15686
|
}
|
|
15546
15687
|
],
|
|
15547
15688
|
"responses": {
|
|
15548
|
-
"
|
|
15549
|
-
"description": "
|
|
15689
|
+
"200": {
|
|
15690
|
+
"description": "SetClientVisibility 200 response",
|
|
15550
15691
|
"content": {
|
|
15551
15692
|
"application/json": {
|
|
15552
15693
|
"schema": {
|
|
15553
|
-
"$ref": "#/components/schemas/
|
|
15694
|
+
"$ref": "#/components/schemas/SetClientVisibilityResponseContent"
|
|
15554
15695
|
}
|
|
15555
15696
|
}
|
|
15556
15697
|
}
|
|
@@ -15575,8 +15716,206 @@
|
|
|
15575
15716
|
}
|
|
15576
15717
|
}
|
|
15577
15718
|
},
|
|
15578
|
-
"
|
|
15579
|
-
"description": "
|
|
15719
|
+
"404": {
|
|
15720
|
+
"description": "NotFoundError 404 response",
|
|
15721
|
+
"content": {
|
|
15722
|
+
"application/json": {
|
|
15723
|
+
"schema": {
|
|
15724
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
15725
|
+
}
|
|
15726
|
+
}
|
|
15727
|
+
}
|
|
15728
|
+
},
|
|
15729
|
+
"422": {
|
|
15730
|
+
"description": "ValidationError 422 response",
|
|
15731
|
+
"content": {
|
|
15732
|
+
"application/json": {
|
|
15733
|
+
"schema": {
|
|
15734
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
15735
|
+
}
|
|
15736
|
+
}
|
|
15737
|
+
}
|
|
15738
|
+
},
|
|
15739
|
+
"500": {
|
|
15740
|
+
"description": "InternalServerError 500 response",
|
|
15741
|
+
"content": {
|
|
15742
|
+
"application/json": {
|
|
15743
|
+
"schema": {
|
|
15744
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
15745
|
+
}
|
|
15746
|
+
}
|
|
15747
|
+
}
|
|
15748
|
+
}
|
|
15749
|
+
},
|
|
15750
|
+
"tags": [
|
|
15751
|
+
"ClientFeatures"
|
|
15752
|
+
],
|
|
15753
|
+
"x-basecamp-idempotent": {
|
|
15754
|
+
"natural": true
|
|
15755
|
+
},
|
|
15756
|
+
"x-basecamp-retry": {
|
|
15757
|
+
"maxAttempts": 3,
|
|
15758
|
+
"baseDelayMs": 1000,
|
|
15759
|
+
"backoff": "exponential",
|
|
15760
|
+
"retryOn": [
|
|
15761
|
+
429,
|
|
15762
|
+
503
|
|
15763
|
+
]
|
|
15764
|
+
}
|
|
15765
|
+
}
|
|
15766
|
+
},
|
|
15767
|
+
"/recordings/{recordingId}/comments.json": {
|
|
15768
|
+
"get": {
|
|
15769
|
+
"description": "List comments on a recording\n\n**Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL\nto fetch additional pages. X-Total-Count header provides total count.",
|
|
15770
|
+
"operationId": "ListComments",
|
|
15771
|
+
"parameters": [
|
|
15772
|
+
{
|
|
15773
|
+
"name": "recordingId",
|
|
15774
|
+
"in": "path",
|
|
15775
|
+
"schema": {
|
|
15776
|
+
"type": "integer",
|
|
15777
|
+
"format": "int64"
|
|
15778
|
+
},
|
|
15779
|
+
"required": true
|
|
15780
|
+
},
|
|
15781
|
+
{
|
|
15782
|
+
"name": "page",
|
|
15783
|
+
"in": "query",
|
|
15784
|
+
"description": "Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8.",
|
|
15785
|
+
"schema": {
|
|
15786
|
+
"type": "integer",
|
|
15787
|
+
"description": "Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8.",
|
|
15788
|
+
"format": "int32"
|
|
15789
|
+
}
|
|
15790
|
+
}
|
|
15791
|
+
],
|
|
15792
|
+
"responses": {
|
|
15793
|
+
"200": {
|
|
15794
|
+
"description": "ListComments 200 response",
|
|
15795
|
+
"content": {
|
|
15796
|
+
"application/json": {
|
|
15797
|
+
"schema": {
|
|
15798
|
+
"$ref": "#/components/schemas/ListCommentsResponseContent"
|
|
15799
|
+
}
|
|
15800
|
+
}
|
|
15801
|
+
}
|
|
15802
|
+
},
|
|
15803
|
+
"401": {
|
|
15804
|
+
"description": "UnauthorizedError 401 response",
|
|
15805
|
+
"content": {
|
|
15806
|
+
"application/json": {
|
|
15807
|
+
"schema": {
|
|
15808
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
15809
|
+
}
|
|
15810
|
+
}
|
|
15811
|
+
}
|
|
15812
|
+
},
|
|
15813
|
+
"403": {
|
|
15814
|
+
"description": "ForbiddenError 403 response",
|
|
15815
|
+
"content": {
|
|
15816
|
+
"application/json": {
|
|
15817
|
+
"schema": {
|
|
15818
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
15819
|
+
}
|
|
15820
|
+
}
|
|
15821
|
+
}
|
|
15822
|
+
},
|
|
15823
|
+
"429": {
|
|
15824
|
+
"description": "RateLimitError 429 response",
|
|
15825
|
+
"content": {
|
|
15826
|
+
"application/json": {
|
|
15827
|
+
"schema": {
|
|
15828
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
15829
|
+
}
|
|
15830
|
+
}
|
|
15831
|
+
}
|
|
15832
|
+
},
|
|
15833
|
+
"500": {
|
|
15834
|
+
"description": "InternalServerError 500 response",
|
|
15835
|
+
"content": {
|
|
15836
|
+
"application/json": {
|
|
15837
|
+
"schema": {
|
|
15838
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
15839
|
+
}
|
|
15840
|
+
}
|
|
15841
|
+
}
|
|
15842
|
+
}
|
|
15843
|
+
},
|
|
15844
|
+
"tags": [
|
|
15845
|
+
"Messages"
|
|
15846
|
+
],
|
|
15847
|
+
"x-basecamp-pagination": {
|
|
15848
|
+
"style": "link",
|
|
15849
|
+
"totalCountHeader": "X-Total-Count",
|
|
15850
|
+
"maxPageSize": 50
|
|
15851
|
+
},
|
|
15852
|
+
"x-basecamp-retry": {
|
|
15853
|
+
"maxAttempts": 3,
|
|
15854
|
+
"baseDelayMs": 1000,
|
|
15855
|
+
"backoff": "exponential",
|
|
15856
|
+
"retryOn": [
|
|
15857
|
+
429,
|
|
15858
|
+
503
|
|
15859
|
+
]
|
|
15860
|
+
}
|
|
15861
|
+
},
|
|
15862
|
+
"post": {
|
|
15863
|
+
"description": "Create a new comment on a recording",
|
|
15864
|
+
"operationId": "CreateComment",
|
|
15865
|
+
"requestBody": {
|
|
15866
|
+
"content": {
|
|
15867
|
+
"application/json": {
|
|
15868
|
+
"schema": {
|
|
15869
|
+
"$ref": "#/components/schemas/CreateCommentRequestContent"
|
|
15870
|
+
}
|
|
15871
|
+
}
|
|
15872
|
+
},
|
|
15873
|
+
"required": true
|
|
15874
|
+
},
|
|
15875
|
+
"parameters": [
|
|
15876
|
+
{
|
|
15877
|
+
"name": "recordingId",
|
|
15878
|
+
"in": "path",
|
|
15879
|
+
"schema": {
|
|
15880
|
+
"type": "integer",
|
|
15881
|
+
"format": "int64"
|
|
15882
|
+
},
|
|
15883
|
+
"required": true
|
|
15884
|
+
}
|
|
15885
|
+
],
|
|
15886
|
+
"responses": {
|
|
15887
|
+
"201": {
|
|
15888
|
+
"description": "CreateComment 201 response",
|
|
15889
|
+
"content": {
|
|
15890
|
+
"application/json": {
|
|
15891
|
+
"schema": {
|
|
15892
|
+
"$ref": "#/components/schemas/CreateCommentResponseContent"
|
|
15893
|
+
}
|
|
15894
|
+
}
|
|
15895
|
+
}
|
|
15896
|
+
},
|
|
15897
|
+
"401": {
|
|
15898
|
+
"description": "UnauthorizedError 401 response",
|
|
15899
|
+
"content": {
|
|
15900
|
+
"application/json": {
|
|
15901
|
+
"schema": {
|
|
15902
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
15903
|
+
}
|
|
15904
|
+
}
|
|
15905
|
+
}
|
|
15906
|
+
},
|
|
15907
|
+
"403": {
|
|
15908
|
+
"description": "ForbiddenError 403 response",
|
|
15909
|
+
"content": {
|
|
15910
|
+
"application/json": {
|
|
15911
|
+
"schema": {
|
|
15912
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
15913
|
+
}
|
|
15914
|
+
}
|
|
15915
|
+
}
|
|
15916
|
+
},
|
|
15917
|
+
"422": {
|
|
15918
|
+
"description": "ValidationError 422 response",
|
|
15580
15919
|
"content": {
|
|
15581
15920
|
"application/json": {
|
|
15582
15921
|
"schema": {
|
|
@@ -15929,10 +16268,10 @@
|
|
|
15929
16268
|
}
|
|
15930
16269
|
}
|
|
15931
16270
|
},
|
|
15932
|
-
"/recordings/{recordingId}/
|
|
15933
|
-
"
|
|
15934
|
-
"description": "
|
|
15935
|
-
"operationId": "
|
|
16271
|
+
"/recordings/{recordingId}/spotlight.json": {
|
|
16272
|
+
"delete": {
|
|
16273
|
+
"description": "Remove a recording from the spotlight area.\nIdempotent: removing an absent spotlight also returns 204.",
|
|
16274
|
+
"operationId": "UnspotlightRecording",
|
|
15936
16275
|
"parameters": [
|
|
15937
16276
|
{
|
|
15938
16277
|
"name": "recordingId",
|
|
@@ -15946,7 +16285,7 @@
|
|
|
15946
16285
|
],
|
|
15947
16286
|
"responses": {
|
|
15948
16287
|
"204": {
|
|
15949
|
-
"description": "
|
|
16288
|
+
"description": "UnspotlightRecording 204 response"
|
|
15950
16289
|
},
|
|
15951
16290
|
"401": {
|
|
15952
16291
|
"description": "UnauthorizedError 401 response",
|
|
@@ -15978,12 +16317,12 @@
|
|
|
15978
16317
|
}
|
|
15979
16318
|
}
|
|
15980
16319
|
},
|
|
15981
|
-
"
|
|
15982
|
-
"description": "
|
|
16320
|
+
"429": {
|
|
16321
|
+
"description": "RateLimitError 429 response",
|
|
15983
16322
|
"content": {
|
|
15984
16323
|
"application/json": {
|
|
15985
16324
|
"schema": {
|
|
15986
|
-
"$ref": "#/components/schemas/
|
|
16325
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
15987
16326
|
}
|
|
15988
16327
|
}
|
|
15989
16328
|
}
|
|
@@ -16014,12 +16353,10 @@
|
|
|
16014
16353
|
503
|
|
16015
16354
|
]
|
|
16016
16355
|
}
|
|
16017
|
-
}
|
|
16018
|
-
|
|
16019
|
-
|
|
16020
|
-
|
|
16021
|
-
"description": "Archive a recording",
|
|
16022
|
-
"operationId": "ArchiveRecording",
|
|
16356
|
+
},
|
|
16357
|
+
"post": {
|
|
16358
|
+
"description": "Put a recording's card in the spotlight area on its project or template home page.\nIdempotent: spotlighting an already-spotlighted recording still returns 201.",
|
|
16359
|
+
"operationId": "SpotlightRecording",
|
|
16023
16360
|
"parameters": [
|
|
16024
16361
|
{
|
|
16025
16362
|
"name": "recordingId",
|
|
@@ -16032,8 +16369,15 @@
|
|
|
16032
16369
|
}
|
|
16033
16370
|
],
|
|
16034
16371
|
"responses": {
|
|
16035
|
-
"
|
|
16036
|
-
"description": "
|
|
16372
|
+
"201": {
|
|
16373
|
+
"description": "SpotlightRecording 201 response",
|
|
16374
|
+
"content": {
|
|
16375
|
+
"application/json": {
|
|
16376
|
+
"schema": {
|
|
16377
|
+
"$ref": "#/components/schemas/SpotlightRecordingResponseContent"
|
|
16378
|
+
}
|
|
16379
|
+
}
|
|
16380
|
+
}
|
|
16037
16381
|
},
|
|
16038
16382
|
"401": {
|
|
16039
16383
|
"description": "UnauthorizedError 401 response",
|
|
@@ -16075,6 +16419,16 @@
|
|
|
16075
16419
|
}
|
|
16076
16420
|
}
|
|
16077
16421
|
},
|
|
16422
|
+
"429": {
|
|
16423
|
+
"description": "RateLimitError 429 response",
|
|
16424
|
+
"content": {
|
|
16425
|
+
"application/json": {
|
|
16426
|
+
"schema": {
|
|
16427
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
16428
|
+
}
|
|
16429
|
+
}
|
|
16430
|
+
}
|
|
16431
|
+
},
|
|
16078
16432
|
"500": {
|
|
16079
16433
|
"description": "InternalServerError 500 response",
|
|
16080
16434
|
"content": {
|
|
@@ -16103,10 +16457,10 @@
|
|
|
16103
16457
|
}
|
|
16104
16458
|
}
|
|
16105
16459
|
},
|
|
16106
|
-
"/recordings/{recordingId}/status/
|
|
16460
|
+
"/recordings/{recordingId}/status/active.json": {
|
|
16107
16461
|
"put": {
|
|
16108
|
-
"description": "
|
|
16109
|
-
"operationId": "
|
|
16462
|
+
"description": "Unarchive a recording (restore to active status)",
|
|
16463
|
+
"operationId": "UnarchiveRecording",
|
|
16110
16464
|
"parameters": [
|
|
16111
16465
|
{
|
|
16112
16466
|
"name": "recordingId",
|
|
@@ -16115,19 +16469,12 @@
|
|
|
16115
16469
|
"type": "integer",
|
|
16116
16470
|
"format": "int64"
|
|
16117
16471
|
},
|
|
16118
|
-
"required": true
|
|
16119
|
-
"examples": {
|
|
16120
|
-
"TrashRecording_example1": {
|
|
16121
|
-
"summary": "Trash any recording type",
|
|
16122
|
-
"description": "Works on comments, messages, documents, cards - any recording",
|
|
16123
|
-
"value": 555666
|
|
16124
|
-
}
|
|
16125
|
-
}
|
|
16472
|
+
"required": true
|
|
16126
16473
|
}
|
|
16127
16474
|
],
|
|
16128
16475
|
"responses": {
|
|
16129
16476
|
"204": {
|
|
16130
|
-
"description": "
|
|
16477
|
+
"description": "UnarchiveRecording 204 response"
|
|
16131
16478
|
},
|
|
16132
16479
|
"401": {
|
|
16133
16480
|
"description": "UnauthorizedError 401 response",
|
|
@@ -16197,8 +16544,189 @@
|
|
|
16197
16544
|
}
|
|
16198
16545
|
}
|
|
16199
16546
|
},
|
|
16200
|
-
"/recordings/{recordingId}/
|
|
16201
|
-
"
|
|
16547
|
+
"/recordings/{recordingId}/status/archived.json": {
|
|
16548
|
+
"put": {
|
|
16549
|
+
"description": "Archive a recording",
|
|
16550
|
+
"operationId": "ArchiveRecording",
|
|
16551
|
+
"parameters": [
|
|
16552
|
+
{
|
|
16553
|
+
"name": "recordingId",
|
|
16554
|
+
"in": "path",
|
|
16555
|
+
"schema": {
|
|
16556
|
+
"type": "integer",
|
|
16557
|
+
"format": "int64"
|
|
16558
|
+
},
|
|
16559
|
+
"required": true
|
|
16560
|
+
}
|
|
16561
|
+
],
|
|
16562
|
+
"responses": {
|
|
16563
|
+
"204": {
|
|
16564
|
+
"description": "ArchiveRecording 204 response"
|
|
16565
|
+
},
|
|
16566
|
+
"401": {
|
|
16567
|
+
"description": "UnauthorizedError 401 response",
|
|
16568
|
+
"content": {
|
|
16569
|
+
"application/json": {
|
|
16570
|
+
"schema": {
|
|
16571
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
16572
|
+
}
|
|
16573
|
+
}
|
|
16574
|
+
}
|
|
16575
|
+
},
|
|
16576
|
+
"403": {
|
|
16577
|
+
"description": "ForbiddenError 403 response",
|
|
16578
|
+
"content": {
|
|
16579
|
+
"application/json": {
|
|
16580
|
+
"schema": {
|
|
16581
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
16582
|
+
}
|
|
16583
|
+
}
|
|
16584
|
+
}
|
|
16585
|
+
},
|
|
16586
|
+
"404": {
|
|
16587
|
+
"description": "NotFoundError 404 response",
|
|
16588
|
+
"content": {
|
|
16589
|
+
"application/json": {
|
|
16590
|
+
"schema": {
|
|
16591
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
16592
|
+
}
|
|
16593
|
+
}
|
|
16594
|
+
}
|
|
16595
|
+
},
|
|
16596
|
+
"422": {
|
|
16597
|
+
"description": "ValidationError 422 response",
|
|
16598
|
+
"content": {
|
|
16599
|
+
"application/json": {
|
|
16600
|
+
"schema": {
|
|
16601
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
16602
|
+
}
|
|
16603
|
+
}
|
|
16604
|
+
}
|
|
16605
|
+
},
|
|
16606
|
+
"500": {
|
|
16607
|
+
"description": "InternalServerError 500 response",
|
|
16608
|
+
"content": {
|
|
16609
|
+
"application/json": {
|
|
16610
|
+
"schema": {
|
|
16611
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
16612
|
+
}
|
|
16613
|
+
}
|
|
16614
|
+
}
|
|
16615
|
+
}
|
|
16616
|
+
},
|
|
16617
|
+
"tags": [
|
|
16618
|
+
"Automation"
|
|
16619
|
+
],
|
|
16620
|
+
"x-basecamp-idempotent": {
|
|
16621
|
+
"natural": true
|
|
16622
|
+
},
|
|
16623
|
+
"x-basecamp-retry": {
|
|
16624
|
+
"maxAttempts": 3,
|
|
16625
|
+
"baseDelayMs": 1000,
|
|
16626
|
+
"backoff": "exponential",
|
|
16627
|
+
"retryOn": [
|
|
16628
|
+
429,
|
|
16629
|
+
503
|
|
16630
|
+
]
|
|
16631
|
+
}
|
|
16632
|
+
}
|
|
16633
|
+
},
|
|
16634
|
+
"/recordings/{recordingId}/status/trashed.json": {
|
|
16635
|
+
"put": {
|
|
16636
|
+
"description": "Trash a recording",
|
|
16637
|
+
"operationId": "TrashRecording",
|
|
16638
|
+
"parameters": [
|
|
16639
|
+
{
|
|
16640
|
+
"name": "recordingId",
|
|
16641
|
+
"in": "path",
|
|
16642
|
+
"schema": {
|
|
16643
|
+
"type": "integer",
|
|
16644
|
+
"format": "int64"
|
|
16645
|
+
},
|
|
16646
|
+
"required": true,
|
|
16647
|
+
"examples": {
|
|
16648
|
+
"TrashRecording_example1": {
|
|
16649
|
+
"summary": "Trash any recording type",
|
|
16650
|
+
"description": "Works on comments, messages, documents, cards - any recording",
|
|
16651
|
+
"value": 555666
|
|
16652
|
+
}
|
|
16653
|
+
}
|
|
16654
|
+
}
|
|
16655
|
+
],
|
|
16656
|
+
"responses": {
|
|
16657
|
+
"204": {
|
|
16658
|
+
"description": "TrashRecording 204 response"
|
|
16659
|
+
},
|
|
16660
|
+
"401": {
|
|
16661
|
+
"description": "UnauthorizedError 401 response",
|
|
16662
|
+
"content": {
|
|
16663
|
+
"application/json": {
|
|
16664
|
+
"schema": {
|
|
16665
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
16666
|
+
}
|
|
16667
|
+
}
|
|
16668
|
+
}
|
|
16669
|
+
},
|
|
16670
|
+
"403": {
|
|
16671
|
+
"description": "ForbiddenError 403 response",
|
|
16672
|
+
"content": {
|
|
16673
|
+
"application/json": {
|
|
16674
|
+
"schema": {
|
|
16675
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
16676
|
+
}
|
|
16677
|
+
}
|
|
16678
|
+
}
|
|
16679
|
+
},
|
|
16680
|
+
"404": {
|
|
16681
|
+
"description": "NotFoundError 404 response",
|
|
16682
|
+
"content": {
|
|
16683
|
+
"application/json": {
|
|
16684
|
+
"schema": {
|
|
16685
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
16686
|
+
}
|
|
16687
|
+
}
|
|
16688
|
+
}
|
|
16689
|
+
},
|
|
16690
|
+
"422": {
|
|
16691
|
+
"description": "ValidationError 422 response",
|
|
16692
|
+
"content": {
|
|
16693
|
+
"application/json": {
|
|
16694
|
+
"schema": {
|
|
16695
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
16696
|
+
}
|
|
16697
|
+
}
|
|
16698
|
+
}
|
|
16699
|
+
},
|
|
16700
|
+
"500": {
|
|
16701
|
+
"description": "InternalServerError 500 response",
|
|
16702
|
+
"content": {
|
|
16703
|
+
"application/json": {
|
|
16704
|
+
"schema": {
|
|
16705
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
16706
|
+
}
|
|
16707
|
+
}
|
|
16708
|
+
}
|
|
16709
|
+
}
|
|
16710
|
+
},
|
|
16711
|
+
"tags": [
|
|
16712
|
+
"Automation"
|
|
16713
|
+
],
|
|
16714
|
+
"x-basecamp-idempotent": {
|
|
16715
|
+
"natural": true
|
|
16716
|
+
},
|
|
16717
|
+
"x-basecamp-retry": {
|
|
16718
|
+
"maxAttempts": 3,
|
|
16719
|
+
"baseDelayMs": 1000,
|
|
16720
|
+
"backoff": "exponential",
|
|
16721
|
+
"retryOn": [
|
|
16722
|
+
429,
|
|
16723
|
+
503
|
|
16724
|
+
]
|
|
16725
|
+
}
|
|
16726
|
+
}
|
|
16727
|
+
},
|
|
16728
|
+
"/recordings/{recordingId}/subscription.json": {
|
|
16729
|
+
"delete": {
|
|
16202
16730
|
"description": "Unsubscribe the current user from a recording",
|
|
16203
16731
|
"operationId": "Unsubscribe",
|
|
16204
16732
|
"parameters": [
|
|
@@ -18826,15 +19354,290 @@
|
|
|
18826
19354
|
}
|
|
18827
19355
|
}
|
|
18828
19356
|
}
|
|
18829
|
-
},
|
|
18830
|
-
"parameters": [],
|
|
19357
|
+
},
|
|
19358
|
+
"parameters": [],
|
|
19359
|
+
"responses": {
|
|
19360
|
+
"201": {
|
|
19361
|
+
"description": "CreateFolder 201 response",
|
|
19362
|
+
"content": {
|
|
19363
|
+
"application/json": {
|
|
19364
|
+
"schema": {
|
|
19365
|
+
"$ref": "#/components/schemas/CreateFolderResponseContent"
|
|
19366
|
+
}
|
|
19367
|
+
}
|
|
19368
|
+
}
|
|
19369
|
+
},
|
|
19370
|
+
"401": {
|
|
19371
|
+
"description": "UnauthorizedError 401 response",
|
|
19372
|
+
"content": {
|
|
19373
|
+
"application/json": {
|
|
19374
|
+
"schema": {
|
|
19375
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
19376
|
+
}
|
|
19377
|
+
}
|
|
19378
|
+
}
|
|
19379
|
+
},
|
|
19380
|
+
"403": {
|
|
19381
|
+
"description": "ForbiddenError 403 response",
|
|
19382
|
+
"content": {
|
|
19383
|
+
"application/json": {
|
|
19384
|
+
"schema": {
|
|
19385
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
19386
|
+
}
|
|
19387
|
+
}
|
|
19388
|
+
}
|
|
19389
|
+
},
|
|
19390
|
+
"404": {
|
|
19391
|
+
"description": "NotFoundError 404 response",
|
|
19392
|
+
"content": {
|
|
19393
|
+
"application/json": {
|
|
19394
|
+
"schema": {
|
|
19395
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
19396
|
+
}
|
|
19397
|
+
}
|
|
19398
|
+
}
|
|
19399
|
+
},
|
|
19400
|
+
"422": {
|
|
19401
|
+
"description": "FieldValidationError 422 response",
|
|
19402
|
+
"content": {
|
|
19403
|
+
"application/json": {
|
|
19404
|
+
"schema": {
|
|
19405
|
+
"$ref": "#/components/schemas/FieldValidationErrorResponseContent"
|
|
19406
|
+
}
|
|
19407
|
+
}
|
|
19408
|
+
}
|
|
19409
|
+
},
|
|
19410
|
+
"429": {
|
|
19411
|
+
"description": "RateLimitError 429 response",
|
|
19412
|
+
"content": {
|
|
19413
|
+
"application/json": {
|
|
19414
|
+
"schema": {
|
|
19415
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
19416
|
+
}
|
|
19417
|
+
}
|
|
19418
|
+
}
|
|
19419
|
+
},
|
|
19420
|
+
"500": {
|
|
19421
|
+
"description": "InternalServerError 500 response",
|
|
19422
|
+
"content": {
|
|
19423
|
+
"application/json": {
|
|
19424
|
+
"schema": {
|
|
19425
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
19426
|
+
}
|
|
19427
|
+
}
|
|
19428
|
+
}
|
|
19429
|
+
}
|
|
19430
|
+
},
|
|
19431
|
+
"tags": [
|
|
19432
|
+
"Folders"
|
|
19433
|
+
],
|
|
19434
|
+
"x-basecamp-retry": {
|
|
19435
|
+
"maxAttempts": 3,
|
|
19436
|
+
"baseDelayMs": 1000,
|
|
19437
|
+
"backoff": "exponential",
|
|
19438
|
+
"retryOn": [
|
|
19439
|
+
429,
|
|
19440
|
+
503
|
|
19441
|
+
]
|
|
19442
|
+
}
|
|
19443
|
+
}
|
|
19444
|
+
},
|
|
19445
|
+
"/stacks/{folderId}": {
|
|
19446
|
+
"delete": {
|
|
19447
|
+
"description": "Delete a folder and unpin its projects from the home screen (returns 204 No Content).\n\nThe projects themselves are not deleted and are not moved back out onto the\nhome screen; they simply stop appearing there until pinned again.",
|
|
19448
|
+
"operationId": "DeleteFolder",
|
|
19449
|
+
"parameters": [
|
|
19450
|
+
{
|
|
19451
|
+
"name": "folderId",
|
|
19452
|
+
"in": "path",
|
|
19453
|
+
"schema": {
|
|
19454
|
+
"type": "integer",
|
|
19455
|
+
"format": "int64"
|
|
19456
|
+
},
|
|
19457
|
+
"required": true
|
|
19458
|
+
}
|
|
19459
|
+
],
|
|
19460
|
+
"responses": {
|
|
19461
|
+
"204": {
|
|
19462
|
+
"description": "DeleteFolder 204 response"
|
|
19463
|
+
},
|
|
19464
|
+
"401": {
|
|
19465
|
+
"description": "UnauthorizedError 401 response",
|
|
19466
|
+
"content": {
|
|
19467
|
+
"application/json": {
|
|
19468
|
+
"schema": {
|
|
19469
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
19470
|
+
}
|
|
19471
|
+
}
|
|
19472
|
+
}
|
|
19473
|
+
},
|
|
19474
|
+
"403": {
|
|
19475
|
+
"description": "ForbiddenError 403 response",
|
|
19476
|
+
"content": {
|
|
19477
|
+
"application/json": {
|
|
19478
|
+
"schema": {
|
|
19479
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
19480
|
+
}
|
|
19481
|
+
}
|
|
19482
|
+
}
|
|
19483
|
+
},
|
|
19484
|
+
"404": {
|
|
19485
|
+
"description": "NotFoundError 404 response",
|
|
19486
|
+
"content": {
|
|
19487
|
+
"application/json": {
|
|
19488
|
+
"schema": {
|
|
19489
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
19490
|
+
}
|
|
19491
|
+
}
|
|
19492
|
+
}
|
|
19493
|
+
},
|
|
19494
|
+
"500": {
|
|
19495
|
+
"description": "InternalServerError 500 response",
|
|
19496
|
+
"content": {
|
|
19497
|
+
"application/json": {
|
|
19498
|
+
"schema": {
|
|
19499
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
19500
|
+
}
|
|
19501
|
+
}
|
|
19502
|
+
}
|
|
19503
|
+
}
|
|
19504
|
+
},
|
|
19505
|
+
"tags": [
|
|
19506
|
+
"Folders"
|
|
19507
|
+
],
|
|
19508
|
+
"x-basecamp-idempotent": {
|
|
19509
|
+
"natural": true
|
|
19510
|
+
},
|
|
19511
|
+
"x-basecamp-retry": {
|
|
19512
|
+
"maxAttempts": 3,
|
|
19513
|
+
"baseDelayMs": 1000,
|
|
19514
|
+
"backoff": "exponential",
|
|
19515
|
+
"retryOn": [
|
|
19516
|
+
429,
|
|
19517
|
+
503
|
|
19518
|
+
]
|
|
19519
|
+
}
|
|
19520
|
+
},
|
|
19521
|
+
"get": {
|
|
19522
|
+
"description": "Get one folder, with the projects grouped inside it expanded under `projects`.",
|
|
19523
|
+
"operationId": "GetFolder",
|
|
19524
|
+
"parameters": [
|
|
19525
|
+
{
|
|
19526
|
+
"name": "folderId",
|
|
19527
|
+
"in": "path",
|
|
19528
|
+
"schema": {
|
|
19529
|
+
"type": "integer",
|
|
19530
|
+
"format": "int64"
|
|
19531
|
+
},
|
|
19532
|
+
"required": true
|
|
19533
|
+
}
|
|
19534
|
+
],
|
|
19535
|
+
"responses": {
|
|
19536
|
+
"200": {
|
|
19537
|
+
"description": "GetFolder 200 response",
|
|
19538
|
+
"content": {
|
|
19539
|
+
"application/json": {
|
|
19540
|
+
"schema": {
|
|
19541
|
+
"$ref": "#/components/schemas/GetFolderResponseContent"
|
|
19542
|
+
}
|
|
19543
|
+
}
|
|
19544
|
+
}
|
|
19545
|
+
},
|
|
19546
|
+
"401": {
|
|
19547
|
+
"description": "UnauthorizedError 401 response",
|
|
19548
|
+
"content": {
|
|
19549
|
+
"application/json": {
|
|
19550
|
+
"schema": {
|
|
19551
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
19552
|
+
}
|
|
19553
|
+
}
|
|
19554
|
+
}
|
|
19555
|
+
},
|
|
19556
|
+
"403": {
|
|
19557
|
+
"description": "ForbiddenError 403 response",
|
|
19558
|
+
"content": {
|
|
19559
|
+
"application/json": {
|
|
19560
|
+
"schema": {
|
|
19561
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
19562
|
+
}
|
|
19563
|
+
}
|
|
19564
|
+
}
|
|
19565
|
+
},
|
|
19566
|
+
"404": {
|
|
19567
|
+
"description": "NotFoundError 404 response",
|
|
19568
|
+
"content": {
|
|
19569
|
+
"application/json": {
|
|
19570
|
+
"schema": {
|
|
19571
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
19572
|
+
}
|
|
19573
|
+
}
|
|
19574
|
+
}
|
|
19575
|
+
},
|
|
19576
|
+
"429": {
|
|
19577
|
+
"description": "RateLimitError 429 response",
|
|
19578
|
+
"content": {
|
|
19579
|
+
"application/json": {
|
|
19580
|
+
"schema": {
|
|
19581
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
19582
|
+
}
|
|
19583
|
+
}
|
|
19584
|
+
}
|
|
19585
|
+
},
|
|
19586
|
+
"500": {
|
|
19587
|
+
"description": "InternalServerError 500 response",
|
|
19588
|
+
"content": {
|
|
19589
|
+
"application/json": {
|
|
19590
|
+
"schema": {
|
|
19591
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
19592
|
+
}
|
|
19593
|
+
}
|
|
19594
|
+
}
|
|
19595
|
+
}
|
|
19596
|
+
},
|
|
19597
|
+
"tags": [
|
|
19598
|
+
"Folders"
|
|
19599
|
+
],
|
|
19600
|
+
"x-basecamp-retry": {
|
|
19601
|
+
"maxAttempts": 3,
|
|
19602
|
+
"baseDelayMs": 1000,
|
|
19603
|
+
"backoff": "exponential",
|
|
19604
|
+
"retryOn": [
|
|
19605
|
+
429,
|
|
19606
|
+
503
|
|
19607
|
+
]
|
|
19608
|
+
}
|
|
19609
|
+
},
|
|
19610
|
+
"put": {
|
|
19611
|
+
"description": "Rename a folder.\n\n`name` is the only writable attribute; a folder's projects, ordering, and\nimage are managed elsewhere and an image parameter sent here is ignored.",
|
|
19612
|
+
"operationId": "UpdateFolder",
|
|
19613
|
+
"requestBody": {
|
|
19614
|
+
"content": {
|
|
19615
|
+
"application/json": {
|
|
19616
|
+
"schema": {
|
|
19617
|
+
"$ref": "#/components/schemas/UpdateFolderRequestContent"
|
|
19618
|
+
}
|
|
19619
|
+
}
|
|
19620
|
+
},
|
|
19621
|
+
"required": true
|
|
19622
|
+
},
|
|
19623
|
+
"parameters": [
|
|
19624
|
+
{
|
|
19625
|
+
"name": "folderId",
|
|
19626
|
+
"in": "path",
|
|
19627
|
+
"schema": {
|
|
19628
|
+
"type": "integer",
|
|
19629
|
+
"format": "int64"
|
|
19630
|
+
},
|
|
19631
|
+
"required": true
|
|
19632
|
+
}
|
|
19633
|
+
],
|
|
18831
19634
|
"responses": {
|
|
18832
|
-
"
|
|
18833
|
-
"description": "
|
|
19635
|
+
"200": {
|
|
19636
|
+
"description": "UpdateFolder 200 response",
|
|
18834
19637
|
"content": {
|
|
18835
19638
|
"application/json": {
|
|
18836
19639
|
"schema": {
|
|
18837
|
-
"$ref": "#/components/schemas/
|
|
19640
|
+
"$ref": "#/components/schemas/UpdateFolderResponseContent"
|
|
18838
19641
|
}
|
|
18839
19642
|
}
|
|
18840
19643
|
}
|
|
@@ -18879,16 +19682,6 @@
|
|
|
18879
19682
|
}
|
|
18880
19683
|
}
|
|
18881
19684
|
},
|
|
18882
|
-
"429": {
|
|
18883
|
-
"description": "RateLimitError 429 response",
|
|
18884
|
-
"content": {
|
|
18885
|
-
"application/json": {
|
|
18886
|
-
"schema": {
|
|
18887
|
-
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
18888
|
-
}
|
|
18889
|
-
}
|
|
18890
|
-
}
|
|
18891
|
-
},
|
|
18892
19685
|
"500": {
|
|
18893
19686
|
"description": "InternalServerError 500 response",
|
|
18894
19687
|
"content": {
|
|
@@ -18903,6 +19696,9 @@
|
|
|
18903
19696
|
"tags": [
|
|
18904
19697
|
"Folders"
|
|
18905
19698
|
],
|
|
19699
|
+
"x-basecamp-idempotent": {
|
|
19700
|
+
"natural": true
|
|
19701
|
+
},
|
|
18906
19702
|
"x-basecamp-retry": {
|
|
18907
19703
|
"maxAttempts": 3,
|
|
18908
19704
|
"baseDelayMs": 1000,
|
|
@@ -18914,24 +19710,21 @@
|
|
|
18914
19710
|
}
|
|
18915
19711
|
}
|
|
18916
19712
|
},
|
|
18917
|
-
"/
|
|
18918
|
-
"
|
|
18919
|
-
"description": "
|
|
18920
|
-
"operationId": "
|
|
18921
|
-
"parameters": [
|
|
18922
|
-
{
|
|
18923
|
-
"name": "folderId",
|
|
18924
|
-
"in": "path",
|
|
18925
|
-
"schema": {
|
|
18926
|
-
"type": "integer",
|
|
18927
|
-
"format": "int64"
|
|
18928
|
-
},
|
|
18929
|
-
"required": true
|
|
18930
|
-
}
|
|
18931
|
-
],
|
|
19713
|
+
"/template_library.json": {
|
|
19714
|
+
"get": {
|
|
19715
|
+
"description": "Get the account's to-do list template library",
|
|
19716
|
+
"operationId": "GetTemplateLibrary",
|
|
19717
|
+
"parameters": [],
|
|
18932
19718
|
"responses": {
|
|
18933
|
-
"
|
|
18934
|
-
"description": "
|
|
19719
|
+
"200": {
|
|
19720
|
+
"description": "GetTemplateLibrary 200 response",
|
|
19721
|
+
"content": {
|
|
19722
|
+
"application/json": {
|
|
19723
|
+
"schema": {
|
|
19724
|
+
"$ref": "#/components/schemas/GetTemplateLibraryResponseContent"
|
|
19725
|
+
}
|
|
19726
|
+
}
|
|
19727
|
+
}
|
|
18935
19728
|
},
|
|
18936
19729
|
"401": {
|
|
18937
19730
|
"description": "UnauthorizedError 401 response",
|
|
@@ -18953,12 +19746,12 @@
|
|
|
18953
19746
|
}
|
|
18954
19747
|
}
|
|
18955
19748
|
},
|
|
18956
|
-
"
|
|
18957
|
-
"description": "
|
|
19749
|
+
"429": {
|
|
19750
|
+
"description": "RateLimitError 429 response",
|
|
18958
19751
|
"content": {
|
|
18959
19752
|
"application/json": {
|
|
18960
19753
|
"schema": {
|
|
18961
|
-
"$ref": "#/components/schemas/
|
|
19754
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
18962
19755
|
}
|
|
18963
19756
|
}
|
|
18964
19757
|
}
|
|
@@ -18975,11 +19768,8 @@
|
|
|
18975
19768
|
}
|
|
18976
19769
|
},
|
|
18977
19770
|
"tags": [
|
|
18978
|
-
"
|
|
19771
|
+
"Automation"
|
|
18979
19772
|
],
|
|
18980
|
-
"x-basecamp-idempotent": {
|
|
18981
|
-
"natural": true
|
|
18982
|
-
},
|
|
18983
19773
|
"x-basecamp-retry": {
|
|
18984
19774
|
"maxAttempts": 3,
|
|
18985
19775
|
"baseDelayMs": 1000,
|
|
@@ -18989,28 +19779,30 @@
|
|
|
18989
19779
|
503
|
|
18990
19780
|
]
|
|
18991
19781
|
}
|
|
18992
|
-
}
|
|
18993
|
-
|
|
18994
|
-
|
|
18995
|
-
|
|
18996
|
-
"
|
|
18997
|
-
|
|
18998
|
-
|
|
18999
|
-
|
|
19000
|
-
"
|
|
19001
|
-
"
|
|
19002
|
-
|
|
19003
|
-
|
|
19004
|
-
|
|
19005
|
-
}
|
|
19006
|
-
|
|
19782
|
+
}
|
|
19783
|
+
},
|
|
19784
|
+
"/template_library/copies.json": {
|
|
19785
|
+
"post": {
|
|
19786
|
+
"description": "Start copying a to-do list template into a project",
|
|
19787
|
+
"operationId": "CreateTemplateLibraryCopy",
|
|
19788
|
+
"requestBody": {
|
|
19789
|
+
"content": {
|
|
19790
|
+
"application/json": {
|
|
19791
|
+
"schema": {
|
|
19792
|
+
"$ref": "#/components/schemas/CreateTemplateLibraryCopyRequestContent"
|
|
19793
|
+
}
|
|
19794
|
+
}
|
|
19795
|
+
},
|
|
19796
|
+
"required": true
|
|
19797
|
+
},
|
|
19798
|
+
"parameters": [],
|
|
19007
19799
|
"responses": {
|
|
19008
|
-
"
|
|
19009
|
-
"description": "
|
|
19800
|
+
"201": {
|
|
19801
|
+
"description": "CreateTemplateLibraryCopy 201 response",
|
|
19010
19802
|
"content": {
|
|
19011
19803
|
"application/json": {
|
|
19012
19804
|
"schema": {
|
|
19013
|
-
"$ref": "#/components/schemas/
|
|
19805
|
+
"$ref": "#/components/schemas/CreateTemplateLibraryCopyResponseContent"
|
|
19014
19806
|
}
|
|
19015
19807
|
}
|
|
19016
19808
|
}
|
|
@@ -19045,6 +19837,16 @@
|
|
|
19045
19837
|
}
|
|
19046
19838
|
}
|
|
19047
19839
|
},
|
|
19840
|
+
"422": {
|
|
19841
|
+
"description": "PeopleConfirmationRequiredError 422 response",
|
|
19842
|
+
"content": {
|
|
19843
|
+
"application/json": {
|
|
19844
|
+
"schema": {
|
|
19845
|
+
"$ref": "#/components/schemas/PeopleConfirmationRequiredErrorResponseContent"
|
|
19846
|
+
}
|
|
19847
|
+
}
|
|
19848
|
+
}
|
|
19849
|
+
},
|
|
19048
19850
|
"429": {
|
|
19049
19851
|
"description": "RateLimitError 429 response",
|
|
19050
19852
|
"content": {
|
|
@@ -19067,10 +19869,10 @@
|
|
|
19067
19869
|
}
|
|
19068
19870
|
},
|
|
19069
19871
|
"tags": [
|
|
19070
|
-
"
|
|
19872
|
+
"Automation"
|
|
19071
19873
|
],
|
|
19072
19874
|
"x-basecamp-retry": {
|
|
19073
|
-
"maxAttempts":
|
|
19875
|
+
"maxAttempts": 2,
|
|
19074
19876
|
"baseDelayMs": 1000,
|
|
19075
19877
|
"backoff": "exponential",
|
|
19076
19878
|
"retryOn": [
|
|
@@ -19078,23 +19880,15 @@
|
|
|
19078
19880
|
503
|
|
19079
19881
|
]
|
|
19080
19882
|
}
|
|
19081
|
-
}
|
|
19082
|
-
|
|
19083
|
-
|
|
19084
|
-
|
|
19085
|
-
"
|
|
19086
|
-
|
|
19087
|
-
"application/json": {
|
|
19088
|
-
"schema": {
|
|
19089
|
-
"$ref": "#/components/schemas/UpdateFolderRequestContent"
|
|
19090
|
-
}
|
|
19091
|
-
}
|
|
19092
|
-
},
|
|
19093
|
-
"required": true
|
|
19094
|
-
},
|
|
19883
|
+
}
|
|
19884
|
+
},
|
|
19885
|
+
"/template_library/copies/{copyId}": {
|
|
19886
|
+
"get": {
|
|
19887
|
+
"description": "Get the current status of a to-do list template copy",
|
|
19888
|
+
"operationId": "GetTemplateLibraryCopy",
|
|
19095
19889
|
"parameters": [
|
|
19096
19890
|
{
|
|
19097
|
-
"name": "
|
|
19891
|
+
"name": "copyId",
|
|
19098
19892
|
"in": "path",
|
|
19099
19893
|
"schema": {
|
|
19100
19894
|
"type": "integer",
|
|
@@ -19105,11 +19899,11 @@
|
|
|
19105
19899
|
],
|
|
19106
19900
|
"responses": {
|
|
19107
19901
|
"200": {
|
|
19108
|
-
"description": "
|
|
19902
|
+
"description": "GetTemplateLibraryCopy 200 response",
|
|
19109
19903
|
"content": {
|
|
19110
19904
|
"application/json": {
|
|
19111
19905
|
"schema": {
|
|
19112
|
-
"$ref": "#/components/schemas/
|
|
19906
|
+
"$ref": "#/components/schemas/GetTemplateLibraryCopyResponseContent"
|
|
19113
19907
|
}
|
|
19114
19908
|
}
|
|
19115
19909
|
}
|
|
@@ -19144,12 +19938,12 @@
|
|
|
19144
19938
|
}
|
|
19145
19939
|
}
|
|
19146
19940
|
},
|
|
19147
|
-
"
|
|
19148
|
-
"description": "
|
|
19941
|
+
"429": {
|
|
19942
|
+
"description": "RateLimitError 429 response",
|
|
19149
19943
|
"content": {
|
|
19150
19944
|
"application/json": {
|
|
19151
19945
|
"schema": {
|
|
19152
|
-
"$ref": "#/components/schemas/
|
|
19946
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
19153
19947
|
}
|
|
19154
19948
|
}
|
|
19155
19949
|
}
|
|
@@ -19166,11 +19960,8 @@
|
|
|
19166
19960
|
}
|
|
19167
19961
|
},
|
|
19168
19962
|
"tags": [
|
|
19169
|
-
"
|
|
19963
|
+
"Automation"
|
|
19170
19964
|
],
|
|
19171
|
-
"x-basecamp-idempotent": {
|
|
19172
|
-
"natural": true
|
|
19173
|
-
},
|
|
19174
19965
|
"x-basecamp-retry": {
|
|
19175
19966
|
"maxAttempts": 3,
|
|
19176
19967
|
"baseDelayMs": 1000,
|
|
@@ -25553,6 +26344,15 @@
|
|
|
25553
26344
|
"CreateBookmarkResponseContent": {
|
|
25554
26345
|
"$ref": "#/components/schemas/Bookmark"
|
|
25555
26346
|
},
|
|
26347
|
+
"CreateBubbleUpRequestContent": {
|
|
26348
|
+
"type": "object",
|
|
26349
|
+
"properties": {
|
|
26350
|
+
"at": {
|
|
26351
|
+
"type": "string",
|
|
26352
|
+
"description": "Timing for the bubble-up. `\"now\"` bubbles up immediately; a scheduling\nkeyword (`\"today\"`, `\"tomorrow\"`, `\"weekend\"`, `\"next_week\"`) or an ISO8601\ndate (e.g. `\"2026-09-10\"`) schedules it to resurface later. bc3 requires a\nvalue — omitting `at` errors server-side (`Date.iso8601(nil)`) — so send\n`\"now\"` for the immediate case."
|
|
26353
|
+
}
|
|
26354
|
+
}
|
|
26355
|
+
},
|
|
25556
26356
|
"CreateCampfireLineRequestContent": {
|
|
25557
26357
|
"type": "object",
|
|
25558
26358
|
"properties": {
|
|
@@ -26071,6 +26871,30 @@
|
|
|
26071
26871
|
"CreateScheduleEntryResponseContent": {
|
|
26072
26872
|
"$ref": "#/components/schemas/ScheduleEntry"
|
|
26073
26873
|
},
|
|
26874
|
+
"CreateTemplateLibraryCopyRequestContent": {
|
|
26875
|
+
"type": "object",
|
|
26876
|
+
"properties": {
|
|
26877
|
+
"template_recording_id": {
|
|
26878
|
+
"type": "integer",
|
|
26879
|
+
"format": "int64"
|
|
26880
|
+
},
|
|
26881
|
+
"destination_parent_id": {
|
|
26882
|
+
"type": "integer",
|
|
26883
|
+
"format": "int64"
|
|
26884
|
+
},
|
|
26885
|
+
"adding_people_confirmed": {
|
|
26886
|
+
"type": "boolean",
|
|
26887
|
+
"description": "Confirm granting destination-project access to people referenced by the template."
|
|
26888
|
+
}
|
|
26889
|
+
},
|
|
26890
|
+
"required": [
|
|
26891
|
+
"destination_parent_id",
|
|
26892
|
+
"template_recording_id"
|
|
26893
|
+
]
|
|
26894
|
+
},
|
|
26895
|
+
"CreateTemplateLibraryCopyResponseContent": {
|
|
26896
|
+
"$ref": "#/components/schemas/TemplateLibraryCopy"
|
|
26897
|
+
},
|
|
26074
26898
|
"CreateTemplateRequestContent": {
|
|
26075
26899
|
"type": "object",
|
|
26076
26900
|
"properties": {
|
|
@@ -27956,6 +28780,12 @@
|
|
|
27956
28780
|
"GetSubscriptionResponseContent": {
|
|
27957
28781
|
"$ref": "#/components/schemas/Subscription"
|
|
27958
28782
|
},
|
|
28783
|
+
"GetTemplateLibraryCopyResponseContent": {
|
|
28784
|
+
"$ref": "#/components/schemas/TemplateLibraryCopy"
|
|
28785
|
+
},
|
|
28786
|
+
"GetTemplateLibraryResponseContent": {
|
|
28787
|
+
"$ref": "#/components/schemas/TemplateLibrary"
|
|
28788
|
+
},
|
|
27959
28789
|
"GetTemplateResponseContent": {
|
|
27960
28790
|
"$ref": "#/components/schemas/Template"
|
|
27961
28791
|
},
|
|
@@ -28502,6 +29332,12 @@
|
|
|
28502
29332
|
"$ref": "#/components/schemas/Question"
|
|
28503
29333
|
}
|
|
28504
29334
|
},
|
|
29335
|
+
"ListRecentProjectsResponseContent": {
|
|
29336
|
+
"type": "array",
|
|
29337
|
+
"items": {
|
|
29338
|
+
"$ref": "#/components/schemas/Project"
|
|
29339
|
+
}
|
|
29340
|
+
},
|
|
28505
29341
|
"ListRecordingBoostsResponseContent": {
|
|
28506
29342
|
"type": "array",
|
|
28507
29343
|
"items": {
|
|
@@ -29256,6 +30092,25 @@
|
|
|
29256
30092
|
}
|
|
29257
30093
|
}
|
|
29258
30094
|
},
|
|
30095
|
+
"PeopleConfirmationRequiredErrorResponseContent": {
|
|
30096
|
+
"type": "object",
|
|
30097
|
+
"description": "The copy requires confirmation before granting destination-project access\nto people referenced by the template.",
|
|
30098
|
+
"properties": {
|
|
30099
|
+
"error": {
|
|
30100
|
+
"type": "string"
|
|
30101
|
+
},
|
|
30102
|
+
"people": {
|
|
30103
|
+
"type": "array",
|
|
30104
|
+
"items": {
|
|
30105
|
+
"$ref": "#/components/schemas/TemplateLibraryConfirmationPerson"
|
|
30106
|
+
}
|
|
30107
|
+
}
|
|
30108
|
+
},
|
|
30109
|
+
"required": [
|
|
30110
|
+
"error",
|
|
30111
|
+
"people"
|
|
30112
|
+
]
|
|
30113
|
+
},
|
|
29259
30114
|
"Person": {
|
|
29260
30115
|
"type": "object",
|
|
29261
30116
|
"properties": {
|
|
@@ -29530,6 +30385,10 @@
|
|
|
29530
30385
|
"bookmark_url": {
|
|
29531
30386
|
"type": "string"
|
|
29532
30387
|
},
|
|
30388
|
+
"star_url": {
|
|
30389
|
+
"type": "string",
|
|
30390
|
+
"description": "Bucket stars collection for this project (`/buckets/{id}/stars.json`)."
|
|
30391
|
+
},
|
|
29533
30392
|
"url": {
|
|
29534
30393
|
"type": "string"
|
|
29535
30394
|
},
|
|
@@ -29544,7 +30403,12 @@
|
|
|
29544
30403
|
"x-go-type-skip-optional-pointer": true
|
|
29545
30404
|
},
|
|
29546
30405
|
"bookmarked": {
|
|
29547
|
-
"type": "boolean"
|
|
30406
|
+
"type": "boolean",
|
|
30407
|
+
"description": "True when the project is pinned on the current user's home page at all,\nwhether starred or filed into a stack."
|
|
30408
|
+
},
|
|
30409
|
+
"starred": {
|
|
30410
|
+
"type": "boolean",
|
|
30411
|
+
"description": "True only when the project carries a star on the current user's home page."
|
|
29548
30412
|
},
|
|
29549
30413
|
"client_company": {
|
|
29550
30414
|
"$ref": "#/components/schemas/ClientCompany"
|
|
@@ -31192,6 +32056,9 @@
|
|
|
31192
32056
|
"SetClientVisibilityResponseContent": {
|
|
31193
32057
|
"$ref": "#/components/schemas/Recording"
|
|
31194
32058
|
},
|
|
32059
|
+
"SpotlightRecordingResponseContent": {
|
|
32060
|
+
"$ref": "#/components/schemas/Recording"
|
|
32061
|
+
},
|
|
31195
32062
|
"StorageLimitErrorResponseContent": {
|
|
31196
32063
|
"type": "object",
|
|
31197
32064
|
"description": "The account has reached its file storage limit.\n\nRaised by ResourceLimits#ensure_account_can_upload_files ahead of any operation\nthat stores new bytes. No retry can satisfy it: the account needs more storage,\nso this maps to `limit_exceeded` rather than a retryable server error.",
|
|
@@ -31288,6 +32155,92 @@
|
|
|
31288
32155
|
"updated_at"
|
|
31289
32156
|
]
|
|
31290
32157
|
},
|
|
32158
|
+
"TemplateLibrary": {
|
|
32159
|
+
"type": "object",
|
|
32160
|
+
"properties": {
|
|
32161
|
+
"bucket": {
|
|
32162
|
+
"$ref": "#/components/schemas/RecordingBucket"
|
|
32163
|
+
},
|
|
32164
|
+
"todoset": {
|
|
32165
|
+
"$ref": "#/components/schemas/RecordingParent"
|
|
32166
|
+
},
|
|
32167
|
+
"todolists": {
|
|
32168
|
+
"type": "array",
|
|
32169
|
+
"items": {
|
|
32170
|
+
"$ref": "#/components/schemas/Todolist"
|
|
32171
|
+
}
|
|
32172
|
+
}
|
|
32173
|
+
},
|
|
32174
|
+
"required": [
|
|
32175
|
+
"bucket",
|
|
32176
|
+
"todolists",
|
|
32177
|
+
"todoset"
|
|
32178
|
+
]
|
|
32179
|
+
},
|
|
32180
|
+
"TemplateLibraryConfirmationPerson": {
|
|
32181
|
+
"type": "object",
|
|
32182
|
+
"properties": {
|
|
32183
|
+
"id": {
|
|
32184
|
+
"type": "integer",
|
|
32185
|
+
"format": "int64"
|
|
32186
|
+
},
|
|
32187
|
+
"name": {
|
|
32188
|
+
"type": "string",
|
|
32189
|
+
"format": "password",
|
|
32190
|
+
"x-basecamp-sensitive": {
|
|
32191
|
+
"category": "pii",
|
|
32192
|
+
"redact": true
|
|
32193
|
+
}
|
|
32194
|
+
},
|
|
32195
|
+
"avatar_url": {
|
|
32196
|
+
"type": "string",
|
|
32197
|
+
"format": "password",
|
|
32198
|
+
"x-basecamp-sensitive": {
|
|
32199
|
+
"category": "pii",
|
|
32200
|
+
"redact": true
|
|
32201
|
+
}
|
|
32202
|
+
}
|
|
32203
|
+
},
|
|
32204
|
+
"required": [
|
|
32205
|
+
"avatar_url",
|
|
32206
|
+
"id",
|
|
32207
|
+
"name"
|
|
32208
|
+
]
|
|
32209
|
+
},
|
|
32210
|
+
"TemplateLibraryCopy": {
|
|
32211
|
+
"type": "object",
|
|
32212
|
+
"properties": {
|
|
32213
|
+
"id": {
|
|
32214
|
+
"type": "integer",
|
|
32215
|
+
"format": "int64"
|
|
32216
|
+
},
|
|
32217
|
+
"status": {
|
|
32218
|
+
"type": "string",
|
|
32219
|
+
"description": "pending|processing|completed|failed"
|
|
32220
|
+
},
|
|
32221
|
+
"source_recording_id": {
|
|
32222
|
+
"type": "integer",
|
|
32223
|
+
"format": "int64"
|
|
32224
|
+
},
|
|
32225
|
+
"destination_parent_id": {
|
|
32226
|
+
"type": "integer",
|
|
32227
|
+
"format": "int64"
|
|
32228
|
+
},
|
|
32229
|
+
"url": {
|
|
32230
|
+
"type": "string"
|
|
32231
|
+
},
|
|
32232
|
+
"destination_todolist": {
|
|
32233
|
+
"$ref": "#/components/schemas/Todolist"
|
|
32234
|
+
}
|
|
32235
|
+
},
|
|
32236
|
+
"required": [
|
|
32237
|
+
"destination_parent_id",
|
|
32238
|
+
"id",
|
|
32239
|
+
"source_recording_id",
|
|
32240
|
+
"status",
|
|
32241
|
+
"url"
|
|
32242
|
+
]
|
|
32243
|
+
},
|
|
31291
32244
|
"TimelineAttachment": {
|
|
31292
32245
|
"type": "object",
|
|
31293
32246
|
"description": "A single timeline-event attachment. This is an optional-field superset over\ntwo wire variants — a full Upload recording (upload-kind recordings, rendered\nby BC3's uploads/_upload partial: the complete recording projection + rich-\ntext description + the upload body) and a rich-text attachment/blob partial\n(all other recordings) — so one element type decodes either. Every field is\noptional; a given instance populates only the fields of the variant it\nrepresents. The upload-recording variant enumerates the full documented\nprojection so no documented field is silently dropped on decode.",
|