@37signals/basecamp 0.14.0 → 0.15.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/README.md +1 -1
- package/dist/client.d.ts +2 -2
- package/dist/client.js +2 -2
- package/dist/download.d.ts +3 -1
- package/dist/download.d.ts.map +1 -1
- package/dist/download.js +17 -4
- package/dist/download.js.map +1 -1
- package/dist/errors.d.ts +26 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +78 -13
- package/dist/errors.js.map +1 -1
- package/dist/generated/metadata.js +1 -1
- package/dist/generated/metadata.ts +1 -1
- package/dist/generated/openapi-stripped.json +279 -29
- package/dist/generated/schema.d.ts +259 -27
- package/dist/generated/services/checkins.d.ts +1 -1
- package/dist/generated/services/checkins.d.ts.map +1 -1
- package/dist/generated/services/checkins.ts +1 -1
- package/dist/generated/services/gauges.d.ts +3 -2
- package/dist/generated/services/gauges.d.ts.map +1 -1
- package/dist/generated/services/gauges.ts +2 -2
- package/dist/generated/services/search.d.ts +2 -1
- package/dist/generated/services/search.d.ts.map +1 -1
- package/dist/generated/services/search.ts +1 -1
- package/dist/oauth/authorization-document.d.ts +18 -11
- package/dist/oauth/authorization-document.d.ts.map +1 -1
- package/dist/oauth/authorization-document.js +16 -11
- package/dist/oauth/authorization-document.js.map +1 -1
- package/dist/retry.d.ts +23 -0
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +45 -10
- package/dist/retry.js.map +1 -1
- package/dist/services/base.d.ts +25 -2
- package/dist/services/base.d.ts.map +1 -1
- package/dist/services/base.js +85 -15
- package/dist/services/base.js.map +1 -1
- package/package.json +5 -3
- package/src/generated/metadata.ts +1 -1
- package/src/generated/openapi-stripped.json +279 -29
- package/src/generated/schema.d.ts +259 -27
- package/src/generated/services/checkins.ts +1 -1
- package/src/generated/services/gauges.ts +2 -2
- package/src/generated/services/search.ts +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Basecamp",
|
|
5
|
-
"version": "2026-08-
|
|
5
|
+
"version": "2026-08-11",
|
|
6
6
|
"description": "Basecamp API",
|
|
7
7
|
"contact": {
|
|
8
8
|
"name": "Basecamp",
|
|
@@ -24904,7 +24904,8 @@
|
|
|
24904
24904
|
"type": "string"
|
|
24905
24905
|
},
|
|
24906
24906
|
"command_url": {
|
|
24907
|
-
"type": "string"
|
|
24907
|
+
"type": "string",
|
|
24908
|
+
"description": "Only present when the requester is an account administrator; possession of this URL is enough to command the bot."
|
|
24908
24909
|
},
|
|
24909
24910
|
"url": {
|
|
24910
24911
|
"type": "string"
|
|
@@ -24913,7 +24914,8 @@
|
|
|
24913
24914
|
"type": "string"
|
|
24914
24915
|
},
|
|
24915
24916
|
"lines_url": {
|
|
24916
|
-
"type": "string"
|
|
24917
|
+
"type": "string",
|
|
24918
|
+
"description": "Only present when the requester is an account administrator; possession of this URL is enough to post lines as the bot."
|
|
24917
24919
|
}
|
|
24918
24920
|
},
|
|
24919
24921
|
"required": [
|
|
@@ -27886,10 +27888,13 @@
|
|
|
27886
27888
|
"type": "array",
|
|
27887
27889
|
"items": {
|
|
27888
27890
|
"$ref": "#/components/schemas/TimelineEvent"
|
|
27889
|
-
}
|
|
27890
|
-
"x-go-type-skip-optional-pointer": true
|
|
27891
|
+
}
|
|
27891
27892
|
}
|
|
27892
|
-
}
|
|
27893
|
+
},
|
|
27894
|
+
"required": [
|
|
27895
|
+
"events",
|
|
27896
|
+
"person"
|
|
27897
|
+
]
|
|
27893
27898
|
},
|
|
27894
27899
|
"GetPersonResponseContent": {
|
|
27895
27900
|
"$ref": "#/components/schemas/Person"
|
|
@@ -28911,6 +28916,7 @@
|
|
|
28911
28916
|
},
|
|
28912
28917
|
"MyAssignmentAssignee": {
|
|
28913
28918
|
"type": "object",
|
|
28919
|
+
"description": "A person as bc3's `people/_person_minimal.json.jbuilder` renders them —\nthe same three-key partial behind UpcomingSchedulePerson and\nOutOfOfficePerson. All three keys are emitted unconditionally, so all\nthree are required.",
|
|
28914
28920
|
"properties": {
|
|
28915
28921
|
"id": {
|
|
28916
28922
|
"type": "integer",
|
|
@@ -28926,7 +28932,9 @@
|
|
|
28926
28932
|
}
|
|
28927
28933
|
},
|
|
28928
28934
|
"required": [
|
|
28929
|
-
"
|
|
28935
|
+
"avatar_url",
|
|
28936
|
+
"id",
|
|
28937
|
+
"name"
|
|
28930
28938
|
]
|
|
28931
28939
|
},
|
|
28932
28940
|
"MyAssignmentBucket": {
|
|
@@ -29219,6 +29227,7 @@
|
|
|
29219
29227
|
},
|
|
29220
29228
|
"OutOfOfficePerson": {
|
|
29221
29229
|
"type": "object",
|
|
29230
|
+
"description": "A person as bc3's `people/_person_minimal.json.jbuilder` renders them —\nthe same three-key partial behind UpcomingSchedulePerson and\nMyAssignmentAssignee. All three keys are emitted unconditionally, so all\nthree are required.",
|
|
29222
29231
|
"properties": {
|
|
29223
29232
|
"id": {
|
|
29224
29233
|
"type": "integer",
|
|
@@ -29234,7 +29243,9 @@
|
|
|
29234
29243
|
}
|
|
29235
29244
|
},
|
|
29236
29245
|
"required": [
|
|
29237
|
-
"
|
|
29246
|
+
"avatar_url",
|
|
29247
|
+
"id",
|
|
29248
|
+
"name"
|
|
29238
29249
|
]
|
|
29239
29250
|
},
|
|
29240
29251
|
"PauseQuestionResponseContent": {
|
|
@@ -30795,9 +30806,11 @@
|
|
|
30795
30806
|
},
|
|
30796
30807
|
"SearchResult": {
|
|
30797
30808
|
"type": "object",
|
|
30809
|
+
"description": "One hit from account-wide search — a polymorphic projection over every\nsearchable recording type.\n\nMost result types render the common recording envelope\n(`recordings/_recording.json.jbuilder`) plus their own recordable partial,\nbut `api_search_result_template_path` special-cases four branches — chat\nlines, kanban (card table) lists, file attachments and gauge needles — and\nthe file-attachment branch writes its own projection from scratch instead\nof the envelope. Members are therefore optional unless every branch emits\nthem; the doc comments name the branches that carry each optional member.",
|
|
30798
30810
|
"properties": {
|
|
30799
30811
|
"id": {
|
|
30800
30812
|
"type": "integer",
|
|
30813
|
+
"description": "The recording id. Optional only because the file-attachment branch\n(`searches/_attachment.json.jbuilder`) skips the recording envelope and\nemits none of the top-level id/title/type/url/app_url keys; every other\nbranch emits all five.",
|
|
30801
30814
|
"format": "int64"
|
|
30802
30815
|
},
|
|
30803
30816
|
"status": {
|
|
@@ -30821,23 +30834,31 @@
|
|
|
30821
30834
|
}
|
|
30822
30835
|
},
|
|
30823
30836
|
"title": {
|
|
30824
|
-
"type": "string"
|
|
30837
|
+
"type": "string",
|
|
30838
|
+
"description": "See `id` — omitted by the file-attachment branch, emitted by every other\nbranch."
|
|
30825
30839
|
},
|
|
30826
30840
|
"inherits_status": {
|
|
30827
30841
|
"type": "boolean"
|
|
30828
30842
|
},
|
|
30829
30843
|
"type": {
|
|
30830
|
-
"type": "string"
|
|
30844
|
+
"type": "string",
|
|
30845
|
+
"description": "See `id` — omitted by the file-attachment branch, emitted by every other\nbranch. A file-attachment hit is therefore recognizable by the absence\nof this key (its file keys, `filename` through `app_download_url`, are\nthe positive signal)."
|
|
30831
30846
|
},
|
|
30832
30847
|
"url": {
|
|
30833
|
-
"type": "string"
|
|
30848
|
+
"type": "string",
|
|
30849
|
+
"description": "See `id` — omitted by the file-attachment branch, emitted by every other\nbranch."
|
|
30834
30850
|
},
|
|
30835
30851
|
"app_url": {
|
|
30836
|
-
"type": "string"
|
|
30852
|
+
"type": "string",
|
|
30853
|
+
"description": "See `id` — omitted by the file-attachment branch, emitted by every other\nbranch."
|
|
30837
30854
|
},
|
|
30838
30855
|
"bookmark_url": {
|
|
30839
30856
|
"type": "string"
|
|
30840
30857
|
},
|
|
30858
|
+
"subscription_url": {
|
|
30859
|
+
"type": "string",
|
|
30860
|
+
"description": "Subscription URL, emitted by the common recording envelope for any\nsubscribable result — kanban lists and gauge needles among the special\nbranches, plus subscribable generic-branch types (messages, todos, …)."
|
|
30861
|
+
},
|
|
30841
30862
|
"bubble_up_url": {
|
|
30842
30863
|
"type": "string",
|
|
30843
30864
|
"description": "URL of the Bubble Up record for this recording (BC5 addition). Optional\nhere because this is a polymorphic projection:\n`recordings/_recording.json.jbuilder` emits the key only when the caller\npasses `local_assigns[:bubbleupable]`, and `todolists/_todolist` is the\nonly partial that does. So a Todolist-shaped instance carries it and the\nother recording types do not."
|
|
@@ -30880,7 +30901,7 @@
|
|
|
30880
30901
|
"items": {
|
|
30881
30902
|
"$ref": "#/components/schemas/RichTextAttachment"
|
|
30882
30903
|
},
|
|
30883
|
-
"description": "Rich-text companion arrays carried through the polymorphic search\nprojection. A given result is one recording type, so it carries only\nthe array matching its rich-text attribute (`content_attachments` for a\nComment/Message, `description_attachments` for a Todo); a webhook-sourced\nresult carries neither. Optional (no `@required`), non-nullable
|
|
30904
|
+
"description": "Rich-text companion arrays carried through the polymorphic search\nprojection. A given result is one recording type, so it carries only\nthe array matching its rich-text attribute (`content_attachments` for a\nComment/Message, `description_attachments` for a Todo); a webhook-sourced\nresult carries neither. Optional (no `@required`), non-nullable.",
|
|
30884
30905
|
"x-go-type-skip-optional-pointer": true
|
|
30885
30906
|
},
|
|
30886
30907
|
"description_attachments": {
|
|
@@ -30891,18 +30912,219 @@
|
|
|
30891
30912
|
"description": "See `content_attachments` — the description-attribute companion array.",
|
|
30892
30913
|
"x-go-type-skip-optional-pointer": true
|
|
30893
30914
|
},
|
|
30915
|
+
"attachments": {
|
|
30916
|
+
"type": "array",
|
|
30917
|
+
"items": {
|
|
30918
|
+
"$ref": "#/components/schemas/SearchResultAttachment"
|
|
30919
|
+
},
|
|
30920
|
+
"description": "File attachments on the result, in either of two wire shapes — see\n`SearchResultAttachment`.\n\nFor a result whose recordable carries downloadable rich-text\nattachments, `searches/show.json.jbuilder` emits this key through the\nsame `attachments/_attachment` partial that builds the rich-text\ncompanion array above, so it repeats that array's elements. For a chat\n*upload* line, `chats/lines/_upload.json.jbuilder` instead builds a\nbespoke six-key aggregate inline — and because upload lines have no\nrich-text attribute, the show template never overwrites it, so that\ndistinct shape survives to the wire.",
|
|
30921
|
+
"x-go-type-skip-optional-pointer": true
|
|
30922
|
+
},
|
|
30894
30923
|
"subject": {
|
|
30895
30924
|
"type": "string"
|
|
30925
|
+
},
|
|
30926
|
+
"boosts_count": {
|
|
30927
|
+
"type": "integer",
|
|
30928
|
+
"description": "Boost count, emitted by the recording envelope when the branch passes\n`boostable` — chat lines and gauge needles.",
|
|
30929
|
+
"format": "int32"
|
|
30930
|
+
},
|
|
30931
|
+
"boosts_url": {
|
|
30932
|
+
"type": "string",
|
|
30933
|
+
"description": "See `boosts_count` — the companion URL."
|
|
30934
|
+
},
|
|
30935
|
+
"language": {
|
|
30936
|
+
"type": "string",
|
|
30937
|
+
"description": "Language of a code chat line (`chats/lines/_code.json.jbuilder`);\nvalidated present on the model, so never null when the key is emitted."
|
|
30938
|
+
},
|
|
30939
|
+
"image_url": {
|
|
30940
|
+
"type": "string",
|
|
30941
|
+
"description": "Image URL of a soundtracked (play-kind) chat line whose sound carries an\nimage; such a line emits `image_url` in place of `content`."
|
|
30942
|
+
},
|
|
30943
|
+
"sound_url": {
|
|
30944
|
+
"type": "string",
|
|
30945
|
+
"description": "Sound URL of a play-kind chat line; always emitted for that kind."
|
|
30946
|
+
},
|
|
30947
|
+
"subscribers": {
|
|
30948
|
+
"type": "array",
|
|
30949
|
+
"items": {
|
|
30950
|
+
"$ref": "#/components/schemas/Person"
|
|
30951
|
+
},
|
|
30952
|
+
"description": "Everyone subscribed to the kanban list, as full Person projections.",
|
|
30953
|
+
"x-go-type-skip-optional-pointer": true
|
|
30954
|
+
},
|
|
30955
|
+
"color": {
|
|
30956
|
+
"type": "string",
|
|
30957
|
+
"description": "Color of a kanban list or gauge needle. Emitted unconditionally by both\nbranches with a null value when unset, so it is nullable (the enhance\npass layers `nullable: true` onto the OpenAPI).",
|
|
30958
|
+
"nullable": true
|
|
30959
|
+
},
|
|
30960
|
+
"cards_count": {
|
|
30961
|
+
"type": "integer",
|
|
30962
|
+
"description": "Number of cards in the kanban list.",
|
|
30963
|
+
"format": "int32"
|
|
30964
|
+
},
|
|
30965
|
+
"comment_count": {
|
|
30966
|
+
"type": "integer",
|
|
30967
|
+
"description": "Comment count of a kanban list or gauge needle (branch-partial key,\nsingular `comment_count` — distinct from the envelope's\n`comments_count`, which a needle also carries).",
|
|
30968
|
+
"format": "int32"
|
|
30969
|
+
},
|
|
30970
|
+
"cards_url": {
|
|
30971
|
+
"type": "string",
|
|
30972
|
+
"description": "API URL of the kanban list's cards."
|
|
30973
|
+
},
|
|
30974
|
+
"on_hold": {
|
|
30975
|
+
"$ref": "#/components/schemas/CardColumnOnHold"
|
|
30976
|
+
},
|
|
30977
|
+
"comments_count": {
|
|
30978
|
+
"type": "integer",
|
|
30979
|
+
"description": "Comment count, emitted by the recording envelope when the branch passes\n`commentable` — gauge needles among the special branches, plus\ncommentable generic-branch types.",
|
|
30980
|
+
"format": "int32"
|
|
30981
|
+
},
|
|
30982
|
+
"comments_url": {
|
|
30983
|
+
"type": "string",
|
|
30984
|
+
"description": "See `comments_count` — the companion URL."
|
|
30985
|
+
},
|
|
30986
|
+
"position": {
|
|
30987
|
+
"type": "integer",
|
|
30988
|
+
"description": "Position of the result. Two emitters share the key: the recording\nenvelope emits list position for positioned recordings (kanban lists\namong the special branches), and the gauge-needle branch overwrites it\nwith the needle's own 0–100 gauge position.",
|
|
30989
|
+
"format": "int32"
|
|
30990
|
+
},
|
|
30991
|
+
"filename": {
|
|
30992
|
+
"type": "string",
|
|
30993
|
+
"description": "Filename of a file-attachment hit. This and the following file keys are\nemitted only by the file-attachment branch — the one branch that omits\nthe id/title/type/url/app_url envelope keys."
|
|
30994
|
+
},
|
|
30995
|
+
"content_type": {
|
|
30996
|
+
"type": "string",
|
|
30997
|
+
"description": "MIME type of a file-attachment hit."
|
|
30998
|
+
},
|
|
30999
|
+
"byte_size": {
|
|
31000
|
+
"type": "integer",
|
|
31001
|
+
"description": "Size in bytes of a file-attachment hit.",
|
|
31002
|
+
"format": "int64"
|
|
31003
|
+
},
|
|
31004
|
+
"previewable": {
|
|
31005
|
+
"type": "boolean",
|
|
31006
|
+
"description": "Whether the file can be previewed."
|
|
31007
|
+
},
|
|
31008
|
+
"width": {
|
|
31009
|
+
"type": "integer",
|
|
31010
|
+
"description": "Pixel width, emitted only when the file is previewable. May be\nfloat-spelled (`1024.0`) and nullable, like every other blob dimension —\nsee `RichTextAttachment.width` for the cross-SDK typing note.",
|
|
31011
|
+
"format": "int32",
|
|
31012
|
+
"nullable": true,
|
|
31013
|
+
"x-go-type": "types.FlexInt",
|
|
31014
|
+
"x-go-type-import": {
|
|
31015
|
+
"path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
|
|
31016
|
+
}
|
|
31017
|
+
},
|
|
31018
|
+
"height": {
|
|
31019
|
+
"type": "integer",
|
|
31020
|
+
"description": "See `width` — same conditional emission and nullable/float-spelled\nbehavior.",
|
|
31021
|
+
"format": "int32",
|
|
31022
|
+
"nullable": true,
|
|
31023
|
+
"x-go-type": "types.FlexInt",
|
|
31024
|
+
"x-go-type-import": {
|
|
31025
|
+
"path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
|
|
31026
|
+
}
|
|
31027
|
+
},
|
|
31028
|
+
"preview_url": {
|
|
31029
|
+
"type": "string",
|
|
31030
|
+
"description": "Full-size preview URL of a file-attachment hit."
|
|
31031
|
+
},
|
|
31032
|
+
"thumbnail_url": {
|
|
31033
|
+
"type": "string",
|
|
31034
|
+
"description": "Thumbnail URL of a file-attachment hit."
|
|
31035
|
+
},
|
|
31036
|
+
"download_url": {
|
|
31037
|
+
"type": "string",
|
|
31038
|
+
"description": "Authenticated download URL of a file-attachment hit.",
|
|
31039
|
+
"x-basecamp-auth-routable-url": {}
|
|
31040
|
+
},
|
|
31041
|
+
"app_download_url": {
|
|
31042
|
+
"type": "string",
|
|
31043
|
+
"description": "Web (app-host) download URL of a file-attachment hit."
|
|
30896
31044
|
}
|
|
30897
31045
|
},
|
|
30898
31046
|
"required": [
|
|
30899
|
-
"app_url",
|
|
30900
31047
|
"content",
|
|
30901
|
-
"description"
|
|
30902
|
-
|
|
30903
|
-
|
|
30904
|
-
|
|
30905
|
-
|
|
31048
|
+
"description"
|
|
31049
|
+
]
|
|
31050
|
+
},
|
|
31051
|
+
"SearchResultAttachment": {
|
|
31052
|
+
"type": "object",
|
|
31053
|
+
"description": "A file attached to a search result, in either of two wire shapes.\n\nThis is an optional-field superset over the two variants the search\nprojection emits (the TimelineAttachment approach): the rich-text\nattachment/blob shape rendered through `attachments/_attachment` +\n`blobs/_blob` — the same emitters `RichTextAttachment` models — and the\nbespoke six-key aggregate a chat upload line builds inline in\n`chats/lines/_upload.json.jbuilder`. Only the four keys both variants\nalways emit are `@required`; the rest identify their variant.",
|
|
31054
|
+
"properties": {
|
|
31055
|
+
"filename": {
|
|
31056
|
+
"type": "string",
|
|
31057
|
+
"description": "Original filename (both variants)."
|
|
31058
|
+
},
|
|
31059
|
+
"content_type": {
|
|
31060
|
+
"type": "string",
|
|
31061
|
+
"description": "MIME type of the file (both variants)."
|
|
31062
|
+
},
|
|
31063
|
+
"byte_size": {
|
|
31064
|
+
"type": "integer",
|
|
31065
|
+
"description": "Size of the file in bytes (both variants).",
|
|
31066
|
+
"format": "int64"
|
|
31067
|
+
},
|
|
31068
|
+
"download_url": {
|
|
31069
|
+
"type": "string",
|
|
31070
|
+
"description": "Authenticated download URL for the file (both variants).",
|
|
31071
|
+
"x-basecamp-auth-routable-url": {}
|
|
31072
|
+
},
|
|
31073
|
+
"id": {
|
|
31074
|
+
"type": "integer",
|
|
31075
|
+
"description": "Attachment id (rich-text variant).",
|
|
31076
|
+
"format": "int64"
|
|
31077
|
+
},
|
|
31078
|
+
"sgid": {
|
|
31079
|
+
"type": "string",
|
|
31080
|
+
"description": "Signed global id of the attachment (rich-text variant)."
|
|
31081
|
+
},
|
|
31082
|
+
"previewable": {
|
|
31083
|
+
"type": "boolean",
|
|
31084
|
+
"description": "Whether the blob can be previewed (rich-text variant)."
|
|
31085
|
+
},
|
|
31086
|
+
"preview_url": {
|
|
31087
|
+
"type": "string",
|
|
31088
|
+
"description": "Full-size preview URL (rich-text variant)."
|
|
31089
|
+
},
|
|
31090
|
+
"thumbnail_url": {
|
|
31091
|
+
"type": "string",
|
|
31092
|
+
"description": "Thumbnail URL (rich-text variant)."
|
|
31093
|
+
},
|
|
31094
|
+
"width": {
|
|
31095
|
+
"type": "integer",
|
|
31096
|
+
"description": "Pixel width (rich-text variant) — null for non-image blobs and may be\nfloat-spelled (`1024.0`); see `RichTextAttachment.width`.",
|
|
31097
|
+
"format": "int32",
|
|
31098
|
+
"nullable": true,
|
|
31099
|
+
"x-go-type": "types.FlexInt",
|
|
31100
|
+
"x-go-type-import": {
|
|
31101
|
+
"path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
|
|
31102
|
+
}
|
|
31103
|
+
},
|
|
31104
|
+
"height": {
|
|
31105
|
+
"type": "integer",
|
|
31106
|
+
"description": "See `width` (rich-text variant).",
|
|
31107
|
+
"format": "int32",
|
|
31108
|
+
"nullable": true,
|
|
31109
|
+
"x-go-type": "types.FlexInt",
|
|
31110
|
+
"x-go-type-import": {
|
|
31111
|
+
"path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
|
|
31112
|
+
}
|
|
31113
|
+
},
|
|
31114
|
+
"title": {
|
|
31115
|
+
"type": "string",
|
|
31116
|
+
"description": "Title of the attachment recording (chat upload-line variant)."
|
|
31117
|
+
},
|
|
31118
|
+
"url": {
|
|
31119
|
+
"type": "string",
|
|
31120
|
+
"description": "Browser preview URL of the blob (chat upload-line variant)."
|
|
31121
|
+
}
|
|
31122
|
+
},
|
|
31123
|
+
"required": [
|
|
31124
|
+
"byte_size",
|
|
31125
|
+
"content_type",
|
|
31126
|
+
"download_url",
|
|
31127
|
+
"filename"
|
|
30906
31128
|
]
|
|
30907
31129
|
},
|
|
30908
31130
|
"SearchType": {
|
|
@@ -31912,6 +32134,9 @@
|
|
|
31912
32134
|
"status": {
|
|
31913
32135
|
"type": "string"
|
|
31914
32136
|
},
|
|
32137
|
+
"visible_to_clients": {
|
|
32138
|
+
"type": "boolean"
|
|
32139
|
+
},
|
|
31915
32140
|
"created_at": {
|
|
31916
32141
|
"type": "string",
|
|
31917
32142
|
"x-go-type": "time.Time",
|
|
@@ -31929,15 +32154,12 @@
|
|
|
31929
32154
|
"title": {
|
|
31930
32155
|
"type": "string"
|
|
31931
32156
|
},
|
|
31932
|
-
"
|
|
31933
|
-
"type": "string"
|
|
31934
|
-
},
|
|
31935
|
-
"enabled": {
|
|
32157
|
+
"inherits_status": {
|
|
31936
32158
|
"type": "boolean"
|
|
31937
32159
|
},
|
|
31938
|
-
"
|
|
31939
|
-
"type": "
|
|
31940
|
-
"
|
|
32160
|
+
"type": {
|
|
32161
|
+
"type": "string",
|
|
32162
|
+
"description": "The tool's recordable type, e.g. `Chat::Transcript`, `Todoset`, `Vault`."
|
|
31941
32163
|
},
|
|
31942
32164
|
"url": {
|
|
31943
32165
|
"type": "string"
|
|
@@ -31945,17 +32167,45 @@
|
|
|
31945
32167
|
"app_url": {
|
|
31946
32168
|
"type": "string"
|
|
31947
32169
|
},
|
|
32170
|
+
"bookmark_url": {
|
|
32171
|
+
"type": "string"
|
|
32172
|
+
},
|
|
32173
|
+
"subscription_url": {
|
|
32174
|
+
"type": "string",
|
|
32175
|
+
"description": "Absent for tool types that are not subscribable."
|
|
32176
|
+
},
|
|
32177
|
+
"position": {
|
|
32178
|
+
"type": "integer",
|
|
32179
|
+
"description": "Emitted only for a positioned recording. For a docked tool that makes an\nabsent position the disabled signal — disabling removes the tool from the\ndock without deleting it. Positioning is independent of dockedness, so\nthis does not generalize: a nested vault is not docked and is positioned.",
|
|
32180
|
+
"format": "int32"
|
|
32181
|
+
},
|
|
32182
|
+
"parent": {
|
|
32183
|
+
"$ref": "#/components/schemas/RecordingParent"
|
|
32184
|
+
},
|
|
31948
32185
|
"bucket": {
|
|
31949
32186
|
"$ref": "#/components/schemas/RecordingBucket"
|
|
32187
|
+
},
|
|
32188
|
+
"creator": {
|
|
32189
|
+
"$ref": "#/components/schemas/Person"
|
|
32190
|
+
},
|
|
32191
|
+
"name": {
|
|
32192
|
+
"type": "string",
|
|
32193
|
+
"description": "Not emitted by this projection. The dock array on a project\n(`DockItem$name`) carries the tool's slug; this key is absent from every\nGetTool/CreateTool/UpdateTool response."
|
|
32194
|
+
},
|
|
32195
|
+
"enabled": {
|
|
32196
|
+
"type": "boolean",
|
|
32197
|
+
"description": "Not emitted by this projection. The dock array on a project\n(`DockItem$enabled`) is the authoritative enabled flag; on a docked tool's\nown response, an absent `position` is the equivalent signal."
|
|
31950
32198
|
}
|
|
31951
32199
|
},
|
|
31952
32200
|
"required": [
|
|
31953
32201
|
"created_at",
|
|
31954
|
-
"
|
|
32202
|
+
"creator",
|
|
31955
32203
|
"id",
|
|
31956
|
-
"
|
|
32204
|
+
"inherits_status",
|
|
31957
32205
|
"title",
|
|
31958
|
-
"
|
|
32206
|
+
"type",
|
|
32207
|
+
"updated_at",
|
|
32208
|
+
"visible_to_clients"
|
|
31959
32209
|
]
|
|
31960
32210
|
},
|
|
31961
32211
|
"UnauthorizedErrorResponseContent": {
|