initiative-plugin-sdk 2.0.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/LICENSE +21 -0
- package/README.md +656 -0
- package/dist/build.d.ts +52 -0
- package/dist/build.js +229 -0
- package/dist/build.js.map +1 -0
- package/dist/cli.d.ts +24 -0
- package/dist/cli.js +160 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +288 -0
- package/dist/client.js +539 -0
- package/dist/client.js.map +1 -0
- package/dist/contract.d.ts +1247 -0
- package/dist/contract.js +167 -0
- package/dist/contract.js.map +1 -0
- package/dist/define.d.ts +336 -0
- package/dist/define.js +120 -0
- package/dist/define.js.map +1 -0
- package/dist/dev.d.ts +28 -0
- package/dist/dev.js +147 -0
- package/dist/dev.js.map +1 -0
- package/dist/expression.d.ts +28 -0
- package/dist/expression.js +67 -0
- package/dist/expression.js.map +1 -0
- package/dist/init.d.ts +14 -0
- package/dist/init.js +52 -0
- package/dist/init.js.map +1 -0
- package/dist/keys.d.ts +85 -0
- package/dist/keys.js +109 -0
- package/dist/keys.js.map +1 -0
- package/dist/manifest.d.ts +8 -0
- package/dist/manifest.js +8 -0
- package/dist/manifest.js.map +1 -0
- package/dist/pack.d.ts +35 -0
- package/dist/pack.js +84 -0
- package/dist/pack.js.map +1 -0
- package/dist/plugin-api.generated.d.ts +4263 -0
- package/dist/plugin-api.generated.js +1019 -0
- package/dist/plugin-api.generated.js.map +1 -0
- package/dist/server.d.ts +75 -0
- package/dist/server.js +408 -0
- package/dist/server.js.map +1 -0
- package/dist/testing.d.ts +116 -0
- package/dist/testing.js +386 -0
- package/dist/testing.js.map +1 -0
- package/dist/tokens.d.ts +161 -0
- package/dist/tokens.js +215 -0
- package/dist/tokens.js.map +1 -0
- package/dist/validate.d.ts +86 -0
- package/dist/validate.js +997 -0
- package/dist/validate.js.map +1 -0
- package/dist/widget.d.ts +235 -0
- package/dist/widget.js +26 -0
- package/dist/widget.js.map +1 -0
- package/examples/minimal/README.md +48 -0
- package/examples/minimal/assets/avatar.png +0 -0
- package/examples/minimal/package.json +22 -0
- package/examples/minimal/src/plugin.ts +77 -0
- package/examples/minimal/src/widgets/open-issues.ts +11 -0
- package/examples/minimal/test/fixtures/issues-statistics.json +9 -0
- package/examples/minimal/test/issue-counts.test.ts +48 -0
- package/examples/minimal/tsconfig.json +14 -0
- package/manifest.contract.json +1886 -0
- package/package.json +92 -0
- package/schemas/plugin-manifest.json +1747 -0
|
@@ -0,0 +1,4263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/generate-plugin-api.mjs from Initiative 0.74.0's plug-in API
|
|
3
|
+
* (a checkout at 3b06e3609). Do not edit: regenerate.
|
|
4
|
+
*/
|
|
5
|
+
import type { Scope } from "./contract.js";
|
|
6
|
+
/**
|
|
7
|
+
* The scope an operation needs: one scope; the scope an argument picks
|
|
8
|
+
* (`by`); or any one of several, when Initiative checks each item (`per`).
|
|
9
|
+
*/
|
|
10
|
+
export type PluginApiScope = Scope | {
|
|
11
|
+
by: string;
|
|
12
|
+
scopes: Readonly<Record<string, Scope>>;
|
|
13
|
+
} | {
|
|
14
|
+
per: string;
|
|
15
|
+
any_of: readonly Scope[];
|
|
16
|
+
};
|
|
17
|
+
export interface PluginApiOperation {
|
|
18
|
+
method: "GET" | "PUT" | "POST" | "DELETE" | "PATCH";
|
|
19
|
+
path: string;
|
|
20
|
+
scope: PluginApiScope;
|
|
21
|
+
/** The query parameters sent as one JSON string each. */
|
|
22
|
+
json?: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
export interface PluginApiArgs {
|
|
25
|
+
path?: Record<string, string | number>;
|
|
26
|
+
query?: Record<string, unknown>;
|
|
27
|
+
body?: unknown;
|
|
28
|
+
}
|
|
29
|
+
/** Initiative's schemas, by name: `PluginApiSchemas["TaskRead"]`. */
|
|
30
|
+
export interface PluginApiSchemas {
|
|
31
|
+
/**
|
|
32
|
+
* Things that can be archived.
|
|
33
|
+
*/
|
|
34
|
+
ArchivableType: "project" | "document" | "queue" | "counter_group" | "calendar" | "dashboard" | "post" | "gallery" | "wiki" | "task" | "initiative";
|
|
35
|
+
/**
|
|
36
|
+
* What archiving or unarchiving answers with.
|
|
37
|
+
*/
|
|
38
|
+
ArchiveResponse: {
|
|
39
|
+
entity_type: PluginApiSchemas["ArchivableType"];
|
|
40
|
+
entity_id: number;
|
|
41
|
+
archived_at?: string | null;
|
|
42
|
+
};
|
|
43
|
+
CalendarCreate: {
|
|
44
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
45
|
+
name: string;
|
|
46
|
+
description?: string | null;
|
|
47
|
+
color?: string;
|
|
48
|
+
initiative_id?: number | null;
|
|
49
|
+
tag_ids?: number[] | null;
|
|
50
|
+
grants?: PluginApiSchemas["ResourceGrantSchema"][];
|
|
51
|
+
};
|
|
52
|
+
CalendarEventAttendeeRead: {
|
|
53
|
+
user_id: string;
|
|
54
|
+
user: PluginApiSchemas["PluginPerson"] | null;
|
|
55
|
+
rsvp_status: PluginApiSchemas["RSVPStatus"];
|
|
56
|
+
created_at: string;
|
|
57
|
+
};
|
|
58
|
+
CalendarEventCreate: {
|
|
59
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
60
|
+
title: string;
|
|
61
|
+
description?: string | null;
|
|
62
|
+
location?: string | null;
|
|
63
|
+
start_at: string;
|
|
64
|
+
end_at: string;
|
|
65
|
+
all_day?: boolean;
|
|
66
|
+
recurrence?: string | null;
|
|
67
|
+
calendar_id: number;
|
|
68
|
+
tz?: string | null;
|
|
69
|
+
attendee_ids?: string[] | null;
|
|
70
|
+
tag_ids?: number[] | null;
|
|
71
|
+
document_ids?: number[] | null;
|
|
72
|
+
};
|
|
73
|
+
CalendarEventDocumentRead: {
|
|
74
|
+
document_id: number;
|
|
75
|
+
name?: string;
|
|
76
|
+
attached_at: string;
|
|
77
|
+
};
|
|
78
|
+
CalendarEventRead: {
|
|
79
|
+
title: string;
|
|
80
|
+
description: string | null;
|
|
81
|
+
location: string | null;
|
|
82
|
+
start_at: string;
|
|
83
|
+
end_at: string;
|
|
84
|
+
all_day: boolean;
|
|
85
|
+
recurrence: string | null;
|
|
86
|
+
id: number;
|
|
87
|
+
recurrence_shift: number;
|
|
88
|
+
original_start: string | null;
|
|
89
|
+
series_id: number | null;
|
|
90
|
+
calendar_id: number;
|
|
91
|
+
initiative_id: number | null;
|
|
92
|
+
community_id: string;
|
|
93
|
+
created_by: string | null;
|
|
94
|
+
attendee_count: number;
|
|
95
|
+
attendee_names: string[];
|
|
96
|
+
attendee_previews: PluginApiSchemas["PluginPerson"][];
|
|
97
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
98
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
99
|
+
can: PluginApiSchemas["ContentCan"];
|
|
100
|
+
created_at: string;
|
|
101
|
+
updated_at: string;
|
|
102
|
+
attendees: PluginApiSchemas["CalendarEventAttendeeRead"][];
|
|
103
|
+
documents: PluginApiSchemas["CalendarEventDocumentRead"][];
|
|
104
|
+
overridden_fields: string[];
|
|
105
|
+
skipped_starts: string[];
|
|
106
|
+
extra_starts: string[];
|
|
107
|
+
};
|
|
108
|
+
CalendarEventUpdate: {
|
|
109
|
+
properties?: PluginApiSchemas["PropertyValueInput"][] | null;
|
|
110
|
+
title?: string | null;
|
|
111
|
+
description?: string | null;
|
|
112
|
+
location?: string | null;
|
|
113
|
+
start_at?: string | null;
|
|
114
|
+
end_at?: string | null;
|
|
115
|
+
all_day?: boolean | null;
|
|
116
|
+
recurrence?: string | null;
|
|
117
|
+
tz?: string | null;
|
|
118
|
+
calendar_id?: number | null;
|
|
119
|
+
tag_ids?: number[] | null;
|
|
120
|
+
scope?: "this" | "following" | "all" | null;
|
|
121
|
+
occurrence?: string | null;
|
|
122
|
+
};
|
|
123
|
+
CalendarListResponse: {
|
|
124
|
+
total_count: number;
|
|
125
|
+
page: number;
|
|
126
|
+
page_size: number;
|
|
127
|
+
has_next: boolean;
|
|
128
|
+
has_prev: boolean;
|
|
129
|
+
items: PluginApiSchemas["CalendarSummary"][];
|
|
130
|
+
};
|
|
131
|
+
CalendarRead: {
|
|
132
|
+
archived_at: string | null;
|
|
133
|
+
can: PluginApiSchemas["ToolCan"];
|
|
134
|
+
id: number;
|
|
135
|
+
initiative_id: number | null;
|
|
136
|
+
community_id: string;
|
|
137
|
+
created_by: string | null;
|
|
138
|
+
created_at: string;
|
|
139
|
+
updated_at: string;
|
|
140
|
+
comments_enabled: boolean;
|
|
141
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
142
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
143
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
144
|
+
name: string;
|
|
145
|
+
description: string | null;
|
|
146
|
+
color: string;
|
|
147
|
+
};
|
|
148
|
+
CalendarSummary: {
|
|
149
|
+
archived_at: string | null;
|
|
150
|
+
can: PluginApiSchemas["ToolCan"];
|
|
151
|
+
id: number;
|
|
152
|
+
initiative_id: number | null;
|
|
153
|
+
community_id: string;
|
|
154
|
+
created_by: string | null;
|
|
155
|
+
created_at: string;
|
|
156
|
+
updated_at: string;
|
|
157
|
+
comments_enabled: boolean;
|
|
158
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
159
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
160
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
161
|
+
name: string;
|
|
162
|
+
description: string | null;
|
|
163
|
+
color: string;
|
|
164
|
+
};
|
|
165
|
+
CalendarUpdate: {
|
|
166
|
+
name?: string | null;
|
|
167
|
+
description?: string | null;
|
|
168
|
+
color?: string | null;
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* One checklist line as stored and read back.
|
|
172
|
+
*/
|
|
173
|
+
ChecklistItem: {
|
|
174
|
+
id: string;
|
|
175
|
+
/**
|
|
176
|
+
* A person is mentioned as `@[](<reference>)`, by your reference for them,
|
|
177
|
+
* with no name: read who they are from the members search (`members:read`).
|
|
178
|
+
* Write a mention the same way. A stored file comes without its path:
|
|
179
|
+
* `![alt]()`, `[name]()`.
|
|
180
|
+
*/
|
|
181
|
+
text: string;
|
|
182
|
+
done: boolean;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* One checklist line as written. `id` is optional: an item that arrives
|
|
186
|
+
* without one is given a fresh id.
|
|
187
|
+
*/
|
|
188
|
+
ChecklistItemInput: {
|
|
189
|
+
id?: string | null;
|
|
190
|
+
/**
|
|
191
|
+
* A person is mentioned as `@[](<reference>)`, by your reference for them,
|
|
192
|
+
* with no name: read who they are from the members search (`members:read`).
|
|
193
|
+
* Write a mention the same way. A stored file comes without its path:
|
|
194
|
+
* `![alt]()`, `[name]()`.
|
|
195
|
+
*/
|
|
196
|
+
text: string;
|
|
197
|
+
done?: boolean;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* The one field a tick changes.
|
|
201
|
+
*/
|
|
202
|
+
ChecklistItemToggle: {
|
|
203
|
+
done: boolean;
|
|
204
|
+
};
|
|
205
|
+
ChecklistProgress: {
|
|
206
|
+
completed: number;
|
|
207
|
+
total: number;
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* Who a comment is said to.
|
|
211
|
+
*/
|
|
212
|
+
CommentAudience: "members" | "filer";
|
|
213
|
+
CommentCreate: {
|
|
214
|
+
/**
|
|
215
|
+
* A person is mentioned as `@[](<reference>)`, by your reference for them,
|
|
216
|
+
* with no name: read who they are from the members search (`members:read`).
|
|
217
|
+
* Write a mention the same way. A stored file comes without its path:
|
|
218
|
+
* `![alt]()`, `[name]()`.
|
|
219
|
+
*/
|
|
220
|
+
content: string;
|
|
221
|
+
task_id?: number | null;
|
|
222
|
+
wiki_page_id?: number | null;
|
|
223
|
+
document_id?: number | null;
|
|
224
|
+
project_id?: number | null;
|
|
225
|
+
queue_id?: number | null;
|
|
226
|
+
counter_group_id?: number | null;
|
|
227
|
+
calendar_id?: number | null;
|
|
228
|
+
dashboard_id?: number | null;
|
|
229
|
+
post_id?: number | null;
|
|
230
|
+
gallery_id?: number | null;
|
|
231
|
+
wiki_id?: number | null;
|
|
232
|
+
parent_comment_id?: number | null;
|
|
233
|
+
audience?: PluginApiSchemas["CommentAudience"];
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* One page of a thread: `limit` conversations, newest first, each with every
|
|
237
|
+
* reply under it.
|
|
238
|
+
*/
|
|
239
|
+
CommentListResponse: {
|
|
240
|
+
comments: PluginApiSchemas["CommentRead"][];
|
|
241
|
+
next_cursor: string | null;
|
|
242
|
+
};
|
|
243
|
+
CommentRead: {
|
|
244
|
+
/**
|
|
245
|
+
* A person is mentioned as `@[](<reference>)`, by your reference for them,
|
|
246
|
+
* with no name: read who they are from the members search (`members:read`).
|
|
247
|
+
* Write a mention the same way. A stored file comes without its path:
|
|
248
|
+
* `![alt]()`, `[name]()`.
|
|
249
|
+
*/
|
|
250
|
+
content: string;
|
|
251
|
+
id: number;
|
|
252
|
+
created_by: string | null;
|
|
253
|
+
task_id: number | null;
|
|
254
|
+
wiki_page_id: number | null;
|
|
255
|
+
document_id: number | null;
|
|
256
|
+
queue_id: number | null;
|
|
257
|
+
counter_group_id: number | null;
|
|
258
|
+
calendar_id: number | null;
|
|
259
|
+
dashboard_id: number | null;
|
|
260
|
+
post_id: number | null;
|
|
261
|
+
gallery_id: number | null;
|
|
262
|
+
wiki_id: number | null;
|
|
263
|
+
parent_comment_id: number | null;
|
|
264
|
+
created_at: string;
|
|
265
|
+
updated_at: string | null;
|
|
266
|
+
author: PluginApiSchemas["PluginPerson"] | null;
|
|
267
|
+
imported_author_name: string | null;
|
|
268
|
+
project_id: number | null;
|
|
269
|
+
reactions: PluginApiSchemas["ReactionGroup"][];
|
|
270
|
+
can_remove: boolean;
|
|
271
|
+
audience: PluginApiSchemas["CommentAudience"];
|
|
272
|
+
system_kind: string | null;
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* What the caller may do to a piece of content, as the server answers it.
|
|
276
|
+
*/
|
|
277
|
+
ContentCan: {
|
|
278
|
+
edit: boolean;
|
|
279
|
+
};
|
|
280
|
+
CounterGroupCreate: {
|
|
281
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
282
|
+
name: string;
|
|
283
|
+
description?: string | null;
|
|
284
|
+
initiative_id: number;
|
|
285
|
+
grants?: PluginApiSchemas["ResourceGrantSchema"][];
|
|
286
|
+
};
|
|
287
|
+
CounterGroupListResponse: {
|
|
288
|
+
total_count: number;
|
|
289
|
+
page: number;
|
|
290
|
+
page_size: number;
|
|
291
|
+
has_next: boolean;
|
|
292
|
+
has_prev: boolean;
|
|
293
|
+
items: PluginApiSchemas["CounterGroupSummary"][];
|
|
294
|
+
};
|
|
295
|
+
CounterGroupRead: {
|
|
296
|
+
archived_at: string | null;
|
|
297
|
+
can: PluginApiSchemas["ToolCan"];
|
|
298
|
+
id: number;
|
|
299
|
+
initiative_id: number;
|
|
300
|
+
community_id: string;
|
|
301
|
+
created_by: string | null;
|
|
302
|
+
created_at: string;
|
|
303
|
+
updated_at: string;
|
|
304
|
+
comments_enabled: boolean;
|
|
305
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
306
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
307
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
308
|
+
name: string;
|
|
309
|
+
description: string | null;
|
|
310
|
+
preview: PluginApiSchemas["CounterPreview"][] | null;
|
|
311
|
+
counters: PluginApiSchemas["CounterRead"][];
|
|
312
|
+
};
|
|
313
|
+
/**
|
|
314
|
+
* A counter group in a list: the group alone, without its counters — unless
|
|
315
|
+
* the list was asked for previews, when its first few come along.
|
|
316
|
+
*/
|
|
317
|
+
CounterGroupSummary: {
|
|
318
|
+
archived_at: string | null;
|
|
319
|
+
can: PluginApiSchemas["ToolCan"];
|
|
320
|
+
id: number;
|
|
321
|
+
initiative_id: number;
|
|
322
|
+
community_id: string;
|
|
323
|
+
created_by: string | null;
|
|
324
|
+
created_at: string;
|
|
325
|
+
updated_at: string;
|
|
326
|
+
comments_enabled: boolean;
|
|
327
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
328
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
329
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
330
|
+
name: string;
|
|
331
|
+
description: string | null;
|
|
332
|
+
preview: PluginApiSchemas["CounterPreview"][] | null;
|
|
333
|
+
};
|
|
334
|
+
CounterGroupUpdate: {
|
|
335
|
+
name?: string | null;
|
|
336
|
+
description?: string | null;
|
|
337
|
+
};
|
|
338
|
+
/**
|
|
339
|
+
* One counter as a list's card draws it: its name, colour and count.
|
|
340
|
+
*/
|
|
341
|
+
CounterPreview: {
|
|
342
|
+
id: number;
|
|
343
|
+
name: string;
|
|
344
|
+
color: string | null;
|
|
345
|
+
count: string;
|
|
346
|
+
};
|
|
347
|
+
/**
|
|
348
|
+
* Serialized counter. Numeric fields are returned as plain decimal strings
|
|
349
|
+
* (e.g. "0", "12.5") rather than `Decimal` so JSON never emits PostgreSQL's
|
|
350
|
+
* exponent notation (`0E-10`) from `Numeric(20, 10)` columns.
|
|
351
|
+
*/
|
|
352
|
+
CounterRead: {
|
|
353
|
+
id: number;
|
|
354
|
+
counter_group_id: number;
|
|
355
|
+
community_id: string;
|
|
356
|
+
name: string;
|
|
357
|
+
color: string | null;
|
|
358
|
+
count: string;
|
|
359
|
+
min: string | null;
|
|
360
|
+
max: string | null;
|
|
361
|
+
step: string;
|
|
362
|
+
initial_count: string;
|
|
363
|
+
view_mode: PluginApiSchemas["CounterViewMode"];
|
|
364
|
+
position: string;
|
|
365
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
366
|
+
created_at: string;
|
|
367
|
+
updated_at: string;
|
|
368
|
+
};
|
|
369
|
+
CounterSetCountRequest: {
|
|
370
|
+
count: number | string;
|
|
371
|
+
};
|
|
372
|
+
/**
|
|
373
|
+
* Move a counter up or down. `amount` left out moves it by the counter's own
|
|
374
|
+
* `step`; given, it must be more than nothing, since which way the counter
|
|
375
|
+
* goes is `direction`'s to say.
|
|
376
|
+
*/
|
|
377
|
+
CounterStepRequest: {
|
|
378
|
+
direction: "up" | "down";
|
|
379
|
+
amount?: number | string | null;
|
|
380
|
+
};
|
|
381
|
+
CounterViewMode: "number" | "progress_bar" | "segmented_clock";
|
|
382
|
+
DocumentCreate: {
|
|
383
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
384
|
+
name: string;
|
|
385
|
+
initiative_id: number;
|
|
386
|
+
featured_image_url?: string | null;
|
|
387
|
+
is_template?: boolean;
|
|
388
|
+
content?: Record<string, unknown> | null;
|
|
389
|
+
document_type?: "native" | "whiteboard" | "smart_link" | "spreadsheet";
|
|
390
|
+
grants?: PluginApiSchemas["ResourceGrantSchema"][];
|
|
391
|
+
};
|
|
392
|
+
DocumentListResponse: {
|
|
393
|
+
total_count: number;
|
|
394
|
+
page: number;
|
|
395
|
+
page_size: number;
|
|
396
|
+
has_next: boolean;
|
|
397
|
+
has_prev: boolean;
|
|
398
|
+
items: PluginApiSchemas["DocumentSummary"][];
|
|
399
|
+
sort_by: string | null;
|
|
400
|
+
sort_dir: string | null;
|
|
401
|
+
};
|
|
402
|
+
DocumentProjectLink: {
|
|
403
|
+
project_id: number;
|
|
404
|
+
project_name?: string | null;
|
|
405
|
+
project_icon?: string | null;
|
|
406
|
+
project_initiative_id?: number | null;
|
|
407
|
+
attached_at: string;
|
|
408
|
+
};
|
|
409
|
+
DocumentRead: {
|
|
410
|
+
archived_at: string | null;
|
|
411
|
+
can: PluginApiSchemas["ToolCan"];
|
|
412
|
+
id: number;
|
|
413
|
+
initiative_id: number;
|
|
414
|
+
community_id: string;
|
|
415
|
+
created_by: string | null;
|
|
416
|
+
created_at: string;
|
|
417
|
+
updated_at: string;
|
|
418
|
+
comments_enabled: boolean;
|
|
419
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
420
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
421
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
422
|
+
name: string;
|
|
423
|
+
/**
|
|
424
|
+
* A stored file comes as an empty string, without its path. A URL from
|
|
425
|
+
* elsewhere comes as it is.
|
|
426
|
+
*/
|
|
427
|
+
featured_image_url: string | null;
|
|
428
|
+
is_template: boolean;
|
|
429
|
+
initiative: PluginApiSchemas["InitiativeSummary"] | null;
|
|
430
|
+
owner: PluginApiSchemas["PluginPerson"] | null;
|
|
431
|
+
owner_plugin: PluginApiSchemas["OwnerPluginSummary"] | null;
|
|
432
|
+
projects: PluginApiSchemas["DocumentProjectLink"][];
|
|
433
|
+
comment_count: number;
|
|
434
|
+
document_type: PluginApiSchemas["DocumentType"];
|
|
435
|
+
/**
|
|
436
|
+
* A stored file comes as an empty string, without its path. A URL from
|
|
437
|
+
* elsewhere comes as it is.
|
|
438
|
+
*/
|
|
439
|
+
file_url: string | null;
|
|
440
|
+
file_content_type: string | null;
|
|
441
|
+
file_size: number | null;
|
|
442
|
+
original_filename: string | null;
|
|
443
|
+
smart_link_url: string | null;
|
|
444
|
+
yjs_updated_at: string | null;
|
|
445
|
+
/**
|
|
446
|
+
* A Lexical editor state. A person is mentioned by a node whose
|
|
447
|
+
* `mentionUserId` is your reference for them, with `mentionName` and `text`
|
|
448
|
+
* empty: read who they are from the members search (`members:read`). Write
|
|
449
|
+
* a mention the same way. A stored file comes without its path: an image's
|
|
450
|
+
* `src` and a link's `url` are empty.
|
|
451
|
+
*/
|
|
452
|
+
content: Record<string, unknown>;
|
|
453
|
+
content_version: string | null;
|
|
454
|
+
};
|
|
455
|
+
DocumentSummary: {
|
|
456
|
+
archived_at: string | null;
|
|
457
|
+
can: PluginApiSchemas["ToolCan"];
|
|
458
|
+
id: number;
|
|
459
|
+
initiative_id: number;
|
|
460
|
+
community_id: string;
|
|
461
|
+
created_by: string | null;
|
|
462
|
+
created_at: string;
|
|
463
|
+
updated_at: string;
|
|
464
|
+
comments_enabled: boolean;
|
|
465
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
466
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
467
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
468
|
+
name: string;
|
|
469
|
+
/**
|
|
470
|
+
* A stored file comes as an empty string, without its path. A URL from
|
|
471
|
+
* elsewhere comes as it is.
|
|
472
|
+
*/
|
|
473
|
+
featured_image_url: string | null;
|
|
474
|
+
is_template: boolean;
|
|
475
|
+
initiative: PluginApiSchemas["InitiativeSummary"] | null;
|
|
476
|
+
owner: PluginApiSchemas["PluginPerson"] | null;
|
|
477
|
+
owner_plugin: PluginApiSchemas["OwnerPluginSummary"] | null;
|
|
478
|
+
projects: PluginApiSchemas["DocumentProjectLink"][];
|
|
479
|
+
comment_count: number;
|
|
480
|
+
document_type: PluginApiSchemas["DocumentType"];
|
|
481
|
+
/**
|
|
482
|
+
* A stored file comes as an empty string, without its path. A URL from
|
|
483
|
+
* elsewhere comes as it is.
|
|
484
|
+
*/
|
|
485
|
+
file_url: string | null;
|
|
486
|
+
file_content_type: string | null;
|
|
487
|
+
file_size: number | null;
|
|
488
|
+
original_filename: string | null;
|
|
489
|
+
smart_link_url: string | null;
|
|
490
|
+
yjs_updated_at: string | null;
|
|
491
|
+
};
|
|
492
|
+
/**
|
|
493
|
+
* Discriminator for document type.
|
|
494
|
+
*/
|
|
495
|
+
DocumentType: "native" | "file" | "whiteboard" | "smart_link" | "spreadsheet";
|
|
496
|
+
DocumentUpdate: {
|
|
497
|
+
name?: string | null;
|
|
498
|
+
content?: Record<string, unknown> | null;
|
|
499
|
+
content_version?: string | null;
|
|
500
|
+
featured_image_url?: string | null;
|
|
501
|
+
is_template?: boolean | null;
|
|
502
|
+
};
|
|
503
|
+
/**
|
|
504
|
+
* A single field comparison.
|
|
505
|
+
*/
|
|
506
|
+
FilterCondition: {
|
|
507
|
+
field: string;
|
|
508
|
+
op?: PluginApiSchemas["FilterOp"];
|
|
509
|
+
value?: unknown;
|
|
510
|
+
negate?: boolean;
|
|
511
|
+
};
|
|
512
|
+
/**
|
|
513
|
+
* Group of conditions combined with AND or OR logic.
|
|
514
|
+
*/
|
|
515
|
+
FilterGroup: {
|
|
516
|
+
logic?: "and" | "or";
|
|
517
|
+
negate?: boolean;
|
|
518
|
+
conditions: Array<PluginApiSchemas["FilterCondition"] | PluginApiSchemas["FilterGroup"]>;
|
|
519
|
+
};
|
|
520
|
+
/**
|
|
521
|
+
* Comparison operators for filter conditions.
|
|
522
|
+
*/
|
|
523
|
+
FilterOp: "eq" | "lt" | "lte" | "gt" | "gte" | "in_" | "ilike" | "is_null";
|
|
524
|
+
/**
|
|
525
|
+
* What a list draws for a gallery: one picture, at whichever size it has.
|
|
526
|
+
*/
|
|
527
|
+
GalleryCover: {
|
|
528
|
+
image_id: number;
|
|
529
|
+
/**
|
|
530
|
+
* A stored file comes as an empty string, without its path. A URL from
|
|
531
|
+
* elsewhere comes as it is.
|
|
532
|
+
*/
|
|
533
|
+
file_url: string;
|
|
534
|
+
/**
|
|
535
|
+
* A stored file comes as an empty string, without its path. A URL from
|
|
536
|
+
* elsewhere comes as it is.
|
|
537
|
+
*/
|
|
538
|
+
thumbnail_url: string | null;
|
|
539
|
+
width: number | null;
|
|
540
|
+
height: number | null;
|
|
541
|
+
};
|
|
542
|
+
GalleryCreate: {
|
|
543
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
544
|
+
name: string;
|
|
545
|
+
description?: string | null;
|
|
546
|
+
initiative_id: number;
|
|
547
|
+
tag_ids?: number[] | null;
|
|
548
|
+
grants?: PluginApiSchemas["ResourceGrantSchema"][];
|
|
549
|
+
};
|
|
550
|
+
GalleryImageListResponse: {
|
|
551
|
+
total_count: number;
|
|
552
|
+
page: number;
|
|
553
|
+
page_size: number;
|
|
554
|
+
has_next: boolean;
|
|
555
|
+
has_prev: boolean;
|
|
556
|
+
items: PluginApiSchemas["GalleryImageRead"][];
|
|
557
|
+
};
|
|
558
|
+
GalleryImageRead: {
|
|
559
|
+
id: number;
|
|
560
|
+
gallery_id: number;
|
|
561
|
+
community_id: string;
|
|
562
|
+
title: string | null;
|
|
563
|
+
caption: string | null;
|
|
564
|
+
/**
|
|
565
|
+
* A stored file comes as an empty string, without its path. A URL from
|
|
566
|
+
* elsewhere comes as it is.
|
|
567
|
+
*/
|
|
568
|
+
file_url: string;
|
|
569
|
+
/**
|
|
570
|
+
* A stored file comes as an empty string, without its path. A URL from
|
|
571
|
+
* elsewhere comes as it is.
|
|
572
|
+
*/
|
|
573
|
+
thumbnail_url: string | null;
|
|
574
|
+
file_content_type: string | null;
|
|
575
|
+
file_size: number | null;
|
|
576
|
+
original_filename: string | null;
|
|
577
|
+
width: number | null;
|
|
578
|
+
height: number | null;
|
|
579
|
+
created_by: string;
|
|
580
|
+
uploader: PluginApiSchemas["PluginPerson"] | null;
|
|
581
|
+
created_at: string;
|
|
582
|
+
updated_at: string;
|
|
583
|
+
version_count: number;
|
|
584
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
585
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
586
|
+
};
|
|
587
|
+
GalleryListResponse: {
|
|
588
|
+
total_count: number;
|
|
589
|
+
page: number;
|
|
590
|
+
page_size: number;
|
|
591
|
+
has_next: boolean;
|
|
592
|
+
has_prev: boolean;
|
|
593
|
+
items: PluginApiSchemas["GallerySummary"][];
|
|
594
|
+
};
|
|
595
|
+
/**
|
|
596
|
+
* A gallery on its own page. The same shape as its summary: the pictures are
|
|
597
|
+
* paged separately, because a gallery is browsed rather than read.
|
|
598
|
+
*/
|
|
599
|
+
GalleryRead: {
|
|
600
|
+
archived_at: string | null;
|
|
601
|
+
can: PluginApiSchemas["ToolCan"];
|
|
602
|
+
id: number;
|
|
603
|
+
initiative_id: number;
|
|
604
|
+
community_id: string;
|
|
605
|
+
created_by: string | null;
|
|
606
|
+
created_at: string;
|
|
607
|
+
updated_at: string;
|
|
608
|
+
comments_enabled: boolean;
|
|
609
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
610
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
611
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
612
|
+
name: string;
|
|
613
|
+
description: string | null;
|
|
614
|
+
cover_image_id: number | null;
|
|
615
|
+
cover: PluginApiSchemas["GalleryCover"] | null;
|
|
616
|
+
preview: PluginApiSchemas["GalleryCover"][];
|
|
617
|
+
comment_count: number;
|
|
618
|
+
};
|
|
619
|
+
GallerySummary: {
|
|
620
|
+
archived_at: string | null;
|
|
621
|
+
can: PluginApiSchemas["ToolCan"];
|
|
622
|
+
id: number;
|
|
623
|
+
initiative_id: number;
|
|
624
|
+
community_id: string;
|
|
625
|
+
created_by: string | null;
|
|
626
|
+
created_at: string;
|
|
627
|
+
updated_at: string;
|
|
628
|
+
comments_enabled: boolean;
|
|
629
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
630
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
631
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
632
|
+
name: string;
|
|
633
|
+
description: string | null;
|
|
634
|
+
cover_image_id: number | null;
|
|
635
|
+
cover: PluginApiSchemas["GalleryCover"] | null;
|
|
636
|
+
preview: PluginApiSchemas["GalleryCover"][];
|
|
637
|
+
comment_count: number;
|
|
638
|
+
};
|
|
639
|
+
GalleryUpdate: {
|
|
640
|
+
name?: string | null;
|
|
641
|
+
description?: string | null;
|
|
642
|
+
cover_image_id?: number | null;
|
|
643
|
+
};
|
|
644
|
+
HTTPValidationError: {
|
|
645
|
+
detail?: PluginApiSchemas["ValidationError"][];
|
|
646
|
+
};
|
|
647
|
+
/**
|
|
648
|
+
* What the caller may do in an initiative (:func:`initiative_can`).
|
|
649
|
+
*/
|
|
650
|
+
InitiativeCan: {
|
|
651
|
+
manage: boolean;
|
|
652
|
+
moderate: boolean;
|
|
653
|
+
view: PluginApiSchemas["Tool"][];
|
|
654
|
+
create: PluginApiSchemas["Tool"][];
|
|
655
|
+
};
|
|
656
|
+
/**
|
|
657
|
+
* How a guild member may come to hold a membership row in an initiative.
|
|
658
|
+
*/
|
|
659
|
+
InitiativeJoinPolicy: "private" | "request" | "open";
|
|
660
|
+
/**
|
|
661
|
+
* Which initiatives `GET /initiatives/` should return.
|
|
662
|
+
*/
|
|
663
|
+
InitiativeListScope: "member" | "community";
|
|
664
|
+
/**
|
|
665
|
+
* An initiative: the row, its headcount, what the caller may do in it and the
|
|
666
|
+
* role they hold there. Its roster is read a page at a time from `GET
|
|
667
|
+
* /initiatives/{id}/members`.
|
|
668
|
+
*/
|
|
669
|
+
InitiativeRead: {
|
|
670
|
+
projects_enabled: boolean;
|
|
671
|
+
documents_enabled: boolean;
|
|
672
|
+
queues_enabled: boolean;
|
|
673
|
+
counter_groups_enabled: boolean;
|
|
674
|
+
calendars_enabled: boolean;
|
|
675
|
+
dashboards_enabled: boolean;
|
|
676
|
+
posts_enabled: boolean;
|
|
677
|
+
galleries_enabled: boolean;
|
|
678
|
+
wikis_enabled: boolean;
|
|
679
|
+
name: string;
|
|
680
|
+
description: string | null;
|
|
681
|
+
color: string | null;
|
|
682
|
+
id: number;
|
|
683
|
+
community_id: string | null;
|
|
684
|
+
archived_at: string | null;
|
|
685
|
+
join_policy: PluginApiSchemas["InitiativeJoinPolicy"];
|
|
686
|
+
auto_join: boolean;
|
|
687
|
+
keep_content_in: boolean;
|
|
688
|
+
created_at: string;
|
|
689
|
+
updated_at: string;
|
|
690
|
+
can: PluginApiSchemas["InitiativeCan"];
|
|
691
|
+
member_count: number;
|
|
692
|
+
role_display_name: string | null;
|
|
693
|
+
};
|
|
694
|
+
/**
|
|
695
|
+
* An initiative as something else names it: enough to label and link it.
|
|
696
|
+
*/
|
|
697
|
+
InitiativeSummary: {
|
|
698
|
+
id: number;
|
|
699
|
+
name: string;
|
|
700
|
+
color: string | null;
|
|
701
|
+
};
|
|
702
|
+
/**
|
|
703
|
+
* A status column as it appears across one initiative's projects.
|
|
704
|
+
*/
|
|
705
|
+
InitiativeTaskStatusRead: {
|
|
706
|
+
name: string;
|
|
707
|
+
category: PluginApiSchemas["TaskStatusCategory"];
|
|
708
|
+
color: string;
|
|
709
|
+
icon: string;
|
|
710
|
+
project_count: number;
|
|
711
|
+
projects_total: number;
|
|
712
|
+
};
|
|
713
|
+
OccurrenceRequest: {
|
|
714
|
+
start: string;
|
|
715
|
+
};
|
|
716
|
+
/**
|
|
717
|
+
* An installed plug-in that owns a resource, or may be handed one: the
|
|
718
|
+
* install's id, its name in this community, and its listing's picture.
|
|
719
|
+
*/
|
|
720
|
+
OwnerPluginSummary: {
|
|
721
|
+
id: number;
|
|
722
|
+
name: string;
|
|
723
|
+
avatar_url: string | null;
|
|
724
|
+
};
|
|
725
|
+
/**
|
|
726
|
+
* A person, as an installed plug-in receives them wherever one appears.
|
|
727
|
+
*/
|
|
728
|
+
PluginPerson: {
|
|
729
|
+
id: string;
|
|
730
|
+
username?: string | null;
|
|
731
|
+
discriminator?: number | null;
|
|
732
|
+
display_name?: string | null;
|
|
733
|
+
/**
|
|
734
|
+
* Where the plug-in reads the picture this member uploaded:
|
|
735
|
+
* `/api/v1/c/0/members/{id}/avatar/{sha256}`, a path on Initiative served
|
|
736
|
+
* under `members:read`. Absent when they have not uploaded one.
|
|
737
|
+
*/
|
|
738
|
+
avatar_url?: string | null;
|
|
739
|
+
};
|
|
740
|
+
PollOptionRead: {
|
|
741
|
+
id: number;
|
|
742
|
+
text: string;
|
|
743
|
+
position: number;
|
|
744
|
+
vote_count: number | null;
|
|
745
|
+
voted_by_me: boolean;
|
|
746
|
+
};
|
|
747
|
+
/**
|
|
748
|
+
* One answer, as the author typed it.
|
|
749
|
+
*/
|
|
750
|
+
PollOptionWrite: {
|
|
751
|
+
text: string;
|
|
752
|
+
};
|
|
753
|
+
PollRead: {
|
|
754
|
+
id: number;
|
|
755
|
+
question: string | null;
|
|
756
|
+
allows_multiple: boolean;
|
|
757
|
+
is_anonymous: boolean;
|
|
758
|
+
hide_results: boolean;
|
|
759
|
+
closes_at: string | null;
|
|
760
|
+
is_closed: boolean;
|
|
761
|
+
options: PluginApiSchemas["PollOptionRead"][];
|
|
762
|
+
has_voted: boolean;
|
|
763
|
+
results_visible: boolean;
|
|
764
|
+
total_voters: number | null;
|
|
765
|
+
is_locked: boolean;
|
|
766
|
+
};
|
|
767
|
+
/**
|
|
768
|
+
* A whole poll, sent as one thing.
|
|
769
|
+
*/
|
|
770
|
+
PollWrite: {
|
|
771
|
+
question?: string | null;
|
|
772
|
+
options: PluginApiSchemas["PollOptionWrite"][];
|
|
773
|
+
allows_multiple?: boolean;
|
|
774
|
+
is_anonymous?: boolean;
|
|
775
|
+
hide_results?: boolean;
|
|
776
|
+
closes_at?: string | null;
|
|
777
|
+
};
|
|
778
|
+
PostCreate: {
|
|
779
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
780
|
+
name: string;
|
|
781
|
+
initiative_id: number;
|
|
782
|
+
/**
|
|
783
|
+
* A Lexical editor state. A person is mentioned by a node whose
|
|
784
|
+
* `mentionUserId` is your reference for them, with `mentionName` and `text`
|
|
785
|
+
* empty: read who they are from the members search (`members:read`). Write
|
|
786
|
+
* a mention the same way. A stored file comes without its path: an image's
|
|
787
|
+
* `src` and a link's `url` are empty.
|
|
788
|
+
*/
|
|
789
|
+
body?: Record<string, unknown>;
|
|
790
|
+
tag_ids?: number[] | null;
|
|
791
|
+
grants?: PluginApiSchemas["ResourceGrantSchema"][];
|
|
792
|
+
scheduled_for?: string | null;
|
|
793
|
+
poll?: PluginApiSchemas["PollWrite"] | null;
|
|
794
|
+
};
|
|
795
|
+
PostListResponse: {
|
|
796
|
+
total_count: number;
|
|
797
|
+
page: number;
|
|
798
|
+
page_size: number;
|
|
799
|
+
has_next: boolean;
|
|
800
|
+
has_prev: boolean;
|
|
801
|
+
items: PluginApiSchemas["PostRead"][];
|
|
802
|
+
};
|
|
803
|
+
/**
|
|
804
|
+
* Pin or unpin one post. `pinned` false clears the expiry with it — an expiry
|
|
805
|
+
* belongs to a pin, and keeping a stale one around would silently apply to
|
|
806
|
+
* the next pin.
|
|
807
|
+
*/
|
|
808
|
+
PostPinUpdate: {
|
|
809
|
+
pinned?: boolean;
|
|
810
|
+
expires_at?: string | null;
|
|
811
|
+
};
|
|
812
|
+
PostRead: {
|
|
813
|
+
archived_at: string | null;
|
|
814
|
+
can: PluginApiSchemas["ToolCan"];
|
|
815
|
+
id: number;
|
|
816
|
+
initiative_id: number;
|
|
817
|
+
community_id: string;
|
|
818
|
+
created_by: string | null;
|
|
819
|
+
created_at: string;
|
|
820
|
+
updated_at: string;
|
|
821
|
+
comments_enabled: boolean;
|
|
822
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
823
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
824
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
825
|
+
name: string;
|
|
826
|
+
author: PluginApiSchemas["PluginPerson"] | null;
|
|
827
|
+
/**
|
|
828
|
+
* A person is mentioned as `@[](<reference>)`, by your reference for them,
|
|
829
|
+
* with no name: read who they are from the members search (`members:read`).
|
|
830
|
+
* Write a mention the same way. A stored file comes without its path:
|
|
831
|
+
* `![alt]()`, `[name]()`.
|
|
832
|
+
*/
|
|
833
|
+
excerpt: string;
|
|
834
|
+
pinned_at: string | null;
|
|
835
|
+
pinned_by: string | null;
|
|
836
|
+
pin_expires_at: string | null;
|
|
837
|
+
is_pinned: boolean;
|
|
838
|
+
published_at: string | null;
|
|
839
|
+
scheduled_for: string | null;
|
|
840
|
+
is_published: boolean;
|
|
841
|
+
is_read: boolean;
|
|
842
|
+
read_count: number;
|
|
843
|
+
reactions_enabled: boolean;
|
|
844
|
+
comment_count: number;
|
|
845
|
+
reactions: PluginApiSchemas["ReactionGroup"][];
|
|
846
|
+
/**
|
|
847
|
+
* A Lexical editor state. A person is mentioned by a node whose
|
|
848
|
+
* `mentionUserId` is your reference for them, with `mentionName` and `text`
|
|
849
|
+
* empty: read who they are from the members search (`members:read`). Write
|
|
850
|
+
* a mention the same way. A stored file comes without its path: an image's
|
|
851
|
+
* `src` and a link's `url` are empty.
|
|
852
|
+
*/
|
|
853
|
+
body: Record<string, unknown>;
|
|
854
|
+
poll: PluginApiSchemas["PollRead"] | null;
|
|
855
|
+
};
|
|
856
|
+
PostUpdate: {
|
|
857
|
+
name?: string | null;
|
|
858
|
+
body?: Record<string, unknown> | null;
|
|
859
|
+
scheduled_for?: string | null;
|
|
860
|
+
};
|
|
861
|
+
ProjectCan: {
|
|
862
|
+
edit: boolean;
|
|
863
|
+
contribute: boolean;
|
|
864
|
+
delete: boolean;
|
|
865
|
+
share: boolean;
|
|
866
|
+
export: boolean;
|
|
867
|
+
unarchive: boolean;
|
|
868
|
+
configure: boolean;
|
|
869
|
+
};
|
|
870
|
+
ProjectCreate: {
|
|
871
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
872
|
+
name: string;
|
|
873
|
+
description?: string | null;
|
|
874
|
+
icon?: string | null;
|
|
875
|
+
start_date?: string | null;
|
|
876
|
+
end_date?: string | null;
|
|
877
|
+
initiative_id?: number | null;
|
|
878
|
+
is_template?: boolean;
|
|
879
|
+
template_id?: number | null;
|
|
880
|
+
grants?: PluginApiSchemas["ResourceGrantSchema"][];
|
|
881
|
+
};
|
|
882
|
+
ProjectDocumentSummary: {
|
|
883
|
+
document_id: number;
|
|
884
|
+
name: string;
|
|
885
|
+
updated_at: string;
|
|
886
|
+
attached_at: string;
|
|
887
|
+
};
|
|
888
|
+
ProjectListResponse: {
|
|
889
|
+
total_count: number;
|
|
890
|
+
page: number;
|
|
891
|
+
page_size: number;
|
|
892
|
+
has_next: boolean;
|
|
893
|
+
has_prev: boolean;
|
|
894
|
+
items: PluginApiSchemas["ProjectRead"][];
|
|
895
|
+
};
|
|
896
|
+
ProjectRead: {
|
|
897
|
+
archived_at: string | null;
|
|
898
|
+
can: PluginApiSchemas["ProjectCan"];
|
|
899
|
+
name: string;
|
|
900
|
+
description: string | null;
|
|
901
|
+
icon: string | null;
|
|
902
|
+
start_date: string | null;
|
|
903
|
+
end_date: string | null;
|
|
904
|
+
id: number;
|
|
905
|
+
owner_id: string | null;
|
|
906
|
+
initiative_id: number;
|
|
907
|
+
community_id: string | null;
|
|
908
|
+
created_at: string;
|
|
909
|
+
updated_at: string;
|
|
910
|
+
is_template: boolean;
|
|
911
|
+
pinned_at: string | null;
|
|
912
|
+
default_view_mode: string | null;
|
|
913
|
+
owner: PluginApiSchemas["PluginPerson"] | null;
|
|
914
|
+
owner_plugin: PluginApiSchemas["OwnerPluginSummary"] | null;
|
|
915
|
+
initiative: PluginApiSchemas["InitiativeSummary"] | null;
|
|
916
|
+
sort_order: number | null;
|
|
917
|
+
is_favorited: boolean;
|
|
918
|
+
last_viewed_at: string | null;
|
|
919
|
+
documents: PluginApiSchemas["ProjectDocumentSummary"][];
|
|
920
|
+
task_summary: PluginApiSchemas["ProjectTaskSummary"];
|
|
921
|
+
task_statuses: PluginApiSchemas["TaskStatusRead"][];
|
|
922
|
+
comments_enabled: boolean;
|
|
923
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
924
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
925
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
926
|
+
};
|
|
927
|
+
ProjectTaskSummary: {
|
|
928
|
+
total: number;
|
|
929
|
+
completed: number;
|
|
930
|
+
};
|
|
931
|
+
ProjectUpdate: {
|
|
932
|
+
name?: string | null;
|
|
933
|
+
description?: string | null;
|
|
934
|
+
icon?: string | null;
|
|
935
|
+
is_template?: boolean | null;
|
|
936
|
+
pinned?: boolean | null;
|
|
937
|
+
default_view_mode?: "table" | "kanban" | "calendar" | null;
|
|
938
|
+
start_date?: string | null;
|
|
939
|
+
end_date?: string | null;
|
|
940
|
+
};
|
|
941
|
+
PropertyDefinitionRead: {
|
|
942
|
+
name: string;
|
|
943
|
+
type: PluginApiSchemas["PropertyType"];
|
|
944
|
+
position: number;
|
|
945
|
+
color: string | null;
|
|
946
|
+
options: PluginApiSchemas["PropertyOption"][] | null;
|
|
947
|
+
id: number;
|
|
948
|
+
initiative_id: number;
|
|
949
|
+
created_at: string;
|
|
950
|
+
updated_at: string;
|
|
951
|
+
};
|
|
952
|
+
/**
|
|
953
|
+
* One option entry for select / multi_select property definitions.
|
|
954
|
+
*/
|
|
955
|
+
PropertyOption: {
|
|
956
|
+
value: string;
|
|
957
|
+
label: string;
|
|
958
|
+
color?: string | null;
|
|
959
|
+
};
|
|
960
|
+
/**
|
|
961
|
+
* Lightweight property value for embedding in entity reads.
|
|
962
|
+
*/
|
|
963
|
+
PropertySummary: {
|
|
964
|
+
property_id: number;
|
|
965
|
+
name: string;
|
|
966
|
+
type: PluginApiSchemas["PropertyType"];
|
|
967
|
+
options: PluginApiSchemas["PropertyOption"][] | null;
|
|
968
|
+
/**
|
|
969
|
+
* Shaped by the property's type. For user_reference, a person: id,
|
|
970
|
+
* username, discriminator, display_name and avatar_url, or an PluginPerson
|
|
971
|
+
* when the reader is an installed plug-in.
|
|
972
|
+
*/
|
|
973
|
+
value: unknown;
|
|
974
|
+
};
|
|
975
|
+
/**
|
|
976
|
+
* What can carry custom property values: every tool and sub-tool.
|
|
977
|
+
*/
|
|
978
|
+
PropertyTarget: "project" | "document" | "queue" | "counter_group" | "calendar" | "dashboard" | "post" | "gallery" | "wiki" | "task" | "queue_item" | "calendar_event" | "counter" | "gallery_image" | "wiki_page";
|
|
979
|
+
/**
|
|
980
|
+
* Supported value types for a property definition.
|
|
981
|
+
*/
|
|
982
|
+
PropertyType: "text" | "number" | "checkbox" | "date" | "datetime" | "url" | "select" | "multi_select" | "user_reference";
|
|
983
|
+
/**
|
|
984
|
+
* A single (property_id, value) pair submitted by the client.
|
|
985
|
+
*/
|
|
986
|
+
PropertyValueInput: {
|
|
987
|
+
property_id: number;
|
|
988
|
+
value?: unknown;
|
|
989
|
+
};
|
|
990
|
+
/**
|
|
991
|
+
* Replace-all payload for `PUT /properties/{target}/{entity_id}`.
|
|
992
|
+
*/
|
|
993
|
+
PropertyValuesSetRequest: {
|
|
994
|
+
values?: PluginApiSchemas["PropertyValueInput"][];
|
|
995
|
+
};
|
|
996
|
+
QueueCreate: {
|
|
997
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
998
|
+
name: string;
|
|
999
|
+
description?: string | null;
|
|
1000
|
+
initiative_id: number;
|
|
1001
|
+
grants?: PluginApiSchemas["ResourceGrantSchema"][];
|
|
1002
|
+
};
|
|
1003
|
+
QueueItemDocumentRead: {
|
|
1004
|
+
document_id: number;
|
|
1005
|
+
name?: string;
|
|
1006
|
+
attached_at: string;
|
|
1007
|
+
};
|
|
1008
|
+
QueueItemRead: {
|
|
1009
|
+
label: string;
|
|
1010
|
+
position: number;
|
|
1011
|
+
color: string | null;
|
|
1012
|
+
notes: string | null;
|
|
1013
|
+
is_visible: boolean;
|
|
1014
|
+
id: number;
|
|
1015
|
+
queue_id: number;
|
|
1016
|
+
user_id: string | null;
|
|
1017
|
+
user: PluginApiSchemas["PluginPerson"] | null;
|
|
1018
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1019
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1020
|
+
documents: PluginApiSchemas["QueueItemDocumentRead"][];
|
|
1021
|
+
tasks: PluginApiSchemas["QueueItemTaskRead"][];
|
|
1022
|
+
attachment_count: number;
|
|
1023
|
+
held_at_round: number | null;
|
|
1024
|
+
created_at: string;
|
|
1025
|
+
};
|
|
1026
|
+
QueueItemTaskRead: {
|
|
1027
|
+
task_id: number;
|
|
1028
|
+
title?: string;
|
|
1029
|
+
attached_at: string;
|
|
1030
|
+
};
|
|
1031
|
+
QueueItemUpdate: {
|
|
1032
|
+
properties?: PluginApiSchemas["PropertyValueInput"][] | null;
|
|
1033
|
+
label?: string | null;
|
|
1034
|
+
position?: number | null;
|
|
1035
|
+
user_id?: string | null;
|
|
1036
|
+
color?: string | null;
|
|
1037
|
+
notes?: string | null;
|
|
1038
|
+
is_visible?: boolean | null;
|
|
1039
|
+
tag_ids?: number[] | null;
|
|
1040
|
+
};
|
|
1041
|
+
QueueListResponse: {
|
|
1042
|
+
total_count: number;
|
|
1043
|
+
page: number;
|
|
1044
|
+
page_size: number;
|
|
1045
|
+
has_next: boolean;
|
|
1046
|
+
has_prev: boolean;
|
|
1047
|
+
items: PluginApiSchemas["QueueSummary"][];
|
|
1048
|
+
};
|
|
1049
|
+
QueueRead: {
|
|
1050
|
+
archived_at: string | null;
|
|
1051
|
+
can: PluginApiSchemas["ToolCan"];
|
|
1052
|
+
id: number;
|
|
1053
|
+
initiative_id: number;
|
|
1054
|
+
community_id: string;
|
|
1055
|
+
created_by: string | null;
|
|
1056
|
+
created_at: string;
|
|
1057
|
+
updated_at: string;
|
|
1058
|
+
comments_enabled: boolean;
|
|
1059
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1060
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1061
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
1062
|
+
name: string;
|
|
1063
|
+
description: string | null;
|
|
1064
|
+
current_round: number;
|
|
1065
|
+
is_active: boolean;
|
|
1066
|
+
preview: PluginApiSchemas["QueueTurnPreview"][] | null;
|
|
1067
|
+
items: PluginApiSchemas["QueueItemRead"][];
|
|
1068
|
+
current_item: PluginApiSchemas["QueueItemRead"] | null;
|
|
1069
|
+
};
|
|
1070
|
+
/**
|
|
1071
|
+
* Options for releasing a held queue item back into the rotation.
|
|
1072
|
+
*/
|
|
1073
|
+
QueueReleaseRequest: {
|
|
1074
|
+
reposition?: boolean;
|
|
1075
|
+
};
|
|
1076
|
+
QueueSummary: {
|
|
1077
|
+
archived_at: string | null;
|
|
1078
|
+
can: PluginApiSchemas["ToolCan"];
|
|
1079
|
+
id: number;
|
|
1080
|
+
initiative_id: number;
|
|
1081
|
+
community_id: string;
|
|
1082
|
+
created_by: string | null;
|
|
1083
|
+
created_at: string;
|
|
1084
|
+
updated_at: string;
|
|
1085
|
+
comments_enabled: boolean;
|
|
1086
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1087
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1088
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
1089
|
+
name: string;
|
|
1090
|
+
description: string | null;
|
|
1091
|
+
current_round: number;
|
|
1092
|
+
is_active: boolean;
|
|
1093
|
+
preview: PluginApiSchemas["QueueTurnPreview"][] | null;
|
|
1094
|
+
};
|
|
1095
|
+
/**
|
|
1096
|
+
* One turn as a list's card draws it: who, in what colour, and whether it is
|
|
1097
|
+
* theirs now.
|
|
1098
|
+
*/
|
|
1099
|
+
QueueTurnPreview: {
|
|
1100
|
+
id: number;
|
|
1101
|
+
label: string;
|
|
1102
|
+
color: string | null;
|
|
1103
|
+
current: boolean;
|
|
1104
|
+
};
|
|
1105
|
+
QueueUpdate: {
|
|
1106
|
+
name?: string | null;
|
|
1107
|
+
description?: string | null;
|
|
1108
|
+
};
|
|
1109
|
+
RSVPStatus: "pending" | "accepted" | "declined" | "tentative";
|
|
1110
|
+
/**
|
|
1111
|
+
* One emoji on one target, and who chose it.
|
|
1112
|
+
*/
|
|
1113
|
+
ReactionGroup: {
|
|
1114
|
+
emoji: string;
|
|
1115
|
+
count: number;
|
|
1116
|
+
reacted: boolean;
|
|
1117
|
+
users: PluginApiSchemas["PluginPerson"][];
|
|
1118
|
+
};
|
|
1119
|
+
ResourceAccessLevel: "owner" | "write" | "read";
|
|
1120
|
+
/**
|
|
1121
|
+
* One `resource_grants` row — exactly the columns that define a grant: a
|
|
1122
|
+
* `level` for a user (`user_id`), an initiative role (`role_id`), all
|
|
1123
|
+
* initiative members (`all_initiative_members`), or an installed plug-in
|
|
1124
|
+
* (`plugin_install_id`). Exactly one grantee is set.
|
|
1125
|
+
*/
|
|
1126
|
+
ResourceGrantSchema: {
|
|
1127
|
+
level: PluginApiSchemas["ResourceAccessLevel"];
|
|
1128
|
+
user_id?: string | null;
|
|
1129
|
+
role_id?: number | null;
|
|
1130
|
+
all_initiative_members?: boolean;
|
|
1131
|
+
plugin_install_id?: number | null;
|
|
1132
|
+
};
|
|
1133
|
+
SearchEntityType: "calendar" | "calendar_event" | "comment" | "counter" | "counter_group" | "dashboard" | "document" | "gallery" | "gallery_image" | "post" | "project" | "queue" | "queue_item" | "tag" | "task" | "wiki" | "wiki_page";
|
|
1134
|
+
/**
|
|
1135
|
+
* A jump-to target for the command palette: enough to render and route.
|
|
1136
|
+
*/
|
|
1137
|
+
SearchSuggestion: {
|
|
1138
|
+
entity_type: PluginApiSchemas["SearchEntityType"];
|
|
1139
|
+
entity_id: number;
|
|
1140
|
+
/**
|
|
1141
|
+
* A person is mentioned as `@[](<reference>)`, by your reference for them,
|
|
1142
|
+
* with no name: read who they are from the members search (`members:read`).
|
|
1143
|
+
* Write a mention the same way. A stored file comes without its path:
|
|
1144
|
+
* `![alt]()`, `[name]()`.
|
|
1145
|
+
*/
|
|
1146
|
+
title: string;
|
|
1147
|
+
initiative_id?: number | null;
|
|
1148
|
+
tool?: PluginApiSchemas["Tool"] | null;
|
|
1149
|
+
tool_id?: number | null;
|
|
1150
|
+
can_write?: boolean;
|
|
1151
|
+
tool_title?: string | null;
|
|
1152
|
+
initiative_name?: string | null;
|
|
1153
|
+
};
|
|
1154
|
+
SortDir: "asc" | "desc";
|
|
1155
|
+
SortField: {
|
|
1156
|
+
field: string;
|
|
1157
|
+
dir?: PluginApiSchemas["SortDir"];
|
|
1158
|
+
};
|
|
1159
|
+
/**
|
|
1160
|
+
* Add and/or remove tags across many entities of one type, atomically.
|
|
1161
|
+
*/
|
|
1162
|
+
TagBulkEditRequest: {
|
|
1163
|
+
target_type: PluginApiSchemas["TagTarget"];
|
|
1164
|
+
target_ids: number[];
|
|
1165
|
+
add_tag_ids?: number[];
|
|
1166
|
+
remove_tag_ids?: number[];
|
|
1167
|
+
};
|
|
1168
|
+
TagBulkEditResponse: {
|
|
1169
|
+
updated_count: number;
|
|
1170
|
+
};
|
|
1171
|
+
TagRead: {
|
|
1172
|
+
name: string;
|
|
1173
|
+
color: string;
|
|
1174
|
+
id: number;
|
|
1175
|
+
community_id: string;
|
|
1176
|
+
created_at: string;
|
|
1177
|
+
updated_at: string;
|
|
1178
|
+
};
|
|
1179
|
+
/**
|
|
1180
|
+
* Lightweight tag representation for embedding in other schemas.
|
|
1181
|
+
*/
|
|
1182
|
+
TagSummary: {
|
|
1183
|
+
id: number;
|
|
1184
|
+
name: string;
|
|
1185
|
+
color: string;
|
|
1186
|
+
};
|
|
1187
|
+
/**
|
|
1188
|
+
* Entity types a bulk tag edit can address.
|
|
1189
|
+
*/
|
|
1190
|
+
TagTarget: "project" | "document" | "queue" | "counter_group" | "calendar" | "dashboard" | "post" | "gallery" | "wiki" | "task" | "queue_item" | "calendar_event" | "gallery_image" | "wiki_page";
|
|
1191
|
+
TaskCreate: {
|
|
1192
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
1193
|
+
title: string;
|
|
1194
|
+
priority?: PluginApiSchemas["TaskPriority"];
|
|
1195
|
+
start_date?: string | null;
|
|
1196
|
+
due_date?: string | null;
|
|
1197
|
+
recurrence?: string | null;
|
|
1198
|
+
recurrence_strategy?: "fixed" | "rolling";
|
|
1199
|
+
description?: string | null;
|
|
1200
|
+
project_id: number;
|
|
1201
|
+
tz?: string | null;
|
|
1202
|
+
assignee_ids?: string[];
|
|
1203
|
+
task_status_id?: number | null;
|
|
1204
|
+
tag_ids?: number[];
|
|
1205
|
+
checklist?: PluginApiSchemas["ChecklistItemInput"][];
|
|
1206
|
+
};
|
|
1207
|
+
/**
|
|
1208
|
+
* Lightweight schema for task list endpoints - excludes heavy nested data
|
|
1209
|
+
*/
|
|
1210
|
+
TaskListRead: {
|
|
1211
|
+
title: string;
|
|
1212
|
+
priority: PluginApiSchemas["TaskPriority"];
|
|
1213
|
+
start_date: string | null;
|
|
1214
|
+
due_date: string | null;
|
|
1215
|
+
recurrence: string | null;
|
|
1216
|
+
recurrence_strategy: "fixed" | "rolling";
|
|
1217
|
+
description_excerpt: string | null;
|
|
1218
|
+
has_description: boolean;
|
|
1219
|
+
id: number;
|
|
1220
|
+
project_id: number;
|
|
1221
|
+
task_status_id: number;
|
|
1222
|
+
task_status: PluginApiSchemas["TaskStatusRead"];
|
|
1223
|
+
created_at: string;
|
|
1224
|
+
updated_at: string;
|
|
1225
|
+
completed_at: string | null;
|
|
1226
|
+
position: number;
|
|
1227
|
+
archived_at: string | null;
|
|
1228
|
+
created_by: string | null;
|
|
1229
|
+
assignees: PluginApiSchemas["PluginPerson"][];
|
|
1230
|
+
recurrence_occurrence_count: number;
|
|
1231
|
+
recurrence_shift: number;
|
|
1232
|
+
recurrence_until: string | null;
|
|
1233
|
+
comment_count: number;
|
|
1234
|
+
blocked_by_open_count: number;
|
|
1235
|
+
community_id: string | null;
|
|
1236
|
+
community_name: string | null;
|
|
1237
|
+
project_name: string | null;
|
|
1238
|
+
initiative_id: number | null;
|
|
1239
|
+
initiative_name: string | null;
|
|
1240
|
+
initiative_color: string | null;
|
|
1241
|
+
checklist_progress: PluginApiSchemas["ChecklistProgress"] | null;
|
|
1242
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1243
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1244
|
+
};
|
|
1245
|
+
TaskListResponse: {
|
|
1246
|
+
total_count: number;
|
|
1247
|
+
page: number;
|
|
1248
|
+
page_size: number;
|
|
1249
|
+
has_next: boolean;
|
|
1250
|
+
has_prev: boolean;
|
|
1251
|
+
items: PluginApiSchemas["TaskListRead"][];
|
|
1252
|
+
sorting: string | null;
|
|
1253
|
+
};
|
|
1254
|
+
TaskMoveRequest: {
|
|
1255
|
+
target_project_id: number;
|
|
1256
|
+
};
|
|
1257
|
+
TaskPriority: "low" | "medium" | "high" | "urgent";
|
|
1258
|
+
TaskProjectSummary: {
|
|
1259
|
+
id: number;
|
|
1260
|
+
name: string;
|
|
1261
|
+
icon: string | null;
|
|
1262
|
+
initiative_id: number | null;
|
|
1263
|
+
initiative: PluginApiSchemas["InitiativeSummary"] | null;
|
|
1264
|
+
archived_at: string | null;
|
|
1265
|
+
is_template: boolean | null;
|
|
1266
|
+
};
|
|
1267
|
+
TaskRead: {
|
|
1268
|
+
title: string;
|
|
1269
|
+
priority: PluginApiSchemas["TaskPriority"];
|
|
1270
|
+
start_date: string | null;
|
|
1271
|
+
due_date: string | null;
|
|
1272
|
+
recurrence: string | null;
|
|
1273
|
+
recurrence_strategy: "fixed" | "rolling";
|
|
1274
|
+
description: string | null;
|
|
1275
|
+
id: number;
|
|
1276
|
+
project_id: number;
|
|
1277
|
+
task_status_id: number;
|
|
1278
|
+
task_status: PluginApiSchemas["TaskStatusRead"];
|
|
1279
|
+
created_at: string;
|
|
1280
|
+
updated_at: string;
|
|
1281
|
+
completed_at: string | null;
|
|
1282
|
+
position: number;
|
|
1283
|
+
archived_at: string | null;
|
|
1284
|
+
created_by: string | null;
|
|
1285
|
+
creator: PluginApiSchemas["PluginPerson"] | null;
|
|
1286
|
+
assignees: PluginApiSchemas["PluginPerson"][];
|
|
1287
|
+
recurrence_occurrence_count: number;
|
|
1288
|
+
recurrence_shift: number;
|
|
1289
|
+
recurrence_until: string | null;
|
|
1290
|
+
series_id: number | null;
|
|
1291
|
+
series_size: number;
|
|
1292
|
+
comment_count: number;
|
|
1293
|
+
blocked_by_open_count: number;
|
|
1294
|
+
project: PluginApiSchemas["TaskProjectSummary"] | null;
|
|
1295
|
+
checklist: PluginApiSchemas["ChecklistItem"][];
|
|
1296
|
+
checklist_progress: PluginApiSchemas["ChecklistProgress"] | null;
|
|
1297
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1298
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1299
|
+
};
|
|
1300
|
+
TaskStatusCategory: "backlog" | "todo" | "in_progress" | "done";
|
|
1301
|
+
TaskStatusRead: {
|
|
1302
|
+
name: string;
|
|
1303
|
+
category: PluginApiSchemas["TaskStatusCategory"];
|
|
1304
|
+
position: number;
|
|
1305
|
+
is_default: boolean;
|
|
1306
|
+
color: string;
|
|
1307
|
+
icon: string;
|
|
1308
|
+
id: number;
|
|
1309
|
+
project_id: number;
|
|
1310
|
+
};
|
|
1311
|
+
TaskUpdate: {
|
|
1312
|
+
properties?: PluginApiSchemas["PropertyValueInput"][] | null;
|
|
1313
|
+
title?: string | null;
|
|
1314
|
+
description?: string | null;
|
|
1315
|
+
task_status_id?: number | null;
|
|
1316
|
+
priority?: PluginApiSchemas["TaskPriority"] | null;
|
|
1317
|
+
assignee_ids?: string[] | null;
|
|
1318
|
+
start_date?: string | null;
|
|
1319
|
+
due_date?: string | null;
|
|
1320
|
+
recurrence?: string | null;
|
|
1321
|
+
tz?: string | null;
|
|
1322
|
+
recurrence_strategy?: "fixed" | "rolling" | null;
|
|
1323
|
+
tag_ids?: number[] | null;
|
|
1324
|
+
checklist?: PluginApiSchemas["ChecklistItemInput"][] | null;
|
|
1325
|
+
scope?: "this" | "following" | "all" | null;
|
|
1326
|
+
};
|
|
1327
|
+
Tool: "project" | "document" | "queue" | "counter_group" | "calendar" | "dashboard" | "post" | "gallery" | "wiki";
|
|
1328
|
+
/**
|
|
1329
|
+
* What the caller may do to one of a tool's rows
|
|
1330
|
+
* (`permissions.client_access`).
|
|
1331
|
+
*/
|
|
1332
|
+
ToolCan: {
|
|
1333
|
+
edit: boolean;
|
|
1334
|
+
contribute: boolean;
|
|
1335
|
+
delete: boolean;
|
|
1336
|
+
share: boolean;
|
|
1337
|
+
export: boolean;
|
|
1338
|
+
unarchive: boolean;
|
|
1339
|
+
};
|
|
1340
|
+
/**
|
|
1341
|
+
* What a duplicate of any tool may be told. Left out, the copy goes beside
|
|
1342
|
+
* its source as "<name> (Copy)"; in another initiative it keeps the name.
|
|
1343
|
+
*/
|
|
1344
|
+
ToolDuplicateRequest: {
|
|
1345
|
+
name?: string | null;
|
|
1346
|
+
target_initiative_id?: number | null;
|
|
1347
|
+
};
|
|
1348
|
+
/**
|
|
1349
|
+
* Paginated envelope for the slim user search/typeahead endpoints.
|
|
1350
|
+
*/
|
|
1351
|
+
UserSummaryListResponse: {
|
|
1352
|
+
total_count: number;
|
|
1353
|
+
page: number;
|
|
1354
|
+
page_size: number;
|
|
1355
|
+
has_next: boolean;
|
|
1356
|
+
has_prev: boolean;
|
|
1357
|
+
items: PluginApiSchemas["PluginPerson"][];
|
|
1358
|
+
};
|
|
1359
|
+
ValidationError: {
|
|
1360
|
+
loc: Array<string | number>;
|
|
1361
|
+
msg: string;
|
|
1362
|
+
type: string;
|
|
1363
|
+
input?: unknown;
|
|
1364
|
+
ctx?: Record<string, unknown>;
|
|
1365
|
+
};
|
|
1366
|
+
/**
|
|
1367
|
+
* Body for `POST /api/v1/c/{community_id}/webhooks/subscriptions`.
|
|
1368
|
+
*/
|
|
1369
|
+
WebhookSubscriptionCreate: {
|
|
1370
|
+
target_url: string;
|
|
1371
|
+
event_types: string[];
|
|
1372
|
+
fields?: string[] | null;
|
|
1373
|
+
initiative_id?: number | null;
|
|
1374
|
+
};
|
|
1375
|
+
/**
|
|
1376
|
+
* One-time create response — includes the freshly-minted HMAC secret so the
|
|
1377
|
+
* receiver can record it. Never re-emitted on subsequent reads.
|
|
1378
|
+
*/
|
|
1379
|
+
WebhookSubscriptionCreated: {
|
|
1380
|
+
id: number;
|
|
1381
|
+
community_ref: string;
|
|
1382
|
+
initiative_id: number | null;
|
|
1383
|
+
created_by_ref: string | null;
|
|
1384
|
+
target_url: string;
|
|
1385
|
+
event_types: string[];
|
|
1386
|
+
fields: string[] | null;
|
|
1387
|
+
active: boolean;
|
|
1388
|
+
dead_letter_count: number;
|
|
1389
|
+
created_at: string;
|
|
1390
|
+
updated_at: string;
|
|
1391
|
+
hmac_secret: string;
|
|
1392
|
+
};
|
|
1393
|
+
WikiCreate: {
|
|
1394
|
+
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
1395
|
+
name: string;
|
|
1396
|
+
description?: string | null;
|
|
1397
|
+
initiative_id: number;
|
|
1398
|
+
tag_ids?: number[] | null;
|
|
1399
|
+
grants?: PluginApiSchemas["ResourceGrantSchema"][];
|
|
1400
|
+
};
|
|
1401
|
+
WikiListResponse: {
|
|
1402
|
+
total_count: number;
|
|
1403
|
+
page: number;
|
|
1404
|
+
page_size: number;
|
|
1405
|
+
has_next: boolean;
|
|
1406
|
+
has_prev: boolean;
|
|
1407
|
+
items: PluginApiSchemas["WikiSummary"][];
|
|
1408
|
+
};
|
|
1409
|
+
/**
|
|
1410
|
+
* One heading written on a page.
|
|
1411
|
+
*/
|
|
1412
|
+
WikiPageHeading: {
|
|
1413
|
+
text: string;
|
|
1414
|
+
level: number;
|
|
1415
|
+
anchor: string;
|
|
1416
|
+
};
|
|
1417
|
+
/**
|
|
1418
|
+
* What a row in a wiki's navigation actually is.
|
|
1419
|
+
*/
|
|
1420
|
+
WikiPageKind: "page" | "document";
|
|
1421
|
+
/**
|
|
1422
|
+
* How a wiki's page tree is sorted.
|
|
1423
|
+
*/
|
|
1424
|
+
WikiPageOrder: "manual" | "title" | "recently_updated";
|
|
1425
|
+
/**
|
|
1426
|
+
* One page, opened.
|
|
1427
|
+
*/
|
|
1428
|
+
WikiPageRead: {
|
|
1429
|
+
id: number;
|
|
1430
|
+
wiki_id: number;
|
|
1431
|
+
community_id: string;
|
|
1432
|
+
kind: PluginApiSchemas["WikiPageKind"];
|
|
1433
|
+
parent_page_id: number | null;
|
|
1434
|
+
position: number;
|
|
1435
|
+
is_draft: boolean;
|
|
1436
|
+
title: string;
|
|
1437
|
+
slug: string;
|
|
1438
|
+
created_by: string | null;
|
|
1439
|
+
created_at: string;
|
|
1440
|
+
updated_at: string;
|
|
1441
|
+
headings: PluginApiSchemas["WikiPageHeading"][];
|
|
1442
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1443
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1444
|
+
document_type: string | null;
|
|
1445
|
+
file_content_type: string | null;
|
|
1446
|
+
original_filename: string | null;
|
|
1447
|
+
smart_link_url: string | null;
|
|
1448
|
+
/**
|
|
1449
|
+
* A Lexical editor state. A person is mentioned by a node whose
|
|
1450
|
+
* `mentionUserId` is your reference for them, with `mentionName` and `text`
|
|
1451
|
+
* empty: read who they are from the members search (`members:read`). Write
|
|
1452
|
+
* a mention the same way. A stored file comes without its path: an image's
|
|
1453
|
+
* `src` and a link's `url` are empty.
|
|
1454
|
+
*/
|
|
1455
|
+
content: Record<string, unknown>;
|
|
1456
|
+
content_version: string | null;
|
|
1457
|
+
comment_count: number;
|
|
1458
|
+
};
|
|
1459
|
+
/**
|
|
1460
|
+
* One page as the navigation draws it — no body.
|
|
1461
|
+
*/
|
|
1462
|
+
WikiPageSummary: {
|
|
1463
|
+
id: number;
|
|
1464
|
+
wiki_id: number;
|
|
1465
|
+
community_id: string;
|
|
1466
|
+
kind: PluginApiSchemas["WikiPageKind"];
|
|
1467
|
+
parent_page_id: number | null;
|
|
1468
|
+
position: number;
|
|
1469
|
+
is_draft: boolean;
|
|
1470
|
+
title: string;
|
|
1471
|
+
slug: string;
|
|
1472
|
+
created_by: string | null;
|
|
1473
|
+
created_at: string;
|
|
1474
|
+
updated_at: string;
|
|
1475
|
+
headings: PluginApiSchemas["WikiPageHeading"][];
|
|
1476
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1477
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1478
|
+
document_type: string | null;
|
|
1479
|
+
file_content_type: string | null;
|
|
1480
|
+
original_filename: string | null;
|
|
1481
|
+
smart_link_url: string | null;
|
|
1482
|
+
};
|
|
1483
|
+
/**
|
|
1484
|
+
* Every page of a wiki, in reading order — each page, then what is filed
|
|
1485
|
+
* under it.
|
|
1486
|
+
*/
|
|
1487
|
+
WikiPageTree: {
|
|
1488
|
+
items: PluginApiSchemas["WikiPageSummary"][];
|
|
1489
|
+
};
|
|
1490
|
+
/**
|
|
1491
|
+
* A wiki on its own page. The same shape as its summary: the pages are
|
|
1492
|
+
* fetched as a tree of their own, because a wiki is navigated rather than
|
|
1493
|
+
* read end to end.
|
|
1494
|
+
*/
|
|
1495
|
+
WikiRead: {
|
|
1496
|
+
archived_at: string | null;
|
|
1497
|
+
can: PluginApiSchemas["ToolCan"];
|
|
1498
|
+
id: number;
|
|
1499
|
+
initiative_id: number;
|
|
1500
|
+
community_id: string;
|
|
1501
|
+
created_by: string | null;
|
|
1502
|
+
created_at: string;
|
|
1503
|
+
updated_at: string;
|
|
1504
|
+
comments_enabled: boolean;
|
|
1505
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1506
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1507
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
1508
|
+
name: string;
|
|
1509
|
+
description: string | null;
|
|
1510
|
+
home_page_id: number | null;
|
|
1511
|
+
page_order: PluginApiSchemas["WikiPageOrder"];
|
|
1512
|
+
contents_depth: number;
|
|
1513
|
+
show_connections: boolean;
|
|
1514
|
+
show_updated_at: boolean;
|
|
1515
|
+
reading_width: PluginApiSchemas["WikiReadingWidth"];
|
|
1516
|
+
accent_color: string | null;
|
|
1517
|
+
template_page_id: number | null;
|
|
1518
|
+
comment_count: number;
|
|
1519
|
+
};
|
|
1520
|
+
/**
|
|
1521
|
+
* How wide a page's body runs.
|
|
1522
|
+
*/
|
|
1523
|
+
WikiReadingWidth: "wide" | "comfortable";
|
|
1524
|
+
WikiSummary: {
|
|
1525
|
+
archived_at: string | null;
|
|
1526
|
+
can: PluginApiSchemas["ToolCan"];
|
|
1527
|
+
id: number;
|
|
1528
|
+
initiative_id: number;
|
|
1529
|
+
community_id: string;
|
|
1530
|
+
created_by: string | null;
|
|
1531
|
+
created_at: string;
|
|
1532
|
+
updated_at: string;
|
|
1533
|
+
comments_enabled: boolean;
|
|
1534
|
+
tags: PluginApiSchemas["TagSummary"][];
|
|
1535
|
+
properties: PluginApiSchemas["PropertySummary"][];
|
|
1536
|
+
grants: PluginApiSchemas["ResourceGrantSchema"][];
|
|
1537
|
+
name: string;
|
|
1538
|
+
description: string | null;
|
|
1539
|
+
home_page_id: number | null;
|
|
1540
|
+
page_order: PluginApiSchemas["WikiPageOrder"];
|
|
1541
|
+
contents_depth: number;
|
|
1542
|
+
show_connections: boolean;
|
|
1543
|
+
show_updated_at: boolean;
|
|
1544
|
+
reading_width: PluginApiSchemas["WikiReadingWidth"];
|
|
1545
|
+
accent_color: string | null;
|
|
1546
|
+
template_page_id: number | null;
|
|
1547
|
+
comment_count: number;
|
|
1548
|
+
};
|
|
1549
|
+
WikiUpdate: {
|
|
1550
|
+
page_order?: PluginApiSchemas["WikiPageOrder"] | null;
|
|
1551
|
+
contents_depth?: number | null;
|
|
1552
|
+
show_connections?: boolean | null;
|
|
1553
|
+
show_updated_at?: boolean | null;
|
|
1554
|
+
reading_width?: PluginApiSchemas["WikiReadingWidth"] | null;
|
|
1555
|
+
accent_color?: string | null;
|
|
1556
|
+
template_page_id?: number | null;
|
|
1557
|
+
name?: string | null;
|
|
1558
|
+
description?: string | null;
|
|
1559
|
+
home_page_id?: number | null;
|
|
1560
|
+
};
|
|
1561
|
+
}
|
|
1562
|
+
/** Each operation's arguments, by where they go, and its answer. */
|
|
1563
|
+
export interface PluginApiOperations {
|
|
1564
|
+
create_subscription: {
|
|
1565
|
+
body: PluginApiSchemas["WebhookSubscriptionCreate"];
|
|
1566
|
+
answer: PluginApiSchemas["WebhookSubscriptionCreated"];
|
|
1567
|
+
};
|
|
1568
|
+
delete_subscription: {
|
|
1569
|
+
path: {
|
|
1570
|
+
subscription_id: number;
|
|
1571
|
+
};
|
|
1572
|
+
answer: void;
|
|
1573
|
+
};
|
|
1574
|
+
list_projects: {
|
|
1575
|
+
query: {
|
|
1576
|
+
/**
|
|
1577
|
+
* true lists what has been archived instead of what is live. Omit for the
|
|
1578
|
+
* live list, which is what every other view shows.
|
|
1579
|
+
*/
|
|
1580
|
+
archived?: boolean | null;
|
|
1581
|
+
/**
|
|
1582
|
+
* Only templates (true) or only projects that are not templates (false).
|
|
1583
|
+
* Omit for both.
|
|
1584
|
+
*/
|
|
1585
|
+
is_template?: boolean | null;
|
|
1586
|
+
/**
|
|
1587
|
+
* Full-text match over the row — its name and its description. Reads the
|
|
1588
|
+
* same index the search page does, so a list's filter box and a search
|
|
1589
|
+
* agree about what matches.
|
|
1590
|
+
*/
|
|
1591
|
+
search?: string | null;
|
|
1592
|
+
/**
|
|
1593
|
+
* Only projects in this initiative. Omit for every initiative the caller
|
|
1594
|
+
* can see.
|
|
1595
|
+
*/
|
|
1596
|
+
initiative_id?: number | null;
|
|
1597
|
+
/**
|
|
1598
|
+
* Return a lightweight projection (id, name, icon, initiative_id, can)
|
|
1599
|
+
* without documents, grants, tags, or the nested initiative. For project
|
|
1600
|
+
* pickers and other list-only callers.
|
|
1601
|
+
*/
|
|
1602
|
+
slim?: boolean;
|
|
1603
|
+
/**
|
|
1604
|
+
* Only projects the caller may edit — the pickers that move work into a
|
|
1605
|
+
* project.
|
|
1606
|
+
*/
|
|
1607
|
+
writable?: boolean;
|
|
1608
|
+
/**
|
|
1609
|
+
* Order by one of: name, initiative, updated_at. Omit to keep the
|
|
1610
|
+
* reader's own manual order.
|
|
1611
|
+
*/
|
|
1612
|
+
sort_by?: string | null;
|
|
1613
|
+
/**
|
|
1614
|
+
* asc (default) or desc.
|
|
1615
|
+
*/
|
|
1616
|
+
sort_dir?: string | null;
|
|
1617
|
+
/**
|
|
1618
|
+
* Only projects carrying any of these tags.
|
|
1619
|
+
*/
|
|
1620
|
+
tag_ids?: number[] | null;
|
|
1621
|
+
/**
|
|
1622
|
+
* JSON-encoded list of property-value filters, e.g. `[{"property_id": 12,
|
|
1623
|
+
* "op": "eq", "value": "live"}]`. Maximum 5 conditions per request.
|
|
1624
|
+
*/
|
|
1625
|
+
property_filters?: string | null;
|
|
1626
|
+
page?: number;
|
|
1627
|
+
page_size?: number;
|
|
1628
|
+
};
|
|
1629
|
+
answer: PluginApiSchemas["ProjectListResponse"];
|
|
1630
|
+
};
|
|
1631
|
+
create_project: {
|
|
1632
|
+
body: PluginApiSchemas["ProjectCreate"];
|
|
1633
|
+
answer: PluginApiSchemas["ProjectRead"];
|
|
1634
|
+
};
|
|
1635
|
+
list_documents: {
|
|
1636
|
+
query: {
|
|
1637
|
+
initiative_id?: number | null;
|
|
1638
|
+
/**
|
|
1639
|
+
* Filter to specific document IDs — for hydrating a known set of
|
|
1640
|
+
* documents without walking a collection. Maximum 100 IDs.
|
|
1641
|
+
*/
|
|
1642
|
+
ids?: number[] | null;
|
|
1643
|
+
search?: string | null;
|
|
1644
|
+
/**
|
|
1645
|
+
* Filter by tag IDs
|
|
1646
|
+
*/
|
|
1647
|
+
tag_ids?: number[] | null;
|
|
1648
|
+
/**
|
|
1649
|
+
* JSON-encoded list of property-value filters, e.g. `[{"property_id": 12,
|
|
1650
|
+
* "op": "eq", "value": "live"}]`. Maximum 5 conditions per request.
|
|
1651
|
+
*/
|
|
1652
|
+
property_filters?: string | null;
|
|
1653
|
+
/**
|
|
1654
|
+
* Filter to documents with no tags
|
|
1655
|
+
*/
|
|
1656
|
+
untagged?: boolean | null;
|
|
1657
|
+
/**
|
|
1658
|
+
* Only templates (true) or only documents that are not templates (false).
|
|
1659
|
+
* Omit for both.
|
|
1660
|
+
*/
|
|
1661
|
+
is_template?: boolean | null;
|
|
1662
|
+
/**
|
|
1663
|
+
* Filter by document type
|
|
1664
|
+
*/
|
|
1665
|
+
document_type?: PluginApiSchemas["DocumentType"] | null;
|
|
1666
|
+
page?: number;
|
|
1667
|
+
page_size?: number;
|
|
1668
|
+
/**
|
|
1669
|
+
* Order by one of: name, initiative, updated_at, created_at.
|
|
1670
|
+
*/
|
|
1671
|
+
sort_by?: string | null;
|
|
1672
|
+
/**
|
|
1673
|
+
* asc (default) or desc.
|
|
1674
|
+
*/
|
|
1675
|
+
sort_dir?: string | null;
|
|
1676
|
+
/**
|
|
1677
|
+
* true lists what has been archived instead of what is live. Omit for the
|
|
1678
|
+
* live list, which is what every other view shows.
|
|
1679
|
+
*/
|
|
1680
|
+
archived?: boolean | null;
|
|
1681
|
+
};
|
|
1682
|
+
answer: PluginApiSchemas["DocumentListResponse"];
|
|
1683
|
+
};
|
|
1684
|
+
create_document: {
|
|
1685
|
+
body: PluginApiSchemas["DocumentCreate"];
|
|
1686
|
+
answer: PluginApiSchemas["DocumentRead"];
|
|
1687
|
+
};
|
|
1688
|
+
list_queues: {
|
|
1689
|
+
query: {
|
|
1690
|
+
initiative_id?: number | null;
|
|
1691
|
+
/**
|
|
1692
|
+
* Full-text match over the row — its name and its description. Reads the
|
|
1693
|
+
* same index the search page does, so a list's filter box and a search
|
|
1694
|
+
* agree about what matches.
|
|
1695
|
+
*/
|
|
1696
|
+
search?: string | null;
|
|
1697
|
+
/**
|
|
1698
|
+
* Order by one of: name, initiative, updated_at. Omit for this tool's own
|
|
1699
|
+
* default order.
|
|
1700
|
+
*/
|
|
1701
|
+
sort_by?: string | null;
|
|
1702
|
+
/**
|
|
1703
|
+
* asc (default) or desc.
|
|
1704
|
+
*/
|
|
1705
|
+
sort_dir?: string | null;
|
|
1706
|
+
/**
|
|
1707
|
+
* Only queues carrying any of these tags.
|
|
1708
|
+
*/
|
|
1709
|
+
tag_ids?: number[] | null;
|
|
1710
|
+
/**
|
|
1711
|
+
* JSON-encoded list of property-value filters, e.g. `[{"property_id": 12,
|
|
1712
|
+
* "op": "eq", "value": "live"}]`. Maximum 5 conditions per request.
|
|
1713
|
+
*/
|
|
1714
|
+
property_filters?: string | null;
|
|
1715
|
+
/**
|
|
1716
|
+
* true lists what has been archived instead of what is live. Omit for the
|
|
1717
|
+
* live list, which is what every other view shows.
|
|
1718
|
+
*/
|
|
1719
|
+
archived?: boolean | null;
|
|
1720
|
+
/**
|
|
1721
|
+
* Only running queues, or only stopped ones.
|
|
1722
|
+
*/
|
|
1723
|
+
is_active?: boolean | null;
|
|
1724
|
+
/**
|
|
1725
|
+
* Also send what each row's card shows of what is inside it, read for the
|
|
1726
|
+
* whole page at once.
|
|
1727
|
+
*/
|
|
1728
|
+
include_preview?: boolean;
|
|
1729
|
+
page?: number;
|
|
1730
|
+
page_size?: number;
|
|
1731
|
+
};
|
|
1732
|
+
answer: PluginApiSchemas["QueueListResponse"];
|
|
1733
|
+
};
|
|
1734
|
+
create_queue: {
|
|
1735
|
+
body: PluginApiSchemas["QueueCreate"];
|
|
1736
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
1737
|
+
};
|
|
1738
|
+
list_counter_groups: {
|
|
1739
|
+
query: {
|
|
1740
|
+
initiative_id?: number | null;
|
|
1741
|
+
/**
|
|
1742
|
+
* Full-text match over the row — its name and its description. Reads the
|
|
1743
|
+
* same index the search page does, so a list's filter box and a search
|
|
1744
|
+
* agree about what matches.
|
|
1745
|
+
*/
|
|
1746
|
+
search?: string | null;
|
|
1747
|
+
/**
|
|
1748
|
+
* Order by one of: name, initiative, updated_at. Omit for this tool's own
|
|
1749
|
+
* default order.
|
|
1750
|
+
*/
|
|
1751
|
+
sort_by?: string | null;
|
|
1752
|
+
/**
|
|
1753
|
+
* asc (default) or desc.
|
|
1754
|
+
*/
|
|
1755
|
+
sort_dir?: string | null;
|
|
1756
|
+
/**
|
|
1757
|
+
* Only counter groups carrying any of these tags.
|
|
1758
|
+
*/
|
|
1759
|
+
tag_ids?: number[] | null;
|
|
1760
|
+
/**
|
|
1761
|
+
* JSON-encoded list of property-value filters, e.g. `[{"property_id": 12,
|
|
1762
|
+
* "op": "eq", "value": "live"}]`. Maximum 5 conditions per request.
|
|
1763
|
+
*/
|
|
1764
|
+
property_filters?: string | null;
|
|
1765
|
+
/**
|
|
1766
|
+
* true lists what has been archived instead of what is live. Omit for the
|
|
1767
|
+
* live list, which is what every other view shows.
|
|
1768
|
+
*/
|
|
1769
|
+
archived?: boolean | null;
|
|
1770
|
+
/**
|
|
1771
|
+
* Also send what each row's card shows of what is inside it, read for the
|
|
1772
|
+
* whole page at once.
|
|
1773
|
+
*/
|
|
1774
|
+
include_preview?: boolean;
|
|
1775
|
+
page?: number;
|
|
1776
|
+
page_size?: number;
|
|
1777
|
+
};
|
|
1778
|
+
answer: PluginApiSchemas["CounterGroupListResponse"];
|
|
1779
|
+
};
|
|
1780
|
+
create_counter_group: {
|
|
1781
|
+
body: PluginApiSchemas["CounterGroupCreate"];
|
|
1782
|
+
answer: PluginApiSchemas["CounterGroupRead"];
|
|
1783
|
+
};
|
|
1784
|
+
list_calendars: {
|
|
1785
|
+
query: {
|
|
1786
|
+
initiative_id?: number | null;
|
|
1787
|
+
scope?: "community" | null;
|
|
1788
|
+
/**
|
|
1789
|
+
* Full-text match over the row — its name and its description. Reads the
|
|
1790
|
+
* same index the search page does, so a list's filter box and a search
|
|
1791
|
+
* agree about what matches.
|
|
1792
|
+
*/
|
|
1793
|
+
search?: string | null;
|
|
1794
|
+
/**
|
|
1795
|
+
* Order by one of: name, initiative, updated_at. Omit for this tool's own
|
|
1796
|
+
* default order.
|
|
1797
|
+
*/
|
|
1798
|
+
sort_by?: string | null;
|
|
1799
|
+
/**
|
|
1800
|
+
* asc (default) or desc.
|
|
1801
|
+
*/
|
|
1802
|
+
sort_dir?: string | null;
|
|
1803
|
+
/**
|
|
1804
|
+
* Only calendars carrying any of these tags.
|
|
1805
|
+
*/
|
|
1806
|
+
tag_ids?: number[] | null;
|
|
1807
|
+
/**
|
|
1808
|
+
* JSON-encoded list of property-value filters, e.g. `[{"property_id": 12,
|
|
1809
|
+
* "op": "eq", "value": "live"}]`. Maximum 5 conditions per request.
|
|
1810
|
+
*/
|
|
1811
|
+
property_filters?: string | null;
|
|
1812
|
+
/**
|
|
1813
|
+
* true lists what has been archived instead of what is live. Omit for the
|
|
1814
|
+
* live list, which is what every other view shows.
|
|
1815
|
+
*/
|
|
1816
|
+
archived?: boolean | null;
|
|
1817
|
+
page?: number;
|
|
1818
|
+
page_size?: number;
|
|
1819
|
+
};
|
|
1820
|
+
answer: PluginApiSchemas["CalendarListResponse"];
|
|
1821
|
+
};
|
|
1822
|
+
create_calendar: {
|
|
1823
|
+
body: PluginApiSchemas["CalendarCreate"];
|
|
1824
|
+
answer: PluginApiSchemas["CalendarRead"];
|
|
1825
|
+
};
|
|
1826
|
+
list_posts: {
|
|
1827
|
+
query: {
|
|
1828
|
+
initiative_id?: number | null;
|
|
1829
|
+
/**
|
|
1830
|
+
* Full-text match over the notice — its headline and its body. Reads the
|
|
1831
|
+
* same index the search page does, so the board's filter and a search
|
|
1832
|
+
* agree about what matches.
|
|
1833
|
+
*/
|
|
1834
|
+
search?: string | null;
|
|
1835
|
+
/**
|
|
1836
|
+
* Order by one of: name, initiative, updated_at. Omit for the board order
|
|
1837
|
+
* — live pins first, then newest first.
|
|
1838
|
+
*/
|
|
1839
|
+
sort_by?: string | null;
|
|
1840
|
+
/**
|
|
1841
|
+
* asc (default) or desc.
|
|
1842
|
+
*/
|
|
1843
|
+
sort_dir?: string | null;
|
|
1844
|
+
/**
|
|
1845
|
+
* Only posts carrying any of these tags.
|
|
1846
|
+
*/
|
|
1847
|
+
tag_ids?: number[] | null;
|
|
1848
|
+
/**
|
|
1849
|
+
* JSON-encoded list of property-value filters, e.g. `[{"property_id": 12,
|
|
1850
|
+
* "op": "eq", "value": "live"}]`. Maximum 5 conditions per request.
|
|
1851
|
+
*/
|
|
1852
|
+
property_filters?: string | null;
|
|
1853
|
+
/**
|
|
1854
|
+
* true lists what has been archived instead of what is live. Omit for the
|
|
1855
|
+
* live list, which is what every other view shows.
|
|
1856
|
+
*/
|
|
1857
|
+
archived?: boolean | null;
|
|
1858
|
+
/**
|
|
1859
|
+
* Only notices this reader has not read yet.
|
|
1860
|
+
*/
|
|
1861
|
+
unread?: boolean;
|
|
1862
|
+
/**
|
|
1863
|
+
* Start the board at this instant and go back — inclusive, and measured
|
|
1864
|
+
* by the same date the feed is ordered by. This is how a timeline jumps
|
|
1865
|
+
* to a month without paging through everything since. An anchored board
|
|
1866
|
+
* is strictly chronological: the pinned band steps aside, because a pin
|
|
1867
|
+
* says what matters now rather than what mattered then.
|
|
1868
|
+
*/
|
|
1869
|
+
until?: string | null;
|
|
1870
|
+
page?: number;
|
|
1871
|
+
/**
|
|
1872
|
+
* Posts per page. Small by default: a board renders each post's body, so
|
|
1873
|
+
* a page is that many editors to mount.
|
|
1874
|
+
*/
|
|
1875
|
+
page_size?: number;
|
|
1876
|
+
};
|
|
1877
|
+
answer: PluginApiSchemas["PostListResponse"];
|
|
1878
|
+
};
|
|
1879
|
+
create_post: {
|
|
1880
|
+
body: PluginApiSchemas["PostCreate"];
|
|
1881
|
+
answer: PluginApiSchemas["PostRead"];
|
|
1882
|
+
};
|
|
1883
|
+
list_galleries: {
|
|
1884
|
+
query: {
|
|
1885
|
+
initiative_id?: number | null;
|
|
1886
|
+
/**
|
|
1887
|
+
* Full-text match over the gallery's name and description, through the
|
|
1888
|
+
* same index the search page reads.
|
|
1889
|
+
*/
|
|
1890
|
+
search?: string | null;
|
|
1891
|
+
/**
|
|
1892
|
+
* Order by one of: name, initiative, updated_at. Omit for newest first.
|
|
1893
|
+
*/
|
|
1894
|
+
sort_by?: string | null;
|
|
1895
|
+
/**
|
|
1896
|
+
* asc (default) or desc.
|
|
1897
|
+
*/
|
|
1898
|
+
sort_dir?: string | null;
|
|
1899
|
+
/**
|
|
1900
|
+
* Only galleries carrying any of these tags.
|
|
1901
|
+
*/
|
|
1902
|
+
tag_ids?: number[] | null;
|
|
1903
|
+
/**
|
|
1904
|
+
* JSON-encoded list of property-value filters, e.g. `[{"property_id": 12,
|
|
1905
|
+
* "op": "eq", "value": "live"}]`. Maximum 5 conditions per request.
|
|
1906
|
+
*/
|
|
1907
|
+
property_filters?: string | null;
|
|
1908
|
+
/**
|
|
1909
|
+
* true lists what has been archived instead of what is live. Omit for the
|
|
1910
|
+
* live list, which is what every other view shows.
|
|
1911
|
+
*/
|
|
1912
|
+
archived?: boolean | null;
|
|
1913
|
+
page?: number;
|
|
1914
|
+
page_size?: number;
|
|
1915
|
+
};
|
|
1916
|
+
answer: PluginApiSchemas["GalleryListResponse"];
|
|
1917
|
+
};
|
|
1918
|
+
create_gallery: {
|
|
1919
|
+
body: PluginApiSchemas["GalleryCreate"];
|
|
1920
|
+
answer: PluginApiSchemas["GalleryRead"];
|
|
1921
|
+
};
|
|
1922
|
+
list_wikis: {
|
|
1923
|
+
query: {
|
|
1924
|
+
initiative_id?: number | null;
|
|
1925
|
+
/**
|
|
1926
|
+
* Full-text match over the wiki's name and description, through the same
|
|
1927
|
+
* index the search page reads.
|
|
1928
|
+
*/
|
|
1929
|
+
search?: string | null;
|
|
1930
|
+
/**
|
|
1931
|
+
* Order by one of: name, initiative, updated_at. Omit for newest first.
|
|
1932
|
+
*/
|
|
1933
|
+
sort_by?: string | null;
|
|
1934
|
+
/**
|
|
1935
|
+
* asc (default) or desc.
|
|
1936
|
+
*/
|
|
1937
|
+
sort_dir?: string | null;
|
|
1938
|
+
/**
|
|
1939
|
+
* Only wikis carrying any of these tags.
|
|
1940
|
+
*/
|
|
1941
|
+
tag_ids?: number[] | null;
|
|
1942
|
+
/**
|
|
1943
|
+
* JSON-encoded list of property-value filters, e.g. `[{"property_id": 12,
|
|
1944
|
+
* "op": "eq", "value": "live"}]`. Maximum 5 conditions per request.
|
|
1945
|
+
*/
|
|
1946
|
+
property_filters?: string | null;
|
|
1947
|
+
/**
|
|
1948
|
+
* true lists what has been archived instead of what is live. Omit for the
|
|
1949
|
+
* live list, which is what every other view shows.
|
|
1950
|
+
*/
|
|
1951
|
+
archived?: boolean | null;
|
|
1952
|
+
page?: number;
|
|
1953
|
+
page_size?: number;
|
|
1954
|
+
};
|
|
1955
|
+
answer: PluginApiSchemas["WikiListResponse"];
|
|
1956
|
+
};
|
|
1957
|
+
create_wiki: {
|
|
1958
|
+
body: PluginApiSchemas["WikiCreate"];
|
|
1959
|
+
answer: PluginApiSchemas["WikiRead"];
|
|
1960
|
+
};
|
|
1961
|
+
read_project: {
|
|
1962
|
+
path: {
|
|
1963
|
+
project_id: number;
|
|
1964
|
+
};
|
|
1965
|
+
query: {
|
|
1966
|
+
/**
|
|
1967
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
1968
|
+
* back after a deleted event — the row still exists until retention
|
|
1969
|
+
* purges it, and access is checked exactly as for a live one.
|
|
1970
|
+
*/
|
|
1971
|
+
include_deleted?: boolean;
|
|
1972
|
+
};
|
|
1973
|
+
answer: PluginApiSchemas["ProjectRead"];
|
|
1974
|
+
};
|
|
1975
|
+
update_project: {
|
|
1976
|
+
path: {
|
|
1977
|
+
project_id: number;
|
|
1978
|
+
};
|
|
1979
|
+
body: PluginApiSchemas["ProjectUpdate"];
|
|
1980
|
+
answer: PluginApiSchemas["ProjectRead"];
|
|
1981
|
+
};
|
|
1982
|
+
list_task_statuses: {
|
|
1983
|
+
path: {
|
|
1984
|
+
project_id: number;
|
|
1985
|
+
};
|
|
1986
|
+
answer: PluginApiSchemas["TaskStatusRead"][];
|
|
1987
|
+
};
|
|
1988
|
+
list_initiative_task_statuses: {
|
|
1989
|
+
path: {
|
|
1990
|
+
initiative_id: number;
|
|
1991
|
+
};
|
|
1992
|
+
answer: PluginApiSchemas["InitiativeTaskStatusRead"][];
|
|
1993
|
+
};
|
|
1994
|
+
list_tasks: {
|
|
1995
|
+
query: {
|
|
1996
|
+
/**
|
|
1997
|
+
* JSON list of filter conditions, AND-ed together. Each object: {"field":
|
|
1998
|
+
* "<column>", "op": "<operator>", "value": <val>}. Any Task column is
|
|
1999
|
+
* valid plus virtual fields: status_category, assignee_ids, tag_ids,
|
|
2000
|
+
* initiative_ids. An object with a "conditions" key is an AND/OR group:
|
|
2001
|
+
* {"logic": "or", "conditions": [...]}.
|
|
2002
|
+
*/
|
|
2003
|
+
conditions?: Array<PluginApiSchemas["FilterCondition"] | PluginApiSchemas["FilterGroup"]>;
|
|
2004
|
+
/**
|
|
2005
|
+
* Include archived tasks
|
|
2006
|
+
*/
|
|
2007
|
+
include_archived?: boolean;
|
|
2008
|
+
page?: number;
|
|
2009
|
+
page_size?: number;
|
|
2010
|
+
/**
|
|
2011
|
+
* JSON list of sort fields: [{"field": "due_date", "dir": "desc"}]
|
|
2012
|
+
*/
|
|
2013
|
+
sorting?: PluginApiSchemas["SortField"][];
|
|
2014
|
+
/**
|
|
2015
|
+
* IANA timezone name (e.g. America/Los_Angeles) for date_group
|
|
2016
|
+
* calculation
|
|
2017
|
+
*/
|
|
2018
|
+
tz?: string | null;
|
|
2019
|
+
};
|
|
2020
|
+
answer: PluginApiSchemas["TaskListResponse"];
|
|
2021
|
+
};
|
|
2022
|
+
create_task: {
|
|
2023
|
+
body: PluginApiSchemas["TaskCreate"];
|
|
2024
|
+
answer: PluginApiSchemas["TaskRead"];
|
|
2025
|
+
};
|
|
2026
|
+
read_task: {
|
|
2027
|
+
path: {
|
|
2028
|
+
task_id: number;
|
|
2029
|
+
};
|
|
2030
|
+
query: {
|
|
2031
|
+
/**
|
|
2032
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2033
|
+
* back after a deleted event — the row still exists until retention
|
|
2034
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2035
|
+
*/
|
|
2036
|
+
include_deleted?: boolean;
|
|
2037
|
+
};
|
|
2038
|
+
answer: PluginApiSchemas["TaskRead"];
|
|
2039
|
+
};
|
|
2040
|
+
update_task: {
|
|
2041
|
+
path: {
|
|
2042
|
+
task_id: number;
|
|
2043
|
+
};
|
|
2044
|
+
body: PluginApiSchemas["TaskUpdate"];
|
|
2045
|
+
answer: PluginApiSchemas["TaskRead"];
|
|
2046
|
+
};
|
|
2047
|
+
move_task: {
|
|
2048
|
+
path: {
|
|
2049
|
+
task_id: number;
|
|
2050
|
+
};
|
|
2051
|
+
body: PluginApiSchemas["TaskMoveRequest"];
|
|
2052
|
+
answer: PluginApiSchemas["TaskRead"];
|
|
2053
|
+
};
|
|
2054
|
+
duplicate_task: {
|
|
2055
|
+
path: {
|
|
2056
|
+
task_id: number;
|
|
2057
|
+
};
|
|
2058
|
+
answer: PluginApiSchemas["TaskRead"];
|
|
2059
|
+
};
|
|
2060
|
+
skip_task: {
|
|
2061
|
+
path: {
|
|
2062
|
+
task_id: number;
|
|
2063
|
+
};
|
|
2064
|
+
answer: PluginApiSchemas["TaskRead"];
|
|
2065
|
+
};
|
|
2066
|
+
toggle_checklist_item: {
|
|
2067
|
+
path: {
|
|
2068
|
+
task_id: number;
|
|
2069
|
+
item_id: string;
|
|
2070
|
+
};
|
|
2071
|
+
body: PluginApiSchemas["ChecklistItemToggle"];
|
|
2072
|
+
answer: PluginApiSchemas["ChecklistItem"][];
|
|
2073
|
+
};
|
|
2074
|
+
list_comments: {
|
|
2075
|
+
query: {
|
|
2076
|
+
task_id?: number | null;
|
|
2077
|
+
document_id?: number | null;
|
|
2078
|
+
project_id?: number | null;
|
|
2079
|
+
queue_id?: number | null;
|
|
2080
|
+
counter_group_id?: number | null;
|
|
2081
|
+
calendar_id?: number | null;
|
|
2082
|
+
dashboard_id?: number | null;
|
|
2083
|
+
post_id?: number | null;
|
|
2084
|
+
gallery_id?: number | null;
|
|
2085
|
+
wiki_id?: number | null;
|
|
2086
|
+
wiki_page_id?: number | null;
|
|
2087
|
+
limit?: number;
|
|
2088
|
+
cursor?: string | null;
|
|
2089
|
+
};
|
|
2090
|
+
answer: PluginApiSchemas["CommentListResponse"];
|
|
2091
|
+
};
|
|
2092
|
+
create_comment: {
|
|
2093
|
+
body: PluginApiSchemas["CommentCreate"];
|
|
2094
|
+
answer: PluginApiSchemas["CommentRead"];
|
|
2095
|
+
};
|
|
2096
|
+
read_comment: {
|
|
2097
|
+
path: {
|
|
2098
|
+
comment_id: number;
|
|
2099
|
+
};
|
|
2100
|
+
query: {
|
|
2101
|
+
/**
|
|
2102
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2103
|
+
* back after a deleted event — the row still exists until retention
|
|
2104
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2105
|
+
*/
|
|
2106
|
+
include_deleted?: boolean;
|
|
2107
|
+
};
|
|
2108
|
+
answer: PluginApiSchemas["CommentRead"];
|
|
2109
|
+
};
|
|
2110
|
+
list_initiatives: {
|
|
2111
|
+
query: {
|
|
2112
|
+
scope?: PluginApiSchemas["InitiativeListScope"];
|
|
2113
|
+
};
|
|
2114
|
+
answer: PluginApiSchemas["InitiativeRead"][];
|
|
2115
|
+
};
|
|
2116
|
+
get_initiative: {
|
|
2117
|
+
path: {
|
|
2118
|
+
initiative_id: number;
|
|
2119
|
+
};
|
|
2120
|
+
query: {
|
|
2121
|
+
/**
|
|
2122
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2123
|
+
* back after a deleted event — the row still exists until retention
|
|
2124
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2125
|
+
*/
|
|
2126
|
+
include_deleted?: boolean;
|
|
2127
|
+
};
|
|
2128
|
+
answer: PluginApiSchemas["InitiativeRead"];
|
|
2129
|
+
};
|
|
2130
|
+
read_document: {
|
|
2131
|
+
path: {
|
|
2132
|
+
document_id: number;
|
|
2133
|
+
};
|
|
2134
|
+
query: {
|
|
2135
|
+
/**
|
|
2136
|
+
* Include the document body. Pass false for the metadata alone — a
|
|
2137
|
+
* document's body is the largest thing this API returns, and a caller
|
|
2138
|
+
* reacting to a change (a name, a tag, a property) does not need it.
|
|
2139
|
+
* Everything else is unchanged.
|
|
2140
|
+
*/
|
|
2141
|
+
include_content?: boolean;
|
|
2142
|
+
/**
|
|
2143
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2144
|
+
* back after a deleted event — the row still exists until retention
|
|
2145
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2146
|
+
*/
|
|
2147
|
+
include_deleted?: boolean;
|
|
2148
|
+
};
|
|
2149
|
+
answer: PluginApiSchemas["DocumentRead"];
|
|
2150
|
+
};
|
|
2151
|
+
update_document: {
|
|
2152
|
+
path: {
|
|
2153
|
+
document_id: number;
|
|
2154
|
+
};
|
|
2155
|
+
body: PluginApiSchemas["DocumentUpdate"];
|
|
2156
|
+
answer: PluginApiSchemas["DocumentRead"];
|
|
2157
|
+
};
|
|
2158
|
+
read_queue: {
|
|
2159
|
+
path: {
|
|
2160
|
+
queue_id: number;
|
|
2161
|
+
};
|
|
2162
|
+
query: {
|
|
2163
|
+
/**
|
|
2164
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2165
|
+
* back after a deleted event — the row still exists until retention
|
|
2166
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2167
|
+
*/
|
|
2168
|
+
include_deleted?: boolean;
|
|
2169
|
+
};
|
|
2170
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2171
|
+
};
|
|
2172
|
+
update_queue: {
|
|
2173
|
+
path: {
|
|
2174
|
+
queue_id: number;
|
|
2175
|
+
};
|
|
2176
|
+
body: PluginApiSchemas["QueueUpdate"];
|
|
2177
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2178
|
+
};
|
|
2179
|
+
start_queue: {
|
|
2180
|
+
path: {
|
|
2181
|
+
queue_id: number;
|
|
2182
|
+
};
|
|
2183
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2184
|
+
};
|
|
2185
|
+
stop_queue: {
|
|
2186
|
+
path: {
|
|
2187
|
+
queue_id: number;
|
|
2188
|
+
};
|
|
2189
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2190
|
+
};
|
|
2191
|
+
advance_turn: {
|
|
2192
|
+
path: {
|
|
2193
|
+
queue_id: number;
|
|
2194
|
+
};
|
|
2195
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2196
|
+
};
|
|
2197
|
+
previous_turn: {
|
|
2198
|
+
path: {
|
|
2199
|
+
queue_id: number;
|
|
2200
|
+
};
|
|
2201
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2202
|
+
};
|
|
2203
|
+
set_active_item: {
|
|
2204
|
+
path: {
|
|
2205
|
+
queue_id: number;
|
|
2206
|
+
item_id: number;
|
|
2207
|
+
};
|
|
2208
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2209
|
+
};
|
|
2210
|
+
reset_queue: {
|
|
2211
|
+
path: {
|
|
2212
|
+
queue_id: number;
|
|
2213
|
+
};
|
|
2214
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2215
|
+
};
|
|
2216
|
+
hold_current_turn: {
|
|
2217
|
+
path: {
|
|
2218
|
+
queue_id: number;
|
|
2219
|
+
};
|
|
2220
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2221
|
+
};
|
|
2222
|
+
release_held_item: {
|
|
2223
|
+
path: {
|
|
2224
|
+
queue_id: number;
|
|
2225
|
+
item_id: number;
|
|
2226
|
+
};
|
|
2227
|
+
body: PluginApiSchemas["QueueReleaseRequest"];
|
|
2228
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2229
|
+
};
|
|
2230
|
+
read_queue_item: {
|
|
2231
|
+
path: {
|
|
2232
|
+
item_id: number;
|
|
2233
|
+
};
|
|
2234
|
+
query: {
|
|
2235
|
+
/**
|
|
2236
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2237
|
+
* back after a deleted event — the row still exists until retention
|
|
2238
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2239
|
+
*/
|
|
2240
|
+
include_deleted?: boolean;
|
|
2241
|
+
};
|
|
2242
|
+
answer: PluginApiSchemas["QueueItemRead"];
|
|
2243
|
+
};
|
|
2244
|
+
update_queue_item: {
|
|
2245
|
+
path: {
|
|
2246
|
+
item_id: number;
|
|
2247
|
+
};
|
|
2248
|
+
body: PluginApiSchemas["QueueItemUpdate"];
|
|
2249
|
+
answer: PluginApiSchemas["QueueItemRead"];
|
|
2250
|
+
};
|
|
2251
|
+
duplicate_queue_item: {
|
|
2252
|
+
path: {
|
|
2253
|
+
item_id: number;
|
|
2254
|
+
};
|
|
2255
|
+
answer: PluginApiSchemas["QueueItemRead"];
|
|
2256
|
+
};
|
|
2257
|
+
read_counter_group: {
|
|
2258
|
+
path: {
|
|
2259
|
+
group_id: number;
|
|
2260
|
+
};
|
|
2261
|
+
query: {
|
|
2262
|
+
/**
|
|
2263
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2264
|
+
* back after a deleted event — the row still exists until retention
|
|
2265
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2266
|
+
*/
|
|
2267
|
+
include_deleted?: boolean;
|
|
2268
|
+
};
|
|
2269
|
+
answer: PluginApiSchemas["CounterGroupRead"];
|
|
2270
|
+
};
|
|
2271
|
+
update_counter_group: {
|
|
2272
|
+
path: {
|
|
2273
|
+
group_id: number;
|
|
2274
|
+
};
|
|
2275
|
+
body: PluginApiSchemas["CounterGroupUpdate"];
|
|
2276
|
+
answer: PluginApiSchemas["CounterGroupRead"];
|
|
2277
|
+
};
|
|
2278
|
+
read_counter: {
|
|
2279
|
+
path: {
|
|
2280
|
+
counter_id: number;
|
|
2281
|
+
};
|
|
2282
|
+
query: {
|
|
2283
|
+
/**
|
|
2284
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2285
|
+
* back after a deleted event — the row still exists until retention
|
|
2286
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2287
|
+
*/
|
|
2288
|
+
include_deleted?: boolean;
|
|
2289
|
+
};
|
|
2290
|
+
answer: PluginApiSchemas["CounterRead"];
|
|
2291
|
+
};
|
|
2292
|
+
duplicate_counter: {
|
|
2293
|
+
path: {
|
|
2294
|
+
counter_id: number;
|
|
2295
|
+
};
|
|
2296
|
+
answer: PluginApiSchemas["CounterRead"];
|
|
2297
|
+
};
|
|
2298
|
+
set_counter_count: {
|
|
2299
|
+
path: {
|
|
2300
|
+
counter_id: number;
|
|
2301
|
+
};
|
|
2302
|
+
body: PluginApiSchemas["CounterSetCountRequest"];
|
|
2303
|
+
answer: PluginApiSchemas["CounterRead"];
|
|
2304
|
+
};
|
|
2305
|
+
step_counter: {
|
|
2306
|
+
path: {
|
|
2307
|
+
counter_id: number;
|
|
2308
|
+
};
|
|
2309
|
+
body: PluginApiSchemas["CounterStepRequest"];
|
|
2310
|
+
answer: PluginApiSchemas["CounterRead"];
|
|
2311
|
+
};
|
|
2312
|
+
reset_counter: {
|
|
2313
|
+
path: {
|
|
2314
|
+
counter_id: number;
|
|
2315
|
+
};
|
|
2316
|
+
answer: PluginApiSchemas["CounterRead"];
|
|
2317
|
+
};
|
|
2318
|
+
read_calendar: {
|
|
2319
|
+
path: {
|
|
2320
|
+
calendar_id: number;
|
|
2321
|
+
};
|
|
2322
|
+
query: {
|
|
2323
|
+
/**
|
|
2324
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2325
|
+
* back after a deleted event — the row still exists until retention
|
|
2326
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2327
|
+
*/
|
|
2328
|
+
include_deleted?: boolean;
|
|
2329
|
+
};
|
|
2330
|
+
answer: PluginApiSchemas["CalendarRead"];
|
|
2331
|
+
};
|
|
2332
|
+
update_calendar: {
|
|
2333
|
+
path: {
|
|
2334
|
+
calendar_id: number;
|
|
2335
|
+
};
|
|
2336
|
+
body: PluginApiSchemas["CalendarUpdate"];
|
|
2337
|
+
answer: PluginApiSchemas["CalendarRead"];
|
|
2338
|
+
};
|
|
2339
|
+
read_post: {
|
|
2340
|
+
path: {
|
|
2341
|
+
post_id: number;
|
|
2342
|
+
};
|
|
2343
|
+
query: {
|
|
2344
|
+
/**
|
|
2345
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2346
|
+
* back after a deleted event — the row still exists until retention
|
|
2347
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2348
|
+
*/
|
|
2349
|
+
include_deleted?: boolean;
|
|
2350
|
+
};
|
|
2351
|
+
answer: PluginApiSchemas["PostRead"];
|
|
2352
|
+
};
|
|
2353
|
+
update_post: {
|
|
2354
|
+
path: {
|
|
2355
|
+
post_id: number;
|
|
2356
|
+
};
|
|
2357
|
+
body: PluginApiSchemas["PostUpdate"];
|
|
2358
|
+
answer: PluginApiSchemas["PostRead"];
|
|
2359
|
+
};
|
|
2360
|
+
set_post_pin: {
|
|
2361
|
+
path: {
|
|
2362
|
+
post_id: number;
|
|
2363
|
+
};
|
|
2364
|
+
body: PluginApiSchemas["PostPinUpdate"];
|
|
2365
|
+
answer: PluginApiSchemas["PostRead"];
|
|
2366
|
+
};
|
|
2367
|
+
read_gallery: {
|
|
2368
|
+
path: {
|
|
2369
|
+
gallery_id: number;
|
|
2370
|
+
};
|
|
2371
|
+
query: {
|
|
2372
|
+
/**
|
|
2373
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2374
|
+
* back after a deleted event — the row still exists until retention
|
|
2375
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2376
|
+
*/
|
|
2377
|
+
include_deleted?: boolean;
|
|
2378
|
+
};
|
|
2379
|
+
answer: PluginApiSchemas["GalleryRead"];
|
|
2380
|
+
};
|
|
2381
|
+
update_gallery: {
|
|
2382
|
+
path: {
|
|
2383
|
+
gallery_id: number;
|
|
2384
|
+
};
|
|
2385
|
+
body: PluginApiSchemas["GalleryUpdate"];
|
|
2386
|
+
answer: PluginApiSchemas["GalleryRead"];
|
|
2387
|
+
};
|
|
2388
|
+
list_gallery_images: {
|
|
2389
|
+
path: {
|
|
2390
|
+
gallery_id: number;
|
|
2391
|
+
};
|
|
2392
|
+
query: {
|
|
2393
|
+
/**
|
|
2394
|
+
* Only pictures carrying ANY of these tags.
|
|
2395
|
+
*/
|
|
2396
|
+
tag_ids?: number[] | null;
|
|
2397
|
+
/**
|
|
2398
|
+
* Match on title, caption or filename.
|
|
2399
|
+
*/
|
|
2400
|
+
search?: string | null;
|
|
2401
|
+
/**
|
|
2402
|
+
* Read the gallery in the order it was filled rather than newest first.
|
|
2403
|
+
*/
|
|
2404
|
+
oldest_first?: boolean;
|
|
2405
|
+
/**
|
|
2406
|
+
* Start the list at this instant, inclusive, measured by upload time —
|
|
2407
|
+
* which is what the list is ordered by. This is how a timeline jumps to a
|
|
2408
|
+
* month without paging through everything since. It follows the list's
|
|
2409
|
+
* own direction: newest first it is a ceiling and the page walks back
|
|
2410
|
+
* from it, oldest first a floor and the page walks forward, so pair it
|
|
2411
|
+
* with the matching end of the timeline bucket.
|
|
2412
|
+
*/
|
|
2413
|
+
until?: string | null;
|
|
2414
|
+
page?: number;
|
|
2415
|
+
page_size?: number;
|
|
2416
|
+
};
|
|
2417
|
+
answer: PluginApiSchemas["GalleryImageListResponse"];
|
|
2418
|
+
};
|
|
2419
|
+
read_wiki: {
|
|
2420
|
+
path: {
|
|
2421
|
+
wiki_id: number;
|
|
2422
|
+
};
|
|
2423
|
+
answer: PluginApiSchemas["WikiRead"];
|
|
2424
|
+
};
|
|
2425
|
+
update_wiki: {
|
|
2426
|
+
path: {
|
|
2427
|
+
wiki_id: number;
|
|
2428
|
+
};
|
|
2429
|
+
body: PluginApiSchemas["WikiUpdate"];
|
|
2430
|
+
answer: PluginApiSchemas["WikiRead"];
|
|
2431
|
+
};
|
|
2432
|
+
list_wiki_pages: {
|
|
2433
|
+
path: {
|
|
2434
|
+
wiki_id: number;
|
|
2435
|
+
};
|
|
2436
|
+
answer: PluginApiSchemas["WikiPageTree"];
|
|
2437
|
+
};
|
|
2438
|
+
read_wiki_page: {
|
|
2439
|
+
path: {
|
|
2440
|
+
page_id: number;
|
|
2441
|
+
};
|
|
2442
|
+
answer: PluginApiSchemas["WikiPageRead"];
|
|
2443
|
+
};
|
|
2444
|
+
duplicate_wiki_page: {
|
|
2445
|
+
path: {
|
|
2446
|
+
page_id: number;
|
|
2447
|
+
};
|
|
2448
|
+
answer: PluginApiSchemas["WikiPageRead"];
|
|
2449
|
+
};
|
|
2450
|
+
read_calendar_event: {
|
|
2451
|
+
path: {
|
|
2452
|
+
event_id: number;
|
|
2453
|
+
};
|
|
2454
|
+
query: {
|
|
2455
|
+
/**
|
|
2456
|
+
* One occurrence of a repeating event, whose answers to show.
|
|
2457
|
+
*/
|
|
2458
|
+
occurrence?: string | null;
|
|
2459
|
+
/**
|
|
2460
|
+
* Also return the resource if it is in the trash. For reading a resource
|
|
2461
|
+
* back after a deleted event — the row still exists until retention
|
|
2462
|
+
* purges it, and access is checked exactly as for a live one.
|
|
2463
|
+
*/
|
|
2464
|
+
include_deleted?: boolean;
|
|
2465
|
+
};
|
|
2466
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2467
|
+
};
|
|
2468
|
+
update_calendar_event: {
|
|
2469
|
+
path: {
|
|
2470
|
+
event_id: number;
|
|
2471
|
+
};
|
|
2472
|
+
body: PluginApiSchemas["CalendarEventUpdate"];
|
|
2473
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2474
|
+
};
|
|
2475
|
+
create_calendar_event: {
|
|
2476
|
+
body: PluginApiSchemas["CalendarEventCreate"];
|
|
2477
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2478
|
+
};
|
|
2479
|
+
duplicate_calendar_event: {
|
|
2480
|
+
path: {
|
|
2481
|
+
event_id: number;
|
|
2482
|
+
};
|
|
2483
|
+
query: {
|
|
2484
|
+
/**
|
|
2485
|
+
* One date of a repeating event, copied as an event of its own.
|
|
2486
|
+
*/
|
|
2487
|
+
occurrence?: string | null;
|
|
2488
|
+
};
|
|
2489
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2490
|
+
};
|
|
2491
|
+
open_occurrence: {
|
|
2492
|
+
path: {
|
|
2493
|
+
event_id: number;
|
|
2494
|
+
};
|
|
2495
|
+
body: PluginApiSchemas["OccurrenceRequest"];
|
|
2496
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2497
|
+
};
|
|
2498
|
+
detach_occurrence: {
|
|
2499
|
+
path: {
|
|
2500
|
+
event_id: number;
|
|
2501
|
+
};
|
|
2502
|
+
body: PluginApiSchemas["OccurrenceRequest"];
|
|
2503
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2504
|
+
};
|
|
2505
|
+
restore_occurrence: {
|
|
2506
|
+
path: {
|
|
2507
|
+
event_id: number;
|
|
2508
|
+
};
|
|
2509
|
+
body: PluginApiSchemas["OccurrenceRequest"];
|
|
2510
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2511
|
+
};
|
|
2512
|
+
add_occurrence: {
|
|
2513
|
+
path: {
|
|
2514
|
+
event_id: number;
|
|
2515
|
+
};
|
|
2516
|
+
body: PluginApiSchemas["OccurrenceRequest"];
|
|
2517
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2518
|
+
};
|
|
2519
|
+
set_attendees: {
|
|
2520
|
+
path: {
|
|
2521
|
+
event_id: number;
|
|
2522
|
+
};
|
|
2523
|
+
query: {
|
|
2524
|
+
scope?: "this" | "following" | "all" | null;
|
|
2525
|
+
occurrence?: string | null;
|
|
2526
|
+
};
|
|
2527
|
+
body: string[];
|
|
2528
|
+
answer: PluginApiSchemas["CalendarEventRead"];
|
|
2529
|
+
};
|
|
2530
|
+
list_tags: {
|
|
2531
|
+
answer: PluginApiSchemas["TagRead"][];
|
|
2532
|
+
};
|
|
2533
|
+
bulk_edit_tags: {
|
|
2534
|
+
body: PluginApiSchemas["TagBulkEditRequest"];
|
|
2535
|
+
answer: PluginApiSchemas["TagBulkEditResponse"];
|
|
2536
|
+
};
|
|
2537
|
+
set_project_grants: {
|
|
2538
|
+
path: {
|
|
2539
|
+
project_id: number;
|
|
2540
|
+
};
|
|
2541
|
+
body: PluginApiSchemas["ResourceGrantSchema"][];
|
|
2542
|
+
answer: PluginApiSchemas["ProjectRead"];
|
|
2543
|
+
};
|
|
2544
|
+
set_document_grants: {
|
|
2545
|
+
path: {
|
|
2546
|
+
document_id: number;
|
|
2547
|
+
};
|
|
2548
|
+
body: PluginApiSchemas["ResourceGrantSchema"][];
|
|
2549
|
+
answer: PluginApiSchemas["DocumentRead"];
|
|
2550
|
+
};
|
|
2551
|
+
set_queue_grants: {
|
|
2552
|
+
path: {
|
|
2553
|
+
queue_id: number;
|
|
2554
|
+
};
|
|
2555
|
+
body: PluginApiSchemas["ResourceGrantSchema"][];
|
|
2556
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2557
|
+
};
|
|
2558
|
+
set_counter_group_grants: {
|
|
2559
|
+
path: {
|
|
2560
|
+
group_id: number;
|
|
2561
|
+
};
|
|
2562
|
+
body: PluginApiSchemas["ResourceGrantSchema"][];
|
|
2563
|
+
answer: PluginApiSchemas["CounterGroupRead"];
|
|
2564
|
+
};
|
|
2565
|
+
set_calendar_grants: {
|
|
2566
|
+
path: {
|
|
2567
|
+
calendar_id: number;
|
|
2568
|
+
};
|
|
2569
|
+
body: PluginApiSchemas["ResourceGrantSchema"][];
|
|
2570
|
+
answer: PluginApiSchemas["CalendarRead"];
|
|
2571
|
+
};
|
|
2572
|
+
set_post_grants: {
|
|
2573
|
+
path: {
|
|
2574
|
+
post_id: number;
|
|
2575
|
+
};
|
|
2576
|
+
body: PluginApiSchemas["ResourceGrantSchema"][];
|
|
2577
|
+
answer: PluginApiSchemas["PostRead"];
|
|
2578
|
+
};
|
|
2579
|
+
set_gallery_grants: {
|
|
2580
|
+
path: {
|
|
2581
|
+
gallery_id: number;
|
|
2582
|
+
};
|
|
2583
|
+
body: PluginApiSchemas["ResourceGrantSchema"][];
|
|
2584
|
+
answer: PluginApiSchemas["GalleryRead"];
|
|
2585
|
+
};
|
|
2586
|
+
set_wiki_grants: {
|
|
2587
|
+
path: {
|
|
2588
|
+
wiki_id: number;
|
|
2589
|
+
};
|
|
2590
|
+
body: PluginApiSchemas["ResourceGrantSchema"][];
|
|
2591
|
+
answer: PluginApiSchemas["WikiRead"];
|
|
2592
|
+
};
|
|
2593
|
+
duplicate_project: {
|
|
2594
|
+
path: {
|
|
2595
|
+
project_id: number;
|
|
2596
|
+
};
|
|
2597
|
+
body: PluginApiSchemas["ToolDuplicateRequest"] | null;
|
|
2598
|
+
answer: PluginApiSchemas["ProjectRead"];
|
|
2599
|
+
};
|
|
2600
|
+
duplicate_document: {
|
|
2601
|
+
path: {
|
|
2602
|
+
document_id: number;
|
|
2603
|
+
};
|
|
2604
|
+
body: PluginApiSchemas["ToolDuplicateRequest"] | null;
|
|
2605
|
+
answer: PluginApiSchemas["DocumentRead"];
|
|
2606
|
+
};
|
|
2607
|
+
duplicate_queue: {
|
|
2608
|
+
path: {
|
|
2609
|
+
queue_id: number;
|
|
2610
|
+
};
|
|
2611
|
+
body: PluginApiSchemas["ToolDuplicateRequest"] | null;
|
|
2612
|
+
answer: PluginApiSchemas["QueueRead"];
|
|
2613
|
+
};
|
|
2614
|
+
duplicate_counter_group: {
|
|
2615
|
+
path: {
|
|
2616
|
+
group_id: number;
|
|
2617
|
+
};
|
|
2618
|
+
body: PluginApiSchemas["ToolDuplicateRequest"] | null;
|
|
2619
|
+
answer: PluginApiSchemas["CounterGroupRead"];
|
|
2620
|
+
};
|
|
2621
|
+
duplicate_calendar: {
|
|
2622
|
+
path: {
|
|
2623
|
+
calendar_id: number;
|
|
2624
|
+
};
|
|
2625
|
+
body: PluginApiSchemas["ToolDuplicateRequest"] | null;
|
|
2626
|
+
answer: PluginApiSchemas["CalendarRead"];
|
|
2627
|
+
};
|
|
2628
|
+
duplicate_post: {
|
|
2629
|
+
path: {
|
|
2630
|
+
post_id: number;
|
|
2631
|
+
};
|
|
2632
|
+
body: PluginApiSchemas["ToolDuplicateRequest"] | null;
|
|
2633
|
+
answer: PluginApiSchemas["PostRead"];
|
|
2634
|
+
};
|
|
2635
|
+
duplicate_gallery: {
|
|
2636
|
+
path: {
|
|
2637
|
+
gallery_id: number;
|
|
2638
|
+
};
|
|
2639
|
+
body: PluginApiSchemas["ToolDuplicateRequest"] | null;
|
|
2640
|
+
answer: PluginApiSchemas["GalleryRead"];
|
|
2641
|
+
};
|
|
2642
|
+
duplicate_wiki: {
|
|
2643
|
+
path: {
|
|
2644
|
+
wiki_id: number;
|
|
2645
|
+
};
|
|
2646
|
+
body: PluginApiSchemas["ToolDuplicateRequest"] | null;
|
|
2647
|
+
answer: PluginApiSchemas["WikiRead"];
|
|
2648
|
+
};
|
|
2649
|
+
suggest_community: {
|
|
2650
|
+
query: {
|
|
2651
|
+
/**
|
|
2652
|
+
* What to jump to.
|
|
2653
|
+
*/
|
|
2654
|
+
search: string;
|
|
2655
|
+
/**
|
|
2656
|
+
* Restrict to these entity types. Omit for the default scope (calendar,
|
|
2657
|
+
* calendar_event, counter, counter_group, dashboard, document, gallery,
|
|
2658
|
+
* gallery_image, post, project, queue, queue_item, tag, task, wiki,
|
|
2659
|
+
* wiki_page); naming a type reaches it explicitly.
|
|
2660
|
+
*/
|
|
2661
|
+
types?: PluginApiSchemas["SearchEntityType"][] | null;
|
|
2662
|
+
/**
|
|
2663
|
+
* Restrict to one initiative.
|
|
2664
|
+
*/
|
|
2665
|
+
initiative_id?: number | null;
|
|
2666
|
+
/**
|
|
2667
|
+
* Omit for both. `true` returns only templates (a template picker),
|
|
2668
|
+
* `false` only real content (a picker choosing where content goes).
|
|
2669
|
+
*/
|
|
2670
|
+
is_template?: boolean | null;
|
|
2671
|
+
/**
|
|
2672
|
+
* The thing being written in, as a reference (`document:12`). It is left
|
|
2673
|
+
* out of the answer: a thing does not point at itself. A reference that
|
|
2674
|
+
* names nothing narrows nothing.
|
|
2675
|
+
*/
|
|
2676
|
+
subject?: string | null;
|
|
2677
|
+
limit?: number;
|
|
2678
|
+
};
|
|
2679
|
+
answer: PluginApiSchemas["SearchSuggestion"][];
|
|
2680
|
+
};
|
|
2681
|
+
list_property_definitions: {
|
|
2682
|
+
query: {
|
|
2683
|
+
initiative_id?: number | null;
|
|
2684
|
+
};
|
|
2685
|
+
answer: PluginApiSchemas["PropertyDefinitionRead"][];
|
|
2686
|
+
};
|
|
2687
|
+
set_properties: {
|
|
2688
|
+
path: {
|
|
2689
|
+
target: PluginApiSchemas["PropertyTarget"];
|
|
2690
|
+
entity_id: number;
|
|
2691
|
+
};
|
|
2692
|
+
body: PluginApiSchemas["PropertyValuesSetRequest"];
|
|
2693
|
+
answer: PluginApiSchemas["PropertySummary"][];
|
|
2694
|
+
};
|
|
2695
|
+
archive_entity: {
|
|
2696
|
+
path: {
|
|
2697
|
+
entity_type: PluginApiSchemas["ArchivableType"];
|
|
2698
|
+
entity_id: number;
|
|
2699
|
+
};
|
|
2700
|
+
answer: PluginApiSchemas["ArchiveResponse"];
|
|
2701
|
+
};
|
|
2702
|
+
search_users: {
|
|
2703
|
+
query: {
|
|
2704
|
+
/**
|
|
2705
|
+
* Matches the handle's name part. Type the whole handle (`foobar#1234`)
|
|
2706
|
+
* to pin one member; a partial number after `#` is a prefix of the four
|
|
2707
|
+
* digits as rendered. Display names members set here are matched too.
|
|
2708
|
+
*/
|
|
2709
|
+
search?: string | null;
|
|
2710
|
+
user_id?: string[] | null;
|
|
2711
|
+
/**
|
|
2712
|
+
* Only members of this initiative. The caller must reach it: be in it,
|
|
2713
|
+
* administer the community, or (a plug-in) be placed there.
|
|
2714
|
+
*/
|
|
2715
|
+
initiative_id?: number | null;
|
|
2716
|
+
/**
|
|
2717
|
+
* With `resource_id`: only the people who can open that row, which is who
|
|
2718
|
+
* may be named on content inside it (assignees, attendees, person
|
|
2719
|
+
* properties). The caller must be able to open it too. For a person's
|
|
2720
|
+
* picker; an installed plug-in's search does not take it.
|
|
2721
|
+
*/
|
|
2722
|
+
tool?: PluginApiSchemas["Tool"] | null;
|
|
2723
|
+
resource_id?: number | null;
|
|
2724
|
+
/**
|
|
2725
|
+
* List the caller first, wherever the rest of the order would put them.
|
|
2726
|
+
* For the community's members page, where your own row is where you set
|
|
2727
|
+
* your name.
|
|
2728
|
+
*/
|
|
2729
|
+
self_first?: boolean;
|
|
2730
|
+
page?: number;
|
|
2731
|
+
page_size?: number;
|
|
2732
|
+
};
|
|
2733
|
+
answer: PluginApiSchemas["UserSummaryListResponse"];
|
|
2734
|
+
};
|
|
2735
|
+
read_member_avatar: {
|
|
2736
|
+
path: {
|
|
2737
|
+
person: string;
|
|
2738
|
+
digest: string;
|
|
2739
|
+
};
|
|
2740
|
+
answer: Blob;
|
|
2741
|
+
};
|
|
2742
|
+
}
|
|
2743
|
+
/**
|
|
2744
|
+
* Each operation a plug-in may call: its method, its path after `/api/v1/c/0`, the
|
|
2745
|
+
* scope it needs, and the query parameters it takes as JSON.
|
|
2746
|
+
*/
|
|
2747
|
+
export declare const pluginApiOperations: {
|
|
2748
|
+
readonly create_subscription: {
|
|
2749
|
+
readonly method: "POST";
|
|
2750
|
+
readonly path: "/webhooks/subscriptions";
|
|
2751
|
+
readonly scope: {
|
|
2752
|
+
readonly per: "event_type";
|
|
2753
|
+
readonly any_of: readonly ["calendars:read", "comments:read", "counter_groups:read", "dashboards:read", "documents:read", "galleries:read", "initiatives:read", "posts:read", "projects:read", "queues:read", "tags:read", "wikis:read"];
|
|
2754
|
+
};
|
|
2755
|
+
};
|
|
2756
|
+
readonly delete_subscription: {
|
|
2757
|
+
readonly method: "DELETE";
|
|
2758
|
+
readonly path: "/webhooks/subscriptions/{subscription_id}";
|
|
2759
|
+
readonly scope: {
|
|
2760
|
+
readonly per: "event_type";
|
|
2761
|
+
readonly any_of: readonly ["calendars:read", "comments:read", "counter_groups:read", "dashboards:read", "documents:read", "galleries:read", "initiatives:read", "posts:read", "projects:read", "queues:read", "tags:read", "wikis:read"];
|
|
2762
|
+
};
|
|
2763
|
+
};
|
|
2764
|
+
readonly list_projects: {
|
|
2765
|
+
readonly method: "GET";
|
|
2766
|
+
readonly path: "/projects/";
|
|
2767
|
+
readonly scope: "projects:read";
|
|
2768
|
+
};
|
|
2769
|
+
readonly create_project: {
|
|
2770
|
+
readonly method: "POST";
|
|
2771
|
+
readonly path: "/projects/";
|
|
2772
|
+
readonly scope: "projects:write";
|
|
2773
|
+
};
|
|
2774
|
+
readonly list_documents: {
|
|
2775
|
+
readonly method: "GET";
|
|
2776
|
+
readonly path: "/documents/";
|
|
2777
|
+
readonly scope: "documents:read";
|
|
2778
|
+
};
|
|
2779
|
+
readonly create_document: {
|
|
2780
|
+
readonly method: "POST";
|
|
2781
|
+
readonly path: "/documents/";
|
|
2782
|
+
readonly scope: "documents:write";
|
|
2783
|
+
};
|
|
2784
|
+
readonly list_queues: {
|
|
2785
|
+
readonly method: "GET";
|
|
2786
|
+
readonly path: "/queues/";
|
|
2787
|
+
readonly scope: "queues:read";
|
|
2788
|
+
};
|
|
2789
|
+
readonly create_queue: {
|
|
2790
|
+
readonly method: "POST";
|
|
2791
|
+
readonly path: "/queues/";
|
|
2792
|
+
readonly scope: "queues:write";
|
|
2793
|
+
};
|
|
2794
|
+
readonly list_counter_groups: {
|
|
2795
|
+
readonly method: "GET";
|
|
2796
|
+
readonly path: "/counter-groups/";
|
|
2797
|
+
readonly scope: "counter_groups:read";
|
|
2798
|
+
};
|
|
2799
|
+
readonly create_counter_group: {
|
|
2800
|
+
readonly method: "POST";
|
|
2801
|
+
readonly path: "/counter-groups/";
|
|
2802
|
+
readonly scope: "counter_groups:write";
|
|
2803
|
+
};
|
|
2804
|
+
readonly list_calendars: {
|
|
2805
|
+
readonly method: "GET";
|
|
2806
|
+
readonly path: "/calendars/";
|
|
2807
|
+
readonly scope: "calendars:read";
|
|
2808
|
+
};
|
|
2809
|
+
readonly create_calendar: {
|
|
2810
|
+
readonly method: "POST";
|
|
2811
|
+
readonly path: "/calendars/";
|
|
2812
|
+
readonly scope: "calendars:write";
|
|
2813
|
+
};
|
|
2814
|
+
readonly list_posts: {
|
|
2815
|
+
readonly method: "GET";
|
|
2816
|
+
readonly path: "/posts/";
|
|
2817
|
+
readonly scope: "posts:read";
|
|
2818
|
+
};
|
|
2819
|
+
readonly create_post: {
|
|
2820
|
+
readonly method: "POST";
|
|
2821
|
+
readonly path: "/posts/";
|
|
2822
|
+
readonly scope: "posts:write";
|
|
2823
|
+
};
|
|
2824
|
+
readonly list_galleries: {
|
|
2825
|
+
readonly method: "GET";
|
|
2826
|
+
readonly path: "/galleries/";
|
|
2827
|
+
readonly scope: "galleries:read";
|
|
2828
|
+
};
|
|
2829
|
+
readonly create_gallery: {
|
|
2830
|
+
readonly method: "POST";
|
|
2831
|
+
readonly path: "/galleries/";
|
|
2832
|
+
readonly scope: "galleries:write";
|
|
2833
|
+
};
|
|
2834
|
+
readonly list_wikis: {
|
|
2835
|
+
readonly method: "GET";
|
|
2836
|
+
readonly path: "/wikis/";
|
|
2837
|
+
readonly scope: "wikis:read";
|
|
2838
|
+
};
|
|
2839
|
+
readonly create_wiki: {
|
|
2840
|
+
readonly method: "POST";
|
|
2841
|
+
readonly path: "/wikis/";
|
|
2842
|
+
readonly scope: "wikis:write";
|
|
2843
|
+
};
|
|
2844
|
+
readonly read_project: {
|
|
2845
|
+
readonly method: "GET";
|
|
2846
|
+
readonly path: "/projects/{project_id}";
|
|
2847
|
+
readonly scope: "projects:read";
|
|
2848
|
+
};
|
|
2849
|
+
readonly update_project: {
|
|
2850
|
+
readonly method: "PATCH";
|
|
2851
|
+
readonly path: "/projects/{project_id}";
|
|
2852
|
+
readonly scope: "projects:write";
|
|
2853
|
+
};
|
|
2854
|
+
readonly list_task_statuses: {
|
|
2855
|
+
readonly method: "GET";
|
|
2856
|
+
readonly path: "/projects/{project_id}/task-statuses/";
|
|
2857
|
+
readonly scope: "projects:read";
|
|
2858
|
+
};
|
|
2859
|
+
readonly list_initiative_task_statuses: {
|
|
2860
|
+
readonly method: "GET";
|
|
2861
|
+
readonly path: "/initiatives/{initiative_id}/task-statuses/";
|
|
2862
|
+
readonly scope: "projects:read";
|
|
2863
|
+
};
|
|
2864
|
+
readonly list_tasks: {
|
|
2865
|
+
readonly method: "GET";
|
|
2866
|
+
readonly path: "/tasks/";
|
|
2867
|
+
readonly scope: "projects:read";
|
|
2868
|
+
readonly json: readonly ["conditions", "sorting"];
|
|
2869
|
+
};
|
|
2870
|
+
readonly create_task: {
|
|
2871
|
+
readonly method: "POST";
|
|
2872
|
+
readonly path: "/tasks/";
|
|
2873
|
+
readonly scope: "projects:write";
|
|
2874
|
+
};
|
|
2875
|
+
readonly read_task: {
|
|
2876
|
+
readonly method: "GET";
|
|
2877
|
+
readonly path: "/tasks/{task_id}";
|
|
2878
|
+
readonly scope: "projects:read";
|
|
2879
|
+
};
|
|
2880
|
+
readonly update_task: {
|
|
2881
|
+
readonly method: "PATCH";
|
|
2882
|
+
readonly path: "/tasks/{task_id}";
|
|
2883
|
+
readonly scope: "projects:write";
|
|
2884
|
+
};
|
|
2885
|
+
readonly move_task: {
|
|
2886
|
+
readonly method: "POST";
|
|
2887
|
+
readonly path: "/tasks/{task_id}/move";
|
|
2888
|
+
readonly scope: "projects:write";
|
|
2889
|
+
};
|
|
2890
|
+
readonly duplicate_task: {
|
|
2891
|
+
readonly method: "POST";
|
|
2892
|
+
readonly path: "/tasks/{task_id}/duplicate";
|
|
2893
|
+
readonly scope: "projects:write";
|
|
2894
|
+
};
|
|
2895
|
+
readonly skip_task: {
|
|
2896
|
+
readonly method: "POST";
|
|
2897
|
+
readonly path: "/tasks/{task_id}/skip";
|
|
2898
|
+
readonly scope: "projects:write";
|
|
2899
|
+
};
|
|
2900
|
+
readonly toggle_checklist_item: {
|
|
2901
|
+
readonly method: "PATCH";
|
|
2902
|
+
readonly path: "/tasks/{task_id}/checklist/{item_id}";
|
|
2903
|
+
readonly scope: "projects:write";
|
|
2904
|
+
};
|
|
2905
|
+
readonly list_comments: {
|
|
2906
|
+
readonly method: "GET";
|
|
2907
|
+
readonly path: "/comments/";
|
|
2908
|
+
readonly scope: "comments:read";
|
|
2909
|
+
};
|
|
2910
|
+
readonly create_comment: {
|
|
2911
|
+
readonly method: "POST";
|
|
2912
|
+
readonly path: "/comments/";
|
|
2913
|
+
readonly scope: "comments:write";
|
|
2914
|
+
};
|
|
2915
|
+
readonly read_comment: {
|
|
2916
|
+
readonly method: "GET";
|
|
2917
|
+
readonly path: "/comments/{comment_id}";
|
|
2918
|
+
readonly scope: "comments:read";
|
|
2919
|
+
};
|
|
2920
|
+
readonly list_initiatives: {
|
|
2921
|
+
readonly method: "GET";
|
|
2922
|
+
readonly path: "/initiatives/";
|
|
2923
|
+
readonly scope: "initiatives:read";
|
|
2924
|
+
};
|
|
2925
|
+
readonly get_initiative: {
|
|
2926
|
+
readonly method: "GET";
|
|
2927
|
+
readonly path: "/initiatives/{initiative_id}";
|
|
2928
|
+
readonly scope: "initiatives:read";
|
|
2929
|
+
};
|
|
2930
|
+
readonly read_document: {
|
|
2931
|
+
readonly method: "GET";
|
|
2932
|
+
readonly path: "/documents/{document_id}";
|
|
2933
|
+
readonly scope: "documents:read";
|
|
2934
|
+
};
|
|
2935
|
+
readonly update_document: {
|
|
2936
|
+
readonly method: "PATCH";
|
|
2937
|
+
readonly path: "/documents/{document_id}";
|
|
2938
|
+
readonly scope: "documents:write";
|
|
2939
|
+
};
|
|
2940
|
+
readonly read_queue: {
|
|
2941
|
+
readonly method: "GET";
|
|
2942
|
+
readonly path: "/queues/{queue_id}";
|
|
2943
|
+
readonly scope: "queues:read";
|
|
2944
|
+
};
|
|
2945
|
+
readonly update_queue: {
|
|
2946
|
+
readonly method: "PATCH";
|
|
2947
|
+
readonly path: "/queues/{queue_id}";
|
|
2948
|
+
readonly scope: "queues:write";
|
|
2949
|
+
};
|
|
2950
|
+
readonly start_queue: {
|
|
2951
|
+
readonly method: "POST";
|
|
2952
|
+
readonly path: "/queues/{queue_id}/start";
|
|
2953
|
+
readonly scope: "queues:write";
|
|
2954
|
+
};
|
|
2955
|
+
readonly stop_queue: {
|
|
2956
|
+
readonly method: "POST";
|
|
2957
|
+
readonly path: "/queues/{queue_id}/stop";
|
|
2958
|
+
readonly scope: "queues:write";
|
|
2959
|
+
};
|
|
2960
|
+
readonly advance_turn: {
|
|
2961
|
+
readonly method: "POST";
|
|
2962
|
+
readonly path: "/queues/{queue_id}/next";
|
|
2963
|
+
readonly scope: "queues:write";
|
|
2964
|
+
};
|
|
2965
|
+
readonly previous_turn: {
|
|
2966
|
+
readonly method: "POST";
|
|
2967
|
+
readonly path: "/queues/{queue_id}/previous";
|
|
2968
|
+
readonly scope: "queues:write";
|
|
2969
|
+
};
|
|
2970
|
+
readonly set_active_item: {
|
|
2971
|
+
readonly method: "POST";
|
|
2972
|
+
readonly path: "/queues/{queue_id}/set-active/{item_id}";
|
|
2973
|
+
readonly scope: "queues:write";
|
|
2974
|
+
};
|
|
2975
|
+
readonly reset_queue: {
|
|
2976
|
+
readonly method: "POST";
|
|
2977
|
+
readonly path: "/queues/{queue_id}/reset";
|
|
2978
|
+
readonly scope: "queues:write";
|
|
2979
|
+
};
|
|
2980
|
+
readonly hold_current_turn: {
|
|
2981
|
+
readonly method: "POST";
|
|
2982
|
+
readonly path: "/queues/{queue_id}/hold";
|
|
2983
|
+
readonly scope: "queues:write";
|
|
2984
|
+
};
|
|
2985
|
+
readonly release_held_item: {
|
|
2986
|
+
readonly method: "POST";
|
|
2987
|
+
readonly path: "/queues/{queue_id}/release/{item_id}";
|
|
2988
|
+
readonly scope: "queues:write";
|
|
2989
|
+
};
|
|
2990
|
+
readonly read_queue_item: {
|
|
2991
|
+
readonly method: "GET";
|
|
2992
|
+
readonly path: "/queue-items/{item_id}";
|
|
2993
|
+
readonly scope: "queues:read";
|
|
2994
|
+
};
|
|
2995
|
+
readonly update_queue_item: {
|
|
2996
|
+
readonly method: "PATCH";
|
|
2997
|
+
readonly path: "/queue-items/{item_id}";
|
|
2998
|
+
readonly scope: "queues:write";
|
|
2999
|
+
};
|
|
3000
|
+
readonly duplicate_queue_item: {
|
|
3001
|
+
readonly method: "POST";
|
|
3002
|
+
readonly path: "/queue-items/{item_id}/duplicate";
|
|
3003
|
+
readonly scope: "queues:write";
|
|
3004
|
+
};
|
|
3005
|
+
readonly read_counter_group: {
|
|
3006
|
+
readonly method: "GET";
|
|
3007
|
+
readonly path: "/counter-groups/{group_id}";
|
|
3008
|
+
readonly scope: "counter_groups:read";
|
|
3009
|
+
};
|
|
3010
|
+
readonly update_counter_group: {
|
|
3011
|
+
readonly method: "PATCH";
|
|
3012
|
+
readonly path: "/counter-groups/{group_id}";
|
|
3013
|
+
readonly scope: "counter_groups:write";
|
|
3014
|
+
};
|
|
3015
|
+
readonly read_counter: {
|
|
3016
|
+
readonly method: "GET";
|
|
3017
|
+
readonly path: "/counters/{counter_id}";
|
|
3018
|
+
readonly scope: "counter_groups:read";
|
|
3019
|
+
};
|
|
3020
|
+
readonly duplicate_counter: {
|
|
3021
|
+
readonly method: "POST";
|
|
3022
|
+
readonly path: "/counters/{counter_id}/duplicate";
|
|
3023
|
+
readonly scope: "counter_groups:write";
|
|
3024
|
+
};
|
|
3025
|
+
readonly set_counter_count: {
|
|
3026
|
+
readonly method: "POST";
|
|
3027
|
+
readonly path: "/counters/{counter_id}/set";
|
|
3028
|
+
readonly scope: "counter_groups:write";
|
|
3029
|
+
};
|
|
3030
|
+
readonly step_counter: {
|
|
3031
|
+
readonly method: "POST";
|
|
3032
|
+
readonly path: "/counters/{counter_id}/step";
|
|
3033
|
+
readonly scope: "counter_groups:write";
|
|
3034
|
+
};
|
|
3035
|
+
readonly reset_counter: {
|
|
3036
|
+
readonly method: "POST";
|
|
3037
|
+
readonly path: "/counters/{counter_id}/reset";
|
|
3038
|
+
readonly scope: "counter_groups:write";
|
|
3039
|
+
};
|
|
3040
|
+
readonly read_calendar: {
|
|
3041
|
+
readonly method: "GET";
|
|
3042
|
+
readonly path: "/calendars/{calendar_id}";
|
|
3043
|
+
readonly scope: "calendars:read";
|
|
3044
|
+
};
|
|
3045
|
+
readonly update_calendar: {
|
|
3046
|
+
readonly method: "PATCH";
|
|
3047
|
+
readonly path: "/calendars/{calendar_id}";
|
|
3048
|
+
readonly scope: "calendars:write";
|
|
3049
|
+
};
|
|
3050
|
+
readonly read_post: {
|
|
3051
|
+
readonly method: "GET";
|
|
3052
|
+
readonly path: "/posts/{post_id}";
|
|
3053
|
+
readonly scope: "posts:read";
|
|
3054
|
+
};
|
|
3055
|
+
readonly update_post: {
|
|
3056
|
+
readonly method: "PATCH";
|
|
3057
|
+
readonly path: "/posts/{post_id}";
|
|
3058
|
+
readonly scope: "posts:write";
|
|
3059
|
+
};
|
|
3060
|
+
readonly set_post_pin: {
|
|
3061
|
+
readonly method: "PUT";
|
|
3062
|
+
readonly path: "/posts/{post_id}/pin";
|
|
3063
|
+
readonly scope: "posts:write";
|
|
3064
|
+
};
|
|
3065
|
+
readonly read_gallery: {
|
|
3066
|
+
readonly method: "GET";
|
|
3067
|
+
readonly path: "/galleries/{gallery_id}";
|
|
3068
|
+
readonly scope: "galleries:read";
|
|
3069
|
+
};
|
|
3070
|
+
readonly update_gallery: {
|
|
3071
|
+
readonly method: "PATCH";
|
|
3072
|
+
readonly path: "/galleries/{gallery_id}";
|
|
3073
|
+
readonly scope: "galleries:write";
|
|
3074
|
+
};
|
|
3075
|
+
readonly list_gallery_images: {
|
|
3076
|
+
readonly method: "GET";
|
|
3077
|
+
readonly path: "/galleries/{gallery_id}/images";
|
|
3078
|
+
readonly scope: "galleries:read";
|
|
3079
|
+
};
|
|
3080
|
+
readonly read_wiki: {
|
|
3081
|
+
readonly method: "GET";
|
|
3082
|
+
readonly path: "/wikis/{wiki_id}";
|
|
3083
|
+
readonly scope: "wikis:read";
|
|
3084
|
+
};
|
|
3085
|
+
readonly update_wiki: {
|
|
3086
|
+
readonly method: "PATCH";
|
|
3087
|
+
readonly path: "/wikis/{wiki_id}";
|
|
3088
|
+
readonly scope: "wikis:write";
|
|
3089
|
+
};
|
|
3090
|
+
readonly list_wiki_pages: {
|
|
3091
|
+
readonly method: "GET";
|
|
3092
|
+
readonly path: "/wikis/{wiki_id}/pages";
|
|
3093
|
+
readonly scope: "wikis:read";
|
|
3094
|
+
};
|
|
3095
|
+
readonly read_wiki_page: {
|
|
3096
|
+
readonly method: "GET";
|
|
3097
|
+
readonly path: "/wiki-pages/{page_id}";
|
|
3098
|
+
readonly scope: "wikis:read";
|
|
3099
|
+
};
|
|
3100
|
+
readonly duplicate_wiki_page: {
|
|
3101
|
+
readonly method: "POST";
|
|
3102
|
+
readonly path: "/wiki-pages/{page_id}/duplicate";
|
|
3103
|
+
readonly scope: "wikis:write";
|
|
3104
|
+
};
|
|
3105
|
+
readonly read_calendar_event: {
|
|
3106
|
+
readonly method: "GET";
|
|
3107
|
+
readonly path: "/calendar-events/{event_id}";
|
|
3108
|
+
readonly scope: "calendars:read";
|
|
3109
|
+
};
|
|
3110
|
+
readonly update_calendar_event: {
|
|
3111
|
+
readonly method: "PATCH";
|
|
3112
|
+
readonly path: "/calendar-events/{event_id}";
|
|
3113
|
+
readonly scope: "calendars:write";
|
|
3114
|
+
};
|
|
3115
|
+
readonly create_calendar_event: {
|
|
3116
|
+
readonly method: "POST";
|
|
3117
|
+
readonly path: "/calendar-events/";
|
|
3118
|
+
readonly scope: "calendars:write";
|
|
3119
|
+
};
|
|
3120
|
+
readonly duplicate_calendar_event: {
|
|
3121
|
+
readonly method: "POST";
|
|
3122
|
+
readonly path: "/calendar-events/{event_id}/duplicate";
|
|
3123
|
+
readonly scope: "calendars:write";
|
|
3124
|
+
};
|
|
3125
|
+
readonly open_occurrence: {
|
|
3126
|
+
readonly method: "POST";
|
|
3127
|
+
readonly path: "/calendar-events/{event_id}/occurrences";
|
|
3128
|
+
readonly scope: "calendars:write";
|
|
3129
|
+
};
|
|
3130
|
+
readonly detach_occurrence: {
|
|
3131
|
+
readonly method: "POST";
|
|
3132
|
+
readonly path: "/calendar-events/{event_id}/occurrences/detach";
|
|
3133
|
+
readonly scope: "calendars:write";
|
|
3134
|
+
};
|
|
3135
|
+
readonly restore_occurrence: {
|
|
3136
|
+
readonly method: "POST";
|
|
3137
|
+
readonly path: "/calendar-events/{event_id}/occurrences/restore";
|
|
3138
|
+
readonly scope: "calendars:write";
|
|
3139
|
+
};
|
|
3140
|
+
readonly add_occurrence: {
|
|
3141
|
+
readonly method: "POST";
|
|
3142
|
+
readonly path: "/calendar-events/{event_id}/occurrences/add";
|
|
3143
|
+
readonly scope: "calendars:write";
|
|
3144
|
+
};
|
|
3145
|
+
readonly set_attendees: {
|
|
3146
|
+
readonly method: "PUT";
|
|
3147
|
+
readonly path: "/calendar-events/{event_id}/attendees";
|
|
3148
|
+
readonly scope: "calendars:write";
|
|
3149
|
+
};
|
|
3150
|
+
readonly list_tags: {
|
|
3151
|
+
readonly method: "GET";
|
|
3152
|
+
readonly path: "/tags/";
|
|
3153
|
+
readonly scope: "tags:read";
|
|
3154
|
+
};
|
|
3155
|
+
readonly bulk_edit_tags: {
|
|
3156
|
+
readonly method: "POST";
|
|
3157
|
+
readonly path: "/tags/bulk";
|
|
3158
|
+
readonly scope: "tags:write";
|
|
3159
|
+
};
|
|
3160
|
+
readonly set_project_grants: {
|
|
3161
|
+
readonly method: "PUT";
|
|
3162
|
+
readonly path: "/projects/{project_id}/grants";
|
|
3163
|
+
readonly scope: "sharing:write";
|
|
3164
|
+
};
|
|
3165
|
+
readonly set_document_grants: {
|
|
3166
|
+
readonly method: "PUT";
|
|
3167
|
+
readonly path: "/documents/{document_id}/grants";
|
|
3168
|
+
readonly scope: "sharing:write";
|
|
3169
|
+
};
|
|
3170
|
+
readonly set_queue_grants: {
|
|
3171
|
+
readonly method: "PUT";
|
|
3172
|
+
readonly path: "/queues/{queue_id}/grants";
|
|
3173
|
+
readonly scope: "sharing:write";
|
|
3174
|
+
};
|
|
3175
|
+
readonly set_counter_group_grants: {
|
|
3176
|
+
readonly method: "PUT";
|
|
3177
|
+
readonly path: "/counter-groups/{group_id}/grants";
|
|
3178
|
+
readonly scope: "sharing:write";
|
|
3179
|
+
};
|
|
3180
|
+
readonly set_calendar_grants: {
|
|
3181
|
+
readonly method: "PUT";
|
|
3182
|
+
readonly path: "/calendars/{calendar_id}/grants";
|
|
3183
|
+
readonly scope: "sharing:write";
|
|
3184
|
+
};
|
|
3185
|
+
readonly set_post_grants: {
|
|
3186
|
+
readonly method: "PUT";
|
|
3187
|
+
readonly path: "/posts/{post_id}/grants";
|
|
3188
|
+
readonly scope: "sharing:write";
|
|
3189
|
+
};
|
|
3190
|
+
readonly set_gallery_grants: {
|
|
3191
|
+
readonly method: "PUT";
|
|
3192
|
+
readonly path: "/galleries/{gallery_id}/grants";
|
|
3193
|
+
readonly scope: "sharing:write";
|
|
3194
|
+
};
|
|
3195
|
+
readonly set_wiki_grants: {
|
|
3196
|
+
readonly method: "PUT";
|
|
3197
|
+
readonly path: "/wikis/{wiki_id}/grants";
|
|
3198
|
+
readonly scope: "sharing:write";
|
|
3199
|
+
};
|
|
3200
|
+
readonly duplicate_project: {
|
|
3201
|
+
readonly method: "POST";
|
|
3202
|
+
readonly path: "/projects/{project_id}/duplicate";
|
|
3203
|
+
readonly scope: "projects:write";
|
|
3204
|
+
};
|
|
3205
|
+
readonly duplicate_document: {
|
|
3206
|
+
readonly method: "POST";
|
|
3207
|
+
readonly path: "/documents/{document_id}/duplicate";
|
|
3208
|
+
readonly scope: "documents:write";
|
|
3209
|
+
};
|
|
3210
|
+
readonly duplicate_queue: {
|
|
3211
|
+
readonly method: "POST";
|
|
3212
|
+
readonly path: "/queues/{queue_id}/duplicate";
|
|
3213
|
+
readonly scope: "queues:write";
|
|
3214
|
+
};
|
|
3215
|
+
readonly duplicate_counter_group: {
|
|
3216
|
+
readonly method: "POST";
|
|
3217
|
+
readonly path: "/counter-groups/{group_id}/duplicate";
|
|
3218
|
+
readonly scope: "counter_groups:write";
|
|
3219
|
+
};
|
|
3220
|
+
readonly duplicate_calendar: {
|
|
3221
|
+
readonly method: "POST";
|
|
3222
|
+
readonly path: "/calendars/{calendar_id}/duplicate";
|
|
3223
|
+
readonly scope: "calendars:write";
|
|
3224
|
+
};
|
|
3225
|
+
readonly duplicate_post: {
|
|
3226
|
+
readonly method: "POST";
|
|
3227
|
+
readonly path: "/posts/{post_id}/duplicate";
|
|
3228
|
+
readonly scope: "posts:write";
|
|
3229
|
+
};
|
|
3230
|
+
readonly duplicate_gallery: {
|
|
3231
|
+
readonly method: "POST";
|
|
3232
|
+
readonly path: "/galleries/{gallery_id}/duplicate";
|
|
3233
|
+
readonly scope: "galleries:write";
|
|
3234
|
+
};
|
|
3235
|
+
readonly duplicate_wiki: {
|
|
3236
|
+
readonly method: "POST";
|
|
3237
|
+
readonly path: "/wikis/{wiki_id}/duplicate";
|
|
3238
|
+
readonly scope: "wikis:write";
|
|
3239
|
+
};
|
|
3240
|
+
readonly suggest_community: {
|
|
3241
|
+
readonly method: "GET";
|
|
3242
|
+
readonly path: "/search/suggest";
|
|
3243
|
+
readonly scope: {
|
|
3244
|
+
readonly per: "entity_type";
|
|
3245
|
+
readonly any_of: readonly ["calendars:read", "comments:read", "counter_groups:read", "dashboards:read", "documents:read", "galleries:read", "posts:read", "projects:read", "queues:read", "tags:read", "wikis:read"];
|
|
3246
|
+
};
|
|
3247
|
+
};
|
|
3248
|
+
readonly list_property_definitions: {
|
|
3249
|
+
readonly method: "GET";
|
|
3250
|
+
readonly path: "/property-definitions/";
|
|
3251
|
+
readonly scope: "initiatives:read";
|
|
3252
|
+
};
|
|
3253
|
+
readonly set_properties: {
|
|
3254
|
+
readonly method: "PUT";
|
|
3255
|
+
readonly path: "/properties/{target}/{entity_id}";
|
|
3256
|
+
readonly scope: {
|
|
3257
|
+
readonly by: "target";
|
|
3258
|
+
readonly scopes: {
|
|
3259
|
+
readonly calendar: "calendars:write";
|
|
3260
|
+
readonly calendar_event: "calendars:write";
|
|
3261
|
+
readonly counter: "counter_groups:write";
|
|
3262
|
+
readonly counter_group: "counter_groups:write";
|
|
3263
|
+
readonly dashboard: "dashboards:write";
|
|
3264
|
+
readonly document: "documents:write";
|
|
3265
|
+
readonly gallery: "galleries:write";
|
|
3266
|
+
readonly gallery_image: "galleries:write";
|
|
3267
|
+
readonly post: "posts:write";
|
|
3268
|
+
readonly project: "projects:write";
|
|
3269
|
+
readonly queue: "queues:write";
|
|
3270
|
+
readonly queue_item: "queues:write";
|
|
3271
|
+
readonly task: "projects:write";
|
|
3272
|
+
readonly wiki: "wikis:write";
|
|
3273
|
+
readonly wiki_page: "wikis:write";
|
|
3274
|
+
};
|
|
3275
|
+
};
|
|
3276
|
+
};
|
|
3277
|
+
readonly archive_entity: {
|
|
3278
|
+
readonly method: "POST";
|
|
3279
|
+
readonly path: "/archive/{entity_type}/{entity_id}";
|
|
3280
|
+
readonly scope: {
|
|
3281
|
+
readonly by: "entity_type";
|
|
3282
|
+
readonly scopes: {
|
|
3283
|
+
readonly calendar: "calendars:write";
|
|
3284
|
+
readonly counter_group: "counter_groups:write";
|
|
3285
|
+
readonly dashboard: "dashboards:write";
|
|
3286
|
+
readonly document: "documents:write";
|
|
3287
|
+
readonly gallery: "galleries:write";
|
|
3288
|
+
readonly post: "posts:write";
|
|
3289
|
+
readonly project: "projects:write";
|
|
3290
|
+
readonly queue: "queues:write";
|
|
3291
|
+
readonly task: "projects:write";
|
|
3292
|
+
readonly wiki: "wikis:write";
|
|
3293
|
+
};
|
|
3294
|
+
};
|
|
3295
|
+
};
|
|
3296
|
+
readonly search_users: {
|
|
3297
|
+
readonly method: "GET";
|
|
3298
|
+
readonly path: "/users/search";
|
|
3299
|
+
readonly scope: "members:read";
|
|
3300
|
+
};
|
|
3301
|
+
readonly read_member_avatar: {
|
|
3302
|
+
readonly method: "GET";
|
|
3303
|
+
readonly path: "/members/{person}/avatar/{digest}";
|
|
3304
|
+
readonly scope: "members:read";
|
|
3305
|
+
};
|
|
3306
|
+
};
|
|
3307
|
+
export type PluginApiOperationId = keyof typeof pluginApiOperations;
|
|
3308
|
+
/** Every route Initiative's plug-in API describes, as a typed method. A client's `api` is one. */
|
|
3309
|
+
export declare class PluginApi {
|
|
3310
|
+
private readonly call;
|
|
3311
|
+
constructor(call: (operation: PluginApiOperationId, args?: PluginApiArgs) => Promise<unknown>);
|
|
3312
|
+
/**
|
|
3313
|
+
* Register a new webhook subscription.
|
|
3314
|
+
*
|
|
3315
|
+
* `POST /webhooks/subscriptions`, needs one of `calendars:read`, `comments:read`, `counter_groups:read`, `dashboards:read`, `documents:read`, `galleries:read`, `initiatives:read`, `posts:read`, `projects:read`, `queues:read`, `tags:read`, `wikis:read`.
|
|
3316
|
+
*/
|
|
3317
|
+
createSubscription(args: {
|
|
3318
|
+
body: PluginApiOperations["create_subscription"]["body"];
|
|
3319
|
+
}): Promise<PluginApiOperations["create_subscription"]["answer"]>;
|
|
3320
|
+
/**
|
|
3321
|
+
* Hard-delete a subscription. Who may is the DELETE policy, the same gates
|
|
3322
|
+
* that govern the content it watches; a cross-guild lookup is a 404. An
|
|
3323
|
+
* installed plug-in reaches only the subscriptions it registered, and any
|
|
3324
|
+
* other is a 404.
|
|
3325
|
+
*
|
|
3326
|
+
* `DELETE /webhooks/subscriptions/{subscription_id}`, needs one of `calendars:read`, `comments:read`, `counter_groups:read`, `dashboards:read`, `documents:read`, `galleries:read`, `initiatives:read`, `posts:read`, `projects:read`, `queues:read`, `tags:read`, `wikis:read`.
|
|
3327
|
+
*/
|
|
3328
|
+
deleteSubscription(args: {
|
|
3329
|
+
path: PluginApiOperations["delete_subscription"]["path"];
|
|
3330
|
+
}): Promise<PluginApiOperations["delete_subscription"]["answer"]>;
|
|
3331
|
+
/**
|
|
3332
|
+
* List Projects
|
|
3333
|
+
*
|
|
3334
|
+
* `GET /projects/`, needs `projects:read`.
|
|
3335
|
+
*/
|
|
3336
|
+
listProjects(args?: {
|
|
3337
|
+
query?: PluginApiOperations["list_projects"]["query"];
|
|
3338
|
+
}): Promise<PluginApiOperations["list_projects"]["answer"]>;
|
|
3339
|
+
/**
|
|
3340
|
+
* Create Project
|
|
3341
|
+
*
|
|
3342
|
+
* `POST /projects/`, needs `projects:write`.
|
|
3343
|
+
*/
|
|
3344
|
+
createProject(args: {
|
|
3345
|
+
body: PluginApiOperations["create_project"]["body"];
|
|
3346
|
+
}): Promise<PluginApiOperations["create_project"]["answer"]>;
|
|
3347
|
+
/**
|
|
3348
|
+
* List documents in the active guild visible to the current user.
|
|
3349
|
+
*
|
|
3350
|
+
* `GET /documents/`, needs `documents:read`.
|
|
3351
|
+
*/
|
|
3352
|
+
listDocuments(args?: {
|
|
3353
|
+
query?: PluginApiOperations["list_documents"]["query"];
|
|
3354
|
+
}): Promise<PluginApiOperations["list_documents"]["answer"]>;
|
|
3355
|
+
/**
|
|
3356
|
+
* Create Document
|
|
3357
|
+
*
|
|
3358
|
+
* `POST /documents/`, needs `documents:write`.
|
|
3359
|
+
*/
|
|
3360
|
+
createDocument(args: {
|
|
3361
|
+
body: PluginApiOperations["create_document"]["body"];
|
|
3362
|
+
}): Promise<PluginApiOperations["create_document"]["answer"]>;
|
|
3363
|
+
/**
|
|
3364
|
+
* List queues visible to the current user.
|
|
3365
|
+
*
|
|
3366
|
+
* `GET /queues/`, needs `queues:read`.
|
|
3367
|
+
*/
|
|
3368
|
+
listQueues(args?: {
|
|
3369
|
+
query?: PluginApiOperations["list_queues"]["query"];
|
|
3370
|
+
}): Promise<PluginApiOperations["list_queues"]["answer"]>;
|
|
3371
|
+
/**
|
|
3372
|
+
* Create a new queue in an initiative.
|
|
3373
|
+
*
|
|
3374
|
+
* `POST /queues/`, needs `queues:write`.
|
|
3375
|
+
*/
|
|
3376
|
+
createQueue(args: {
|
|
3377
|
+
body: PluginApiOperations["create_queue"]["body"];
|
|
3378
|
+
}): Promise<PluginApiOperations["create_queue"]["answer"]>;
|
|
3379
|
+
/**
|
|
3380
|
+
* List Counter Groups
|
|
3381
|
+
*
|
|
3382
|
+
* `GET /counter-groups/`, needs `counter_groups:read`.
|
|
3383
|
+
*/
|
|
3384
|
+
listCounterGroups(args?: {
|
|
3385
|
+
query?: PluginApiOperations["list_counter_groups"]["query"];
|
|
3386
|
+
}): Promise<PluginApiOperations["list_counter_groups"]["answer"]>;
|
|
3387
|
+
/**
|
|
3388
|
+
* Create Counter Group
|
|
3389
|
+
*
|
|
3390
|
+
* `POST /counter-groups/`, needs `counter_groups:write`.
|
|
3391
|
+
*/
|
|
3392
|
+
createCounterGroup(args: {
|
|
3393
|
+
body: PluginApiOperations["create_counter_group"]["body"];
|
|
3394
|
+
}): Promise<PluginApiOperations["create_counter_group"]["answer"]>;
|
|
3395
|
+
/**
|
|
3396
|
+
* List calendars visible to the current user (guild admins see all).
|
|
3397
|
+
*
|
|
3398
|
+
* `GET /calendars/`, needs `calendars:read`.
|
|
3399
|
+
*/
|
|
3400
|
+
listCalendars(args?: {
|
|
3401
|
+
query?: PluginApiOperations["list_calendars"]["query"];
|
|
3402
|
+
}): Promise<PluginApiOperations["list_calendars"]["answer"]>;
|
|
3403
|
+
/**
|
|
3404
|
+
* Create a calendar.
|
|
3405
|
+
*
|
|
3406
|
+
* `POST /calendars/`, needs `calendars:write`.
|
|
3407
|
+
*/
|
|
3408
|
+
createCalendar(args: {
|
|
3409
|
+
body: PluginApiOperations["create_calendar"]["body"];
|
|
3410
|
+
}): Promise<PluginApiOperations["create_calendar"]["answer"]>;
|
|
3411
|
+
/**
|
|
3412
|
+
* List posts visible to the current user (guild admins see all).
|
|
3413
|
+
*
|
|
3414
|
+
* `GET /posts/`, needs `posts:read`.
|
|
3415
|
+
*/
|
|
3416
|
+
listPosts(args?: {
|
|
3417
|
+
query?: PluginApiOperations["list_posts"]["query"];
|
|
3418
|
+
}): Promise<PluginApiOperations["list_posts"]["answer"]>;
|
|
3419
|
+
/**
|
|
3420
|
+
* Post a notice to an initiative's board. Requires create_posts permission on
|
|
3421
|
+
* the initiative (or guild admin); the author gets the owner grant.
|
|
3422
|
+
*
|
|
3423
|
+
* `POST /posts/`, needs `posts:write`.
|
|
3424
|
+
*/
|
|
3425
|
+
createPost(args: {
|
|
3426
|
+
body: PluginApiOperations["create_post"]["body"];
|
|
3427
|
+
}): Promise<PluginApiOperations["create_post"]["answer"]>;
|
|
3428
|
+
/**
|
|
3429
|
+
* List galleries visible to the current user (guild admins see all).
|
|
3430
|
+
*
|
|
3431
|
+
* `GET /galleries/`, needs `galleries:read`.
|
|
3432
|
+
*/
|
|
3433
|
+
listGalleries(args?: {
|
|
3434
|
+
query?: PluginApiOperations["list_galleries"]["query"];
|
|
3435
|
+
}): Promise<PluginApiOperations["list_galleries"]["answer"]>;
|
|
3436
|
+
/**
|
|
3437
|
+
* Create a gallery. Requires create_galleries permission on the initiative
|
|
3438
|
+
* (or guild admin); the creator gets the owner grant.
|
|
3439
|
+
*
|
|
3440
|
+
* `POST /galleries/`, needs `galleries:write`.
|
|
3441
|
+
*/
|
|
3442
|
+
createGallery(args: {
|
|
3443
|
+
body: PluginApiOperations["create_gallery"]["body"];
|
|
3444
|
+
}): Promise<PluginApiOperations["create_gallery"]["answer"]>;
|
|
3445
|
+
/**
|
|
3446
|
+
* List wikis visible to the current user (guild admins see all).
|
|
3447
|
+
*
|
|
3448
|
+
* `GET /wikis/`, needs `wikis:read`.
|
|
3449
|
+
*/
|
|
3450
|
+
listWikis(args?: {
|
|
3451
|
+
query?: PluginApiOperations["list_wikis"]["query"];
|
|
3452
|
+
}): Promise<PluginApiOperations["list_wikis"]["answer"]>;
|
|
3453
|
+
/**
|
|
3454
|
+
* Create a wiki. Requires create_wikis permission on the initiative (or guild
|
|
3455
|
+
* admin); the creator gets the owner grant.
|
|
3456
|
+
*
|
|
3457
|
+
* `POST /wikis/`, needs `wikis:write`.
|
|
3458
|
+
*/
|
|
3459
|
+
createWiki(args: {
|
|
3460
|
+
body: PluginApiOperations["create_wiki"]["body"];
|
|
3461
|
+
}): Promise<PluginApiOperations["create_wiki"]["answer"]>;
|
|
3462
|
+
/**
|
|
3463
|
+
* Read Project
|
|
3464
|
+
*
|
|
3465
|
+
* `GET /projects/{project_id}`, needs `projects:read`.
|
|
3466
|
+
*/
|
|
3467
|
+
readProject(args: {
|
|
3468
|
+
path: PluginApiOperations["read_project"]["path"];
|
|
3469
|
+
query?: PluginApiOperations["read_project"]["query"];
|
|
3470
|
+
}): Promise<PluginApiOperations["read_project"]["answer"]>;
|
|
3471
|
+
/**
|
|
3472
|
+
* Update Project
|
|
3473
|
+
*
|
|
3474
|
+
* `PATCH /projects/{project_id}`, needs `projects:write`.
|
|
3475
|
+
*/
|
|
3476
|
+
updateProject(args: {
|
|
3477
|
+
path: PluginApiOperations["update_project"]["path"];
|
|
3478
|
+
body: PluginApiOperations["update_project"]["body"];
|
|
3479
|
+
}): Promise<PluginApiOperations["update_project"]["answer"]>;
|
|
3480
|
+
/**
|
|
3481
|
+
* List Task Statuses
|
|
3482
|
+
*
|
|
3483
|
+
* `GET /projects/{project_id}/task-statuses/`, needs `projects:read`.
|
|
3484
|
+
*/
|
|
3485
|
+
listTaskStatuses(args: {
|
|
3486
|
+
path: PluginApiOperations["list_task_statuses"]["path"];
|
|
3487
|
+
}): Promise<PluginApiOperations["list_task_statuses"]["answer"]>;
|
|
3488
|
+
/**
|
|
3489
|
+
* The distinct status columns across the initiative's readable projects.
|
|
3490
|
+
*
|
|
3491
|
+
* `GET /initiatives/{initiative_id}/task-statuses/`, needs `projects:read`.
|
|
3492
|
+
*/
|
|
3493
|
+
listInitiativeTaskStatuses(args: {
|
|
3494
|
+
path: PluginApiOperations["list_initiative_task_statuses"]["path"];
|
|
3495
|
+
}): Promise<PluginApiOperations["list_initiative_task_statuses"]["answer"]>;
|
|
3496
|
+
/**
|
|
3497
|
+
* List Tasks
|
|
3498
|
+
*
|
|
3499
|
+
* `GET /tasks/`, needs `projects:read`.
|
|
3500
|
+
*/
|
|
3501
|
+
listTasks(args?: {
|
|
3502
|
+
query?: PluginApiOperations["list_tasks"]["query"];
|
|
3503
|
+
}): Promise<PluginApiOperations["list_tasks"]["answer"]>;
|
|
3504
|
+
/**
|
|
3505
|
+
* Create Task
|
|
3506
|
+
*
|
|
3507
|
+
* `POST /tasks/`, needs `projects:write`.
|
|
3508
|
+
*/
|
|
3509
|
+
createTask(args: {
|
|
3510
|
+
body: PluginApiOperations["create_task"]["body"];
|
|
3511
|
+
}): Promise<PluginApiOperations["create_task"]["answer"]>;
|
|
3512
|
+
/**
|
|
3513
|
+
* Read Task
|
|
3514
|
+
*
|
|
3515
|
+
* `GET /tasks/{task_id}`, needs `projects:read`.
|
|
3516
|
+
*/
|
|
3517
|
+
readTask(args: {
|
|
3518
|
+
path: PluginApiOperations["read_task"]["path"];
|
|
3519
|
+
query?: PluginApiOperations["read_task"]["query"];
|
|
3520
|
+
}): Promise<PluginApiOperations["read_task"]["answer"]>;
|
|
3521
|
+
/**
|
|
3522
|
+
* Update Task
|
|
3523
|
+
*
|
|
3524
|
+
* `PATCH /tasks/{task_id}`, needs `projects:write`.
|
|
3525
|
+
*/
|
|
3526
|
+
updateTask(args: {
|
|
3527
|
+
path: PluginApiOperations["update_task"]["path"];
|
|
3528
|
+
body: PluginApiOperations["update_task"]["body"];
|
|
3529
|
+
}): Promise<PluginApiOperations["update_task"]["answer"]>;
|
|
3530
|
+
/**
|
|
3531
|
+
* Move Task
|
|
3532
|
+
*
|
|
3533
|
+
* `POST /tasks/{task_id}/move`, needs `projects:write`.
|
|
3534
|
+
*/
|
|
3535
|
+
moveTask(args: {
|
|
3536
|
+
path: PluginApiOperations["move_task"]["path"];
|
|
3537
|
+
body: PluginApiOperations["move_task"]["body"];
|
|
3538
|
+
}): Promise<PluginApiOperations["move_task"]["answer"]>;
|
|
3539
|
+
/**
|
|
3540
|
+
* Copy the task beside itself, at the end of its project, as "<title>
|
|
3541
|
+
* (Copy)", with its assignees, tags, links and properties; its checklist
|
|
3542
|
+
* starts unticked.
|
|
3543
|
+
*
|
|
3544
|
+
* `POST /tasks/{task_id}/duplicate`, needs `projects:write`.
|
|
3545
|
+
*/
|
|
3546
|
+
duplicateTask(args: {
|
|
3547
|
+
path: PluginApiOperations["duplicate_task"]["path"];
|
|
3548
|
+
}): Promise<PluginApiOperations["duplicate_task"]["answer"]>;
|
|
3549
|
+
/**
|
|
3550
|
+
* Move a repeating task on to its next occurrence without completing it.
|
|
3551
|
+
*
|
|
3552
|
+
* `POST /tasks/{task_id}/skip`, needs `projects:write`.
|
|
3553
|
+
*/
|
|
3554
|
+
skipTask(args: {
|
|
3555
|
+
path: PluginApiOperations["skip_task"]["path"];
|
|
3556
|
+
}): Promise<PluginApiOperations["skip_task"]["answer"]>;
|
|
3557
|
+
/**
|
|
3558
|
+
* Tick or untick one checklist item.
|
|
3559
|
+
*
|
|
3560
|
+
* `PATCH /tasks/{task_id}/checklist/{item_id}`, needs `projects:write`.
|
|
3561
|
+
*/
|
|
3562
|
+
toggleChecklistItem(args: {
|
|
3563
|
+
path: PluginApiOperations["toggle_checklist_item"]["path"];
|
|
3564
|
+
body: PluginApiOperations["toggle_checklist_item"]["body"];
|
|
3565
|
+
}): Promise<PluginApiOperations["toggle_checklist_item"]["answer"]>;
|
|
3566
|
+
/**
|
|
3567
|
+
* One page of a thread: `limit` conversations, newest first, each with every
|
|
3568
|
+
* reply under it. Follow `next_cursor` for older conversations.
|
|
3569
|
+
*
|
|
3570
|
+
* `GET /comments/`, needs `comments:read`.
|
|
3571
|
+
*/
|
|
3572
|
+
listComments(args?: {
|
|
3573
|
+
query?: PluginApiOperations["list_comments"]["query"];
|
|
3574
|
+
}): Promise<PluginApiOperations["list_comments"]["answer"]>;
|
|
3575
|
+
/**
|
|
3576
|
+
* Create Comment
|
|
3577
|
+
*
|
|
3578
|
+
* `POST /comments/`, needs `comments:write`.
|
|
3579
|
+
*/
|
|
3580
|
+
createComment(args: {
|
|
3581
|
+
body: PluginApiOperations["create_comment"]["body"];
|
|
3582
|
+
}): Promise<PluginApiOperations["create_comment"]["answer"]>;
|
|
3583
|
+
/**
|
|
3584
|
+
* One comment by id — the read-back for a `comments.*` event.
|
|
3585
|
+
*
|
|
3586
|
+
* `GET /comments/{comment_id}`, needs `comments:read`.
|
|
3587
|
+
*/
|
|
3588
|
+
readComment(args: {
|
|
3589
|
+
path: PluginApiOperations["read_comment"]["path"];
|
|
3590
|
+
query?: PluginApiOperations["read_comment"]["query"];
|
|
3591
|
+
}): Promise<PluginApiOperations["read_comment"]["answer"]>;
|
|
3592
|
+
/**
|
|
3593
|
+
* The initiatives the caller belongs to, or — for a guild admin asking for
|
|
3594
|
+
* `scope=community` — every initiative in the guild.
|
|
3595
|
+
*
|
|
3596
|
+
* `GET /initiatives/`, needs `initiatives:read`.
|
|
3597
|
+
*/
|
|
3598
|
+
listInitiatives(args?: {
|
|
3599
|
+
query?: PluginApiOperations["list_initiatives"]["query"];
|
|
3600
|
+
}): Promise<PluginApiOperations["list_initiatives"]["answer"]>;
|
|
3601
|
+
/**
|
|
3602
|
+
* Get Initiative
|
|
3603
|
+
*
|
|
3604
|
+
* `GET /initiatives/{initiative_id}`, needs `initiatives:read`.
|
|
3605
|
+
*/
|
|
3606
|
+
getInitiative(args: {
|
|
3607
|
+
path: PluginApiOperations["get_initiative"]["path"];
|
|
3608
|
+
query?: PluginApiOperations["get_initiative"]["query"];
|
|
3609
|
+
}): Promise<PluginApiOperations["get_initiative"]["answer"]>;
|
|
3610
|
+
/**
|
|
3611
|
+
* Read Document
|
|
3612
|
+
*
|
|
3613
|
+
* `GET /documents/{document_id}`, needs `documents:read`.
|
|
3614
|
+
*/
|
|
3615
|
+
readDocument(args: {
|
|
3616
|
+
path: PluginApiOperations["read_document"]["path"];
|
|
3617
|
+
query?: PluginApiOperations["read_document"]["query"];
|
|
3618
|
+
}): Promise<PluginApiOperations["read_document"]["answer"]>;
|
|
3619
|
+
/**
|
|
3620
|
+
* Update Document
|
|
3621
|
+
*
|
|
3622
|
+
* `PATCH /documents/{document_id}`, needs `documents:write`.
|
|
3623
|
+
*/
|
|
3624
|
+
updateDocument(args: {
|
|
3625
|
+
path: PluginApiOperations["update_document"]["path"];
|
|
3626
|
+
body: PluginApiOperations["update_document"]["body"];
|
|
3627
|
+
}): Promise<PluginApiOperations["update_document"]["answer"]>;
|
|
3628
|
+
/**
|
|
3629
|
+
* Read Queue
|
|
3630
|
+
*
|
|
3631
|
+
* `GET /queues/{queue_id}`, needs `queues:read`.
|
|
3632
|
+
*/
|
|
3633
|
+
readQueue(args: {
|
|
3634
|
+
path: PluginApiOperations["read_queue"]["path"];
|
|
3635
|
+
query?: PluginApiOperations["read_queue"]["query"];
|
|
3636
|
+
}): Promise<PluginApiOperations["read_queue"]["answer"]>;
|
|
3637
|
+
/**
|
|
3638
|
+
* Update queue name/description. Requires write access.
|
|
3639
|
+
*
|
|
3640
|
+
* `PATCH /queues/{queue_id}`, needs `queues:write`.
|
|
3641
|
+
*/
|
|
3642
|
+
updateQueue(args: {
|
|
3643
|
+
path: PluginApiOperations["update_queue"]["path"];
|
|
3644
|
+
body: PluginApiOperations["update_queue"]["body"];
|
|
3645
|
+
}): Promise<PluginApiOperations["update_queue"]["answer"]>;
|
|
3646
|
+
/**
|
|
3647
|
+
* Start the queue: set active, reset to first item, round 1.
|
|
3648
|
+
*
|
|
3649
|
+
* `POST /queues/{queue_id}/start`, needs `queues:write`.
|
|
3650
|
+
*/
|
|
3651
|
+
startQueue(args: {
|
|
3652
|
+
path: PluginApiOperations["start_queue"]["path"];
|
|
3653
|
+
}): Promise<PluginApiOperations["start_queue"]["answer"]>;
|
|
3654
|
+
/**
|
|
3655
|
+
* Stop the queue: set inactive but keep current position.
|
|
3656
|
+
*
|
|
3657
|
+
* `POST /queues/{queue_id}/stop`, needs `queues:write`.
|
|
3658
|
+
*/
|
|
3659
|
+
stopQueue(args: {
|
|
3660
|
+
path: PluginApiOperations["stop_queue"]["path"];
|
|
3661
|
+
}): Promise<PluginApiOperations["stop_queue"]["answer"]>;
|
|
3662
|
+
/**
|
|
3663
|
+
* Advance to the next visible item. Wraps around and increments round.
|
|
3664
|
+
*
|
|
3665
|
+
* `POST /queues/{queue_id}/next`, needs `queues:write`.
|
|
3666
|
+
*/
|
|
3667
|
+
advanceTurn(args: {
|
|
3668
|
+
path: PluginApiOperations["advance_turn"]["path"];
|
|
3669
|
+
}): Promise<PluginApiOperations["advance_turn"]["answer"]>;
|
|
3670
|
+
/**
|
|
3671
|
+
* Move to the previous visible item. Wraps around and decrements round.
|
|
3672
|
+
*
|
|
3673
|
+
* `POST /queues/{queue_id}/previous`, needs `queues:write`.
|
|
3674
|
+
*/
|
|
3675
|
+
previousTurn(args: {
|
|
3676
|
+
path: PluginApiOperations["previous_turn"]["path"];
|
|
3677
|
+
}): Promise<PluginApiOperations["previous_turn"]["answer"]>;
|
|
3678
|
+
/**
|
|
3679
|
+
* Jump to a specific item in the queue.
|
|
3680
|
+
*
|
|
3681
|
+
* `POST /queues/{queue_id}/set-active/{item_id}`, needs `queues:write`.
|
|
3682
|
+
*/
|
|
3683
|
+
setActiveItem(args: {
|
|
3684
|
+
path: PluginApiOperations["set_active_item"]["path"];
|
|
3685
|
+
}): Promise<PluginApiOperations["set_active_item"]["answer"]>;
|
|
3686
|
+
/**
|
|
3687
|
+
* Reset the queue to round 1, first visible item.
|
|
3688
|
+
*
|
|
3689
|
+
* `POST /queues/{queue_id}/reset`, needs `queues:write`.
|
|
3690
|
+
*/
|
|
3691
|
+
resetQueue(args: {
|
|
3692
|
+
path: PluginApiOperations["reset_queue"]["path"];
|
|
3693
|
+
}): Promise<PluginApiOperations["reset_queue"]["answer"]>;
|
|
3694
|
+
/**
|
|
3695
|
+
* Hold the current turn — the item leaves the rotation until it acts.
|
|
3696
|
+
*
|
|
3697
|
+
* `POST /queues/{queue_id}/hold`, needs `queues:write`.
|
|
3698
|
+
*/
|
|
3699
|
+
holdCurrentTurn(args: {
|
|
3700
|
+
path: PluginApiOperations["hold_current_turn"]["path"];
|
|
3701
|
+
}): Promise<PluginApiOperations["hold_current_turn"]["answer"]>;
|
|
3702
|
+
/**
|
|
3703
|
+
* Release a held item back into the rotation.
|
|
3704
|
+
*
|
|
3705
|
+
* `POST /queues/{queue_id}/release/{item_id}`, needs `queues:write`.
|
|
3706
|
+
*/
|
|
3707
|
+
releaseHeldItem(args: {
|
|
3708
|
+
path: PluginApiOperations["release_held_item"]["path"];
|
|
3709
|
+
body?: PluginApiOperations["release_held_item"]["body"];
|
|
3710
|
+
}): Promise<PluginApiOperations["release_held_item"]["answer"]>;
|
|
3711
|
+
/**
|
|
3712
|
+
* One queue item by id — the read-back for a `queue_items.*` event.
|
|
3713
|
+
*
|
|
3714
|
+
* `GET /queue-items/{item_id}`, needs `queues:read`.
|
|
3715
|
+
*/
|
|
3716
|
+
readQueueItem(args: {
|
|
3717
|
+
path: PluginApiOperations["read_queue_item"]["path"];
|
|
3718
|
+
query?: PluginApiOperations["read_queue_item"]["query"];
|
|
3719
|
+
}): Promise<PluginApiOperations["read_queue_item"]["answer"]>;
|
|
3720
|
+
/**
|
|
3721
|
+
* Update a queue item. Requires write access on the queue.
|
|
3722
|
+
*
|
|
3723
|
+
* `PATCH /queue-items/{item_id}`, needs `queues:write`.
|
|
3724
|
+
*/
|
|
3725
|
+
updateQueueItem(args: {
|
|
3726
|
+
path: PluginApiOperations["update_queue_item"]["path"];
|
|
3727
|
+
body: PluginApiOperations["update_queue_item"]["body"];
|
|
3728
|
+
}): Promise<PluginApiOperations["update_queue_item"]["answer"]>;
|
|
3729
|
+
/**
|
|
3730
|
+
* Copy the item beside itself, at the same place in the turn order, as
|
|
3731
|
+
* "<label> (Copy)", with its person, tags, links and properties.
|
|
3732
|
+
*
|
|
3733
|
+
* `POST /queue-items/{item_id}/duplicate`, needs `queues:write`.
|
|
3734
|
+
*/
|
|
3735
|
+
duplicateQueueItem(args: {
|
|
3736
|
+
path: PluginApiOperations["duplicate_queue_item"]["path"];
|
|
3737
|
+
}): Promise<PluginApiOperations["duplicate_queue_item"]["answer"]>;
|
|
3738
|
+
/**
|
|
3739
|
+
* Read Counter Group
|
|
3740
|
+
*
|
|
3741
|
+
* `GET /counter-groups/{group_id}`, needs `counter_groups:read`.
|
|
3742
|
+
*/
|
|
3743
|
+
readCounterGroup(args: {
|
|
3744
|
+
path: PluginApiOperations["read_counter_group"]["path"];
|
|
3745
|
+
query?: PluginApiOperations["read_counter_group"]["query"];
|
|
3746
|
+
}): Promise<PluginApiOperations["read_counter_group"]["answer"]>;
|
|
3747
|
+
/**
|
|
3748
|
+
* Update Counter Group
|
|
3749
|
+
*
|
|
3750
|
+
* `PATCH /counter-groups/{group_id}`, needs `counter_groups:write`.
|
|
3751
|
+
*/
|
|
3752
|
+
updateCounterGroup(args: {
|
|
3753
|
+
path: PluginApiOperations["update_counter_group"]["path"];
|
|
3754
|
+
body: PluginApiOperations["update_counter_group"]["body"];
|
|
3755
|
+
}): Promise<PluginApiOperations["update_counter_group"]["answer"]>;
|
|
3756
|
+
/**
|
|
3757
|
+
* One counter by id — the read-back for a `counters.*` event.
|
|
3758
|
+
*
|
|
3759
|
+
* `GET /counters/{counter_id}`, needs `counter_groups:read`.
|
|
3760
|
+
*/
|
|
3761
|
+
readCounter(args: {
|
|
3762
|
+
path: PluginApiOperations["read_counter"]["path"];
|
|
3763
|
+
query?: PluginApiOperations["read_counter"]["query"];
|
|
3764
|
+
}): Promise<PluginApiOperations["read_counter"]["answer"]>;
|
|
3765
|
+
/**
|
|
3766
|
+
* Copy the counter to the end of its group as "<name> (Copy)", with its
|
|
3767
|
+
* count, tags and properties.
|
|
3768
|
+
*
|
|
3769
|
+
* `POST /counters/{counter_id}/duplicate`, needs `counter_groups:write`.
|
|
3770
|
+
*/
|
|
3771
|
+
duplicateCounter(args: {
|
|
3772
|
+
path: PluginApiOperations["duplicate_counter"]["path"];
|
|
3773
|
+
}): Promise<PluginApiOperations["duplicate_counter"]["answer"]>;
|
|
3774
|
+
/**
|
|
3775
|
+
* Put a counter at a number, held within its bounds.
|
|
3776
|
+
*
|
|
3777
|
+
* `POST /counters/{counter_id}/set`, needs `counter_groups:write`.
|
|
3778
|
+
*/
|
|
3779
|
+
setCounterCount(args: {
|
|
3780
|
+
path: PluginApiOperations["set_counter_count"]["path"];
|
|
3781
|
+
body: PluginApiOperations["set_counter_count"]["body"];
|
|
3782
|
+
}): Promise<PluginApiOperations["set_counter_count"]["answer"]>;
|
|
3783
|
+
/**
|
|
3784
|
+
* Move a counter up or down, by `amount` or by its own step, held within its
|
|
3785
|
+
* bounds. Two steps landing together each count.
|
|
3786
|
+
*
|
|
3787
|
+
* `POST /counters/{counter_id}/step`, needs `counter_groups:write`.
|
|
3788
|
+
*/
|
|
3789
|
+
stepCounter(args: {
|
|
3790
|
+
path: PluginApiOperations["step_counter"]["path"];
|
|
3791
|
+
body: PluginApiOperations["step_counter"]["body"];
|
|
3792
|
+
}): Promise<PluginApiOperations["step_counter"]["answer"]>;
|
|
3793
|
+
/**
|
|
3794
|
+
* Put a counter back to the value it starts from.
|
|
3795
|
+
*
|
|
3796
|
+
* `POST /counters/{counter_id}/reset`, needs `counter_groups:write`.
|
|
3797
|
+
*/
|
|
3798
|
+
resetCounter(args: {
|
|
3799
|
+
path: PluginApiOperations["reset_counter"]["path"];
|
|
3800
|
+
}): Promise<PluginApiOperations["reset_counter"]["answer"]>;
|
|
3801
|
+
/**
|
|
3802
|
+
* Read Calendar
|
|
3803
|
+
*
|
|
3804
|
+
* `GET /calendars/{calendar_id}`, needs `calendars:read`.
|
|
3805
|
+
*/
|
|
3806
|
+
readCalendar(args: {
|
|
3807
|
+
path: PluginApiOperations["read_calendar"]["path"];
|
|
3808
|
+
query?: PluginApiOperations["read_calendar"]["query"];
|
|
3809
|
+
}): Promise<PluginApiOperations["read_calendar"]["answer"]>;
|
|
3810
|
+
/**
|
|
3811
|
+
* Rename/update a calendar. Asks the edit action, which on a guild calendar
|
|
3812
|
+
* is the guild admin's: a write grant on one writes its events.
|
|
3813
|
+
*
|
|
3814
|
+
* `PATCH /calendars/{calendar_id}`, needs `calendars:write`.
|
|
3815
|
+
*/
|
|
3816
|
+
updateCalendar(args: {
|
|
3817
|
+
path: PluginApiOperations["update_calendar"]["path"];
|
|
3818
|
+
body: PluginApiOperations["update_calendar"]["body"];
|
|
3819
|
+
}): Promise<PluginApiOperations["update_calendar"]["answer"]>;
|
|
3820
|
+
/**
|
|
3821
|
+
* Read one notice. A scheduled one is its writers' until it goes up; to
|
|
3822
|
+
* anyone else it is not there (the posts read policy).
|
|
3823
|
+
*
|
|
3824
|
+
* `GET /posts/{post_id}`, needs `posts:read`.
|
|
3825
|
+
*/
|
|
3826
|
+
readPost(args: {
|
|
3827
|
+
path: PluginApiOperations["read_post"]["path"];
|
|
3828
|
+
query?: PluginApiOperations["read_post"]["query"];
|
|
3829
|
+
}): Promise<PluginApiOperations["read_post"]["answer"]>;
|
|
3830
|
+
/**
|
|
3831
|
+
* Edit a notice — its headline, its body, or a schedule not yet reached.
|
|
3832
|
+
* Requires write access.
|
|
3833
|
+
*
|
|
3834
|
+
* `PATCH /posts/{post_id}`, needs `posts:write`.
|
|
3835
|
+
*/
|
|
3836
|
+
updatePost(args: {
|
|
3837
|
+
path: PluginApiOperations["update_post"]["path"];
|
|
3838
|
+
body: PluginApiOperations["update_post"]["body"];
|
|
3839
|
+
}): Promise<PluginApiOperations["update_post"]["answer"]>;
|
|
3840
|
+
/**
|
|
3841
|
+
* Pin a notice to the top of the board, or take it back down.
|
|
3842
|
+
*
|
|
3843
|
+
* `PUT /posts/{post_id}/pin`, needs `posts:write`.
|
|
3844
|
+
*/
|
|
3845
|
+
setPostPin(args: {
|
|
3846
|
+
path: PluginApiOperations["set_post_pin"]["path"];
|
|
3847
|
+
body: PluginApiOperations["set_post_pin"]["body"];
|
|
3848
|
+
}): Promise<PluginApiOperations["set_post_pin"]["answer"]>;
|
|
3849
|
+
/**
|
|
3850
|
+
* Read Gallery
|
|
3851
|
+
*
|
|
3852
|
+
* `GET /galleries/{gallery_id}`, needs `galleries:read`.
|
|
3853
|
+
*/
|
|
3854
|
+
readGallery(args: {
|
|
3855
|
+
path: PluginApiOperations["read_gallery"]["path"];
|
|
3856
|
+
query?: PluginApiOperations["read_gallery"]["query"];
|
|
3857
|
+
}): Promise<PluginApiOperations["read_gallery"]["answer"]>;
|
|
3858
|
+
/**
|
|
3859
|
+
* Rename, describe, or choose the cover. Requires write access.
|
|
3860
|
+
*
|
|
3861
|
+
* `PATCH /galleries/{gallery_id}`, needs `galleries:write`.
|
|
3862
|
+
*/
|
|
3863
|
+
updateGallery(args: {
|
|
3864
|
+
path: PluginApiOperations["update_gallery"]["path"];
|
|
3865
|
+
body: PluginApiOperations["update_gallery"]["body"];
|
|
3866
|
+
}): Promise<PluginApiOperations["update_gallery"]["answer"]>;
|
|
3867
|
+
/**
|
|
3868
|
+
* One page of a gallery's pictures, newest first.
|
|
3869
|
+
*
|
|
3870
|
+
* `GET /galleries/{gallery_id}/images`, needs `galleries:read`.
|
|
3871
|
+
*/
|
|
3872
|
+
listGalleryImages(args: {
|
|
3873
|
+
path: PluginApiOperations["list_gallery_images"]["path"];
|
|
3874
|
+
query?: PluginApiOperations["list_gallery_images"]["query"];
|
|
3875
|
+
}): Promise<PluginApiOperations["list_gallery_images"]["answer"]>;
|
|
3876
|
+
/**
|
|
3877
|
+
* Read Wiki
|
|
3878
|
+
*
|
|
3879
|
+
* `GET /wikis/{wiki_id}`, needs `wikis:read`.
|
|
3880
|
+
*/
|
|
3881
|
+
readWiki(args: {
|
|
3882
|
+
path: PluginApiOperations["read_wiki"]["path"];
|
|
3883
|
+
}): Promise<PluginApiOperations["read_wiki"]["answer"]>;
|
|
3884
|
+
/**
|
|
3885
|
+
* Update Wiki
|
|
3886
|
+
*
|
|
3887
|
+
* `PATCH /wikis/{wiki_id}`, needs `wikis:write`.
|
|
3888
|
+
*/
|
|
3889
|
+
updateWiki(args: {
|
|
3890
|
+
path: PluginApiOperations["update_wiki"]["path"];
|
|
3891
|
+
body: PluginApiOperations["update_wiki"]["body"];
|
|
3892
|
+
}): Promise<PluginApiOperations["update_wiki"]["answer"]>;
|
|
3893
|
+
/**
|
|
3894
|
+
* Every page of a wiki, in reading order.
|
|
3895
|
+
*
|
|
3896
|
+
* `GET /wikis/{wiki_id}/pages`, needs `wikis:read`.
|
|
3897
|
+
*/
|
|
3898
|
+
listWikiPages(args: {
|
|
3899
|
+
path: PluginApiOperations["list_wiki_pages"]["path"];
|
|
3900
|
+
}): Promise<PluginApiOperations["list_wiki_pages"]["answer"]>;
|
|
3901
|
+
/**
|
|
3902
|
+
* One page by its own id, which is all a link to it, a mention or a stored
|
|
3903
|
+
* notification names.
|
|
3904
|
+
*
|
|
3905
|
+
* `GET /wiki-pages/{page_id}`, needs `wikis:read`.
|
|
3906
|
+
*/
|
|
3907
|
+
readWikiPage(args: {
|
|
3908
|
+
path: PluginApiOperations["read_wiki_page"]["path"];
|
|
3909
|
+
}): Promise<PluginApiOperations["read_wiki_page"]["answer"]>;
|
|
3910
|
+
/**
|
|
3911
|
+
* Copy the page, without the pages under it, to the end of where it is filed,
|
|
3912
|
+
* as "<title> (Copy)", with its tags, links and properties.
|
|
3913
|
+
*
|
|
3914
|
+
* `POST /wiki-pages/{page_id}/duplicate`, needs `wikis:write`.
|
|
3915
|
+
*/
|
|
3916
|
+
duplicateWikiPage(args: {
|
|
3917
|
+
path: PluginApiOperations["duplicate_wiki_page"]["path"];
|
|
3918
|
+
}): Promise<PluginApiOperations["duplicate_wiki_page"]["answer"]>;
|
|
3919
|
+
/**
|
|
3920
|
+
* Read Calendar Event
|
|
3921
|
+
*
|
|
3922
|
+
* `GET /calendar-events/{event_id}`, needs `calendars:read`.
|
|
3923
|
+
*/
|
|
3924
|
+
readCalendarEvent(args: {
|
|
3925
|
+
path: PluginApiOperations["read_calendar_event"]["path"];
|
|
3926
|
+
query?: PluginApiOperations["read_calendar_event"]["query"];
|
|
3927
|
+
}): Promise<PluginApiOperations["read_calendar_event"]["answer"]>;
|
|
3928
|
+
/**
|
|
3929
|
+
* Update a calendar event. Requires write access on the calendar (and on the
|
|
3930
|
+
* target calendar when moving the event).
|
|
3931
|
+
*
|
|
3932
|
+
* `PATCH /calendar-events/{event_id}`, needs `calendars:write`.
|
|
3933
|
+
*/
|
|
3934
|
+
updateCalendarEvent(args: {
|
|
3935
|
+
path: PluginApiOperations["update_calendar_event"]["path"];
|
|
3936
|
+
body: PluginApiOperations["update_calendar_event"]["body"];
|
|
3937
|
+
}): Promise<PluginApiOperations["update_calendar_event"]["answer"]>;
|
|
3938
|
+
/**
|
|
3939
|
+
* Create a calendar event. Requires write access on the calendar.
|
|
3940
|
+
*
|
|
3941
|
+
* `POST /calendar-events/`, needs `calendars:write`.
|
|
3942
|
+
*/
|
|
3943
|
+
createCalendarEvent(args: {
|
|
3944
|
+
body: PluginApiOperations["create_calendar_event"]["body"];
|
|
3945
|
+
}): Promise<PluginApiOperations["create_calendar_event"]["answer"]>;
|
|
3946
|
+
/**
|
|
3947
|
+
* Copy the event beside itself as "<title> (Copy)", with its invitees, who
|
|
3948
|
+
* are invited to it as to a new event, its tags, links and properties. A
|
|
3949
|
+
* repeating event comes with its occurrences changed on their own; one
|
|
3950
|
+
* changed occurrence, or the `occurrence` named, is copied as an event of its
|
|
3951
|
+
* own.
|
|
3952
|
+
*
|
|
3953
|
+
* `POST /calendar-events/{event_id}/duplicate`, needs `calendars:write`.
|
|
3954
|
+
*/
|
|
3955
|
+
duplicateCalendarEvent(args: {
|
|
3956
|
+
path: PluginApiOperations["duplicate_calendar_event"]["path"];
|
|
3957
|
+
query?: PluginApiOperations["duplicate_calendar_event"]["query"];
|
|
3958
|
+
}): Promise<PluginApiOperations["duplicate_calendar_event"]["answer"]>;
|
|
3959
|
+
/**
|
|
3960
|
+
* The occurrence starting at `start` as a row of its own, made from the
|
|
3961
|
+
* series the first time it is asked for, so it can change, carry its own
|
|
3962
|
+
* attendees or be linked to alone. Requires write access on the calendar.
|
|
3963
|
+
*
|
|
3964
|
+
* `POST /calendar-events/{event_id}/occurrences`, needs `calendars:write`.
|
|
3965
|
+
*/
|
|
3966
|
+
openOccurrence(args: {
|
|
3967
|
+
path: PluginApiOperations["open_occurrence"]["path"];
|
|
3968
|
+
body: PluginApiOperations["open_occurrence"]["body"];
|
|
3969
|
+
}): Promise<PluginApiOperations["open_occurrence"]["answer"]>;
|
|
3970
|
+
/**
|
|
3971
|
+
* Copy the occurrence at `start` out into an event of its own, which the
|
|
3972
|
+
* series then skips.
|
|
3973
|
+
*
|
|
3974
|
+
* `POST /calendar-events/{event_id}/occurrences/detach`, needs `calendars:write`.
|
|
3975
|
+
*/
|
|
3976
|
+
detachOccurrence(args: {
|
|
3977
|
+
path: PluginApiOperations["detach_occurrence"]["path"];
|
|
3978
|
+
body: PluginApiOperations["detach_occurrence"]["body"];
|
|
3979
|
+
}): Promise<PluginApiOperations["detach_occurrence"]["answer"]>;
|
|
3980
|
+
/**
|
|
3981
|
+
* Bring back a skipped occurrence of the series.
|
|
3982
|
+
*
|
|
3983
|
+
* `POST /calendar-events/{event_id}/occurrences/restore`, needs `calendars:write`.
|
|
3984
|
+
*/
|
|
3985
|
+
restoreOccurrence(args: {
|
|
3986
|
+
path: PluginApiOperations["restore_occurrence"]["path"];
|
|
3987
|
+
body: PluginApiOperations["restore_occurrence"]["body"];
|
|
3988
|
+
}): Promise<PluginApiOperations["restore_occurrence"]["answer"]>;
|
|
3989
|
+
/**
|
|
3990
|
+
* Give the series an extra occurrence at `start`.
|
|
3991
|
+
*
|
|
3992
|
+
* `POST /calendar-events/{event_id}/occurrences/add`, needs `calendars:write`.
|
|
3993
|
+
*/
|
|
3994
|
+
addOccurrence(args: {
|
|
3995
|
+
path: PluginApiOperations["add_occurrence"]["path"];
|
|
3996
|
+
body: PluginApiOperations["add_occurrence"]["body"];
|
|
3997
|
+
}): Promise<PluginApiOperations["add_occurrence"]["answer"]>;
|
|
3998
|
+
/**
|
|
3999
|
+
* Set attendees. Requires write access on the calendar.
|
|
4000
|
+
*
|
|
4001
|
+
* `PUT /calendar-events/{event_id}/attendees`, needs `calendars:write`.
|
|
4002
|
+
*/
|
|
4003
|
+
setAttendees(args: {
|
|
4004
|
+
path: PluginApiOperations["set_attendees"]["path"];
|
|
4005
|
+
query?: PluginApiOperations["set_attendees"]["query"];
|
|
4006
|
+
body: PluginApiOperations["set_attendees"]["body"];
|
|
4007
|
+
}): Promise<PluginApiOperations["set_attendees"]["answer"]>;
|
|
4008
|
+
/**
|
|
4009
|
+
* List all tags in the current guild.
|
|
4010
|
+
*
|
|
4011
|
+
* `GET /tags/`, needs `tags:read`.
|
|
4012
|
+
*/
|
|
4013
|
+
listTags(): Promise<PluginApiOperations["list_tags"]["answer"]>;
|
|
4014
|
+
/**
|
|
4015
|
+
* Add and/or remove tags across many entities of one type, atomically.
|
|
4016
|
+
*
|
|
4017
|
+
* `POST /tags/bulk`, needs `tags:write`.
|
|
4018
|
+
*/
|
|
4019
|
+
bulkEditTags(args: {
|
|
4020
|
+
body: PluginApiOperations["bulk_edit_tags"]["body"];
|
|
4021
|
+
}): Promise<PluginApiOperations["bulk_edit_tags"]["answer"]>;
|
|
4022
|
+
/**
|
|
4023
|
+
* Replace the project's entire sharing state in one call — the body is the
|
|
4024
|
+
* full list of grants (all-initiative-members / per-user / per-role). Every
|
|
4025
|
+
* non-owner grant is rebuilt from it; the owner is always preserved.
|
|
4026
|
+
*
|
|
4027
|
+
* `PUT /projects/{project_id}/grants`, needs `sharing:write`.
|
|
4028
|
+
*/
|
|
4029
|
+
setProjectGrants(args: {
|
|
4030
|
+
path: PluginApiOperations["set_project_grants"]["path"];
|
|
4031
|
+
body: PluginApiOperations["set_project_grants"]["body"];
|
|
4032
|
+
}): Promise<PluginApiOperations["set_project_grants"]["answer"]>;
|
|
4033
|
+
/**
|
|
4034
|
+
* Replace the document's entire sharing state in one call — the body is the
|
|
4035
|
+
* full list of grants (all-initiative-members / per-user / per-role). Every
|
|
4036
|
+
* non-owner grant is rebuilt from it; the owner is always preserved.
|
|
4037
|
+
*
|
|
4038
|
+
* `PUT /documents/{document_id}/grants`, needs `sharing:write`.
|
|
4039
|
+
*/
|
|
4040
|
+
setDocumentGrants(args: {
|
|
4041
|
+
path: PluginApiOperations["set_document_grants"]["path"];
|
|
4042
|
+
body: PluginApiOperations["set_document_grants"]["body"];
|
|
4043
|
+
}): Promise<PluginApiOperations["set_document_grants"]["answer"]>;
|
|
4044
|
+
/**
|
|
4045
|
+
* Replace the queue's entire sharing state in one call — the body is the full
|
|
4046
|
+
* list of grants (all-initiative-members / per-user / per-role). Every
|
|
4047
|
+
* non-owner grant is rebuilt from it; the owner is always preserved.
|
|
4048
|
+
*
|
|
4049
|
+
* `PUT /queues/{queue_id}/grants`, needs `sharing:write`.
|
|
4050
|
+
*/
|
|
4051
|
+
setQueueGrants(args: {
|
|
4052
|
+
path: PluginApiOperations["set_queue_grants"]["path"];
|
|
4053
|
+
body: PluginApiOperations["set_queue_grants"]["body"];
|
|
4054
|
+
}): Promise<PluginApiOperations["set_queue_grants"]["answer"]>;
|
|
4055
|
+
/**
|
|
4056
|
+
* Replace the counter group's entire sharing state in one call — the body is
|
|
4057
|
+
* the full list of grants (all-initiative-members / per-user / per-role).
|
|
4058
|
+
* Every non-owner grant is rebuilt from it; the owner is always preserved.
|
|
4059
|
+
*
|
|
4060
|
+
* `PUT /counter-groups/{group_id}/grants`, needs `sharing:write`.
|
|
4061
|
+
*/
|
|
4062
|
+
setCounterGroupGrants(args: {
|
|
4063
|
+
path: PluginApiOperations["set_counter_group_grants"]["path"];
|
|
4064
|
+
body: PluginApiOperations["set_counter_group_grants"]["body"];
|
|
4065
|
+
}): Promise<PluginApiOperations["set_counter_group_grants"]["answer"]>;
|
|
4066
|
+
/**
|
|
4067
|
+
* Replace the calendar's entire sharing state in one call — the body is the
|
|
4068
|
+
* full list of grants (all-initiative-members / per-user / per-role). Every
|
|
4069
|
+
* non-owner grant is rebuilt from it; the owner is always preserved.
|
|
4070
|
+
*
|
|
4071
|
+
* `PUT /calendars/{calendar_id}/grants`, needs `sharing:write`.
|
|
4072
|
+
*/
|
|
4073
|
+
setCalendarGrants(args: {
|
|
4074
|
+
path: PluginApiOperations["set_calendar_grants"]["path"];
|
|
4075
|
+
body: PluginApiOperations["set_calendar_grants"]["body"];
|
|
4076
|
+
}): Promise<PluginApiOperations["set_calendar_grants"]["answer"]>;
|
|
4077
|
+
/**
|
|
4078
|
+
* Replace the post's entire sharing state in one call — the body is the full
|
|
4079
|
+
* list of grants (all-initiative-members / per-user / per-role). Every
|
|
4080
|
+
* non-owner grant is rebuilt from it; the owner is always preserved.
|
|
4081
|
+
*
|
|
4082
|
+
* `PUT /posts/{post_id}/grants`, needs `sharing:write`.
|
|
4083
|
+
*/
|
|
4084
|
+
setPostGrants(args: {
|
|
4085
|
+
path: PluginApiOperations["set_post_grants"]["path"];
|
|
4086
|
+
body: PluginApiOperations["set_post_grants"]["body"];
|
|
4087
|
+
}): Promise<PluginApiOperations["set_post_grants"]["answer"]>;
|
|
4088
|
+
/**
|
|
4089
|
+
* Replace the gallery's entire sharing state in one call — the body is the
|
|
4090
|
+
* full list of grants. Every non-owner grant is rebuilt from it; the owner is
|
|
4091
|
+
* always preserved.
|
|
4092
|
+
*
|
|
4093
|
+
* `PUT /galleries/{gallery_id}/grants`, needs `sharing:write`.
|
|
4094
|
+
*/
|
|
4095
|
+
setGalleryGrants(args: {
|
|
4096
|
+
path: PluginApiOperations["set_gallery_grants"]["path"];
|
|
4097
|
+
body: PluginApiOperations["set_gallery_grants"]["body"];
|
|
4098
|
+
}): Promise<PluginApiOperations["set_gallery_grants"]["answer"]>;
|
|
4099
|
+
/**
|
|
4100
|
+
* Set Wiki Grants
|
|
4101
|
+
*
|
|
4102
|
+
* `PUT /wikis/{wiki_id}/grants`, needs `sharing:write`.
|
|
4103
|
+
*/
|
|
4104
|
+
setWikiGrants(args: {
|
|
4105
|
+
path: PluginApiOperations["set_wiki_grants"]["path"];
|
|
4106
|
+
body: PluginApiOperations["set_wiki_grants"]["body"];
|
|
4107
|
+
}): Promise<PluginApiOperations["set_wiki_grants"]["answer"]>;
|
|
4108
|
+
/**
|
|
4109
|
+
* Copy it, with everything inside it, into an initiative: its own unless the
|
|
4110
|
+
* body names another. Read is enough to copy a template; anything else needs
|
|
4111
|
+
* write. The copy is shared as its source is while it stays in the same
|
|
4112
|
+
* initiative, and carries the tags its maker may set: an installed plug-in's
|
|
4113
|
+
* copy carries them only when it holds the scope to tag.
|
|
4114
|
+
*
|
|
4115
|
+
* `POST /projects/{project_id}/duplicate`, needs `projects:write`.
|
|
4116
|
+
*/
|
|
4117
|
+
duplicateProject(args: {
|
|
4118
|
+
path: PluginApiOperations["duplicate_project"]["path"];
|
|
4119
|
+
body?: PluginApiOperations["duplicate_project"]["body"];
|
|
4120
|
+
}): Promise<PluginApiOperations["duplicate_project"]["answer"]>;
|
|
4121
|
+
/**
|
|
4122
|
+
* Copy it, with everything inside it, into an initiative: its own unless the
|
|
4123
|
+
* body names another. Read is enough to copy a template; anything else needs
|
|
4124
|
+
* write. The copy is shared as its source is while it stays in the same
|
|
4125
|
+
* initiative, and carries the tags its maker may set: an installed plug-in's
|
|
4126
|
+
* copy carries them only when it holds the scope to tag.
|
|
4127
|
+
*
|
|
4128
|
+
* `POST /documents/{document_id}/duplicate`, needs `documents:write`.
|
|
4129
|
+
*/
|
|
4130
|
+
duplicateDocument(args: {
|
|
4131
|
+
path: PluginApiOperations["duplicate_document"]["path"];
|
|
4132
|
+
body?: PluginApiOperations["duplicate_document"]["body"];
|
|
4133
|
+
}): Promise<PluginApiOperations["duplicate_document"]["answer"]>;
|
|
4134
|
+
/**
|
|
4135
|
+
* Copy it, with everything inside it, into an initiative: its own unless the
|
|
4136
|
+
* body names another. Read is enough to copy a template; anything else needs
|
|
4137
|
+
* write. The copy is shared as its source is while it stays in the same
|
|
4138
|
+
* initiative, and carries the tags its maker may set: an installed plug-in's
|
|
4139
|
+
* copy carries them only when it holds the scope to tag.
|
|
4140
|
+
*
|
|
4141
|
+
* `POST /queues/{queue_id}/duplicate`, needs `queues:write`.
|
|
4142
|
+
*/
|
|
4143
|
+
duplicateQueue(args: {
|
|
4144
|
+
path: PluginApiOperations["duplicate_queue"]["path"];
|
|
4145
|
+
body?: PluginApiOperations["duplicate_queue"]["body"];
|
|
4146
|
+
}): Promise<PluginApiOperations["duplicate_queue"]["answer"]>;
|
|
4147
|
+
/**
|
|
4148
|
+
* Copy it, with everything inside it, into an initiative: its own unless the
|
|
4149
|
+
* body names another. Read is enough to copy a template; anything else needs
|
|
4150
|
+
* write. The copy is shared as its source is while it stays in the same
|
|
4151
|
+
* initiative, and carries the tags its maker may set: an installed plug-in's
|
|
4152
|
+
* copy carries them only when it holds the scope to tag.
|
|
4153
|
+
*
|
|
4154
|
+
* `POST /counter-groups/{group_id}/duplicate`, needs `counter_groups:write`.
|
|
4155
|
+
*/
|
|
4156
|
+
duplicateCounterGroup(args: {
|
|
4157
|
+
path: PluginApiOperations["duplicate_counter_group"]["path"];
|
|
4158
|
+
body?: PluginApiOperations["duplicate_counter_group"]["body"];
|
|
4159
|
+
}): Promise<PluginApiOperations["duplicate_counter_group"]["answer"]>;
|
|
4160
|
+
/**
|
|
4161
|
+
* Copy it, with everything inside it, into an initiative: its own unless the
|
|
4162
|
+
* body names another. Read is enough to copy a template; anything else needs
|
|
4163
|
+
* write. The copy is shared as its source is while it stays in the same
|
|
4164
|
+
* initiative, and carries the tags its maker may set: an installed plug-in's
|
|
4165
|
+
* copy carries them only when it holds the scope to tag.
|
|
4166
|
+
*
|
|
4167
|
+
* `POST /calendars/{calendar_id}/duplicate`, needs `calendars:write`.
|
|
4168
|
+
*/
|
|
4169
|
+
duplicateCalendar(args: {
|
|
4170
|
+
path: PluginApiOperations["duplicate_calendar"]["path"];
|
|
4171
|
+
body?: PluginApiOperations["duplicate_calendar"]["body"];
|
|
4172
|
+
}): Promise<PluginApiOperations["duplicate_calendar"]["answer"]>;
|
|
4173
|
+
/**
|
|
4174
|
+
* Copy it, with everything inside it, into an initiative: its own unless the
|
|
4175
|
+
* body names another. Read is enough to copy a template; anything else needs
|
|
4176
|
+
* write. The copy is shared as its source is while it stays in the same
|
|
4177
|
+
* initiative, and carries the tags its maker may set: an installed plug-in's
|
|
4178
|
+
* copy carries them only when it holds the scope to tag.
|
|
4179
|
+
*
|
|
4180
|
+
* `POST /posts/{post_id}/duplicate`, needs `posts:write`.
|
|
4181
|
+
*/
|
|
4182
|
+
duplicatePost(args: {
|
|
4183
|
+
path: PluginApiOperations["duplicate_post"]["path"];
|
|
4184
|
+
body?: PluginApiOperations["duplicate_post"]["body"];
|
|
4185
|
+
}): Promise<PluginApiOperations["duplicate_post"]["answer"]>;
|
|
4186
|
+
/**
|
|
4187
|
+
* Copy it, with everything inside it, into an initiative: its own unless the
|
|
4188
|
+
* body names another. Read is enough to copy a template; anything else needs
|
|
4189
|
+
* write. The copy is shared as its source is while it stays in the same
|
|
4190
|
+
* initiative, and carries the tags its maker may set: an installed plug-in's
|
|
4191
|
+
* copy carries them only when it holds the scope to tag.
|
|
4192
|
+
*
|
|
4193
|
+
* `POST /galleries/{gallery_id}/duplicate`, needs `galleries:write`.
|
|
4194
|
+
*/
|
|
4195
|
+
duplicateGallery(args: {
|
|
4196
|
+
path: PluginApiOperations["duplicate_gallery"]["path"];
|
|
4197
|
+
body?: PluginApiOperations["duplicate_gallery"]["body"];
|
|
4198
|
+
}): Promise<PluginApiOperations["duplicate_gallery"]["answer"]>;
|
|
4199
|
+
/**
|
|
4200
|
+
* Copy it, with everything inside it, into an initiative: its own unless the
|
|
4201
|
+
* body names another. Read is enough to copy a template; anything else needs
|
|
4202
|
+
* write. The copy is shared as its source is while it stays in the same
|
|
4203
|
+
* initiative, and carries the tags its maker may set: an installed plug-in's
|
|
4204
|
+
* copy carries them only when it holds the scope to tag.
|
|
4205
|
+
*
|
|
4206
|
+
* `POST /wikis/{wiki_id}/duplicate`, needs `wikis:write`.
|
|
4207
|
+
*/
|
|
4208
|
+
duplicateWiki(args: {
|
|
4209
|
+
path: PluginApiOperations["duplicate_wiki"]["path"];
|
|
4210
|
+
body?: PluginApiOperations["duplicate_wiki"]["body"];
|
|
4211
|
+
}): Promise<PluginApiOperations["duplicate_wiki"]["answer"]>;
|
|
4212
|
+
/**
|
|
4213
|
+
* Titles for the command palette — a way to reach one thing quickly.
|
|
4214
|
+
*
|
|
4215
|
+
* `GET /search/suggest`, needs one of `calendars:read`, `comments:read`, `counter_groups:read`, `dashboards:read`, `documents:read`, `galleries:read`, `posts:read`, `projects:read`, `queues:read`, `tags:read`, `wikis:read`.
|
|
4216
|
+
*/
|
|
4217
|
+
suggestCommunity(args: {
|
|
4218
|
+
query: PluginApiOperations["suggest_community"]["query"];
|
|
4219
|
+
}): Promise<PluginApiOperations["suggest_community"]["answer"]>;
|
|
4220
|
+
/**
|
|
4221
|
+
* List property definitions.
|
|
4222
|
+
*
|
|
4223
|
+
* `GET /property-definitions/`, needs `initiatives:read`.
|
|
4224
|
+
*/
|
|
4225
|
+
listPropertyDefinitions(args?: {
|
|
4226
|
+
query?: PluginApiOperations["list_property_definitions"]["query"];
|
|
4227
|
+
}): Promise<PluginApiOperations["list_property_definitions"]["answer"]>;
|
|
4228
|
+
/**
|
|
4229
|
+
* Replace the custom property values on one tool or sub-tool.
|
|
4230
|
+
*
|
|
4231
|
+
* `PUT /properties/{target}/{entity_id}`, needs the scope its `target` names.
|
|
4232
|
+
*/
|
|
4233
|
+
setProperties(args: {
|
|
4234
|
+
path: PluginApiOperations["set_properties"]["path"];
|
|
4235
|
+
body: PluginApiOperations["set_properties"]["body"];
|
|
4236
|
+
}): Promise<PluginApiOperations["set_properties"]["answer"]>;
|
|
4237
|
+
/**
|
|
4238
|
+
* Mark a thing finished with, and everything inside it. Idempotent: an
|
|
4239
|
+
* already-archived row keeps the stamp it has, so the date means when it was
|
|
4240
|
+
* archived, not when it was last asked about.
|
|
4241
|
+
*
|
|
4242
|
+
* `POST /archive/{entity_type}/{entity_id}`, needs the scope its `entity_type` names.
|
|
4243
|
+
*/
|
|
4244
|
+
archiveEntity(args: {
|
|
4245
|
+
path: PluginApiOperations["archive_entity"]["path"];
|
|
4246
|
+
}): Promise<PluginApiOperations["archive_entity"]["answer"]>;
|
|
4247
|
+
/**
|
|
4248
|
+
* Slim, searchable, paginated roster for typeahead/pickers.
|
|
4249
|
+
*
|
|
4250
|
+
* `GET /users/search`, needs `members:read`.
|
|
4251
|
+
*/
|
|
4252
|
+
searchUsers(args?: {
|
|
4253
|
+
query?: PluginApiOperations["search_users"]["query"];
|
|
4254
|
+
}): Promise<PluginApiOperations["search_users"]["answer"]>;
|
|
4255
|
+
/**
|
|
4256
|
+
* Serve the picture a member of this community uploaded.
|
|
4257
|
+
*
|
|
4258
|
+
* `GET /members/{person}/avatar/{digest}`, needs `members:read`.
|
|
4259
|
+
*/
|
|
4260
|
+
readMemberAvatar(args: {
|
|
4261
|
+
path: PluginApiOperations["read_member_avatar"]["path"];
|
|
4262
|
+
}): Promise<PluginApiOperations["read_member_avatar"]["answer"]>;
|
|
4263
|
+
}
|