arkitekt-next 0.7.8__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.

Potentially problematic release.


This version of arkitekt-next might be problematic. Click here for more details.

Files changed (119) hide show
  1. arkitekt_next/__init__.py +43 -0
  2. arkitekt_next/apps/__init__.py +3 -0
  3. arkitekt_next/apps/easy.py +99 -0
  4. arkitekt_next/apps/next.py +40 -0
  5. arkitekt_next/apps/qt.py +97 -0
  6. arkitekt_next/apps/service/__init__.py +3 -0
  7. arkitekt_next/apps/service/fakts.py +88 -0
  8. arkitekt_next/apps/service/fakts_next.py +79 -0
  9. arkitekt_next/apps/service/fakts_qt.py +82 -0
  10. arkitekt_next/apps/service/fluss_next.py +31 -0
  11. arkitekt_next/apps/service/grant_registry.py +27 -0
  12. arkitekt_next/apps/service/herre.py +24 -0
  13. arkitekt_next/apps/service/herre_qt.py +57 -0
  14. arkitekt_next/apps/service/kabinet.py +31 -0
  15. arkitekt_next/apps/service/mikro_next.py +81 -0
  16. arkitekt_next/apps/service/rekuest_next.py +53 -0
  17. arkitekt_next/apps/service/unlok_next.py +32 -0
  18. arkitekt_next/apps/types.py +53 -0
  19. arkitekt_next/builders.py +264 -0
  20. arkitekt_next/cli/__init__.py +0 -0
  21. arkitekt_next/cli/commands/call/__init__.py +0 -0
  22. arkitekt_next/cli/commands/call/local.py +132 -0
  23. arkitekt_next/cli/commands/call/main.py +22 -0
  24. arkitekt_next/cli/commands/call/remote.py +90 -0
  25. arkitekt_next/cli/commands/gen/__init__.py +0 -0
  26. arkitekt_next/cli/commands/gen/compile.py +45 -0
  27. arkitekt_next/cli/commands/gen/init.py +122 -0
  28. arkitekt_next/cli/commands/gen/main.py +29 -0
  29. arkitekt_next/cli/commands/gen/watch.py +32 -0
  30. arkitekt_next/cli/commands/init/__init__.py +0 -0
  31. arkitekt_next/cli/commands/init/main.py +194 -0
  32. arkitekt_next/cli/commands/inspect/__init__.py +0 -0
  33. arkitekt_next/cli/commands/inspect/definitions.py +53 -0
  34. arkitekt_next/cli/commands/inspect/main.py +22 -0
  35. arkitekt_next/cli/commands/inspect/variables.py +92 -0
  36. arkitekt_next/cli/commands/manifest/__init__.py +0 -0
  37. arkitekt_next/cli/commands/manifest/inspect.py +42 -0
  38. arkitekt_next/cli/commands/manifest/main.py +25 -0
  39. arkitekt_next/cli/commands/manifest/scopes.py +155 -0
  40. arkitekt_next/cli/commands/manifest/version.py +147 -0
  41. arkitekt_next/cli/commands/manifest/wizard.py +94 -0
  42. arkitekt_next/cli/commands/port/__init__.py +0 -0
  43. arkitekt_next/cli/commands/port/build.py +231 -0
  44. arkitekt_next/cli/commands/port/init.py +82 -0
  45. arkitekt_next/cli/commands/port/main.py +31 -0
  46. arkitekt_next/cli/commands/port/publish.py +102 -0
  47. arkitekt_next/cli/commands/port/stage.py +59 -0
  48. arkitekt_next/cli/commands/port/utils.py +47 -0
  49. arkitekt_next/cli/commands/port/validate.py +78 -0
  50. arkitekt_next/cli/commands/port/wizard.py +329 -0
  51. arkitekt_next/cli/commands/run/__init__.py +0 -0
  52. arkitekt_next/cli/commands/run/dev.py +349 -0
  53. arkitekt_next/cli/commands/run/main.py +22 -0
  54. arkitekt_next/cli/commands/run/prod.py +57 -0
  55. arkitekt_next/cli/commands/run/utils.py +10 -0
  56. arkitekt_next/cli/commands/server/__init__.py +0 -0
  57. arkitekt_next/cli/commands/server/down.py +56 -0
  58. arkitekt_next/cli/commands/server/init.py +74 -0
  59. arkitekt_next/cli/commands/server/inspect.py +59 -0
  60. arkitekt_next/cli/commands/server/main.py +33 -0
  61. arkitekt_next/cli/commands/server/open.py +66 -0
  62. arkitekt_next/cli/commands/server/remove.py +60 -0
  63. arkitekt_next/cli/commands/server/stop.py +56 -0
  64. arkitekt_next/cli/commands/server/up.py +70 -0
  65. arkitekt_next/cli/commands/server/utils.py +33 -0
  66. arkitekt_next/cli/configs/base.yaml +867 -0
  67. arkitekt_next/cli/constants.py +63 -0
  68. arkitekt_next/cli/dockerfiles/vanilla.dockerfile +8 -0
  69. arkitekt_next/cli/errors.py +4 -0
  70. arkitekt_next/cli/inspect.py +1 -0
  71. arkitekt_next/cli/io.py +255 -0
  72. arkitekt_next/cli/main.py +83 -0
  73. arkitekt_next/cli/options.py +166 -0
  74. arkitekt_next/cli/schemas/fluss.schema.graphql +2446 -0
  75. arkitekt_next/cli/schemas/gucker.schema.graphql +8908 -0
  76. arkitekt_next/cli/schemas/kabinet.schema.graphql +515 -0
  77. arkitekt_next/cli/schemas/kluster.schema.graphql +109 -0
  78. arkitekt_next/cli/schemas/konviktion.schema.graphql +70 -0
  79. arkitekt_next/cli/schemas/kuay.schema.graphql +356 -0
  80. arkitekt_next/cli/schemas/mikro.schema.graphql +8908 -0
  81. arkitekt_next/cli/schemas/mikro_next.schema.graphql +1639 -0
  82. arkitekt_next/cli/schemas/napari.schema.graphql +8908 -0
  83. arkitekt_next/cli/schemas/omero_ark.schema.graphql +100 -0
  84. arkitekt_next/cli/schemas/port.schema.graphql +356 -0
  85. arkitekt_next/cli/schemas/rekuest.schema.graphql +4630 -0
  86. arkitekt_next/cli/schemas/rekuest_next.schema.graphql +1159 -0
  87. arkitekt_next/cli/schemas/unlok.schema.graphql +1013 -0
  88. arkitekt_next/cli/templates/filter.py +26 -0
  89. arkitekt_next/cli/templates/simple.py +67 -0
  90. arkitekt_next/cli/texts.py +20 -0
  91. arkitekt_next/cli/types.py +365 -0
  92. arkitekt_next/cli/ui.py +111 -0
  93. arkitekt_next/cli/utils.py +15 -0
  94. arkitekt_next/cli/validators.py +17 -0
  95. arkitekt_next/cli/vars.py +39 -0
  96. arkitekt_next/cli/versions/v1.yaml +1 -0
  97. arkitekt_next/constants.py +6 -0
  98. arkitekt_next/model.py +110 -0
  99. arkitekt_next/qt/__init__.py +9 -0
  100. arkitekt_next/qt/assets/dark/gear.png +0 -0
  101. arkitekt_next/qt/assets/dark/green pulse.gif +0 -0
  102. arkitekt_next/qt/assets/dark/orange pulse.gif +0 -0
  103. arkitekt_next/qt/assets/dark/pink pulse.gif +0 -0
  104. arkitekt_next/qt/assets/dark/red pulse.gif +0 -0
  105. arkitekt_next/qt/assets/light/gear.png +0 -0
  106. arkitekt_next/qt/assets/light/green pulse.gif +0 -0
  107. arkitekt_next/qt/assets/light/orange pulse.gif +0 -0
  108. arkitekt_next/qt/assets/light/pink pulse.gif +0 -0
  109. arkitekt_next/qt/assets/light/red pulse.gif +0 -0
  110. arkitekt_next/qt/magic_bar.py +545 -0
  111. arkitekt_next/qt/utils.py +30 -0
  112. arkitekt_next/service_registry.py +51 -0
  113. arkitekt_next/tqdm.py +43 -0
  114. arkitekt_next/utils.py +38 -0
  115. arkitekt_next-0.7.8.dist-info/LICENSE +21 -0
  116. arkitekt_next-0.7.8.dist-info/METADATA +155 -0
  117. arkitekt_next-0.7.8.dist-info/RECORD +119 -0
  118. arkitekt_next-0.7.8.dist-info/WHEEL +4 -0
  119. arkitekt_next-0.7.8.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,515 @@
