@elyra/pipeline-schemas 3.0.97 → 3.0.98

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.
@@ -1,991 +1,982 @@
1
1
 
2
2
  {
3
- "$schema": "https://json-schema.org/draft-04/schema#",
4
- "title": "Canvas Info",
5
- "description": "Canvas Info Flow Schema - for internal Common Canvas use.",
6
- "type": "object",
7
- "id": "https://api.dataplatform.ibm.com/schemas/common-canvas/canvas-info/canvas-info-v3-schema.json",
8
- "properties": {
9
- "doc_type": {
10
- "description": "Document type",
11
- "type": "string"
12
- },
13
- "version": {
14
- "description": "Canvas info flow schema version",
15
- "enum": [
16
- "3.0"
17
- ]
18
- },
19
- "json_schema": {
20
- "description": "Refers to the JSON schema used to validate documents of this type",
21
- "enum": [
22
- "http://api.dataplatform.ibm.com/schemas/common-canvas/canvas-info/canvas-info-v3-schema.json",
23
- "https://api.dataplatform.ibm.com/schemas/common-canvas/canvas-info/canvas-info-v3-schema.json"
24
- ]
25
- },
26
- "open_with_tool": {
27
- "description": "Preferred authoring application",
28
- "type": "string"
29
- },
30
- "id": {
31
- "description": "Document identifier, GUID recommended",
32
- "type": "string"
33
- },
34
- "name": {
35
- "description": "User-defined name",
36
- "type": "string"
37
- },
38
- "description": {
39
- "description": "User-defined description",
40
- "type": "string"
41
- },
42
- "class_name": {
43
- "description": "CSS class name",
44
- "type": "string"
45
- },
46
- "parameters": {
47
- "description": "Parameters for the flow document",
48
- "type": "object",
49
- "properties": {},
50
- "additionalProperties": true
51
- },
52
- "primary_pipeline": {
53
- "description": "Reference to the primary (main) pipeline flow within the document",
54
- "type": "string"
55
- },
56
- "pipelines": {
57
- "description": "Array of pipelines",
58
- "type": "array",
59
- "minItems": 1,
60
- "items": {
61
- "$ref": "#/definitions/canvas_pipeline"
62
- },
63
- "uniqueItems": true
64
- },
65
- "schemas": {
66
- "description": "Array of data record schemas used in the document",
67
- "type": "array",
68
- "minItems": 0,
69
- "items": {
70
- "$ref": "https://api.dataplatform.ibm.com/schemas/common-pipeline/datarecord-metadata/datarecord-metadata-v3-schema.json#/definitions/record_schema"
71
- },
72
- "uniqueItems": true
73
- },
74
- "runtimes": {
75
- "description": "Array of runtime objects referred to in the document",
76
- "type": "array",
77
- "minItems": 0,
78
- "items": {
79
- "$ref": "./pipeline-flow-v3-schema.json#/definitions/runtime_def"
80
- },
81
- "uniqueItems": true
82
- },
83
- "external_paramsets": {
84
- "description": "Array of parameter set references",
85
- "type": "array",
86
- "minItems": 0,
87
- "items": {
88
- "$ref": "https://api.dataplatform.ibm.com/schemas/common-pipeline/parameters/parametersets-v3-schema.json#/definitions/paramset_ref"
89
- },
90
- "uniqueItems": true
91
- },
92
- "app_data": {
93
- "description": "Object containing app-specific data",
94
- "type": "object",
95
- "additionalProperties": true
96
- }
97
- },
98
- "required": [
99
- "id",
100
- "doc_type",
101
- "version",
102
- "primary_pipeline",
103
- "pipelines"
104
- ],
105
- "additionalProperties": false,
106
- "definitions": {
107
- "canvas_pipeline": {
108
- "description": "Definition of a single canvas-info pipeline",
109
- "type": "object",
110
- "properties": {
111
- "id": {
112
- "description": "Unique identifier for this canvas-info pipeline",
113
- "type": "string"
114
- },
115
- "description": {
116
- "description": "Description for this canvas-info pipeline",
117
- "type": "string"
118
- },
119
- "name": {
120
- "description": "User-readable for this canvas-info pipeline",
121
- "type": "string"
122
- },
123
- "runtime_ref": {
124
- "description": "Reference to the id of the runtime associated with the operations in the current pipeline",
125
- "type": "string"
126
- },
127
- "nodes": {
128
- "description": "Array of canvas nodes for this canvas pipeline",
129
- "type": "array",
130
- "minItems": 0,
131
- "items": {
132
- "$ref": "#/definitions/canvas_node"
133
- },
134
- "uniqueItems": true
135
- },
136
- "comments": {
137
- "description": "Array of canvas comments for this canvas pipeline",
138
- "type": "array",
139
- "minItems": 0,
140
- "items": {
141
- "$ref": "#/definitions/canvas_comment"
142
- },
143
- "uniqueItems": true
144
- },
145
- "links": {
146
- "description": "Array of canvas links for this canvas pipeline",
147
- "type": "array",
148
- "minItems": 0,
149
- "items": {
150
- "$ref": "#/definitions/canvas_link"
151
- },
152
- "uniqueItems": true
153
- },
154
- "parameters": {
155
- "description": "Parameters for this canvas-info pipeline",
156
- "type": "object",
157
- "properties": {},
158
- "additionalProperties": true
159
- },
160
- "zoom": {
161
- "description": "X/Y pan and scale amounts for the canvas.",
162
- "type": "object",
163
- "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/zoom_object_def"
164
- },
165
- "app_data": {
166
- "description": "Object containing app-specific data",
167
- "type": "object",
168
- "additionalProperties": true
169
- }
170
- },
171
- "required": [
172
- "id",
173
- "nodes"
174
- ],
175
- "additionalProperties": false
176
- },
177
- "canvas_node": {
178
- "oneOf": [
179
- {
180
- "$ref": "#/definitions/canvas_execution_node"
181
- },
182
- {
183
- "$ref": "#/definitions/canvas_supernode"
184
- },
185
- {
186
- "$ref": "#/definitions/canvas_binding_entry_node"
187
- },
188
- {
189
- "$ref": "#/definitions/canvas_binding_exit_node"
190
- },
191
- {
192
- "$ref": "#/definitions/canvas_model_node"
193
- }
194
- ]
195
- },
196
- "canvas_node_shared_properties": {
197
- "type": "object",
198
- "properties": {
199
- "id": {
200
- "description": "Unique identifier for canvas node within the current pipeline",
201
- "type": "string"
202
- },
203
- "label": {
204
- "description": "Label of this canvas node.",
205
- "type": "string"
206
- },
207
- "description": {
208
- "description": "Description of this canvas node.",
209
- "type": "string"
210
- },
211
- "class_name": {
212
- "description": "CSS class name - can be a space separated list of classes",
213
- "type": "string"
214
- },
215
- "style": {
216
- "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the node.",
217
- "type": ["string", "object"]
218
- },
219
- "image": {
220
- "description": "URL to image source. Although a data URL can be used to embed an image inline, it is not recommended. The 'image' property can also be a JSX object that displays an image using an <svg> element however, JSX images must be set programmatically and cannot be stringified into JSON.",
221
- "type": ["string", "object"]
222
- },
223
- "x_pos": {
224
- "description": "X coordinate position of the node on the canvas. Calculated by Common Canvas for automatically positioned nodes.",
225
- "type": "number"
226
- },
227
- "y_pos": {
228
- "description": "Y coordinate position of the node on the canvas. Calculated by Common Canvas for automatically positioned nodes.",
229
- "type": "number"
230
- },
231
- "height": {
232
- "description": "@readonly Height of the node calculated by Common Canvas based on what customization options are enabled.",
233
- "type": "number",
234
- "readOnly": true
235
- },
236
- "width": {
237
- "description": "@readonly Width of the node calculated by Common Canvas based on what customization options are enabled.",
238
- "type": "number",
239
- "readOnly": true
240
- },
241
- "isResized": {
242
- "description": "Indicates whether a node has been resized or not. If true, resizeWidth and resizeHeight are used for node display. If false, the default width and height are used.",
243
- "type": "boolean"
244
- },
245
- "resizeHeight": {
246
- "description": "Height of resized node. The node will be displayed with this height, when isResized is true, in preference to its default height.",
247
- "type": "number"
248
- },
249
- "resizeWidth": {
250
- "description": "Width of resized node. The node will be displayed with this width, when isResized is true, in preference to its default width.",
251
- "type": "number"
252
- },
253
- "attributes": {
254
- "description": "additional attributes",
255
- "type": "string"
256
- },
257
- "messages": {
258
- "description": "An array of messages for the node",
259
- "type": "array",
260
- "minItems": 0,
261
- "items": {
262
- "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/message_def"
263
- },
264
- "uniqueItems": true
265
- },
266
- "palette_image": {
267
- "description": "Image name for the node displayed in palette. If omitted the image from 'image' field will be used.",
268
- "type": "string"
269
- },
270
- "palette_class_name": {
271
- "description": "CSS class name applied to the <div> shown in palette for the node",
272
- "type": "string"
273
- },
274
- "palette_disabled": {
275
- "description": "Indicates whether the node in the palette is disabled. If true, prevents the node being dragged or double-clicked from palette.",
276
- "type": "boolean"
277
- },
278
- "decorations": {
279
- "description": "Array of decorations used to decorate nodes",
280
- "type": "array",
281
- "minItems": 0,
282
- "items": {
283
- "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/decoration_def"
284
- },
285
- "uniqueItems": true
286
- },
287
- "app_data": {
288
- "description": "Object containing app-specific data",
289
- "type": "object",
290
- "additionalProperties": true
291
- }
292
- },
293
- "additionalProperties": false,
294
- "required": [
295
- "id"
296
- ]
297
- },
298
- "canvas_execution_node": {
299
- "allOf": [
300
- {
301
- "description": "Definition of a single canvas execution node",
302
- "type": "object",
303
- "properties": {
304
- "type": {
305
- "description": "Node type - always 'execution_node'",
306
- "enum": [
307
- "execution_node"
308
- ]
309
- },
310
- "op": {
311
- "description": "Operator type identifier",
312
- "type": "string"
313
- },
314
- "ui_parameters": {
315
- "description": "UI only parameter values for the node",
316
- "type": "object",
317
- "properties": {},
318
- "additionalProperties": true
319
- },
320
- "inputs": {
321
- "$ref": "#/definitions/canvas_ports"
322
- },
323
- "outputs": {
324
- "$ref": "#/definitions/canvas_ports"
325
- },
326
- "parameters": {
327
- "description": "Input parameters for the operator",
328
- "type": "object",
329
- "properties": {},
330
- "additionalProperties": true
331
- },
332
- "runtime_ref": {
333
- "description": "Optional reference to the id of the runtime associated with the current node",
334
- "type": "string"
335
- }
336
- },
337
- "required": [
338
- "type",
339
- "op"
340
- ],
341
- "additionalProperties": false
342
- },
343
- { "$ref": "#/definitions/canvas_node_shared_properties" }
344
- ]
345
- },
346
- "canvas_supernode": {
347
- "allOf": [
348
- {
349
- "description": "Definition of a supernode which serves as the entry point for a sub-pipeline",
350
- "type": "object",
351
- "properties": {
352
- "type": {
353
- "description": "Node type - always 'super_node' for supernode elements",
354
- "enum": [
355
- "super_node"
356
- ]
357
- },
358
- "open_with_tool": {
359
- "description": "Name of the tool which can be used to view or edit the sub-flow for this supernode. The default is 'canvas'",
360
- "type": "string"
361
- },
362
- "subflow_ref": {
363
- "description": "Refers to the sub-flow associated with this supernode",
364
- "type": "object",
365
- "properties": {
366
- "url": {
367
- "description": "Reference to an external sub-flow. When not present the sub-flow is assumed to be in the current document. A value of 'app_defined' indicates a sub-flow identifier is present, but the controlling application will serve up the sub-pipeline in the form of a new pipeline-flow document (no sub-flow is present in the document).",
368
- "type": "string"
369
- },
370
- "pipeline_id_ref": {
371
- "description": "Sub-flow identifier reference",
372
- "type": "string"
373
- }
374
- },
375
- "required": [
376
- "pipeline_id_ref"
377
- ]
378
- },
379
- "is_expanded": {
380
- "description": "Indicates whether a supernode is shown in expanded state or as a regular node.",
381
- "type": "boolean"
382
- },
383
- "expanded_height": {
384
- "description": "Height of expanded supernode. If not provided an appropriate height is calculated.",
385
- "type": "number"
386
- },
387
- "expanded_width": {
388
- "description": "Width of expanded supernode. If not provided an appropriate width is calculated.",
389
- "type": "number"
390
- },
391
- "sub_pipelines": {
392
- "description": "An array of pipelines referenced when this node is a supernode. This field is only used when the supernode is in a palette or on the clipboard. It will be an empty array when the supernode references an external pipeline.",
393
- "type": "array",
394
- "minItems": 0,
395
- "uniqueItems": true
396
- },
397
- "ui_parameters": {
398
- "description": "UI only parameter values for the node",
399
- "type": "object",
400
- "properties": {},
401
- "additionalProperties": true
402
- },
403
- "inputs": {
404
- "$ref": "#/definitions/canvas_bound_ports"
405
- },
406
- "outputs": {
407
- "$ref": "#/definitions/canvas_bound_ports"
408
- },
409
- "parameters": {
410
- "description": "Input parameters for the supernode",
411
- "type": "object",
412
- "properties": {},
413
- "additionalProperties": true
414
- }
415
- },
416
- "required": [
417
- "type",
418
- "subflow_ref"
419
- ],
420
- "additionalProperties": false
421
- },
422
- { "$ref": "#/definitions/canvas_node_shared_properties" }
423
- ]
424
- },
425
- "canvas_binding_entry_node": {
426
- "allOf": [
427
- {
428
- "description": "Defines an entry point (source) for a pipeline. Bindings can be concrete: the concrete_binding element is present on the port; or bindings can be abstract: bindings are performed externally via configuration or a wrapper document.",
429
- "type": "object",
430
- "properties": {
431
- "type": {
432
- "description": "Node type - always 'binding' for binding elements",
433
- "enum": [
434
- "binding"
435
- ]
436
- },
437
- "outputs": {
438
- "$ref": "#/definitions/canvas_ports"
439
- },
440
- "connection": {
441
- "$ref": "./pipeline-connection-v3-schema.json#/definitions/common_pipeline_connection_def"
442
- },
443
- "data_asset": {
444
- "$ref": "./pipeline-connection-v3-schema.json#/definitions/common_pipeline_data_asset_def"
445
- },
446
- "op": {
447
- "description": "Binding node type identifier",
448
- "type": "string"
449
- },
450
- "ui_parameters": {
451
- "description": "UI only parameter values for the node",
452
- "type": "object",
453
- "properties": {},
454
- "additionalProperties": true
455
- },
456
- "parameters": {
457
- "description": "Parameters for the binding entry node",
458
- "type": "object",
459
- "properties": {},
460
- "additionalProperties": true
461
- }
462
- },
463
- "required": [
464
- "type",
465
- "outputs"
466
- ],
467
- "additionalProperties": false
468
- },
469
- { "$ref": "#/definitions/canvas_node_shared_properties" }
470
- ]
471
- },
472
- "canvas_binding_exit_node": {
473
- "allOf": [
474
- {
475
- "description": "Defines an exit point (sink) for a pipeline. Bindings can be concrete: the concrete_binding element is present on the port; or bindings can be abstract: bindings are performed externally via configuration or a wrapper document.",
476
- "type": "object",
477
- "properties": {
478
- "type": {
479
- "description": "Node type - always 'binding' for binding elements",
480
- "enum": [
481
- "binding"
482
- ]
483
- },
484
- "inputs": {
485
- "$ref": "#/definitions/canvas_ports"
486
- },
487
- "outputs": {
488
- "$ref": "#/definitions/canvas_ports"
489
- },
490
- "app_data": {
491
- "description": "Object containing app-specific data",
492
- "type": "object",
493
- "additionalProperties": true
494
- },
495
- "connection": {
496
- "$ref": "./pipeline-connection-v3-schema.json#/definitions/common_pipeline_connection_def"
497
- },
498
- "data_asset": {
499
- "$ref": "./pipeline-connection-v3-schema.json#/definitions/common_pipeline_data_asset_def"
500
- },
501
- "op": {
502
- "description": "Binding node type identifier",
503
- "type": "string"
504
- },
505
- "parameters": {
506
- "description": "Parameters for the binding exit node",
507
- "type": "object",
508
- "properties": {},
509
- "additionalProperties": true
510
- }
511
- },
512
- "required": [
513
- "type",
514
- "inputs"
515
- ],
516
- "additionalProperties": false
517
- },
518
- { "$ref": "#/definitions/canvas_node_shared_properties" }
519
- ]
520
- },
521
- "canvas_model_node": {
522
- "allOf": [
523
- {
524
- "description": "Definition of a single predictive model node",
525
- "type": "object",
526
- "properties": {
527
- "type": {
528
- "description": "Node type - always 'model_node' for model pipeline elements",
529
- "enum": [
530
- "model_node"
531
- ]
532
- },
533
- "model_ref": {
534
- "description": "Reference to the binary model",
535
- "type": "string"
536
- },
537
- "inputs": {
538
- "$ref": "#/definitions/canvas_ports"
539
- },
540
- "outputs": {
541
- "$ref": "#/definitions/canvas_ports"
542
- },
543
- "op": {
544
- "description": "Node type identifier of modeling node that created this model.",
545
- "type": "string"
546
- },
547
- "parameters": {
548
- "description": "Input parameters for the operator",
549
- "type": "object",
550
- "properties": {},
551
- "additionalProperties": true
552
- },
553
- "runtime_ref": {
554
- "description": "Reference to the runtime associated with the current node",
555
- "type": "string"
556
- }
557
- },
558
- "required": [
559
- "type",
560
- "inputs"
561
- ],
562
- "additionalProperties": false
563
- },
564
- { "$ref": "#/definitions/canvas_node_shared_properties" }
565
- ]
566
- },
567
- "canvas_ports": {
568
- "type": "array",
569
- "minItems": 0,
570
- "items": {
571
- "$ref": "#/definitions/canvas_port"
572
- },
573
- "uniqueItems": true
574
- },
575
- "canvas_port": {
576
- "description": "Port definition (input/output) on a node",
577
- "type": "object",
578
- "properties": {
579
- "id": {
580
- "description": "Unique identifier for the port",
581
- "type": "string"
582
- },
583
- "schema_ref": {
584
- "description": "Optional data record schema reference associated with the port",
585
- "type": "string"
586
- },
587
- "parameters": {
588
- "description": "Parameters for the port",
589
- "type": "object",
590
- "properties": {},
591
- "additionalProperties": true
592
- },
593
- "cardinality": {
594
- "description": "Property to capture how many data assets are allowed for this port, e.g., min: 1, max:1 implies you must supply 1 and only 1; min:0, max:1 implies it is optional and a max of one, min:0, max:-1 means it is optional and you can may have any number of data assets. The default value is 1:1 for inputs and 1:-1 for outputs.",
595
- "type": "object",
596
- "properties": {
597
- "min": {
598
- "description": "Minimum data sets that are required for this port",
599
- "type": "integer",
600
- "default": 1
601
- },
602
- "max": {
603
- "description": "Maximum data sets that are allowed on this port. A negative value indicates unlimited. The default value is 1 for inputs and -1 for outputs.",
604
- "type": "integer"
605
- }
606
- },
607
- "additionalProperties": false
608
- },
609
- "class_name": {
610
- "description": "CSS class name",
611
- "type": "string"
612
- },
613
- "style": {
614
- "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the port.",
615
- "type": ["string", "object"]
616
- },
617
- "label": {
618
- "description": "Port name",
619
- "type": "string"
620
- },
621
- "app_data": {
622
- "description": "Object containing app-specific data",
623
- "type": "object",
624
- "additionalProperties": true
625
- }
626
- },
627
- "required": [
628
- "id"
629
- ],
630
- "additionalProperties": false
631
- },
632
- "canvas_bound_ports": {
633
- "type": "array",
634
- "minItems": 0,
635
- "items": {
636
- "$ref": "#/definitions/canvas_bound_port"
637
- },
638
- "uniqueItems": true
639
- },
640
- "canvas_bound_port": {
641
- "description": "Port definition (input/output) on a node with optional pipeline port binding for supernodes",
642
- "type": "object",
643
- "properties": {
644
- "id": {
645
- "description": "Unique identifier for this port",
646
- "type": "string"
647
- },
648
- "schema_ref": {
649
- "description": "Optional data record schema associated with the port",
650
- "type": "string"
651
- },
652
- "subflow_node_ref": {
653
- "description": "Optional node id binding within the current document.",
654
- "type": "string"
655
- },
656
- "parameters": {
657
- "description": "Parameters for the binding port",
658
- "type": "object",
659
- "properties": {},
660
- "additionalProperties": true
661
- },
662
- "cardinality": {
663
- "description": "Property to capture how many data assets are allowed for this port, e.g., min: 1, max:1 implies you must supply 1 and only 1; min:0, max:1 implies it is optional and a max of one, min:0, max:-1 means it is optional and you can may have any number of data assets. The default value is 1:1 for inputs and 1:-1 for outputs.",
664
- "type": "object",
665
- "properties": {
666
- "min": {
667
- "description": "Minimum data sets that are required for this port",
668
- "type": "integer",
669
- "default": 1
670
- },
671
- "max": {
672
- "description": "Maximum data sets that are allowed on this port. A negative value indicates unlimited. The default value is 1 for inputs and -1 for outputs.",
673
- "type": "integer"
674
- }
675
- },
676
- "additionalProperties": false
677
- },
678
- "class_name": {
679
- "description": "CSS class name",
680
- "type": "string"
681
- },
682
- "style": {
683
- "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the port.",
684
- "type": ["string", "object"]
685
- },
686
- "label": {
687
- "description": "Port name",
688
- "type": "string"
689
- },
690
- "app_data": {
691
- "description": "Object containing app-specific data",
692
- "type": "object",
693
- "additionalProperties": true
694
- }
695
- },
696
- "required": [
697
- "id"
698
- ],
699
- "additionalProperties": false
700
- },
701
- "canvas_comment": {
702
- "type": "object",
703
- "properties": {
704
- "id": {
705
- "description": "Comment identifier. Must be unique.",
706
- "type": "string"
707
- },
708
- "x_pos": {
709
- "description": "Horizontal comment position",
710
- "type": "number"
711
- },
712
- "y_pos": {
713
- "description": "Vertical comment position",
714
- "type": "number"
715
- },
716
- "width": {
717
- "description": "Comment width",
718
- "type": "number",
719
- "minimum": 10
720
- },
721
- "height": {
722
- "description": "Comment height",
723
- "type": "number",
724
- "minimum": 10
725
- },
726
- "content": {
727
- "description": "Comment content",
728
- "type": "string"
729
- },
730
- "class_name": {
731
- "description": "CSS class(es) to apply to the comment",
732
- "type": "string"
733
- },
734
- "contentType": {
735
- "description": "The type of content either regular or markdown or WYSIWYG",
736
- "type": "string"
737
- },
738
- "formats": {
739
- "description": "An array of format objects that describe the comment appearance.",
740
- "type": "array",
741
- "items": {
742
- "type": "object",
743
- "properties": {
744
- "field": {
745
- "type": "string"
746
- },
747
- "value": {
748
- "type": "string"
749
- }
750
- },
751
- "additionalProperties": false,
752
- "required": [
753
- "field"
754
- ]
755
- }
756
- },
757
- "style": {
758
- "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the comment.",
759
- "type": ["string", "object"],
760
- "additionalProperties": false
761
- }
762
- },
763
- "required": [
764
- "id",
765
- "x_pos",
766
- "y_pos",
767
- "width",
768
- "height"
769
- ],
770
- "additionalProperties": true
771
- },
772
- "canvas_link": {
773
- "oneOf": [
774
- {
775
- "$ref": "#/definitions/canvas_comment_link"
776
- },
777
- {
778
- "$ref": "#/definitions/canvas_node_link"
779
- },
780
- {
781
- "$ref": "#/definitions/canvas_association_link"
782
- }
783
- ]
784
- },
785
- "canvas_comment_link": {
786
- "description": "Comment link definition",
787
- "type": "object",
788
- "properties": {
789
- "id": {
790
- "description": "Unique id of this comment link.",
791
- "type": "string"
792
- },
793
- "type": {
794
- "description": "Link type - always 'commentLink' for links from comments to nodes",
795
- "enum": [
796
- "commentLink"
797
- ]
798
- },
799
- "srcNodeId": {
800
- "description": "ID of the comment this link connects from.",
801
- "type": "string"
802
- },
803
- "trgNodeId": {
804
- "description": "ID of the node this link connects to.",
805
- "type": "string"
806
- },
807
- "class_name": {
808
- "description": "CSS class name for link styling",
809
- "type": "string"
810
- },
811
- "style": {
812
- "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the comment link.",
813
- "type": ["string", "object"]
814
- },
815
- "decorations": {
816
- "description": "Array of decorations used to decorate node links",
817
- "type": "array",
818
- "minItems": 0,
819
- "items": {
820
- "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/decoration_def"
821
- },
822
- "uniqueItems": true
823
- }
824
- },
825
- "required": [
826
- "id"
827
- ],
828
- "additionalProperties": true
829
- },
830
- "canvas_node_link": {
831
- "description": "Node link definition",
832
- "type": "object",
833
- "properties": {
834
- "id": {
835
- "description": "Unique id of this link within the pipelineFlow.",
836
- "type": "string"
837
- },
838
- "type": {
839
- "description": "Link type - always 'nodeLink' for directional links from nodes to nodes",
840
- "enum": [
841
- "nodeLink"
842
- ]
843
- },
844
- "srcNodeId": {
845
- "description": "ID of the source node this link connects from.",
846
- "type": "string"
847
- },
848
- "srcNodePortId": {
849
- "description": "Optional ID of the port on the source node this link connects from. Defaults to the first port if omitted.",
850
- "type": "string"
851
- },
852
- "trgNodeId": {
853
- "description": "ID of the target node this link connects to.",
854
- "type": "string"
855
- },
856
- "trgNodePortId": {
857
- "description": "Optional ID of the port on the target node this link connects from. Defaults to the first port if omitted.",
858
- "type": "string"
859
- },
860
- "srcPos": {
861
- "description": "The coordinate position on the canvas of the source of the link, when this source end of the link is detached",
862
- "type": "object",
863
- "properties": {
864
- "x_pos": {
865
- "type": "number"
866
- },
867
- "y_pos": {
868
- "type": "number"
869
- }
870
- },
871
- "required": [
872
- "x_pos",
873
- "y_pos"
874
- ],
875
- "additionalProperties": false
876
- },
877
- "trgPos": {
878
- "description": "The coordinate position on the canvas of the target of the link, when this target end of the this link is detached",
879
- "type": "object",
880
- "properties": {
881
- "x_pos": {
882
- "type": "number"
883
- },
884
- "y_pos": {
885
- "type": "number"
886
- }
887
- },
888
- "required": [
889
- "x_pos",
890
- "y_pos"
891
- ],
892
- "additionalProperties": false
893
- },
894
- "srcObj": {
895
- "description": "@readonly The source object for the link. This property is added by Common Canvas during processing of links.",
896
- "$ref": "#/definitions/canvas_node",
897
- "readOnly": true
898
- },
899
- "trgNode": {
900
- "description": "@readonly The target object for the link. This property is added by Common Canvas during processing of links.",
901
- "$ref": "#/definitions/canvas_node",
902
- "readOnly": true
903
- },
904
- "linkName": {
905
- "description": "optional link name (used in parameter sets when there are multiple input sources)",
906
- "type": "string"
907
- },
908
- "typeAttr": {
909
- "description": "Optional type attribute for the link. This can store optional atribute info.",
910
- "type": "string"
911
- },
912
- "description": {
913
- "description": "User-defined description",
914
- "type": "string"
915
- },
916
- "class_name": {
917
- "description": "CSS class name",
918
- "type": "string"
919
- },
920
- "style": {
921
- "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the node to node link.",
922
- "type": ["string", "object"]
923
- },
924
- "decorations": {
925
- "description": "Array of decorations used to decorate node links",
926
- "type": "array",
927
- "minItems": 0,
928
- "items": {
929
- "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/decoration_def"
930
- },
931
- "uniqueItems": true
932
- },
933
- "app_data": {
934
- "description": "Object containing app-specific data",
935
- "type": "object",
936
- "additionalProperties": true
937
- }
938
- },
939
- "required": [
940
- "id"
941
- ],
942
- "additionalProperties": false
943
- },
944
- "canvas_association_link": {
945
- "description": "Association link definition",
946
- "type": "object",
947
- "properties": {
948
- "id": {
949
- "description": "Unique id of this link within the pipelineFlow.",
950
- "type": "string"
951
- },
952
- "type": {
953
- "description": "Link type - always 'associationLink' for associations between two nodes",
954
- "enum": [
955
- "associationLink"
956
- ]
957
- },
958
- "srcNodeId": {
959
- "description": "ID of the source node of the association.",
960
- "type": "string"
961
- },
962
- "trgNodeId": {
963
- "description": "ID of the target node of the association.",
964
- "type": "string"
965
- },
966
- "class_name": {
967
- "description": "CSS class name",
968
- "type": "string"
969
- },
970
- "decorations": {
971
- "description": "Array of decorations used to decorate node links",
972
- "type": "array",
973
- "minItems": 0,
974
- "items": {
975
- "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/decoration_def"
976
- },
977
- "uniqueItems": true
978
- },
979
- "app_data": {
980
- "description": "Object containing app-specific data",
981
- "type": "object",
982
- "additionalProperties": true
983
- }
984
- },
985
- "required": [
986
- "id"
987
- ],
988
- "additionalProperties": false
989
- }
990
- }
3
+ "$schema": "https://json-schema.org/draft-04/schema#",
4
+ "title": "Canvas Info",
5
+ "description": "Canvas Info Flow Schema - for internal Common Canvas use.",
6
+ "type": "object",
7
+ "id": "https://api.dataplatform.ibm.com/schemas/common-canvas/canvas-info/canvas-info-v3-schema.json",
8
+ "properties": {
9
+ "doc_type": {
10
+ "description": "Document type",
11
+ "type": "string"
12
+ },
13
+ "version": {
14
+ "description": "Canvas info flow schema version",
15
+ "enum": [
16
+ "3.0"
17
+ ]
18
+ },
19
+ "json_schema": {
20
+ "description": "Refers to the JSON schema used to validate documents of this type",
21
+ "enum": [
22
+ "http://api.dataplatform.ibm.com/schemas/common-canvas/canvas-info/canvas-info-v3-schema.json",
23
+ "https://api.dataplatform.ibm.com/schemas/common-canvas/canvas-info/canvas-info-v3-schema.json"
24
+ ]
25
+ },
26
+ "open_with_tool": {
27
+ "description": "Preferred authoring application",
28
+ "type": "string"
29
+ },
30
+ "id": {
31
+ "description": "Document identifier, GUID recommended",
32
+ "type": "string"
33
+ },
34
+ "name": {
35
+ "description": "User-defined name",
36
+ "type": "string"
37
+ },
38
+ "description": {
39
+ "description": "User-defined description",
40
+ "type": "string"
41
+ },
42
+ "class_name": {
43
+ "description": "CSS class name",
44
+ "type": "string"
45
+ },
46
+ "parameters": {
47
+ "description": "Parameters for the flow document",
48
+ "type": "object",
49
+ "properties": {},
50
+ "additionalProperties": true
51
+ },
52
+ "primary_pipeline": {
53
+ "description": "Reference to the primary (main) pipeline flow within the document",
54
+ "type": "string"
55
+ },
56
+ "pipelines": {
57
+ "description": "Array of pipelines",
58
+ "type": "array",
59
+ "minItems": 1,
60
+ "items": {
61
+ "$ref": "#/definitions/canvas_pipeline"
62
+ },
63
+ "uniqueItems": true
64
+ },
65
+ "schemas": {
66
+ "description": "Array of data record schemas used in the document",
67
+ "type": "array",
68
+ "minItems": 0,
69
+ "items": {
70
+ "$ref": "https://api.dataplatform.ibm.com/schemas/common-pipeline/datarecord-metadata/datarecord-metadata-v3-schema.json#/definitions/record_schema"
71
+ },
72
+ "uniqueItems": true
73
+ },
74
+ "runtimes": {
75
+ "description": "Array of runtime objects referred to in the document",
76
+ "type": "array",
77
+ "minItems": 0,
78
+ "items": {
79
+ "$ref": "./pipeline-flow-v3-schema.json#/definitions/runtime_def"
80
+ },
81
+ "uniqueItems": true
82
+ },
83
+ "external_paramsets": {
84
+ "description": "Array of parameter set references",
85
+ "type": "array",
86
+ "minItems": 0,
87
+ "items": {
88
+ "$ref": "https://api.dataplatform.ibm.com/schemas/common-pipeline/parameters/parametersets-v3-schema.json#/definitions/paramset_ref"
89
+ },
90
+ "uniqueItems": true
91
+ },
92
+ "app_data": {
93
+ "description": "Object containing app-specific data",
94
+ "type": "object",
95
+ "additionalProperties": true
96
+ }
97
+ },
98
+ "required": [
99
+ "id",
100
+ "doc_type",
101
+ "version",
102
+ "primary_pipeline",
103
+ "pipelines"
104
+ ],
105
+ "additionalProperties": false,
106
+ "definitions": {
107
+ "canvas_pipeline": {
108
+ "description": "Definition of a single canvas-info pipeline",
109
+ "type": "object",
110
+ "properties": {
111
+ "id": {
112
+ "description": "Unique identifier for this canvas-info pipeline",
113
+ "type": "string"
114
+ },
115
+ "description": {
116
+ "description": "Description for this canvas-info pipeline",
117
+ "type": "string"
118
+ },
119
+ "name": {
120
+ "description": "User-readable for this canvas-info pipeline",
121
+ "type": "string"
122
+ },
123
+ "runtime_ref": {
124
+ "description": "Reference to the id of the runtime associated with the operations in the current pipeline",
125
+ "type": "string"
126
+ },
127
+ "nodes": {
128
+ "description": "Array of canvas nodes for this canvas pipeline",
129
+ "type": "array",
130
+ "minItems": 0,
131
+ "items": {
132
+ "$ref": "#/definitions/canvas_node"
133
+ },
134
+ "uniqueItems": true
135
+ },
136
+ "comments": {
137
+ "description": "Array of canvas comments for this canvas pipeline",
138
+ "type": "array",
139
+ "minItems": 0,
140
+ "items": {
141
+ "$ref": "#/definitions/canvas_comment"
142
+ },
143
+ "uniqueItems": true
144
+ },
145
+ "links": {
146
+ "description": "Array of canvas links for this canvas pipeline",
147
+ "type": "array",
148
+ "minItems": 0,
149
+ "items": {
150
+ "$ref": "#/definitions/canvas_link"
151
+ },
152
+ "uniqueItems": true
153
+ },
154
+ "parameters": {
155
+ "description": "Parameters for this canvas-info pipeline",
156
+ "type": "object",
157
+ "properties": {},
158
+ "additionalProperties": true
159
+ },
160
+ "zoom": {
161
+ "description": "X/Y pan and scale amounts for the canvas.",
162
+ "type": "object",
163
+ "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/zoom_object_def"
164
+ },
165
+ "app_data": {
166
+ "description": "Object containing app-specific data",
167
+ "type": "object",
168
+ "additionalProperties": true
169
+ }
170
+ },
171
+ "required": [
172
+ "id",
173
+ "nodes"
174
+ ],
175
+ "additionalProperties": false
176
+ },
177
+ "canvas_node": {
178
+ "oneOf": [
179
+ {
180
+ "$ref": "#/definitions/canvas_execution_node"
181
+ },
182
+ {
183
+ "$ref": "#/definitions/canvas_supernode"
184
+ },
185
+ {
186
+ "$ref": "#/definitions/canvas_binding_entry_node"
187
+ },
188
+ {
189
+ "$ref": "#/definitions/canvas_binding_exit_node"
190
+ },
191
+ {
192
+ "$ref": "#/definitions/canvas_model_node"
193
+ }
194
+ ]
195
+ },
196
+ "canvas_node_shared_properties": {
197
+ "type": "object",
198
+ "properties": {
199
+ "id": {
200
+ "description": "Unique identifier for canvas node within the current pipeline",
201
+ "type": "string"
202
+ },
203
+ "label": {
204
+ "description": "Label of this canvas node.",
205
+ "type": "string"
206
+ },
207
+ "description": {
208
+ "description": "Description of this canvas node.",
209
+ "type": "string"
210
+ },
211
+ "class_name": {
212
+ "description": "CSS class name - can be a space separated list of classes",
213
+ "type": "string"
214
+ },
215
+ "style": {
216
+ "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the node.",
217
+ "type": ["string", "object"]
218
+ },
219
+ "image": {
220
+ "description": "URL to image source. Although a data URL can be used to embed an image inline, it is not recommended. The 'image' property can also be a JSX object that displays an image using an <svg> element however, JSX images must be set programmatically and cannot be stringified into JSON.",
221
+ "type": ["string", "object"]
222
+ },
223
+ "x_pos": {
224
+ "description": "X coordinate position of the node on the canvas. Calculated by Common Canvas for automatically positioned nodes.",
225
+ "type": "number"
226
+ },
227
+ "y_pos": {
228
+ "description": "Y coordinate position of the node on the canvas. Calculated by Common Canvas for automatically positioned nodes.",
229
+ "type": "number"
230
+ },
231
+ "height": {
232
+ "description": "@readonly Height of the node calculated by Common Canvas based on what customization options are enabled.",
233
+ "type": "number",
234
+ "readOnly": true
235
+ },
236
+ "width": {
237
+ "description": "@readonly Width of the node calculated by Common Canvas based on what customization options are enabled.",
238
+ "type": "number",
239
+ "readOnly": true
240
+ },
241
+ "isResized": {
242
+ "description": "Indicates whether a node has been resized or not. If true, resizeWidth and resizeHeight are used for node display. If false, the default width and height are used.",
243
+ "type": "boolean"
244
+ },
245
+ "resizeHeight": {
246
+ "description": "Height of resized node. The node will be displayed with this height, when isResized is true, in preference to its default height.",
247
+ "type": "number"
248
+ },
249
+ "resizeWidth": {
250
+ "description": "Width of resized node. The node will be displayed with this width, when isResized is true, in preference to its default width.",
251
+ "type": "number"
252
+ },
253
+ "attributes": {
254
+ "description": "additional attributes",
255
+ "type": "string"
256
+ },
257
+ "messages": {
258
+ "description": "An array of messages for the node",
259
+ "type": "array",
260
+ "minItems": 0,
261
+ "items": {
262
+ "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/message_def"
263
+ },
264
+ "uniqueItems": true
265
+ },
266
+ "palette_image": {
267
+ "description": "Image name for the node displayed in palette. If omitted the image from 'image' field will be used.",
268
+ "type": "string"
269
+ },
270
+ "palette_class_name": {
271
+ "description": "CSS class name applied to the <div> shown in palette for the node",
272
+ "type": "string"
273
+ },
274
+ "palette_disabled": {
275
+ "description": "Indicates whether the node in the palette is disabled. If true, prevents the node being dragged or double-clicked from palette.",
276
+ "type": "boolean"
277
+ },
278
+ "decorations": {
279
+ "description": "Array of decorations used to decorate nodes",
280
+ "type": "array",
281
+ "minItems": 0,
282
+ "items": {
283
+ "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/node_decoration_def"
284
+ },
285
+ "uniqueItems": true
286
+ },
287
+ "app_data": {
288
+ "description": "Object containing app-specific data",
289
+ "type": "object",
290
+ "additionalProperties": true
291
+ }
292
+ },
293
+ "additionalProperties": false,
294
+ "required": [
295
+ "id"
296
+ ]
297
+ },
298
+ "canvas_execution_node": {
299
+ "allOf": [
300
+ {
301
+ "description": "Definition of a single canvas execution node",
302
+ "type": "object",
303
+ "properties": {
304
+ "type": {
305
+ "description": "Node type - always 'execution_node'",
306
+ "enum": [
307
+ "execution_node"
308
+ ]
309
+ },
310
+ "op": {
311
+ "description": "Operator type identifier",
312
+ "type": "string"
313
+ },
314
+ "ui_parameters": {
315
+ "description": "UI only parameter values for the node",
316
+ "type": "object",
317
+ "properties": {},
318
+ "additionalProperties": true
319
+ },
320
+ "inputs": {
321
+ "$ref": "#/definitions/canvas_ports"
322
+ },
323
+ "outputs": {
324
+ "$ref": "#/definitions/canvas_ports"
325
+ },
326
+ "parameters": {
327
+ "description": "Input parameters for the operator",
328
+ "type": "object",
329
+ "properties": {},
330
+ "additionalProperties": true
331
+ },
332
+ "runtime_ref": {
333
+ "description": "Optional reference to the id of the runtime associated with the current node",
334
+ "type": "string"
335
+ }
336
+ },
337
+ "required": [
338
+ "type",
339
+ "op"
340
+ ],
341
+ "additionalProperties": false
342
+ },
343
+ { "$ref": "#/definitions/canvas_node_shared_properties" }
344
+ ]
345
+ },
346
+ "canvas_supernode": {
347
+ "allOf": [
348
+ {
349
+ "description": "Definition of a supernode which serves as the entry point for a sub-pipeline",
350
+ "type": "object",
351
+ "properties": {
352
+ "type": {
353
+ "description": "Node type - always 'super_node' for supernode elements",
354
+ "enum": [
355
+ "super_node"
356
+ ]
357
+ },
358
+ "open_with_tool": {
359
+ "description": "Name of the tool which can be used to view or edit the sub-flow for this supernode. The default is 'canvas'",
360
+ "type": "string"
361
+ },
362
+ "subflow_ref": {
363
+ "description": "Refers to the sub-flow associated with this supernode",
364
+ "type": "object",
365
+ "properties": {
366
+ "url": {
367
+ "description": "Reference to an external sub-flow. When not present the sub-flow is assumed to be in the current document. A value of 'app_defined' indicates a sub-flow identifier is present, but the controlling application will serve up the sub-pipeline in the form of a new pipeline-flow document (no sub-flow is present in the document).",
368
+ "type": "string"
369
+ },
370
+ "pipeline_id_ref": {
371
+ "description": "Sub-flow identifier reference",
372
+ "type": "string"
373
+ }
374
+ },
375
+ "required": [
376
+ "pipeline_id_ref"
377
+ ]
378
+ },
379
+ "is_expanded": {
380
+ "description": "Indicates whether a supernode is shown in expanded state or as a regular node.",
381
+ "type": "boolean"
382
+ },
383
+ "expanded_height": {
384
+ "description": "Height of expanded supernode. If not provided an appropriate height is calculated.",
385
+ "type": "number"
386
+ },
387
+ "expanded_width": {
388
+ "description": "Width of expanded supernode. If not provided an appropriate width is calculated.",
389
+ "type": "number"
390
+ },
391
+ "sub_pipelines": {
392
+ "description": "An array of pipelines referenced when this node is a supernode. This field is only used when the supernode is in a palette or on the clipboard. It will be an empty array when the supernode references an external pipeline.",
393
+ "type": "array",
394
+ "minItems": 0,
395
+ "uniqueItems": true
396
+ },
397
+ "ui_parameters": {
398
+ "description": "UI only parameter values for the node",
399
+ "type": "object",
400
+ "properties": {},
401
+ "additionalProperties": true
402
+ },
403
+ "inputs": {
404
+ "$ref": "#/definitions/canvas_bound_ports"
405
+ },
406
+ "outputs": {
407
+ "$ref": "#/definitions/canvas_bound_ports"
408
+ },
409
+ "parameters": {
410
+ "description": "Input parameters for the supernode",
411
+ "type": "object",
412
+ "properties": {},
413
+ "additionalProperties": true
414
+ }
415
+ },
416
+ "required": [
417
+ "type",
418
+ "subflow_ref"
419
+ ],
420
+ "additionalProperties": false
421
+ },
422
+ { "$ref": "#/definitions/canvas_node_shared_properties" }
423
+ ]
424
+ },
425
+ "canvas_binding_entry_node": {
426
+ "allOf": [
427
+ {
428
+ "description": "Defines an entry point (source) for a pipeline. Bindings can be concrete: the concrete_binding element is present on the port; or bindings can be abstract: bindings are performed externally via configuration or a wrapper document.",
429
+ "type": "object",
430
+ "properties": {
431
+ "type": {
432
+ "description": "Node type - always 'binding' for binding elements",
433
+ "enum": [
434
+ "binding"
435
+ ]
436
+ },
437
+ "outputs": {
438
+ "$ref": "#/definitions/canvas_ports"
439
+ },
440
+ "connection": {
441
+ "$ref": "./pipeline-connection-v3-schema.json#/definitions/common_pipeline_connection_def"
442
+ },
443
+ "data_asset": {
444
+ "$ref": "./pipeline-connection-v3-schema.json#/definitions/common_pipeline_data_asset_def"
445
+ },
446
+ "op": {
447
+ "description": "Binding node type identifier",
448
+ "type": "string"
449
+ },
450
+ "ui_parameters": {
451
+ "description": "UI only parameter values for the node",
452
+ "type": "object",
453
+ "properties": {},
454
+ "additionalProperties": true
455
+ },
456
+ "parameters": {
457
+ "description": "Parameters for the binding entry node",
458
+ "type": "object",
459
+ "properties": {},
460
+ "additionalProperties": true
461
+ }
462
+ },
463
+ "required": [
464
+ "type",
465
+ "outputs"
466
+ ],
467
+ "additionalProperties": false
468
+ },
469
+ { "$ref": "#/definitions/canvas_node_shared_properties" }
470
+ ]
471
+ },
472
+ "canvas_binding_exit_node": {
473
+ "allOf": [
474
+ {
475
+ "description": "Defines an exit point (sink) for a pipeline. Bindings can be concrete: the concrete_binding element is present on the port; or bindings can be abstract: bindings are performed externally via configuration or a wrapper document.",
476
+ "type": "object",
477
+ "properties": {
478
+ "type": {
479
+ "description": "Node type - always 'binding' for binding elements",
480
+ "enum": [
481
+ "binding"
482
+ ]
483
+ },
484
+ "inputs": {
485
+ "$ref": "#/definitions/canvas_ports"
486
+ },
487
+ "outputs": {
488
+ "$ref": "#/definitions/canvas_ports"
489
+ },
490
+ "app_data": {
491
+ "description": "Object containing app-specific data",
492
+ "type": "object",
493
+ "additionalProperties": true
494
+ },
495
+ "connection": {
496
+ "$ref": "./pipeline-connection-v3-schema.json#/definitions/common_pipeline_connection_def"
497
+ },
498
+ "data_asset": {
499
+ "$ref": "./pipeline-connection-v3-schema.json#/definitions/common_pipeline_data_asset_def"
500
+ },
501
+ "op": {
502
+ "description": "Binding node type identifier",
503
+ "type": "string"
504
+ },
505
+ "parameters": {
506
+ "description": "Parameters for the binding exit node",
507
+ "type": "object",
508
+ "properties": {},
509
+ "additionalProperties": true
510
+ }
511
+ },
512
+ "required": [
513
+ "type",
514
+ "inputs"
515
+ ],
516
+ "additionalProperties": false
517
+ },
518
+ { "$ref": "#/definitions/canvas_node_shared_properties" }
519
+ ]
520
+ },
521
+ "canvas_model_node": {
522
+ "allOf": [
523
+ {
524
+ "description": "Definition of a single predictive model node",
525
+ "type": "object",
526
+ "properties": {
527
+ "type": {
528
+ "description": "Node type - always 'model_node' for model pipeline elements",
529
+ "enum": [
530
+ "model_node"
531
+ ]
532
+ },
533
+ "model_ref": {
534
+ "description": "Reference to the binary model",
535
+ "type": "string"
536
+ },
537
+ "inputs": {
538
+ "$ref": "#/definitions/canvas_ports"
539
+ },
540
+ "outputs": {
541
+ "$ref": "#/definitions/canvas_ports"
542
+ },
543
+ "op": {
544
+ "description": "Node type identifier of modeling node that created this model.",
545
+ "type": "string"
546
+ },
547
+ "parameters": {
548
+ "description": "Input parameters for the operator",
549
+ "type": "object",
550
+ "properties": {},
551
+ "additionalProperties": true
552
+ },
553
+ "runtime_ref": {
554
+ "description": "Reference to the runtime associated with the current node",
555
+ "type": "string"
556
+ }
557
+ },
558
+ "required": [
559
+ "type",
560
+ "inputs"
561
+ ],
562
+ "additionalProperties": false
563
+ },
564
+ { "$ref": "#/definitions/canvas_node_shared_properties" }
565
+ ]
566
+ },
567
+ "canvas_ports": {
568
+ "type": "array",
569
+ "minItems": 0,
570
+ "items": {
571
+ "$ref": "#/definitions/canvas_port"
572
+ },
573
+ "uniqueItems": true
574
+ },
575
+ "canvas_port": {
576
+ "description": "Port definition (input/output) on a node",
577
+ "type": "object",
578
+ "properties": {
579
+ "id": {
580
+ "description": "Unique identifier for the port",
581
+ "type": "string"
582
+ },
583
+ "schema_ref": {
584
+ "description": "Optional data record schema reference associated with the port",
585
+ "type": "string"
586
+ },
587
+ "parameters": {
588
+ "description": "Parameters for the port",
589
+ "type": "object",
590
+ "properties": {},
591
+ "additionalProperties": true
592
+ },
593
+ "cardinality": {
594
+ "description": "Property to capture how many data assets are allowed for this port, e.g., min: 1, max:1 implies you must supply 1 and only 1; min:0, max:1 implies it is optional and a max of one, min:0, max:-1 means it is optional and you can may have any number of data assets. The default value is 1:1 for inputs and 1:-1 for outputs.",
595
+ "type": "object",
596
+ "properties": {
597
+ "min": {
598
+ "description": "Minimum data sets that are required for this port",
599
+ "type": "integer",
600
+ "default": 1
601
+ },
602
+ "max": {
603
+ "description": "Maximum data sets that are allowed on this port. A negative value indicates unlimited. The default value is 1 for inputs and -1 for outputs.",
604
+ "type": "integer"
605
+ }
606
+ },
607
+ "additionalProperties": false
608
+ },
609
+ "class_name": {
610
+ "description": "CSS class name",
611
+ "type": "string"
612
+ },
613
+ "style": {
614
+ "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the port.",
615
+ "type": ["string", "object"]
616
+ },
617
+ "label": {
618
+ "description": "Port name",
619
+ "type": "string"
620
+ },
621
+ "app_data": {
622
+ "description": "Object containing app-specific data",
623
+ "type": "object",
624
+ "additionalProperties": true
625
+ }
626
+ },
627
+ "required": [
628
+ "id"
629
+ ],
630
+ "additionalProperties": false
631
+ },
632
+ "canvas_bound_ports": {
633
+ "type": "array",
634
+ "minItems": 0,
635
+ "items": {
636
+ "$ref": "#/definitions/canvas_bound_port"
637
+ },
638
+ "uniqueItems": true
639
+ },
640
+ "canvas_bound_port": {
641
+ "description": "Port definition (input/output) on a node with optional pipeline port binding for supernodes",
642
+ "type": "object",
643
+ "properties": {
644
+ "id": {
645
+ "description": "Unique identifier for this port",
646
+ "type": "string"
647
+ },
648
+ "schema_ref": {
649
+ "description": "Optional data record schema associated with the port",
650
+ "type": "string"
651
+ },
652
+ "subflow_node_ref": {
653
+ "description": "Optional node id binding within the current document.",
654
+ "type": "string"
655
+ },
656
+ "parameters": {
657
+ "description": "Parameters for the binding port",
658
+ "type": "object",
659
+ "properties": {},
660
+ "additionalProperties": true
661
+ },
662
+ "cardinality": {
663
+ "description": "Property to capture how many data assets are allowed for this port, e.g., min: 1, max:1 implies you must supply 1 and only 1; min:0, max:1 implies it is optional and a max of one, min:0, max:-1 means it is optional and you can may have any number of data assets. The default value is 1:1 for inputs and 1:-1 for outputs.",
664
+ "type": "object",
665
+ "properties": {
666
+ "min": {
667
+ "description": "Minimum data sets that are required for this port",
668
+ "type": "integer",
669
+ "default": 1
670
+ },
671
+ "max": {
672
+ "description": "Maximum data sets that are allowed on this port. A negative value indicates unlimited. The default value is 1 for inputs and -1 for outputs.",
673
+ "type": "integer"
674
+ }
675
+ },
676
+ "additionalProperties": false
677
+ },
678
+ "class_name": {
679
+ "description": "CSS class name",
680
+ "type": "string"
681
+ },
682
+ "style": {
683
+ "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the port.",
684
+ "type": ["string", "object"]
685
+ },
686
+ "label": {
687
+ "description": "Port name",
688
+ "type": "string"
689
+ },
690
+ "app_data": {
691
+ "description": "Object containing app-specific data",
692
+ "type": "object",
693
+ "additionalProperties": true
694
+ }
695
+ },
696
+ "required": [
697
+ "id"
698
+ ],
699
+ "additionalProperties": false
700
+ },
701
+ "canvas_comment": {
702
+ "type": "object",
703
+ "properties": {
704
+ "id": {
705
+ "description": "Comment identifier. Must be unique.",
706
+ "type": "string"
707
+ },
708
+ "x_pos": {
709
+ "description": "Horizontal comment position",
710
+ "type": "number"
711
+ },
712
+ "y_pos": {
713
+ "description": "Vertical comment position",
714
+ "type": "number"
715
+ },
716
+ "width": {
717
+ "description": "Comment width",
718
+ "type": "number",
719
+ "minimum": 10
720
+ },
721
+ "height": {
722
+ "description": "Comment height",
723
+ "type": "number",
724
+ "minimum": 10
725
+ },
726
+ "content": {
727
+ "description": "Comment content",
728
+ "type": "string"
729
+ },
730
+ "class_name": {
731
+ "description": "CSS class(es) to apply to the comment",
732
+ "type": "string"
733
+ },
734
+ "contentType": {
735
+ "description": "The type of content either regular or markdown or WYSIWYG",
736
+ "type": "string"
737
+ },
738
+ "formats": {
739
+ "description": "An array of format objects that describe the comment appearance.",
740
+ "type": "array",
741
+ "items": {
742
+ "type": "object",
743
+ "properties": {
744
+ "field": {
745
+ "type": "string"
746
+ },
747
+ "value": {
748
+ "type": "string"
749
+ }
750
+ },
751
+ "additionalProperties": false,
752
+ "required": [
753
+ "field"
754
+ ]
755
+ }
756
+ },
757
+ "style": {
758
+ "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the comment.",
759
+ "type": ["string", "object"],
760
+ "additionalProperties": false
761
+ }
762
+ },
763
+ "required": [
764
+ "id",
765
+ "x_pos",
766
+ "y_pos",
767
+ "width",
768
+ "height"
769
+ ],
770
+ "additionalProperties": true
771
+ },
772
+ "canvas_link": {
773
+ "oneOf": [
774
+ {
775
+ "$ref": "#/definitions/canvas_comment_link"
776
+ },
777
+ {
778
+ "$ref": "#/definitions/canvas_node_link"
779
+ },
780
+ {
781
+ "$ref": "#/definitions/canvas_association_link"
782
+ }
783
+ ]
784
+ },
785
+ "canvas_comment_link": {
786
+ "description": "Comment link definition",
787
+ "type": "object",
788
+ "properties": {
789
+ "id": {
790
+ "description": "Unique id of this comment link.",
791
+ "type": "string"
792
+ },
793
+ "type": {
794
+ "description": "Link type - always 'commentLink' for links from comments to nodes",
795
+ "enum": [
796
+ "commentLink"
797
+ ]
798
+ },
799
+ "srcNodeId": {
800
+ "description": "ID of the comment this link connects from.",
801
+ "type": "string"
802
+ },
803
+ "trgNodeId": {
804
+ "description": "ID of the node this link connects to.",
805
+ "type": "string"
806
+ },
807
+ "class_name": {
808
+ "description": "CSS class name for link styling",
809
+ "type": "string"
810
+ },
811
+ "style": {
812
+ "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the comment link.",
813
+ "type": ["string", "object"]
814
+ }
815
+ },
816
+ "required": [
817
+ "id"
818
+ ],
819
+ "additionalProperties": true
820
+ },
821
+ "canvas_node_link": {
822
+ "description": "Node link definition",
823
+ "type": "object",
824
+ "properties": {
825
+ "id": {
826
+ "description": "Unique id of this link within the pipelineFlow.",
827
+ "type": "string"
828
+ },
829
+ "type": {
830
+ "description": "Link type - always 'nodeLink' for directional links from nodes to nodes",
831
+ "enum": [
832
+ "nodeLink"
833
+ ]
834
+ },
835
+ "srcNodeId": {
836
+ "description": "ID of the source node this link connects from.",
837
+ "type": "string"
838
+ },
839
+ "srcNodePortId": {
840
+ "description": "Optional ID of the port on the source node this link connects from. Defaults to the first port if omitted.",
841
+ "type": "string"
842
+ },
843
+ "trgNodeId": {
844
+ "description": "ID of the target node this link connects to.",
845
+ "type": "string"
846
+ },
847
+ "trgNodePortId": {
848
+ "description": "Optional ID of the port on the target node this link connects from. Defaults to the first port if omitted.",
849
+ "type": "string"
850
+ },
851
+ "srcPos": {
852
+ "description": "The coordinate position on the canvas of the source of the link, when this source end of the link is detached",
853
+ "type": "object",
854
+ "properties": {
855
+ "x_pos": {
856
+ "type": "number"
857
+ },
858
+ "y_pos": {
859
+ "type": "number"
860
+ }
861
+ },
862
+ "required": [
863
+ "x_pos",
864
+ "y_pos"
865
+ ],
866
+ "additionalProperties": false
867
+ },
868
+ "trgPos": {
869
+ "description": "The coordinate position on the canvas of the target of the link, when this target end of the this link is detached",
870
+ "type": "object",
871
+ "properties": {
872
+ "x_pos": {
873
+ "type": "number"
874
+ },
875
+ "y_pos": {
876
+ "type": "number"
877
+ }
878
+ },
879
+ "required": [
880
+ "x_pos",
881
+ "y_pos"
882
+ ],
883
+ "additionalProperties": false
884
+ },
885
+ "srcObj": {
886
+ "description": "@readonly The source object for the link. This property is added by Common Canvas during processing of links.",
887
+ "$ref": "#/definitions/canvas_node",
888
+ "readOnly": true
889
+ },
890
+ "trgNode": {
891
+ "description": "@readonly The target object for the link. This property is added by Common Canvas during processing of links.",
892
+ "$ref": "#/definitions/canvas_node",
893
+ "readOnly": true
894
+ },
895
+ "linkName": {
896
+ "description": "optional link name (used in parameter sets when there are multiple input sources)",
897
+ "type": "string"
898
+ },
899
+ "typeAttr": {
900
+ "description": "Optional type attribute for the link. This can store optional atribute info.",
901
+ "type": "string"
902
+ },
903
+ "description": {
904
+ "description": "User-defined description",
905
+ "type": "string"
906
+ },
907
+ "class_name": {
908
+ "description": "CSS class name",
909
+ "type": "string"
910
+ },
911
+ "style": {
912
+ "description": "A 'style spec' object containing CSS strings to be applied to the SVG objects of the node to node link.",
913
+ "type": ["string", "object"]
914
+ },
915
+ "decorations": {
916
+ "description": "Array of decorations used to decorate node links",
917
+ "type": "array",
918
+ "minItems": 0,
919
+ "items": {
920
+ "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/link_decoration_def"
921
+ },
922
+ "uniqueItems": true
923
+ },
924
+ "app_data": {
925
+ "description": "Object containing app-specific data",
926
+ "type": "object",
927
+ "additionalProperties": true
928
+ }
929
+ },
930
+ "required": [
931
+ "id"
932
+ ],
933
+ "additionalProperties": false
934
+ },
935
+ "canvas_association_link": {
936
+ "description": "Association link definition",
937
+ "type": "object",
938
+ "properties": {
939
+ "id": {
940
+ "description": "Unique id of this link within the pipelineFlow.",
941
+ "type": "string"
942
+ },
943
+ "type": {
944
+ "description": "Link type - always 'associationLink' for associations between two nodes",
945
+ "enum": [
946
+ "associationLink"
947
+ ]
948
+ },
949
+ "srcNodeId": {
950
+ "description": "ID of the source node of the association.",
951
+ "type": "string"
952
+ },
953
+ "trgNodeId": {
954
+ "description": "ID of the target node of the association.",
955
+ "type": "string"
956
+ },
957
+ "class_name": {
958
+ "description": "CSS class name",
959
+ "type": "string"
960
+ },
961
+ "decorations": {
962
+ "description": "Array of decorations used to decorate node links",
963
+ "type": "array",
964
+ "minItems": 0,
965
+ "items": {
966
+ "$ref": "./pipeline-flow-ui-v3-schema.json#/definitions/link_decoration_def"
967
+ },
968
+ "uniqueItems": true
969
+ },
970
+ "app_data": {
971
+ "description": "Object containing app-specific data",
972
+ "type": "object",
973
+ "additionalProperties": true
974
+ }
975
+ },
976
+ "required": [
977
+ "id"
978
+ ],
979
+ "additionalProperties": false
980
+ }
981
+ }
991
982
  }