superartifacts 0.1.0__py3-none-any.whl
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.
- superartifacts/__init__.py +39 -0
- superartifacts/_client.py +280 -0
- superartifacts/_errors.py +125 -0
- superartifacts/_generated/__init__.py +0 -0
- superartifacts/_generated/models.py +1353 -0
- superartifacts/_generated/resources.py +3286 -0
- superartifacts/_helpers.py +195 -0
- superartifacts/py.typed +0 -0
- superartifacts-0.1.0.dist-info/METADATA +241 -0
- superartifacts-0.1.0.dist-info/RECORD +12 -0
- superartifacts-0.1.0.dist-info/WHEEL +4 -0
- superartifacts-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,1353 @@
|
|
|
1
|
+
# Generated from sdks/openapi.json, spec hash f1886b4302fd534ad9d18552806f52f6cee192f699da87d92a6b2d59e51a3288. Do not edit.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Annotated, Any, Dict, List, Literal, Optional, Union
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Error1(BaseModel):
|
|
11
|
+
model_config = ConfigDict(
|
|
12
|
+
extra='allow',
|
|
13
|
+
)
|
|
14
|
+
code: Annotated[str, Field(description='Stable, machine-readable.')]
|
|
15
|
+
message: Annotated[str, Field(description='For a person.')]
|
|
16
|
+
fix: Optional[str] = None
|
|
17
|
+
retryAfterSeconds: Optional[int] = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class Error(BaseModel):
|
|
21
|
+
model_config = ConfigDict(
|
|
22
|
+
extra='allow',
|
|
23
|
+
)
|
|
24
|
+
error: Error1
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class V1WhoamiGetResponse(BaseModel):
|
|
28
|
+
pass
|
|
29
|
+
model_config = ConfigDict(
|
|
30
|
+
extra='allow',
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class V1HelpGetResponse(BaseModel):
|
|
35
|
+
pass
|
|
36
|
+
model_config = ConfigDict(
|
|
37
|
+
extra='allow',
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class V1WebhooksGetResponse(BaseModel):
|
|
42
|
+
pass
|
|
43
|
+
model_config = ConfigDict(
|
|
44
|
+
extra='allow',
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class V1WebhooksPostRequest(BaseModel):
|
|
49
|
+
model_config = ConfigDict(
|
|
50
|
+
extra='allow',
|
|
51
|
+
)
|
|
52
|
+
url: Annotated[Optional[str], Field(max_length=2048)] = None
|
|
53
|
+
description: Annotated[Optional[str], Field(max_length=500)] = None
|
|
54
|
+
eventTypes: Optional[List[str]] = None
|
|
55
|
+
agent: Annotated[
|
|
56
|
+
Optional[str],
|
|
57
|
+
Field(description='On create or list: me, or an owned agent handle.'),
|
|
58
|
+
] = None
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class V1WebhooksPostResponse(BaseModel):
|
|
62
|
+
pass
|
|
63
|
+
model_config = ConfigDict(
|
|
64
|
+
extra='allow',
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class V1WebhooksIdGetResponse(BaseModel):
|
|
69
|
+
pass
|
|
70
|
+
model_config = ConfigDict(
|
|
71
|
+
extra='allow',
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class V1WebhooksIdDeleteResponse(BaseModel):
|
|
76
|
+
pass
|
|
77
|
+
model_config = ConfigDict(
|
|
78
|
+
extra='allow',
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class V1WebhooksIdTestPostResponse(BaseModel):
|
|
83
|
+
pass
|
|
84
|
+
model_config = ConfigDict(
|
|
85
|
+
extra='allow',
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class V1WebhooksIdRotatePostResponse(BaseModel):
|
|
90
|
+
pass
|
|
91
|
+
model_config = ConfigDict(
|
|
92
|
+
extra='allow',
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class V1WebhookMessagesGetResponse(BaseModel):
|
|
97
|
+
pass
|
|
98
|
+
model_config = ConfigDict(
|
|
99
|
+
extra='allow',
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class V1ArtifactsGetResponse(BaseModel):
|
|
104
|
+
pass
|
|
105
|
+
model_config = ConfigDict(
|
|
106
|
+
extra='allow',
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class Instance(BaseModel):
|
|
111
|
+
model_config = ConfigDict(
|
|
112
|
+
extra='allow',
|
|
113
|
+
)
|
|
114
|
+
slug: str
|
|
115
|
+
values: Dict[str, Any]
|
|
116
|
+
title: Optional[str] = None
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class Template(BaseModel):
|
|
120
|
+
model_config = ConfigDict(
|
|
121
|
+
extra='allow',
|
|
122
|
+
)
|
|
123
|
+
slug: str
|
|
124
|
+
version: Annotated[Optional[int], Field(ge=1)] = None
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class File(BaseModel):
|
|
128
|
+
model_config = ConfigDict(
|
|
129
|
+
extra='allow',
|
|
130
|
+
)
|
|
131
|
+
path: Annotated[str, Field(description='Relative, no leading slash.')]
|
|
132
|
+
content: Annotated[str, Field(description='Base64 of the bytes.')]
|
|
133
|
+
contentType: Annotated[
|
|
134
|
+
Optional[str], Field(description='Default: from the extension.')
|
|
135
|
+
] = None
|
|
136
|
+
sha256: Annotated[
|
|
137
|
+
Optional[str], Field(description='Hex digest of the decoded bytes.')
|
|
138
|
+
] = None
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
class V1ArtifactsPostRequest(BaseModel):
|
|
142
|
+
model_config = ConfigDict(
|
|
143
|
+
extra='allow',
|
|
144
|
+
)
|
|
145
|
+
slug: Annotated[
|
|
146
|
+
str,
|
|
147
|
+
Field(
|
|
148
|
+
description='Kebab-case, 3–63 chars, under your key’s handle: it updates one there you are Editor on. Another workspace’s artifact: publish from its dashboard.'
|
|
149
|
+
),
|
|
150
|
+
]
|
|
151
|
+
prompt: Annotated[
|
|
152
|
+
Optional[str],
|
|
153
|
+
Field(description='Optional: the request it answers, on its card.'),
|
|
154
|
+
] = None
|
|
155
|
+
html: Annotated[
|
|
156
|
+
Optional[str], Field(description='Complete self-contained index.html.')
|
|
157
|
+
] = None
|
|
158
|
+
values: Annotated[
|
|
159
|
+
Optional[Dict[str, Any]],
|
|
160
|
+
Field(
|
|
161
|
+
description="Filled slots for `template`'s runtime, by slot name; `json` slots are schema-checked."
|
|
162
|
+
),
|
|
163
|
+
] = None
|
|
164
|
+
instances: Annotated[
|
|
165
|
+
Optional[List[Instance]],
|
|
166
|
+
Field(
|
|
167
|
+
description='Instead of `slug`/`values`: several pages of one `template`.',
|
|
168
|
+
max_length=10,
|
|
169
|
+
),
|
|
170
|
+
] = None
|
|
171
|
+
template: Annotated[
|
|
172
|
+
Optional[Template],
|
|
173
|
+
Field(
|
|
174
|
+
description='The template built from (provenance); required with `values` or `instances`.'
|
|
175
|
+
),
|
|
176
|
+
] = None
|
|
177
|
+
title: Annotated[
|
|
178
|
+
Optional[str], Field(description='Under 60 chars. Default: page <title>.')
|
|
179
|
+
] = None
|
|
180
|
+
description: Annotated[
|
|
181
|
+
Optional[str],
|
|
182
|
+
Field(description='Link-preview sentence, under 200 chars. Default: `prompt`.'),
|
|
183
|
+
] = None
|
|
184
|
+
kind: Annotated[
|
|
185
|
+
Optional[
|
|
186
|
+
Literal[
|
|
187
|
+
'page', 'slideshow', 'survey', 'tracker', 'video', 'tool', 'dashboard'
|
|
188
|
+
]
|
|
189
|
+
],
|
|
190
|
+
Field(
|
|
191
|
+
description='Default `page`. `dashboard` labels a page of mostly live data.'
|
|
192
|
+
),
|
|
193
|
+
] = None
|
|
194
|
+
collection: Annotated[
|
|
195
|
+
Optional[str],
|
|
196
|
+
Field(description='Gallery grouping label, not a content collection.'),
|
|
197
|
+
] = None
|
|
198
|
+
visibility: Annotated[
|
|
199
|
+
Optional[Literal['private', 'organization']],
|
|
200
|
+
Field(
|
|
201
|
+
description='From version 1. Default: the workspace default; public is set after.'
|
|
202
|
+
),
|
|
203
|
+
] = None
|
|
204
|
+
policy: Annotated[
|
|
205
|
+
Optional[Dict[str, Any]],
|
|
206
|
+
Field(
|
|
207
|
+
description='Data policy v1. Visitors submit to a sheet (perUser single, upsert, a field per question), a log (many, append-only) or a shared doc (shared, key). CMS rows: `collections`. See super_help data.'
|
|
208
|
+
),
|
|
209
|
+
] = None
|
|
210
|
+
triggers: Annotated[
|
|
211
|
+
Optional[List[Dict[str, Any]]],
|
|
212
|
+
Field(
|
|
213
|
+
description='Declared agent triggers: key, prompt, optional label, on, who, agent, input, when, once. At most 8 and 12 KiB; omitted on redeploy keeps the previous set.',
|
|
214
|
+
max_length=8,
|
|
215
|
+
),
|
|
216
|
+
] = None
|
|
217
|
+
dataset: Annotated[
|
|
218
|
+
Optional[str],
|
|
219
|
+
Field(description="With `values`: overrides the declaration's `dataset.key`."),
|
|
220
|
+
] = None
|
|
221
|
+
continues: Annotated[
|
|
222
|
+
Optional[str],
|
|
223
|
+
Field(description='With `values`: the dataset key this one succeeds.'),
|
|
224
|
+
] = None
|
|
225
|
+
uploads: Annotated[
|
|
226
|
+
Optional[str],
|
|
227
|
+
Field(description='uploadId from super_upload; its files ship with the page.'),
|
|
228
|
+
] = None
|
|
229
|
+
valuesFile: Annotated[
|
|
230
|
+
Optional[str],
|
|
231
|
+
Field(
|
|
232
|
+
description='With `uploads`: the staged JSON file to read `values` from.'
|
|
233
|
+
),
|
|
234
|
+
] = None
|
|
235
|
+
files: Annotated[
|
|
236
|
+
Optional[List[File]],
|
|
237
|
+
Field(
|
|
238
|
+
description='With `html`: small assets. ≤200, 5 MiB each, 10 MiB total, decoded.'
|
|
239
|
+
),
|
|
240
|
+
] = None
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
class V1ArtifactsPostResponse(BaseModel):
|
|
244
|
+
pass
|
|
245
|
+
model_config = ConfigDict(
|
|
246
|
+
extra='allow',
|
|
247
|
+
)
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
class V1ArtifactsArtifactGetResponse(BaseModel):
|
|
251
|
+
pass
|
|
252
|
+
model_config = ConfigDict(
|
|
253
|
+
extra='allow',
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
class V1ArtifactsArtifactPatchRequest(BaseModel):
|
|
258
|
+
model_config = ConfigDict(
|
|
259
|
+
extra='allow',
|
|
260
|
+
)
|
|
261
|
+
visibility: Annotated[
|
|
262
|
+
Optional[Literal['private', 'organization', 'public']],
|
|
263
|
+
Field(
|
|
264
|
+
description='private: Restricted (default). organization: anyone at the workspace. public: anyone with the link.'
|
|
265
|
+
),
|
|
266
|
+
] = None
|
|
267
|
+
collection: Annotated[
|
|
268
|
+
Optional[str],
|
|
269
|
+
Field(description='Gallery grouping label, ≤ 60 chars. Empty clears it.'),
|
|
270
|
+
] = None
|
|
271
|
+
phase: Annotated[
|
|
272
|
+
Optional[str],
|
|
273
|
+
Field(
|
|
274
|
+
description='The name a stream’s `revealAt` waits for; from then on that stream reads as public.'
|
|
275
|
+
),
|
|
276
|
+
] = None
|
|
277
|
+
notifyOnSubmission: Optional[bool] = None
|
|
278
|
+
triggersEnabled: Optional[bool] = None
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
class V1ArtifactsArtifactPatchResponse(BaseModel):
|
|
282
|
+
pass
|
|
283
|
+
model_config = ConfigDict(
|
|
284
|
+
extra='allow',
|
|
285
|
+
)
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
class V1ArtifactsArtifactDeleteResponse(BaseModel):
|
|
289
|
+
pass
|
|
290
|
+
model_config = ConfigDict(
|
|
291
|
+
extra='allow',
|
|
292
|
+
)
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
class V1ArtifactsArtifactFileGetResponse(BaseModel):
|
|
296
|
+
pass
|
|
297
|
+
model_config = ConfigDict(
|
|
298
|
+
extra='allow',
|
|
299
|
+
)
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
class V1ArtifactsArtifactOpenPostRequest(BaseModel):
|
|
303
|
+
model_config = ConfigDict(
|
|
304
|
+
extra='allow',
|
|
305
|
+
)
|
|
306
|
+
version: Annotated[Optional[int], Field(ge=1)] = None
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
class V1ArtifactsArtifactOpenPostResponse(BaseModel):
|
|
310
|
+
pass
|
|
311
|
+
model_config = ConfigDict(
|
|
312
|
+
extra='allow',
|
|
313
|
+
)
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
class V1ArtifactsArtifactVersionsVersionServePostResponse(BaseModel):
|
|
317
|
+
pass
|
|
318
|
+
model_config = ConfigDict(
|
|
319
|
+
extra='allow',
|
|
320
|
+
)
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
class V1ArtifactsArtifactLivePostResponse(BaseModel):
|
|
324
|
+
pass
|
|
325
|
+
model_config = ConfigDict(
|
|
326
|
+
extra='allow',
|
|
327
|
+
)
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
class V1ArtifactsArtifactLiveDeleteResponse(BaseModel):
|
|
331
|
+
pass
|
|
332
|
+
model_config = ConfigDict(
|
|
333
|
+
extra='allow',
|
|
334
|
+
)
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
class File1(BaseModel):
|
|
338
|
+
model_config = ConfigDict(
|
|
339
|
+
extra='allow',
|
|
340
|
+
)
|
|
341
|
+
path: str
|
|
342
|
+
bytes: Annotated[int, Field(description='Exact size.', ge=1)]
|
|
343
|
+
sha256: Annotated[Optional[str], Field(description='Hex; checked on upload.')] = (
|
|
344
|
+
None
|
|
345
|
+
)
|
|
346
|
+
contentType: Annotated[
|
|
347
|
+
Optional[str], Field(description='Default: from the extension.')
|
|
348
|
+
] = None
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
class V1UploadsPostRequest(BaseModel):
|
|
352
|
+
model_config = ConfigDict(
|
|
353
|
+
extra='allow',
|
|
354
|
+
)
|
|
355
|
+
files: List[File1]
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
class V1UploadsPostResponse(BaseModel):
|
|
359
|
+
pass
|
|
360
|
+
model_config = ConfigDict(
|
|
361
|
+
extra='allow',
|
|
362
|
+
)
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
class V1ArtifactsArtifactDataGetResponse(BaseModel):
|
|
366
|
+
pass
|
|
367
|
+
model_config = ConfigDict(
|
|
368
|
+
extra='allow',
|
|
369
|
+
)
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
class V1ArtifactsArtifactDataRowsPostRequest(BaseModel):
|
|
373
|
+
model_config = ConfigDict(
|
|
374
|
+
extra='allow',
|
|
375
|
+
)
|
|
376
|
+
stream: Optional[str] = None
|
|
377
|
+
rows: Annotated[Optional[List[Dict[str, Any]]], Field(max_length=50)] = None
|
|
378
|
+
ops: Annotated[Optional[List[Dict[str, Any]]], Field(max_length=50)] = None
|
|
379
|
+
atomic: Optional[bool] = None
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
class V1ArtifactsArtifactDataRowsPostResponse(BaseModel):
|
|
383
|
+
pass
|
|
384
|
+
model_config = ConfigDict(
|
|
385
|
+
extra='allow',
|
|
386
|
+
)
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
class V1DataGetResponse(BaseModel):
|
|
390
|
+
pass
|
|
391
|
+
model_config = ConfigDict(
|
|
392
|
+
extra='allow',
|
|
393
|
+
)
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
class Scope(BaseModel):
|
|
397
|
+
model_config = ConfigDict(
|
|
398
|
+
extra='allow',
|
|
399
|
+
)
|
|
400
|
+
series: Optional[str] = None
|
|
401
|
+
datasets: Annotated[Optional[List[str]], Field(max_length=20)] = None
|
|
402
|
+
tags: Annotated[Optional[List[str]], Field(description='All must match.')] = None
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
class ComputeItem(BaseModel):
|
|
406
|
+
model_config = ConfigDict(
|
|
407
|
+
extra='allow',
|
|
408
|
+
)
|
|
409
|
+
as_: Annotated[str, Field(alias='as')]
|
|
410
|
+
expr: Literal['a * b', 'a / b', 'a + b']
|
|
411
|
+
operands: Annotated[List[str], Field(max_length=2, min_length=2)]
|
|
412
|
+
unit: Optional[str] = None
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
class GroupBy(RootModel[str]):
|
|
416
|
+
root: Annotated[str, Field(pattern='^field:.+$')]
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
class Distributions(BaseModel):
|
|
420
|
+
model_config = ConfigDict(
|
|
421
|
+
extra='allow',
|
|
422
|
+
)
|
|
423
|
+
artifact: Annotated[str, Field(description='Artifact id or slug.')]
|
|
424
|
+
version: Annotated[Optional[int], Field(ge=1)] = None
|
|
425
|
+
group_by: Annotated[
|
|
426
|
+
Optional[str], Field(description='A choice, boolean or integer field.')
|
|
427
|
+
] = None
|
|
428
|
+
bucket: Optional[Literal['day', 'week']] = None
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
class V1DataQueryPostRequest(BaseModel):
|
|
432
|
+
model_config = ConfigDict(
|
|
433
|
+
extra='allow',
|
|
434
|
+
)
|
|
435
|
+
scope: Annotated[
|
|
436
|
+
Optional[Scope], Field(description='The union of the forms given.')
|
|
437
|
+
] = None
|
|
438
|
+
measures: Annotated[
|
|
439
|
+
Optional[List[str]],
|
|
440
|
+
Field(
|
|
441
|
+
description='Catalog measure names, not field names.',
|
|
442
|
+
max_length=6,
|
|
443
|
+
min_length=1,
|
|
444
|
+
),
|
|
445
|
+
] = None
|
|
446
|
+
agg: Optional[Literal['sum', 'avg', 'min', 'max', 'count', 'last']] = None
|
|
447
|
+
compute: Annotated[
|
|
448
|
+
Optional[List[ComputeItem]],
|
|
449
|
+
Field(
|
|
450
|
+
description='Derived columns, in order; operands name a measure or an earlier `as`.',
|
|
451
|
+
max_length=4,
|
|
452
|
+
),
|
|
453
|
+
] = None
|
|
454
|
+
filter: Annotated[
|
|
455
|
+
Optional[List[str]],
|
|
456
|
+
Field(
|
|
457
|
+
description="ANDed 'field op value' clauses: 'reps >= 5', 'day in mon,tue', 'note is set'. Ops: = != > >= < <= in. Catalog fields only.",
|
|
458
|
+
max_length=8,
|
|
459
|
+
),
|
|
460
|
+
] = None
|
|
461
|
+
group_by: Annotated[
|
|
462
|
+
Optional[
|
|
463
|
+
List[Union[Literal['dataset', 'day', 'week', 'month', 'visitor'], GroupBy]]
|
|
464
|
+
],
|
|
465
|
+
Field(
|
|
466
|
+
description='One of dataset, day, week, month, visitor, or "field:{name}".',
|
|
467
|
+
max_length=2,
|
|
468
|
+
),
|
|
469
|
+
] = None
|
|
470
|
+
since: Annotated[
|
|
471
|
+
Optional[str], Field(description='ISO-8601 instant or window (7d, 24h).')
|
|
472
|
+
] = None
|
|
473
|
+
until: Optional[str] = None
|
|
474
|
+
limit: Annotated[Optional[int], Field(ge=1, le=500)] = None
|
|
475
|
+
distributions: Annotated[
|
|
476
|
+
Optional[Distributions],
|
|
477
|
+
Field(
|
|
478
|
+
description="One artifact's per-field distributions instead of a scoped query."
|
|
479
|
+
),
|
|
480
|
+
] = None
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
class V1DataQueryPostResponse(BaseModel):
|
|
484
|
+
pass
|
|
485
|
+
model_config = ConfigDict(
|
|
486
|
+
extra='allow',
|
|
487
|
+
)
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
class V1SchemaGetResponse(BaseModel):
|
|
491
|
+
pass
|
|
492
|
+
model_config = ConfigDict(
|
|
493
|
+
extra='allow',
|
|
494
|
+
)
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
class FieldModel(BaseModel):
|
|
498
|
+
model_config = ConfigDict(
|
|
499
|
+
extra='allow',
|
|
500
|
+
)
|
|
501
|
+
name: str
|
|
502
|
+
type: Annotated[
|
|
503
|
+
str,
|
|
504
|
+
Field(
|
|
505
|
+
description='text long_text rich_text email url phone color integer decimal rating measurement boolean date datetime time choice multi_choice json image video file reference reference_list'
|
|
506
|
+
),
|
|
507
|
+
]
|
|
508
|
+
label: Optional[str] = None
|
|
509
|
+
required: Optional[bool] = None
|
|
510
|
+
unique: Optional[bool] = None
|
|
511
|
+
pii: Annotated[
|
|
512
|
+
Literal['none', 'contact', 'sensitive', 'secret'],
|
|
513
|
+
Field(
|
|
514
|
+
description='contact: masked for non-owners. sensitive: encrypted, not queryable. secret: write-only.'
|
|
515
|
+
),
|
|
516
|
+
]
|
|
517
|
+
description: Optional[str] = None
|
|
518
|
+
rules: Annotated[
|
|
519
|
+
Optional[Dict[str, Any]],
|
|
520
|
+
Field(
|
|
521
|
+
description='minLength maxLength pattern; min max precision; scale; measure unit; after before; choices minChoices maxChoices; collection onDelete; maxItems; maxBytes.'
|
|
522
|
+
),
|
|
523
|
+
] = None
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
class Define(BaseModel):
|
|
527
|
+
model_config = ConfigDict(
|
|
528
|
+
extra='allow',
|
|
529
|
+
)
|
|
530
|
+
key: Annotated[
|
|
531
|
+
str,
|
|
532
|
+
Field(
|
|
533
|
+
description='Lowercase letters, digits, underscores; starts with a letter.'
|
|
534
|
+
),
|
|
535
|
+
]
|
|
536
|
+
name: Annotated[str, Field(description='1–80 chars.')]
|
|
537
|
+
description: Optional[str] = None
|
|
538
|
+
displayField: Annotated[
|
|
539
|
+
Optional[str], Field(description='Labels an entry. Default: first text field.')
|
|
540
|
+
] = None
|
|
541
|
+
fields: Annotated[List[FieldModel], Field(max_length=60)]
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
class V1SchemaPutRequest(BaseModel):
|
|
545
|
+
model_config = ConfigDict(
|
|
546
|
+
extra='allow',
|
|
547
|
+
)
|
|
548
|
+
define: Annotated[
|
|
549
|
+
Optional[Define],
|
|
550
|
+
Field(
|
|
551
|
+
description='A content collection definition: creates one, or replaces the one with this key.'
|
|
552
|
+
),
|
|
553
|
+
] = None
|
|
554
|
+
workspace: Annotated[
|
|
555
|
+
Optional[str], Field(description='Workspace handle. Omit for your own.')
|
|
556
|
+
] = None
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
class V1SchemaPutResponse(BaseModel):
|
|
560
|
+
pass
|
|
561
|
+
model_config = ConfigDict(
|
|
562
|
+
extra='allow',
|
|
563
|
+
)
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
class V1CollectionsCollectionEntriesGetResponse(BaseModel):
|
|
567
|
+
pass
|
|
568
|
+
model_config = ConfigDict(
|
|
569
|
+
extra='allow',
|
|
570
|
+
)
|
|
571
|
+
|
|
572
|
+
|
|
573
|
+
class V1CollectionsCollectionEntriesPostRequest(BaseModel):
|
|
574
|
+
model_config = ConfigDict(
|
|
575
|
+
extra='allow',
|
|
576
|
+
)
|
|
577
|
+
values: Annotated[
|
|
578
|
+
Optional[List[Dict[str, Any]]],
|
|
579
|
+
Field(description='Keyed by field name. An array writes a batch.'),
|
|
580
|
+
] = None
|
|
581
|
+
status: Annotated[
|
|
582
|
+
Optional[Literal['draft', 'published', 'archived']],
|
|
583
|
+
Field(description='Written entries. Default published.'),
|
|
584
|
+
] = None
|
|
585
|
+
workspace: Annotated[
|
|
586
|
+
Optional[str], Field(description='Workspace handle. Omit for your own.')
|
|
587
|
+
] = None
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
class V1CollectionsCollectionEntriesPostResponse(BaseModel):
|
|
591
|
+
pass
|
|
592
|
+
model_config = ConfigDict(
|
|
593
|
+
extra='allow',
|
|
594
|
+
)
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
class Header(BaseModel):
|
|
598
|
+
model_config = ConfigDict(
|
|
599
|
+
extra='allow',
|
|
600
|
+
)
|
|
601
|
+
name: Annotated[str, Field(description='e.g. authorization, x-api-key.')]
|
|
602
|
+
scheme: Annotated[
|
|
603
|
+
Optional[str],
|
|
604
|
+
Field(description='Prefix before the value, e.g. "Bearer ". May be empty.'),
|
|
605
|
+
] = None
|
|
606
|
+
|
|
607
|
+
|
|
608
|
+
class V1CollectionsCollectionEntriesEntryFieldsFieldUsePostRequest(BaseModel):
|
|
609
|
+
model_config = ConfigDict(
|
|
610
|
+
extra='allow',
|
|
611
|
+
)
|
|
612
|
+
method: Literal['GET', 'POST', 'PUT', 'PATCH', 'DELETE']
|
|
613
|
+
url: Annotated[
|
|
614
|
+
str,
|
|
615
|
+
Field(
|
|
616
|
+
description='https only; its host must be the approved one. Redirects are returned, never followed.'
|
|
617
|
+
),
|
|
618
|
+
]
|
|
619
|
+
headers: Annotated[
|
|
620
|
+
Optional[Dict[str, str]],
|
|
621
|
+
Field(
|
|
622
|
+
description='Sent as given, except host, authorization, cookie, proxy-* and the grant’s own header.'
|
|
623
|
+
),
|
|
624
|
+
] = None
|
|
625
|
+
body: Annotated[Optional[str], Field(description='≤64 KiB.')] = None
|
|
626
|
+
header: Annotated[
|
|
627
|
+
Optional[Header],
|
|
628
|
+
Field(
|
|
629
|
+
description='Where the value goes; asked for when no grant exists. The approved grant’s header wins.'
|
|
630
|
+
),
|
|
631
|
+
] = None
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
class V1CollectionsCollectionEntriesEntryFieldsFieldUsePostResponse(BaseModel):
|
|
635
|
+
pass
|
|
636
|
+
model_config = ConfigDict(
|
|
637
|
+
extra='allow',
|
|
638
|
+
)
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
class V1TemplatesGetResponse(BaseModel):
|
|
642
|
+
pass
|
|
643
|
+
model_config = ConfigDict(
|
|
644
|
+
extra='allow',
|
|
645
|
+
)
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
class UseCase(BaseModel):
|
|
649
|
+
model_config = ConfigDict(
|
|
650
|
+
extra='allow',
|
|
651
|
+
)
|
|
652
|
+
title: Annotated[str, Field(max_length=80)]
|
|
653
|
+
prompt: Annotated[str, Field(max_length=280)]
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
class Slot(BaseModel):
|
|
657
|
+
model_config = ConfigDict(
|
|
658
|
+
extra='allow',
|
|
659
|
+
)
|
|
660
|
+
name: str
|
|
661
|
+
type: str
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
class Spec(BaseModel):
|
|
665
|
+
model_config = ConfigDict(
|
|
666
|
+
extra='allow',
|
|
667
|
+
)
|
|
668
|
+
slots: Annotated[
|
|
669
|
+
Optional[List[Slot]],
|
|
670
|
+
Field(
|
|
671
|
+
description='The fill schema, an array: [{"name": "headline", "type": "text", "required": true, "max": 120}].'
|
|
672
|
+
),
|
|
673
|
+
] = None
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
class File2(BaseModel):
|
|
677
|
+
model_config = ConfigDict(
|
|
678
|
+
extra='allow',
|
|
679
|
+
)
|
|
680
|
+
path: str
|
|
681
|
+
text: Annotated[
|
|
682
|
+
Optional[str],
|
|
683
|
+
Field(description='UTF-8 text, base64-ed for you. Send `text` or `content`.'),
|
|
684
|
+
] = None
|
|
685
|
+
content: Annotated[
|
|
686
|
+
Optional[str], Field(description='Base64 of the bytes, for binaries.')
|
|
687
|
+
] = None
|
|
688
|
+
contentType: Optional[str] = None
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
class Companion(BaseModel):
|
|
692
|
+
model_config = ConfigDict(
|
|
693
|
+
extra='allow',
|
|
694
|
+
)
|
|
695
|
+
role: Annotated[str, Field(description='Kebab-case, unique, not "primary".')]
|
|
696
|
+
title: str
|
|
697
|
+
description: Optional[str] = None
|
|
698
|
+
kind: Optional[
|
|
699
|
+
Literal['page', 'slideshow', 'survey', 'tracker', 'video', 'tool', 'dashboard']
|
|
700
|
+
] = None
|
|
701
|
+
visibility: Annotated[
|
|
702
|
+
Optional[Literal['inherit', 'private', 'public']],
|
|
703
|
+
Field(description='Default inherit: the primary’s.'),
|
|
704
|
+
] = None
|
|
705
|
+
declaration: Annotated[
|
|
706
|
+
Optional[Dict[str, Any]], Field(description='This part’s policy, or omit.')
|
|
707
|
+
] = None
|
|
708
|
+
slots: Annotated[
|
|
709
|
+
Optional[List[str]],
|
|
710
|
+
Field(description='Slot names whose values this part gets. Default all.'),
|
|
711
|
+
] = None
|
|
712
|
+
files: Annotated[
|
|
713
|
+
List[File2],
|
|
714
|
+
Field(
|
|
715
|
+
description='Runtime files, `index.html` required. Omitting them on a revision drops the runtime from that new draft version only.'
|
|
716
|
+
),
|
|
717
|
+
]
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
class V1TemplatesPostRequest(BaseModel):
|
|
721
|
+
model_config = ConfigDict(
|
|
722
|
+
extra='allow',
|
|
723
|
+
)
|
|
724
|
+
slug: Annotated[str, Field(description='Kebab-case, 3–64 chars. Permanent.')]
|
|
725
|
+
title: str
|
|
726
|
+
description: str
|
|
727
|
+
kind: Annotated[
|
|
728
|
+
Optional[
|
|
729
|
+
Literal[
|
|
730
|
+
'page', 'slideshow', 'survey', 'tracker', 'video', 'tool', 'dashboard'
|
|
731
|
+
]
|
|
732
|
+
],
|
|
733
|
+
Field(
|
|
734
|
+
description='`dashboard`: a page that mostly shows live data — a label, not a capability.'
|
|
735
|
+
),
|
|
736
|
+
] = None
|
|
737
|
+
jobs: Annotated[
|
|
738
|
+
Optional[
|
|
739
|
+
List[
|
|
740
|
+
Literal[
|
|
741
|
+
'track',
|
|
742
|
+
'collect',
|
|
743
|
+
'present',
|
|
744
|
+
'report',
|
|
745
|
+
'monitor',
|
|
746
|
+
'prove',
|
|
747
|
+
'document',
|
|
748
|
+
'explain',
|
|
749
|
+
'plan',
|
|
750
|
+
'decide',
|
|
751
|
+
'review',
|
|
752
|
+
'learn',
|
|
753
|
+
'prototype',
|
|
754
|
+
'announce',
|
|
755
|
+
'compute',
|
|
756
|
+
'curate',
|
|
757
|
+
'coordinate',
|
|
758
|
+
'play',
|
|
759
|
+
]
|
|
760
|
+
]
|
|
761
|
+
],
|
|
762
|
+
Field(
|
|
763
|
+
description='What a person hires it for; the first is primary. Create default: from `kind`.',
|
|
764
|
+
max_length=2,
|
|
765
|
+
min_length=1,
|
|
766
|
+
),
|
|
767
|
+
] = None
|
|
768
|
+
audience: Annotated[
|
|
769
|
+
Optional[
|
|
770
|
+
List[
|
|
771
|
+
Literal[
|
|
772
|
+
'everyone',
|
|
773
|
+
'engineering',
|
|
774
|
+
'product',
|
|
775
|
+
'design',
|
|
776
|
+
'marketing',
|
|
777
|
+
'sales',
|
|
778
|
+
'ops',
|
|
779
|
+
'people',
|
|
780
|
+
'finance',
|
|
781
|
+
'founders',
|
|
782
|
+
'education',
|
|
783
|
+
'personal',
|
|
784
|
+
'community',
|
|
785
|
+
]
|
|
786
|
+
]
|
|
787
|
+
],
|
|
788
|
+
Field(
|
|
789
|
+
description='1–3, or `everyone` alone (the default).',
|
|
790
|
+
max_length=3,
|
|
791
|
+
min_length=1,
|
|
792
|
+
),
|
|
793
|
+
] = None
|
|
794
|
+
useCases: Annotated[
|
|
795
|
+
Optional[List[UseCase]],
|
|
796
|
+
Field(
|
|
797
|
+
description='Things to build from it; the build prompt draws on them.',
|
|
798
|
+
max_length=5,
|
|
799
|
+
),
|
|
800
|
+
] = None
|
|
801
|
+
installArchetype: Annotated[
|
|
802
|
+
Optional[Literal['scenarios', 'explainer', 'interview']],
|
|
803
|
+
Field(
|
|
804
|
+
description='After install: `scenarios` (default) offers three builds; `explainer` builds one from the sample; `interview` asks three questions first.'
|
|
805
|
+
),
|
|
806
|
+
] = None
|
|
807
|
+
installAfter: Annotated[
|
|
808
|
+
Optional[str],
|
|
809
|
+
Field(
|
|
810
|
+
description='Your note, appended to the build prompt as a suggestion.',
|
|
811
|
+
max_length=1500,
|
|
812
|
+
),
|
|
813
|
+
] = None
|
|
814
|
+
samplePublic: Annotated[
|
|
815
|
+
Optional[bool],
|
|
816
|
+
Field(description='The sample may appear on the public listing page.'),
|
|
817
|
+
] = None
|
|
818
|
+
category: Annotated[
|
|
819
|
+
Optional[
|
|
820
|
+
Literal[
|
|
821
|
+
'trackers',
|
|
822
|
+
'surveys',
|
|
823
|
+
'presentations',
|
|
824
|
+
'dashboards',
|
|
825
|
+
'documents',
|
|
826
|
+
'tools',
|
|
827
|
+
'games',
|
|
828
|
+
'other',
|
|
829
|
+
]
|
|
830
|
+
],
|
|
831
|
+
Field(description='Deprecated; read as `jobs` when `jobs` is absent.'),
|
|
832
|
+
] = None
|
|
833
|
+
spec: Annotated[
|
|
834
|
+
Spec,
|
|
835
|
+
Field(
|
|
836
|
+
description='`slots`, `declaration` (every instance’s policy), optional `comments`, `keywords` (searched), `examplePrompts`.'
|
|
837
|
+
),
|
|
838
|
+
]
|
|
839
|
+
guidance: Annotated[
|
|
840
|
+
Optional[str], Field(description='Optional notes for whoever fills it.')
|
|
841
|
+
] = None
|
|
842
|
+
prompt: Annotated[
|
|
843
|
+
Optional[str], Field(description='A prompt a person copies to ask for one.')
|
|
844
|
+
] = None
|
|
845
|
+
sample: Annotated[
|
|
846
|
+
Optional[Dict[str, Any]],
|
|
847
|
+
Field(description='`{"values": {…}}`, rendered in the preview.'),
|
|
848
|
+
] = None
|
|
849
|
+
demo: Annotated[
|
|
850
|
+
Optional[str],
|
|
851
|
+
Field(
|
|
852
|
+
description='Slug of your artifact to link as the demo (linked once public). "" clears it.'
|
|
853
|
+
),
|
|
854
|
+
] = None
|
|
855
|
+
files: Annotated[
|
|
856
|
+
Optional[List[File2]],
|
|
857
|
+
Field(
|
|
858
|
+
description='Runtime files, `index.html` required. Omitting them on a revision drops the runtime from that new draft version only.'
|
|
859
|
+
),
|
|
860
|
+
] = None
|
|
861
|
+
companions: Annotated[
|
|
862
|
+
Optional[List[Companion]],
|
|
863
|
+
Field(
|
|
864
|
+
description='Extra artifacts each publish makes at {slug}-{role}, same values (e.g. a stage for a host). Bind the primary with `source: {artifact: "@primary", streams}`. Released: add, never remove.',
|
|
865
|
+
max_length=3,
|
|
866
|
+
),
|
|
867
|
+
] = None
|
|
868
|
+
expectedVersion: Annotated[
|
|
869
|
+
Optional[int],
|
|
870
|
+
Field(
|
|
871
|
+
description='The version you revised. Present: revise. Absent: create.',
|
|
872
|
+
ge=1,
|
|
873
|
+
),
|
|
874
|
+
] = None
|
|
875
|
+
changeNote: Annotated[
|
|
876
|
+
Optional[str],
|
|
877
|
+
Field(description='Revisions: one line on why, for the changelog.'),
|
|
878
|
+
] = None
|
|
879
|
+
|
|
880
|
+
|
|
881
|
+
class V1TemplatesPostResponse(BaseModel):
|
|
882
|
+
pass
|
|
883
|
+
model_config = ConfigDict(
|
|
884
|
+
extra='allow',
|
|
885
|
+
)
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
class V1TemplatesSlugGetResponse(BaseModel):
|
|
889
|
+
pass
|
|
890
|
+
model_config = ConfigDict(
|
|
891
|
+
extra='allow',
|
|
892
|
+
)
|
|
893
|
+
|
|
894
|
+
|
|
895
|
+
class V1TemplatesSlugHistoryGetResponse(BaseModel):
|
|
896
|
+
pass
|
|
897
|
+
model_config = ConfigDict(
|
|
898
|
+
extra='allow',
|
|
899
|
+
)
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
class V1TemplatesSlugFeedbackGetResponse(BaseModel):
|
|
903
|
+
pass
|
|
904
|
+
model_config = ConfigDict(
|
|
905
|
+
extra='allow',
|
|
906
|
+
)
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
class V1TemplatesSlugActionsPostRequest(BaseModel):
|
|
910
|
+
model_config = ConfigDict(
|
|
911
|
+
extra='allow',
|
|
912
|
+
)
|
|
913
|
+
action: Literal[
|
|
914
|
+
'install', 'uninstall', 'rate', 'report', 'rollback', 'request_verification'
|
|
915
|
+
]
|
|
916
|
+
stars: Annotated[Optional[int], Field(ge=1, le=5)] = None
|
|
917
|
+
version: Annotated[Optional[int], Field(ge=1)] = None
|
|
918
|
+
kind: Annotated[
|
|
919
|
+
Optional[
|
|
920
|
+
Literal[
|
|
921
|
+
'spam', 'harmful', 'broken', 'misleading', 'pii', 'copyright', 'other'
|
|
922
|
+
]
|
|
923
|
+
],
|
|
924
|
+
Field(description='Report only.'),
|
|
925
|
+
] = None
|
|
926
|
+
reason: Annotated[
|
|
927
|
+
Optional[str], Field(description='Report only.', max_length=1000)
|
|
928
|
+
] = None
|
|
929
|
+
confirmedByPerson: Annotated[
|
|
930
|
+
Optional[bool],
|
|
931
|
+
Field(
|
|
932
|
+
description='Install only: true once the person agreed to this public template. Never set it unasked (`permission_required`).'
|
|
933
|
+
),
|
|
934
|
+
] = None
|
|
935
|
+
|
|
936
|
+
|
|
937
|
+
class V1TemplatesSlugActionsPostResponse(BaseModel):
|
|
938
|
+
pass
|
|
939
|
+
model_config = ConfigDict(
|
|
940
|
+
extra='allow',
|
|
941
|
+
)
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
class V1TemplatesSlugReleasePostRequest(BaseModel):
|
|
945
|
+
model_config = ConfigDict(
|
|
946
|
+
extra='allow',
|
|
947
|
+
)
|
|
948
|
+
version: Annotated[int, Field(ge=1)]
|
|
949
|
+
visibility: Annotated[
|
|
950
|
+
Optional[Literal['public', 'unlisted', 'workspace']],
|
|
951
|
+
Field(
|
|
952
|
+
description='`unlisted` (default): by slug. `public`: marketplace. `workspace`: team shelf, members only.'
|
|
953
|
+
),
|
|
954
|
+
] = None
|
|
955
|
+
demoConsent: Annotated[
|
|
956
|
+
Optional[bool],
|
|
957
|
+
Field(
|
|
958
|
+
description='Default false. Makes the demo artifact, and its data, public.'
|
|
959
|
+
),
|
|
960
|
+
] = None
|
|
961
|
+
sampleConsent: Annotated[
|
|
962
|
+
Optional[bool],
|
|
963
|
+
Field(
|
|
964
|
+
description='true: show the sample on the public listing. Omit: unchanged.'
|
|
965
|
+
),
|
|
966
|
+
] = None
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
class V1TemplatesSlugReleasePostResponse(BaseModel):
|
|
970
|
+
pass
|
|
971
|
+
model_config = ConfigDict(
|
|
972
|
+
extra='allow',
|
|
973
|
+
)
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
class V1ProjectsGetResponse(BaseModel):
|
|
977
|
+
pass
|
|
978
|
+
model_config = ConfigDict(
|
|
979
|
+
extra='allow',
|
|
980
|
+
)
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
class V1ProjectsPostRequest(BaseModel):
|
|
984
|
+
model_config = ConfigDict(
|
|
985
|
+
extra='allow',
|
|
986
|
+
)
|
|
987
|
+
title: Annotated[Optional[str], Field(description='≤ 120 chars.')] = None
|
|
988
|
+
artifacts: Annotated[
|
|
989
|
+
Optional[List[str]], Field(description='Artifact ids or slugs, in order.')
|
|
990
|
+
] = None
|
|
991
|
+
groupLabel: Annotated[
|
|
992
|
+
Optional[str], Field(description='Heading over these artifacts.')
|
|
993
|
+
] = None
|
|
994
|
+
visibility: Annotated[
|
|
995
|
+
Optional[Literal['private', 'organization', 'public']],
|
|
996
|
+
Field(
|
|
997
|
+
description='organization: anyone at the workspace. Widening over private needs confirm.'
|
|
998
|
+
),
|
|
999
|
+
] = None
|
|
1000
|
+
rule: Annotated[
|
|
1001
|
+
Optional[Dict[str, Any]],
|
|
1002
|
+
Field(description='See super_help projects. null: manual.'),
|
|
1003
|
+
] = None
|
|
1004
|
+
confirm: Annotated[
|
|
1005
|
+
Optional[bool],
|
|
1006
|
+
Field(
|
|
1007
|
+
description='Needed to delete; also to add a private artifact to a shared project, or widen one holding private ones (`confirm_private`).'
|
|
1008
|
+
),
|
|
1009
|
+
] = None
|
|
1010
|
+
workspace: Annotated[
|
|
1011
|
+
Optional[str], Field(description='Workspace handle. Omit for your own.')
|
|
1012
|
+
] = None
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
class V1ProjectsPostResponse(BaseModel):
|
|
1016
|
+
pass
|
|
1017
|
+
model_config = ConfigDict(
|
|
1018
|
+
extra='allow',
|
|
1019
|
+
)
|
|
1020
|
+
|
|
1021
|
+
|
|
1022
|
+
class V1ProjectsProjectGetResponse(BaseModel):
|
|
1023
|
+
pass
|
|
1024
|
+
model_config = ConfigDict(
|
|
1025
|
+
extra='allow',
|
|
1026
|
+
)
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
class Move(BaseModel):
|
|
1030
|
+
model_config = ConfigDict(
|
|
1031
|
+
extra='allow',
|
|
1032
|
+
)
|
|
1033
|
+
artifact: Annotated[
|
|
1034
|
+
str, Field(description='An artifact id or slug, or an item id.')
|
|
1035
|
+
]
|
|
1036
|
+
to: Annotated[int, Field(description='New position; 1 is first.', ge=1)]
|
|
1037
|
+
|
|
1038
|
+
|
|
1039
|
+
class V1ProjectsProjectPatchRequest(BaseModel):
|
|
1040
|
+
model_config = ConfigDict(
|
|
1041
|
+
extra='allow',
|
|
1042
|
+
)
|
|
1043
|
+
title: Annotated[Optional[str], Field(description='≤ 120 chars.')] = None
|
|
1044
|
+
visibility: Annotated[
|
|
1045
|
+
Optional[Literal['private', 'organization', 'public']],
|
|
1046
|
+
Field(
|
|
1047
|
+
description='organization: anyone at the workspace. Widening over private needs confirm.'
|
|
1048
|
+
),
|
|
1049
|
+
] = None
|
|
1050
|
+
order: Annotated[
|
|
1051
|
+
Optional[List[str]],
|
|
1052
|
+
Field(description='Every item once, in order: ids or slugs.'),
|
|
1053
|
+
] = None
|
|
1054
|
+
move: Optional[Move] = None
|
|
1055
|
+
rule: Annotated[
|
|
1056
|
+
Optional[Dict[str, Any]],
|
|
1057
|
+
Field(description='See super_help projects. null: manual.'),
|
|
1058
|
+
] = None
|
|
1059
|
+
collapsedGroups: Annotated[
|
|
1060
|
+
Optional[List[str]], Field(description='groupLabels shown folded. Whole set.')
|
|
1061
|
+
] = None
|
|
1062
|
+
confirm: Annotated[
|
|
1063
|
+
Optional[bool],
|
|
1064
|
+
Field(
|
|
1065
|
+
description='Needed to delete; also to add a private artifact to a shared project, or widen one holding private ones (`confirm_private`).'
|
|
1066
|
+
),
|
|
1067
|
+
] = None
|
|
1068
|
+
workspace: Annotated[
|
|
1069
|
+
Optional[str], Field(description='Workspace handle. Omit for your own.')
|
|
1070
|
+
] = None
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
class V1ProjectsProjectPatchResponse(BaseModel):
|
|
1074
|
+
pass
|
|
1075
|
+
model_config = ConfigDict(
|
|
1076
|
+
extra='allow',
|
|
1077
|
+
)
|
|
1078
|
+
|
|
1079
|
+
|
|
1080
|
+
class V1ProjectsProjectDeleteResponse(BaseModel):
|
|
1081
|
+
pass
|
|
1082
|
+
model_config = ConfigDict(
|
|
1083
|
+
extra='allow',
|
|
1084
|
+
)
|
|
1085
|
+
|
|
1086
|
+
|
|
1087
|
+
class V1ProjectsProjectArtifactsPostRequest(BaseModel):
|
|
1088
|
+
model_config = ConfigDict(
|
|
1089
|
+
extra='allow',
|
|
1090
|
+
)
|
|
1091
|
+
artifacts: Annotated[
|
|
1092
|
+
Optional[List[str]], Field(description='Artifact ids or slugs, in order.')
|
|
1093
|
+
] = None
|
|
1094
|
+
groupLabel: Annotated[
|
|
1095
|
+
Optional[str], Field(description='Heading over these artifacts.')
|
|
1096
|
+
] = None
|
|
1097
|
+
confirm: Annotated[
|
|
1098
|
+
Optional[bool],
|
|
1099
|
+
Field(
|
|
1100
|
+
description='Needed to delete; also to add a private artifact to a shared project, or widen one holding private ones (`confirm_private`).'
|
|
1101
|
+
),
|
|
1102
|
+
] = None
|
|
1103
|
+
workspace: Annotated[
|
|
1104
|
+
Optional[str], Field(description='Workspace handle. Omit for your own.')
|
|
1105
|
+
] = None
|
|
1106
|
+
|
|
1107
|
+
|
|
1108
|
+
class V1ProjectsProjectArtifactsPostResponse(BaseModel):
|
|
1109
|
+
pass
|
|
1110
|
+
model_config = ConfigDict(
|
|
1111
|
+
extra='allow',
|
|
1112
|
+
)
|
|
1113
|
+
|
|
1114
|
+
|
|
1115
|
+
class V1ProjectsProjectArtifactsRemoveDeleteResponse(BaseModel):
|
|
1116
|
+
pass
|
|
1117
|
+
model_config = ConfigDict(
|
|
1118
|
+
extra='allow',
|
|
1119
|
+
)
|
|
1120
|
+
|
|
1121
|
+
|
|
1122
|
+
class V1ArtifactsArtifactSharesPostRequest(BaseModel):
|
|
1123
|
+
model_config = ConfigDict(
|
|
1124
|
+
extra='allow',
|
|
1125
|
+
)
|
|
1126
|
+
emails: Annotated[List[str], Field(max_length=50, min_length=1)]
|
|
1127
|
+
role: Annotated[
|
|
1128
|
+
Optional[Literal['viewer', 'commenter', 'editor']],
|
|
1129
|
+
Field(
|
|
1130
|
+
description="Default viewer; editor for a workspace. An editor's key restores (super_artifact_set version), writes (super_data_write), publishes by slug in its workspace."
|
|
1131
|
+
),
|
|
1132
|
+
] = None
|
|
1133
|
+
artifactOnly: Annotated[
|
|
1134
|
+
Optional[bool], Field(description='Skip the team invite.')
|
|
1135
|
+
] = None
|
|
1136
|
+
|
|
1137
|
+
|
|
1138
|
+
class V1ArtifactsArtifactSharesPostResponse(BaseModel):
|
|
1139
|
+
pass
|
|
1140
|
+
model_config = ConfigDict(
|
|
1141
|
+
extra='allow',
|
|
1142
|
+
)
|
|
1143
|
+
|
|
1144
|
+
|
|
1145
|
+
class V1ProjectsProjectSharesPostRequest(BaseModel):
|
|
1146
|
+
model_config = ConfigDict(
|
|
1147
|
+
extra='allow',
|
|
1148
|
+
)
|
|
1149
|
+
emails: Annotated[List[str], Field(max_length=50, min_length=1)]
|
|
1150
|
+
role: Annotated[
|
|
1151
|
+
Optional[Literal['viewer', 'commenter', 'editor']],
|
|
1152
|
+
Field(
|
|
1153
|
+
description="Default viewer; editor for a workspace. An editor's key restores (super_artifact_set version), writes (super_data_write), publishes by slug in its workspace."
|
|
1154
|
+
),
|
|
1155
|
+
] = None
|
|
1156
|
+
confirm: Annotated[
|
|
1157
|
+
Optional[bool],
|
|
1158
|
+
Field(
|
|
1159
|
+
description='Project only: true shares a project that holds private artifacts (`confirm_private`).'
|
|
1160
|
+
),
|
|
1161
|
+
] = None
|
|
1162
|
+
|
|
1163
|
+
|
|
1164
|
+
class V1ProjectsProjectSharesPostResponse(BaseModel):
|
|
1165
|
+
pass
|
|
1166
|
+
model_config = ConfigDict(
|
|
1167
|
+
extra='allow',
|
|
1168
|
+
)
|
|
1169
|
+
|
|
1170
|
+
|
|
1171
|
+
class V1WorkspaceSharesPostRequest(BaseModel):
|
|
1172
|
+
model_config = ConfigDict(
|
|
1173
|
+
extra='allow',
|
|
1174
|
+
)
|
|
1175
|
+
emails: Annotated[List[str], Field(max_length=50, min_length=1)]
|
|
1176
|
+
role: Annotated[
|
|
1177
|
+
Optional[Literal['viewer', 'commenter', 'editor']],
|
|
1178
|
+
Field(
|
|
1179
|
+
description="Default viewer; editor for a workspace. An editor's key restores (super_artifact_set version), writes (super_data_write), publishes by slug in its workspace."
|
|
1180
|
+
),
|
|
1181
|
+
] = None
|
|
1182
|
+
workspace: Annotated[
|
|
1183
|
+
Optional[str], Field(description='A handle you administer, or "" for your own.')
|
|
1184
|
+
] = None
|
|
1185
|
+
|
|
1186
|
+
|
|
1187
|
+
class V1WorkspaceSharesPostResponse(BaseModel):
|
|
1188
|
+
pass
|
|
1189
|
+
model_config = ConfigDict(
|
|
1190
|
+
extra='allow',
|
|
1191
|
+
)
|
|
1192
|
+
|
|
1193
|
+
|
|
1194
|
+
class V1ArtifactsArtifactCommentsGetResponse(BaseModel):
|
|
1195
|
+
pass
|
|
1196
|
+
model_config = ConfigDict(
|
|
1197
|
+
extra='allow',
|
|
1198
|
+
)
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
class RespondItem(BaseModel):
|
|
1202
|
+
model_config = ConfigDict(
|
|
1203
|
+
extra='allow',
|
|
1204
|
+
)
|
|
1205
|
+
thread: Annotated[str, Field(description='Thread id, not a message id.')]
|
|
1206
|
+
body: Annotated[
|
|
1207
|
+
Optional[str], Field(description='Explain the outcome and published version.')
|
|
1208
|
+
] = None
|
|
1209
|
+
messageId: Annotated[Optional[str], Field(description='UUID reused on retry.')] = (
|
|
1210
|
+
None
|
|
1211
|
+
)
|
|
1212
|
+
resolve: Annotated[
|
|
1213
|
+
Optional[bool], Field(description='true resolves, false reopens.')
|
|
1214
|
+
] = None
|
|
1215
|
+
|
|
1216
|
+
|
|
1217
|
+
class V1ArtifactsArtifactCommentsResponsesPostRequest(BaseModel):
|
|
1218
|
+
model_config = ConfigDict(
|
|
1219
|
+
extra='allow',
|
|
1220
|
+
)
|
|
1221
|
+
respond: Annotated[Optional[List[RespondItem]], Field(max_length=20)] = None
|
|
1222
|
+
|
|
1223
|
+
|
|
1224
|
+
class V1ArtifactsArtifactCommentsResponsesPostResponse(BaseModel):
|
|
1225
|
+
pass
|
|
1226
|
+
model_config = ConfigDict(
|
|
1227
|
+
extra='allow',
|
|
1228
|
+
)
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
class ReactItem(BaseModel):
|
|
1232
|
+
model_config = ConfigDict(
|
|
1233
|
+
extra='allow',
|
|
1234
|
+
)
|
|
1235
|
+
thread: str
|
|
1236
|
+
message: str
|
|
1237
|
+
emoji: str
|
|
1238
|
+
on: Optional[bool] = None
|
|
1239
|
+
|
|
1240
|
+
|
|
1241
|
+
class V1ArtifactsArtifactCommentsReactionsPostRequest(BaseModel):
|
|
1242
|
+
model_config = ConfigDict(
|
|
1243
|
+
extra='allow',
|
|
1244
|
+
)
|
|
1245
|
+
react: Annotated[Optional[List[ReactItem]], Field(max_length=20)] = None
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
class V1ArtifactsArtifactCommentsReactionsPostResponse(BaseModel):
|
|
1249
|
+
pass
|
|
1250
|
+
model_config = ConfigDict(
|
|
1251
|
+
extra='allow',
|
|
1252
|
+
)
|
|
1253
|
+
|
|
1254
|
+
|
|
1255
|
+
class V1ArtifactsArtifactCommentsResolutionsPostRequest(BaseModel):
|
|
1256
|
+
model_config = ConfigDict(
|
|
1257
|
+
extra='allow',
|
|
1258
|
+
)
|
|
1259
|
+
resolve: Annotated[Optional[List[str]], Field(max_length=20)] = None
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
class V1ArtifactsArtifactCommentsResolutionsPostResponse(BaseModel):
|
|
1263
|
+
pass
|
|
1264
|
+
model_config = ConfigDict(
|
|
1265
|
+
extra='allow',
|
|
1266
|
+
)
|
|
1267
|
+
|
|
1268
|
+
|
|
1269
|
+
class V1ArtifactsArtifactCommentsScreenshotsScreenshotGetResponse(BaseModel):
|
|
1270
|
+
pass
|
|
1271
|
+
model_config = ConfigDict(
|
|
1272
|
+
extra='allow',
|
|
1273
|
+
)
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
class V1MentionsGetResponse(BaseModel):
|
|
1277
|
+
pass
|
|
1278
|
+
model_config = ConfigDict(
|
|
1279
|
+
extra='allow',
|
|
1280
|
+
)
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
class V1SignaturesGetResponse(BaseModel):
|
|
1284
|
+
pass
|
|
1285
|
+
model_config = ConfigDict(
|
|
1286
|
+
extra='allow',
|
|
1287
|
+
)
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
class Signer(BaseModel):
|
|
1291
|
+
model_config = ConfigDict(
|
|
1292
|
+
extra='allow',
|
|
1293
|
+
)
|
|
1294
|
+
name: str
|
|
1295
|
+
email: str
|
|
1296
|
+
party: Annotated[
|
|
1297
|
+
Optional[str], Field(description='Their role in the agreement, e.g. "Tenant".')
|
|
1298
|
+
] = None
|
|
1299
|
+
|
|
1300
|
+
|
|
1301
|
+
class V1SignaturesPostRequest(BaseModel):
|
|
1302
|
+
model_config = ConfigDict(
|
|
1303
|
+
extra='allow',
|
|
1304
|
+
)
|
|
1305
|
+
artifact: Annotated[Optional[str], Field(description='Artifact id or slug.')] = None
|
|
1306
|
+
version: Annotated[
|
|
1307
|
+
Optional[int],
|
|
1308
|
+
Field(description='The version to sign. Default: the published one.', ge=1),
|
|
1309
|
+
] = None
|
|
1310
|
+
signers: Annotated[Optional[List[Signer]], Field(max_length=10, min_length=1)] = (
|
|
1311
|
+
None
|
|
1312
|
+
)
|
|
1313
|
+
message: Annotated[
|
|
1314
|
+
Optional[str],
|
|
1315
|
+
Field(description='A note shown to every signer.', max_length=500),
|
|
1316
|
+
] = None
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
class V1SignaturesPostResponse(BaseModel):
|
|
1320
|
+
pass
|
|
1321
|
+
model_config = ConfigDict(
|
|
1322
|
+
extra='allow',
|
|
1323
|
+
)
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
class V1SignaturesRequestGetResponse(BaseModel):
|
|
1327
|
+
pass
|
|
1328
|
+
model_config = ConfigDict(
|
|
1329
|
+
extra='allow',
|
|
1330
|
+
)
|
|
1331
|
+
|
|
1332
|
+
|
|
1333
|
+
class V1SignaturesRequestRemindPostRequest(BaseModel):
|
|
1334
|
+
model_config = ConfigDict(
|
|
1335
|
+
extra='allow',
|
|
1336
|
+
)
|
|
1337
|
+
signer: Annotated[
|
|
1338
|
+
Optional[str], Field(description='A signer id, from status. For remind.')
|
|
1339
|
+
] = None
|
|
1340
|
+
|
|
1341
|
+
|
|
1342
|
+
class V1SignaturesRequestRemindPostResponse(BaseModel):
|
|
1343
|
+
pass
|
|
1344
|
+
model_config = ConfigDict(
|
|
1345
|
+
extra='allow',
|
|
1346
|
+
)
|
|
1347
|
+
|
|
1348
|
+
|
|
1349
|
+
class V1SignaturesRequestWithdrawPostResponse(BaseModel):
|
|
1350
|
+
pass
|
|
1351
|
+
model_config = ConfigDict(
|
|
1352
|
+
extra='allow',
|
|
1353
|
+
)
|