1
+ """Make string uppercase"""
2
+ directive @upper on FIELD
3
+
4
+ directive @replace(old: String!, new: String!) on FIELD
5
+
6
+ """Make get stuff uppercase"""
7
+ directive @relation(on: String!) on FIELD
8
+
9
+ """ A selector is a way to select a release"""
10
+ interface Selector {
11
+ type: String!
12
+ required: Boolean!
13
+ }
14
+
15
+ """ A selector is a way to select a release"""
16
+ type CudaSelector implements Selector {
17
+ type: String!
18
+ required: Boolean!
19
+
20
+ """The minimum compute capability"""
21
+ computeCapability: String!
22
+ }
23
+
24
+ """ A selector is a way to select a release"""
25
+ type CPUSelector implements Selector {
26
+ type: String!
27
+ required: Boolean!
28
+ min: Int!
29
+ frequency: Int
30
+ }
31
+
32
+ type SliderAssignWidget implements AssignWidget {
33
+ kind: AssignWidgetKind!
34
+ min: Int
35
+ max: Int
36
+ }
37
+
38
+ interface AssignWidget {
39
+ kind: AssignWidgetKind!
40
+ }
41
+
42
+ enum AssignWidgetKind {
43
+ SEARCH
44
+ CHOICE
45
+ SLIDER
46
+ CUSTOM
47
+ STRING
48
+ }
49
+
50
+ type ChoiceAssignWidget implements AssignWidget {
51
+ kind: AssignWidgetKind!
52
+ choices: [Choice!]
53
+ }
54
+
55
+ type Choice {
56
+ label: String!
57
+ value: String!
58
+ description: String
59
+ }
60
+
61
+ type SearchAssignWidget implements AssignWidget {
62
+ kind: AssignWidgetKind!
63
+ query: String!
64
+ ward: String!
65
+ }
66
+
67
+ type CustomReturnWidget implements ReturnWidget {
68
+ kind: ReturnWidgetKind!
69
+ hook: String!
70
+ ward: String!
71
+ }
72
+
73
+ interface ReturnWidget {
74
+ kind: ReturnWidgetKind!
75
+ }
76
+
77
+ enum ReturnWidgetKind {
78
+ CHOICE
79
+ CUSTOM
80
+ }
81
+
82
+ type ChoiceReturnWidget implements ReturnWidget {
83
+ kind: ReturnWidgetKind!
84
+ choices: [Choice!]
85
+ }
86
+
87
+ type StringAssignWidget implements AssignWidget {
88
+ kind: AssignWidgetKind!
89
+ placeholder: String!
90
+ asParagraph: Boolean!
91
+ }
92
+
93
+ type CustomAssignWidget implements AssignWidget {
94
+ kind: AssignWidgetKind!
95
+ hook: String!
96
+ ward: String!
97
+ }
98
+
99
+ type CustomEffect implements Effect {
100
+ dependencies: [EffectDependency!]!
101
+ kind: String!
102
+ hook: String!
103
+ ward: String!
104
+ }
105
+
106
+ interface Effect {
107
+ dependencies: [EffectDependency!]!
108
+ kind: String!
109
+ }
110
+
111
+ type EffectDependency {
112
+ condition: LogicalCondition!
113
+ key: String!
114
+ value: String!
115
+ }
116
+
117
+ enum LogicalCondition {
118
+ IS
119
+ IS_NOT
120
+ IN
121
+ }
122
+
123
+ type MessageEffect implements Effect {
124
+ dependencies: [EffectDependency!]!
125
+ kind: String!
126
+ message: String!
127
+ }
128
+
129
+ type Query {
130
+ """Return all dask clusters"""
131
+ githubRepo(id: ID!): GithubRepo!
132
+
133
+ """Return all dask clusters"""
134
+ definition(id: ID!): Definition!
135
+
136
+ """Return all dask clusters"""
137
+ release(id: ID!): Release!
138
+
139
+ """Return all dask clusters"""
140
+ flavour(id: ID!): Flavour!
141
+
142
+ """Return the currently logged in user"""
143
+ me: User!
144
+
145
+ """Return the currently logged in user"""
146
+ bestFlavour(release: ID!, environment: EnvironmentInput!): Flavour!
147
+ flavours: [Flavour!]!
148
+ releases: [Release!]!
149
+ githubRepos(filters: GithubRepoFilter, pagination: OffsetPaginationInput): [GithubRepo!]!
150
+ definitions(pagination: OffsetPaginationInput): [Definition!]!
151
+ pods: [Pod!]!
152
+ }
153
+
154
+ """A user of the bridge server. Maps to an authentikate user"""
155
+ type GithubRepo {
156
+ id: ID!
157
+ name: String!
158
+ repo: String!
159
+ branch: String!
160
+ user: String!
161
+ flavours: [Flavour!]!
162
+ }
163
+
164
+ """A user of the bridge server. Maps to an authentikate user"""
165
+ type Flavour {
166
+ id: ID!
167
+ name: String!
168
+ description: String!
169
+ logo: String
170
+ originalLogo: String
171
+ entrypoint: String!
172
+ image: String!
173
+ release: Release!
174
+ deployments: [Deployment!]!
175
+ selectors: [Selector!]!
176
+ }
177
+
178
+ """A user of the bridge server. Maps to an authentikate user"""
179
+ type Release {
180
+ id: ID!
181
+ version: String!
182
+ app: App!
183
+ scopes: [String!]!
184
+ logo: String
185
+
186
+ """The original logo url"""
187
+ originalLogo: String
188
+ entrypoint: String!
189
+ flavours: [Flavour!]!
190
+
191
+ """Is this release deployed"""
192
+ installed: Boolean!
193
+
194
+ """Is this release deployed"""
195
+ deployments: [Deployment!]!
196
+
197
+ """Is this release deployed"""
198
+ description: String!
199
+
200
+ """Is this release deployed"""
201
+ colour: String!
202
+ }
203
+
204
+ """A user of the bridge server. Maps to an authentikate user"""
205
+ type App {
206
+ id: ID!
207
+ identifier: String!
208
+ }
209
+
210
+ """A user of the bridge server. Maps to an authentikate user"""
211
+ type Deployment {
212
+ id: ID!
213
+ flavour: Flavour!
214
+ installer: User!
215
+ apiToken: String!
216
+ backend: Backend!
217
+ }
218
+
219
+ """A user of the bridge server. Maps to an authentikate user"""
220
+ type User {
221
+ id: ID!
222
+ sub: String!
223
+
224
+ """Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."""
225
+ username: String!
226
+ email: String!
227
+ password: String!
228
+ }
229
+
230
+ """A user of the bridge server. Maps to an authentikate user"""
231
+ type Backend {
232
+ id: ID!
233
+ user: User!
234
+ client: Client!
235
+ }
236
+
237
+ """A user of the bridge server. Maps to an authentikate user"""
238
+ type Client {
239
+ id: ID!
240
+ identifier: String!
241
+ }
242
+
243
+ """
244
+ Nodes are abstraction of RPC Tasks. They provide a common API to deal with creating tasks.
245
+
246
+ See online Documentation
247
+ """
248
+ type Definition {
249
+ id: ID!
250
+
251
+ """The hash of the Node (completely unique)"""
252
+ hash: NodeHash!
253
+
254
+ """The cleartext name of this Node"""
255
+ name: String!
256
+
257
+ """The kind of this Node. e.g. is it a function or a generator?"""
258
+ kind: NodeKind!
259
+
260
+ """A description for the Node"""
261
+ description: String
262
+
263
+ """The collections this Node belongs to"""
264
+ collections: [Collection!]!
265
+
266
+ """The flavours this Definition belongs to"""
267
+ flavours: [Flavour!]!
268
+
269
+ """
270
+ The scope of this Node. e.g. does the data it needs or produce live only in the scope of this Node or is it global or does it bridge data?
271
+ """
272
+ scope: NodeScope!
273
+
274
+ """The users that have pinned the position"""
275
+ isTestFor(pagination: OffsetPaginationInput): [Definition!]!
276
+
277
+ """The users that have pinned the position"""
278
+ tests(pagination: OffsetPaginationInput): [Definition!]!
279
+
280
+ """The protocols this Node implements (e.g. Predicate)"""
281
+ protocols: [Protocol!]!
282
+ definedAt: DateTime!
283
+
284
+ """Inputs for this Node"""
285
+ args: [Port!]!
286
+
287
+ """Outputs for this Node"""
288
+ returns: [Port!]!
289
+ }
290
+
291
+ """
292
+ The `ArrayLike` scalar type represents a reference to a store previously created by the user n a datalayer
293
+ """
294
+ scalar NodeHash
295
+
296
+ enum NodeKind {
297
+ FUNCTION
298
+ GENERATOR
299
+ }
300
+
301
+ """A user of the bridge server. Maps to an authentikate user"""
302
+ type Collection {
303
+ id: ID!
304
+
305
+ """The name of this Collection"""
306
+ name: String!
307
+
308
+ """A description for the Collection"""
309
+ description: String!
310
+ definedAt: DateTime!
311
+ }
312
+
313
+ """Date with time (isoformat)"""
314
+ scalar DateTime
315
+
316
+ enum NodeScope {
317
+ GLOBAL
318
+ LOCAL
319
+ BRIDGE_GLOBAL_TO_LOCAL
320
+ BRIDGE_LOCAL_TO_GLOBAL
321
+ }
322
+
323
+ input OffsetPaginationInput {
324
+ offset: Int! = 0
325
+ limit: Int! = -1
326
+ }
327
+
328
+ """A user of the bridge server. Maps to an authentikate user"""
329
+ type Protocol {
330
+ id: ID!
331
+
332
+ """The name of this Protocol"""
333
+ name: String!
334
+
335
+ """A description for the Protocol"""
336
+ description: String!
337
+ }
338
+
339
+ type Port {
340
+ key: String!
341
+ scope: PortScope!
342
+ label: String
343
+ kind: PortKind!
344
+ description: String
345
+ identifier: Identifier
346
+ nullable: Boolean!
347
+ effects: [Effect!]
348
+ default: AnyDefault
349
+ variants: [ChildPort!]
350
+ assignWidget: AssignWidget
351
+ returnWidget: ReturnWidget
352
+ child: ChildPort
353
+ groups: [String!]
354
+ }
355
+
356
+ enum PortScope {
357
+ GLOBAL
358
+ LOCAL
359
+ }
360
+
361
+ enum PortKind {
362
+ INT
363
+ STRING
364
+ STRUCTURE
365
+ LIST
366
+ BOOL
367
+ DICT
368
+ FLOAT
369
+ DATE
370
+ UNION
371
+ }
372
+
373
+ """
374
+ The `ArrayLike` scalar type represents a reference to a store previously created by the user n a datalayer
375
+ """
376
+ scalar Identifier
377
+
378
+ """
379
+ The `ArrayLike` scalar type represents a reference to a store previously created by the user n a datalayer
380
+ """
381
+ scalar AnyDefault
382
+
383
+ type ChildPort {
384
+ label: String
385
+ scope: PortScope!
386
+ kind: PortKind!
387
+ child: ChildPort
388
+ identifier: Identifier
389
+ nullable: Boolean!
390
+ default: AnyDefault
391
+ variants: [ChildPort!]
392
+ assignWidget: AssignWidget
393
+ returnWidget: ReturnWidget
394
+ }
395
+
396
+ """Which environment do you want to match against?"""
397
+ input EnvironmentInput {
398
+ containerType: ContainerType!
399
+ }
400
+
401
+ """The state of a dask cluster"""
402
+ enum ContainerType {
403
+ APPTAINER
404
+ DOCKER
405
+ }
406
+
407
+ """Filter for Dask Clusters"""
408
+ input GithubRepoFilter {
409
+ ids: [ID!] = null
410
+ search: String = null
411
+ }
412
+
413
+ """A user of the bridge server. Maps to an authentikate user"""
414
+ type Pod {
415
+ id: ID!
416
+ flavour: Flavour!
417
+ backend: Backend!
418
+ deployment: Deployment!
419
+ latestLogDump: LogDump!
420
+ podId: String!
421
+ status: PodStatus!
422
+ }
423
+
424
+ """The logs of a pod"""
425
+ type LogDump {
426
+ id: ID!
427
+ pod: Pod!
428
+ logs: String!
429
+ createdAt: DateTime!
430
+ }
431
+
432
+ """The state of a dask cluster"""
433
+ enum PodStatus {
434
+ PENDING
435
+ RUNNING
436
+ STOPPING
437
+ STOPPED
438
+ FAILED
439
+ UNKOWN
440
+ }
441
+
442
+ type Mutation {
443
+ """Create a new dask cluster on a bridge server"""
444
+ scanRepo(input: ScanRepoInput!): GithubRepo!
445
+
446
+ """Create a new Github repository on a bridge server"""
447
+ createGithubRepo(input: CreateGithupRepoInput!): GithubRepo!
448
+
449
+ """Create a new dask cluster on a bridge server"""
450
+ createDeployment(input: CreateDeploymentInput!): Deployment!
451
+
452
+ """Create a new dask cluster on a bridge server"""
453
+ updateDeployment(input: UpdateDeploymentInput!): Deployment!
454
+
455
+ """Create a new dask cluster on a bridge server"""
456
+ createPod(input: CreatePodInput!): Pod!
457
+
458
+ """Create a new dask cluster on a bridge server"""
459
+ updatePod(input: UpdatePodInput!): Pod!
460
+ }
461
+
462
+ """Create a dask cluster input"""
463
+ input ScanRepoInput {
464
+ id: String!
465
+ }
466
+
467
+ """Create a new Github repository input"""
468
+ input CreateGithupRepoInput {
469
+ name: String!
470
+ user: String!
471
+ branch: String!
472
+ repo: String!
473
+ autoScan: Boolean = true
474
+ }
475
+
476
+ """Create a new Github repository input"""
477
+ input CreateDeploymentInput {
478
+ instanceId: ID!
479
+ flavour: ID!
480
+ pulled: Boolean = false
481
+ }
482
+
483
+ """Create a new Github repository input"""
484
+ input UpdateDeploymentInput {
485
+ deployment: ID!
486
+ status: PodStatus!
487
+ }
488
+
489
+ """Create a new Github repository input"""
490
+ input CreatePodInput {
491
+ deployment: ID!
492
+ instanceId: String!
493
+ }
494
+
495
+ """Create a new Github repository input"""
496
+ input UpdatePodInput {
497
+ pod: ID!
498
+ status: PodStatus!
499
+ }
500
+
501
+ type Subscription {
502
+ """Create a new dask cluster on a bridge server"""
503
+ pod(podId: ID!): PodUpdateMessage!
504
+
505
+ """Create a new dask cluster on a bridge server"""
506
+ pods: PodUpdateMessage!
507
+ }
508
+
509
+ """An update on a pod"""
510
+ type PodUpdateMessage {
511
+ id: String!
512
+ status: String!
513
+ created: Boolean!
514
+ progress: Int
515
+ }
@@ -0,0 +1,109 @@
1
+ """Make string uppercase"""
2
+ directive @upper on FIELD
3
+
4
+ directive @replace(old: String!, new: String!) on FIELD
5
+
6
+ """Make get stuff uppercase"""
7
+ directive @relation(on: String!) on FIELD
8
+
9
+ type Query {
10
+ """Return all dask clusters"""
11
+ daskClusters(filters: ClusterFilter = null, pagination: OffsetPaginationInput = null): [DaskCluster!]!
12
+
13
+ """Return a dask cluster by id"""
14
+ daskCluster(id: ID!): DaskCluster!
15
+
16
+ """Return the currently logged in user"""
17
+ me: User!
18
+ }
19
+
20
+ """ A dask cluster"""
21
+ type DaskCluster {
22
+ """The name of the dask cluster"""
23
+ name: String!
24
+
25
+ """The id of the dask cluster"""
26
+ id: ID!
27
+
28
+ """A link to the dashboard for the dask cluster. Relative to the proxy."""
29
+ dashboardLink: String!
30
+
31
+ """A link to the scheduler for the dask cluster. Relative to the proxy."""
32
+ schedulerAddress: String!
33
+
34
+ """When the dask cluster was created"""
35
+ startTime: DateTime
36
+
37
+ """When the dask cluster was stopped"""
38
+ stopTime: DateTime
39
+
40
+ """The status of the dask cluster"""
41
+ status: DaskClusterState!
42
+
43
+ """The options used to create the dask cluster"""
44
+ options: UntypedOptions!
45
+
46
+ """The tags for the dask cluster (currently fake)"""
47
+ tags: [String!]!
48
+
49
+ """The user who created the dask cluster"""
50
+ security: Security
51
+ }
52
+
53
+ """Date with time (isoformat)"""
54
+ scalar DateTime
55
+
56
+ """The state of a dask cluster"""
57
+ enum DaskClusterState {
58
+ PENDING
59
+ RUNNING
60
+ STOPPING
61
+ STOPPED
62
+ FAILED
63
+ }
64
+
65
+ """
66
+ UntypedOptions represents an untyped options object returned by the Dask Gateway API.
67
+ """
68
+ scalar UntypedOptions
69
+
70
+ """ A security object for a dask cluster"""
71
+ type Security {
72
+ tlsKey: String!
73
+ tlsCert: String!
74
+ }
75
+
76
+ """Filter for Dask Clusters"""
77
+ input ClusterFilter {
78
+ ids: [ID!] = null
79
+ search: String = null
80
+ }
81
+
82
+ input OffsetPaginationInput {
83
+ offset: Int! = 0
84
+ limit: Int! = -1
85
+ }
86
+
87
+ """A user of the bridge server. Maps to an authentikate user"""
88
+ type User {
89
+ id: ID!
90
+ sub: String!
91
+
92
+ """Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."""
93
+ username: String!
94
+ email: String!
95
+ password: String!
96
+ }
97
+
98
+ type Mutation {
99
+ """Create a new dask cluster on a bridge server"""
100
+ createDaskCluster(input: CreateClusterInput!): DaskCluster!
101
+
102
+ """Stop a dask cluster"""
103
+ stopDaskCluster(id: ID!): ID!
104
+ }
105
+
106
+ """Create a dask cluster input"""
107
+ input CreateClusterInput {
108
+ name: String!
109
+ }
@@ -0,0 +1,70 @@
1
+ """Make string uppercase"""
2
+ directive @upper on FIELD
3
+
4
+ directive @replace(old: String!, new: String!) on FIELD
5
+
6
+ """Make get stuff uppercase"""
7
+ directive @relation(on: String!) on FIELD
8
+
9
+ type Query {
10
+ omeroUsers: [NotionIntegration!]!
11
+ databases(filters: ProjectFilter = null, pagination: OffsetPaginationInput = null): [Database!]!
12
+ users(filters: ProjectFilter = null, pagination: OffsetPaginationInput = null): [NotionUser!]!
13
+ me: User!
14
+ database(id: ID!): NotionUser!
15
+ user(id: ID!): Database!
16
+ }
17
+
18
+ type NotionIntegration {
19
+ id: ID!
20
+ notionToken: String!
21
+ user: User!
22
+ }
23
+
24
+ type User {
25
+ id: ID!
26
+ sub: String!
27
+ username: String!
28
+ email: String!
29
+ password: String!
30
+ integrations: [NotionIntegration!]!
31
+ }
32
+
33
+ type Database {
34
+ id: String!
35
+ createdTime: DateTime!
36
+ title: String!
37
+ description: String!
38
+ }
39
+
40
+ """Date with time (isoformat)"""
41
+ scalar DateTime
42
+
43
+ input ProjectFilter {
44
+ ids: [ID!]
45
+ search: String
46
+ }
47
+
48
+ input OffsetPaginationInput {
49
+ offset: Int! = 0
50
+ limit: Int! = -1
51
+ }
52
+
53
+ type NotionUser {
54
+ type: String!
55
+ person: Person
56
+ id: String!
57
+ }
58
+
59
+ type Person {
60
+ email: String
61
+ }
62
+
63
+ type Mutation {
64
+ ensureIntegration(input: EnsureIntegration!): NotionIntegration!
65
+ }
66
+
67
+ input EnsureIntegration {
68
+ token: String!
69
+ workspace: String!
70
+ }