@wandelbots/nova-js 3.12.0 → 3.13.0-pr.307.0c31cef

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.
@@ -0,0 +1,2325 @@
1
+ /**
2
+ * AUTO-GENERATED FILE - DO NOT EDIT.
3
+ * Generated from src/asyncapi.yaml by scripts/generate-nats-client.ts.
4
+ * Run `pnpm generate:nats` to regenerate.
5
+ */
6
+
7
+ /**
8
+ * A unique name for the cell used as an identifier for addressing the cell in all API calls.
9
+ * It must be a valid k8s label name as defined by [RFC 1123](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names).
10
+ *
11
+ *
12
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
13
+ * via the `definition` "CellName".
14
+ */
15
+ export type CellName = string
16
+ /**
17
+ * A description of the cell.
18
+ *
19
+ *
20
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
21
+ * via the `definition` "CellDescription".
22
+ */
23
+ export type CellDescription = string
24
+ /**
25
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
26
+ * via the `definition` "Manufacturer".
27
+ */
28
+ export type Manufacturer =
29
+ | "abb"
30
+ | "fanuc"
31
+ | "kuka"
32
+ | "staubli"
33
+ | "universalrobots"
34
+ | "yaskawa"
35
+ /**
36
+ * Identifies a single motion group model.
37
+ * See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types.
38
+ *
39
+ *
40
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
41
+ * via the `definition` "MotionGroupModel".
42
+ */
43
+ export type MotionGroupModel = string
44
+ /**
45
+ * Request body wrapper for `addVirtualControllerMotionGroup`.
46
+ * Allow either referencing a predefined motion group model or
47
+ * uploading a JSON configuration that the backend converts into a
48
+ * motion group description.
49
+ *
50
+ *
51
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
52
+ * via the `definition` "AddVirtualControllerMotionGroupRequest".
53
+ */
54
+ export type AddVirtualControllerMotionGroupRequest =
55
+ | MotionGroupFromModel
56
+ | MotionGroupFromJSON
57
+ /**
58
+ * A list of environment variables with name and their value.
59
+ * These can be used to configure the containerized application, and turn features on or off.
60
+ *
61
+ *
62
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
63
+ * via the `definition` "ContainerEnvironment".
64
+ */
65
+ export type ContainerEnvironment = {
66
+ name: string
67
+ value: string
68
+ }[]
69
+ /**
70
+ * The amount of requested storage capacity.
71
+ *
72
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
73
+ * via the `definition` "Capacity".
74
+ */
75
+ export type Capacity = string
76
+ /**
77
+ * The state of a program run.
78
+ *
79
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
80
+ * via the `definition` "ProgramRunState".
81
+ */
82
+ export type ProgramRunState =
83
+ | "PREPARING"
84
+ | "RUNNING"
85
+ | "COMPLETED"
86
+ | "FAILED"
87
+ | "STOPPED"
88
+ /**
89
+ * State of the program run.
90
+ */
91
+ export type ProgramRunState1 =
92
+ | "PREPARING"
93
+ | "RUNNING"
94
+ | "COMPLETED"
95
+ | "FAILED"
96
+ | "STOPPED"
97
+ /**
98
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
99
+ * via the `definition` "ServiceGroup".
100
+ */
101
+ export type ServiceGroup =
102
+ | "SystemService"
103
+ | "CellService"
104
+ | "RobotController"
105
+ | "App"
106
+ /**
107
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
108
+ * via the `definition` "ServiceStatusSeverity".
109
+ */
110
+ export type ServiceStatusSeverity = "INFO" | "WARNING" | "ERROR"
111
+ /**
112
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
113
+ * via the `definition` "ServiceStatusPhase".
114
+ */
115
+ export type ServiceStatusPhase =
116
+ | "Terminating"
117
+ | "Initialized"
118
+ | "Running"
119
+ | "NoReady"
120
+ | "Completed"
121
+ | "ContainerCreating"
122
+ | "PodInitializing"
123
+ | "Unknown"
124
+ | "CrashLoopBackOff"
125
+ | "Error"
126
+ | "ImagePullBackOff"
127
+ | "OOMKilled"
128
+ | "Pending"
129
+ | "Evicted"
130
+ /**
131
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
132
+ * via the `definition` "ServiceStatusList".
133
+ */
134
+ export type ServiceStatusList = ServiceStatus[]
135
+ /**
136
+ * A three-dimensional vector [x, y, z] with double precision.
137
+ *
138
+ *
139
+ * @minItems 3
140
+ * @maxItems 3
141
+ *
142
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
143
+ * via the `definition` "Vector3d".
144
+ */
145
+ export type Vector3D = [number, number, number]
146
+ /**
147
+ * Defines a rotation in 3D space.
148
+ * A three-dimensional Vector [rx, ry, rz] with double precision.
149
+ * Rotation is applied around the vector.
150
+ * The angle of rotation equals the length of the vector.
151
+ *
152
+ *
153
+ * @minItems 3
154
+ * @maxItems 3
155
+ *
156
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
157
+ * via the `definition` "RotationVector".
158
+ */
159
+ export type RotationVector = [number, number, number]
160
+ /**
161
+ * A link chain is a kinematic chain of links that is connected via joints.
162
+ * A motion group can be used to control the motion of the joints in a link chain.
163
+ *
164
+ * A link is a group of colliders that is attached to the link reference frame.
165
+ *
166
+ * The reference frame of a link is obtained after applying all sets of Denavit-Hartenberg-parameters from base to (including) the link index.
167
+ *
168
+ * This means that the reference frame of the link is on the rotation axis of the next joint in the kinematic chain.
169
+ * Example: For a motion group with 2 joints, the collider reference frame (CRF) for link 1 is on the rotation axis of joint 2. The chain looks like:
170
+ * - Origin >> Mounting >> Base >> (CRF Base) Joint 0 >> Link 0 >> (CRF Link 0) Joint 1 >> Link 1 >> (CRF Link 1) Flange (CRF Tool) >> TCP
171
+ *
172
+ * Adjacent links in the kinematic chain of the motion group are not checked for mutual collision.
173
+ *
174
+ *
175
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
176
+ * via the `definition` "LinkChain".
177
+ */
178
+ export type LinkChain = CollisionMotionGroupLink[]
179
+ /**
180
+ * The shape of the motion groups links to validate against colliders.
181
+ * Indexed along the kinematic chain, starting with a static base shape before first joint.
182
+ * The base of the motion group is not checked for collision against the environment.
183
+ *
184
+ */
185
+ export type LinkChain1 = CollisionMotionGroupLink[]
186
+ /**
187
+ * Current state of the BUS input/output service.
188
+ *
189
+ *
190
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
191
+ * via the `definition` "BusIOsStateEnum".
192
+ */
193
+ export type BusIOsStateEnum =
194
+ | "BUS_IOS_STATE_UNKNOWN"
195
+ | "BUS_IOS_STATE_INITIALIZING"
196
+ | "BUS_IOS_STATE_CONNECTED"
197
+ | "BUS_IOS_STATE_DISCONNECTED"
198
+ /**
199
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
200
+ * via the `definition` "IOValue".
201
+ */
202
+ export type IOValue = IOBooleanValue | IOIntegerValue | IOFloatValue
203
+ /**
204
+ * Array of input/output values.
205
+ *
206
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
207
+ * via the `definition` "ListIOValuesResponse".
208
+ */
209
+ export type ListIOValuesResponse = IOValue[]
210
+ /**
211
+ * Defines the current system mode of the robot system, including NOVA communicating with the robot controller.
212
+ *
213
+ * ### MODE_CONTROLLER_NOT_CONFIGURED
214
+ *
215
+ * No controller with the specified identifier is configured. Call [addRobotController](#/operations/addRobotController) to register a controller.
216
+ *
217
+ * ### MODE_INITIALIZING
218
+ *
219
+ * Indicates that a connection to the robot controller is established or reestablished in case of a disconnect.
220
+ * On success, the controller is set to MODE_MONITOR.
221
+ * On failure, the initialization process is retried until successful or cancelled by the user.
222
+ *
223
+ * ### MODE_MONITOR
224
+ *
225
+ * Read-only mode with an active controller connection.
226
+ * - Receives robot state and I/O signals
227
+ * - Move requests are rejected
228
+ * - No commands are sent to the controller
229
+ *
230
+ * ### MODE_CONTROL
231
+ *
232
+ * Active control mode.
233
+ *
234
+ * **Movement is possible in this mode**
235
+ *
236
+ * The robot is cyclically commanded to hold its current position.
237
+ * The robot state is received in sync with the controller cycle.
238
+ * Motion and jogging requests are accepted and executed.
239
+ * Input/Output interaction is enabled.
240
+ *
241
+ * ### MODE_FREE_DRIVE
242
+ *
243
+ * Read-only mode with servo motors enabled for manual movement (Free Drive).
244
+ *
245
+ * Move requests are rejected.
246
+ *
247
+ * Not supported by all robots: Use [getSupportedModes](#/operations/getSupportedModes) to check Free Drive availability.
248
+ *
249
+ *
250
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
251
+ * via the `definition` "RobotSystemMode".
252
+ */
253
+ export type RobotSystemMode =
254
+ | "MODE_CONTROLLER_NOT_CONFIGURED"
255
+ | "MODE_INITIALIZING"
256
+ | "MODE_MONITOR"
257
+ | "MODE_CONTROL"
258
+ | "MODE_FREE_DRIVE"
259
+ /**
260
+ * Current operation mode of the configured robot controller.
261
+ * Operation modes in which the attached motion groups can be moved are:
262
+ * - OPERATION_MODE_MANUAL (if enabling switch is pressed)
263
+ * - OPERATION_MODE_MANUAL_T1 (if enabling switch is pressed)
264
+ * - OPERATION_MODE_MANUAL_T2 (if enabling switch is pressed)
265
+ * - OPERATION_MODE_AUTO (without needing to press enabling switch)
266
+ * All other modes are considered as non-operational.
267
+ *
268
+ *
269
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
270
+ * via the `definition` "OperationMode".
271
+ */
272
+ export type OperationMode =
273
+ | "OPERATION_MODE_UNKNOWN"
274
+ | "OPERATION_MODE_NO_CONTROLLER"
275
+ | "OPERATION_MODE_DISCONNECTED"
276
+ | "OPERATION_MODE_POWER_ON"
277
+ | "OPERATION_MODE_PENDING"
278
+ | "OPERATION_MODE_MANUAL"
279
+ | "OPERATION_MODE_MANUAL_T1"
280
+ | "OPERATION_MODE_MANUAL_T2"
281
+ | "OPERATION_MODE_AUTO"
282
+ | "OPERATION_MODE_RECOVERY"
283
+ /**
284
+ * Current safety state of the configured robot controller.
285
+ * Operation modes in which the attached motion groups can be moved are:
286
+ * - SAFETY_STATE_NORMAL
287
+ * - SAFETY_STATE_REDUCED
288
+ * All other modes are considered as non-operational.
289
+ *
290
+ *
291
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
292
+ * via the `definition` "SafetyStateType".
293
+ */
294
+ export type SafetyStateType =
295
+ | "SAFETY_STATE_UNKNOWN"
296
+ | "SAFETY_STATE_FAULT"
297
+ | "SAFETY_STATE_NORMAL"
298
+ | "SAFETY_STATE_MASTERING"
299
+ | "SAFETY_STATE_CONFIRM_SAFETY"
300
+ | "SAFETY_STATE_OPERATOR_SAFETY"
301
+ | "SAFETY_STATE_PROTECTIVE_STOP"
302
+ | "SAFETY_STATE_REDUCED"
303
+ | "SAFETY_STATE_STOP"
304
+ | "SAFETY_STATE_STOP_0"
305
+ | "SAFETY_STATE_STOP_1"
306
+ | "SAFETY_STATE_STOP_2"
307
+ | "SAFETY_STATE_RECOVERY"
308
+ | "SAFETY_STATE_DEVICE_EMERGENCY_STOP"
309
+ | "SAFETY_STATE_ROBOT_EMERGENCY_STOP"
310
+ | "SAFETY_STATE_VIOLATION"
311
+ /**
312
+ * This structure describes a set of joint values, e.g., positions, currents, torques, of a motion group.
313
+ *
314
+ * Float precision is the default.
315
+ *
316
+ *
317
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
318
+ * via the `definition` "Joints".
319
+ */
320
+ export type Joints = number[]
321
+ /**
322
+ * - The location is a scalar value that defines a position along a path, typically ranging from 0 to `n`,
323
+ * where `n` denotes the number of motion commands
324
+ * - Each integer value of the location corresponds to a specific motion command,
325
+ * while non-integer values interpolate positions within the segments.
326
+ * - The location is calculated from the joint path
327
+ *
328
+ *
329
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
330
+ * via the `definition` "Location".
331
+ */
332
+ export type Location = number
333
+ /**
334
+ * Current joint position of each joint.
335
+ * The unit depends on the type of joint: For revolute joints, the angle is given in [rad]; for prismatic joints, the displacement is given in [mm].
336
+ *
337
+ */
338
+ export type Joints1 = number[]
339
+ /**
340
+ * Current joint torque of each joint in [Nm].
341
+ * Is only available if the robot controller supports it, e.g., available for UR controllers.
342
+ *
343
+ */
344
+ export type Joints2 = number[]
345
+ /**
346
+ * Current at TCP in [A].
347
+ * Is only available if the robot controller supports it, e.g., available for UR controllers.
348
+ *
349
+ */
350
+ export type Joints3 = number[]
351
+ /**
352
+ * State of indicated motion groups.
353
+ * In case of state request via controller all configured motion groups are returned.
354
+ * In case of executing a motion only the affected motion groups are returned.
355
+ *
356
+ */
357
+ export type MotionGroupState1 = MotionGroupState[]
358
+ /**
359
+ * A three-dimensional vector [x, y, z] with double precision.
360
+ *
361
+ *
362
+ * @minItems 3
363
+ * @maxItems 3
364
+ */
365
+ export type Vector3D1 = [number, number, number]
366
+ /**
367
+ * A three-dimensional vector [x, y, z] with double precision.
368
+ *
369
+ *
370
+ * @minItems 3
371
+ * @maxItems 3
372
+ */
373
+ export type Vector3D2 = [number, number, number]
374
+ /**
375
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
376
+ * via the `definition` "JointTypeEnum".
377
+ */
378
+ export type JointTypeEnum = "REVOLUTE_JOINT" | "PRISMATIC_JOINT"
379
+ /**
380
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
381
+ * via the `definition` "SystemUpdateStartedEvent".
382
+ */
383
+ export type SystemUpdateStartedEvent = CloudEvent & {
384
+ type?: "nova.v2.events.system.update.started"
385
+ source?: "/nova/service-manager"
386
+ /**
387
+ * Unique identifier for this update process
388
+ */
389
+ id: {
390
+ [k: string]: unknown
391
+ }
392
+ /**
393
+ * Timestamp when the update process started (RFC3339)
394
+ */
395
+ time: {
396
+ [k: string]: unknown
397
+ }
398
+ /**
399
+ * System update started event payload
400
+ */
401
+ data: {
402
+ /**
403
+ * New system version being installed
404
+ */
405
+ newVersion: string
406
+ /**
407
+ * Previous system version, if available
408
+ */
409
+ oldVersion?: string
410
+ }
411
+ }
412
+ /**
413
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
414
+ * via the `definition` "SystemUpdateCompletedEvent".
415
+ */
416
+ export type SystemUpdateCompletedEvent = CloudEvent & {
417
+ type?: "nova.v2.events.system.update.completed"
418
+ source?: "/nova/service-manager"
419
+ /**
420
+ * Same unique identifier from the started event for correlation
421
+ */
422
+ id: {
423
+ [k: string]: unknown
424
+ }
425
+ /**
426
+ * Timestamp when the update process completed (RFC3339)
427
+ */
428
+ time: {
429
+ [k: string]: unknown
430
+ }
431
+ /**
432
+ * System update completed event payload
433
+ */
434
+ data: {
435
+ /**
436
+ * New system version that was installed
437
+ */
438
+ newVersion: string
439
+ /**
440
+ * Error message if update failed
441
+ */
442
+ error?: string
443
+ }
444
+ }
445
+ /**
446
+ * The operating state.
447
+ *
448
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
449
+ * via the `definition` "OperatingState".
450
+ */
451
+ export type OperatingState = "ACTIVE" | "INACTIVE"
452
+ /**
453
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
454
+ * via the `definition` "CellCreatedEvent".
455
+ */
456
+ export type CellCreatedEvent = {
457
+ type?: "nova.v2.events.cells.{cell}.created"
458
+ source?: "/nova/service-manager"
459
+ /**
460
+ * Unique identifier for this cell created event.
461
+ */
462
+ id: {
463
+ [k: string]: unknown
464
+ }
465
+ /**
466
+ * Timestamp when the cell foundation release was created.
467
+ */
468
+ time: {
469
+ [k: string]: unknown
470
+ }
471
+ data: CellEventData
472
+ } & CloudEvent
473
+ /**
474
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
475
+ * via the `definition` "CellUpdatedEvent".
476
+ */
477
+ export type CellUpdatedEvent = {
478
+ type?: "nova.v2.events.cells.{cell}.updated"
479
+ source?: "/nova/service-manager"
480
+ /**
481
+ * Unique identifier for this cell updated event.
482
+ */
483
+ id: {
484
+ [k: string]: unknown
485
+ }
486
+ /**
487
+ * Timestamp when the cell foundation release was updated.
488
+ */
489
+ time: {
490
+ [k: string]: unknown
491
+ }
492
+ data: CellEventData
493
+ } & CloudEvent
494
+ /**
495
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
496
+ * via the `definition` "CellDeletedEvent".
497
+ */
498
+ export type CellDeletedEvent = {
499
+ type?: "nova.v2.events.cells.{cell}.deleted"
500
+ source?: "/nova/service-manager"
501
+ /**
502
+ * Unique identifier for this cell deleted event.
503
+ */
504
+ id: {
505
+ [k: string]: unknown
506
+ }
507
+ /**
508
+ * Timestamp when the cell foundation release was deleted.
509
+ */
510
+ time: {
511
+ [k: string]: unknown
512
+ }
513
+ data: CellEventData
514
+ } & CloudEvent
515
+ /**
516
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
517
+ * via the `definition` "AppCreatedEvent".
518
+ */
519
+ export type AppCreatedEvent = {
520
+ type?: "nova.v2.events.cells.{cell}.apps.{app}.created"
521
+ source?: "/nova/service-manager"
522
+ /**
523
+ * Unique identifier for this app created event.
524
+ */
525
+ id: {
526
+ [k: string]: unknown
527
+ }
528
+ /**
529
+ * Timestamp when the app release was created.
530
+ */
531
+ time: {
532
+ [k: string]: unknown
533
+ }
534
+ data: AppEventData
535
+ } & CloudEvent
536
+ /**
537
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
538
+ * via the `definition` "AppUpdatedEvent".
539
+ */
540
+ export type AppUpdatedEvent = {
541
+ type?: "nova.v2.events.cells.{cell}.apps.{app}.updated"
542
+ source?: "/nova/service-manager"
543
+ /**
544
+ * Unique identifier for this app updated event.
545
+ */
546
+ id: {
547
+ [k: string]: unknown
548
+ }
549
+ /**
550
+ * Timestamp when the app release was updated.
551
+ */
552
+ time: {
553
+ [k: string]: unknown
554
+ }
555
+ data: AppEventData
556
+ } & CloudEvent
557
+ /**
558
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
559
+ * via the `definition` "AppDeletedEvent".
560
+ */
561
+ export type AppDeletedEvent = {
562
+ type?: "nova.v2.events.cells.{cell}.apps.{app}.deleted"
563
+ source?: "/nova/service-manager"
564
+ /**
565
+ * Unique identifier for this app deleted event.
566
+ */
567
+ id: {
568
+ [k: string]: unknown
569
+ }
570
+ /**
571
+ * Timestamp when the app release was deleted.
572
+ */
573
+ time: {
574
+ [k: string]: unknown
575
+ }
576
+ data: AppEventData
577
+ } & CloudEvent
578
+ /**
579
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
580
+ * via the `definition` "RobotControllerCreatedEvent".
581
+ */
582
+ export type RobotControllerCreatedEvent = {
583
+ type?: "nova.v2.events.cells.{cell}.controllers.{controller}.created"
584
+ source?: "/nova/service-manager"
585
+ /**
586
+ * Unique identifier for this robot controller created event.
587
+ */
588
+ id: {
589
+ [k: string]: unknown
590
+ }
591
+ /**
592
+ * Timestamp when the robot controller release was created.
593
+ */
594
+ time: {
595
+ [k: string]: unknown
596
+ }
597
+ data: RobotControllerEventData
598
+ } & CloudEvent
599
+ /**
600
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
601
+ * via the `definition` "RobotControllerUpdatedEvent".
602
+ */
603
+ export type RobotControllerUpdatedEvent = {
604
+ type?: "nova.v2.events.cells.{cell}.controllers.{controller}.updated"
605
+ source?: "/nova/service-manager"
606
+ /**
607
+ * Unique identifier for this robot controller updated event.
608
+ */
609
+ id: {
610
+ [k: string]: unknown
611
+ }
612
+ /**
613
+ * Timestamp when the robot controller release was updated.
614
+ */
615
+ time: {
616
+ [k: string]: unknown
617
+ }
618
+ data: RobotControllerEventData
619
+ } & CloudEvent
620
+ /**
621
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
622
+ * via the `definition` "RobotControllerDeletedEvent".
623
+ */
624
+ export type RobotControllerDeletedEvent = {
625
+ type?: "nova.v2.events.cells.{cell}.controllers.{controller}.deleted"
626
+ source?: "/nova/service-manager"
627
+ /**
628
+ * Unique identifier for this robot controller deleted event.
629
+ */
630
+ id: {
631
+ [k: string]: unknown
632
+ }
633
+ /**
634
+ * Timestamp when the robot controller release was deleted.
635
+ */
636
+ time: {
637
+ [k: string]: unknown
638
+ }
639
+ data: RobotControllerEventData
640
+ } & CloudEvent
641
+
642
+ export interface AbbController {
643
+ kind: "AbbController"
644
+ controller_ip: string
645
+ /**
646
+ * Default values: 80, 443. If custom value is set, field is required.
647
+ *
648
+ */
649
+ controller_port: number
650
+ /**
651
+ * The EGM server runs inside of the cell, thus its IP must be in the same network as the 'controller_ip'
652
+ */
653
+ egm_server: {
654
+ ip: string
655
+ port: number
656
+ }
657
+ }
658
+ /**
659
+ * Optional dedicated network interface for a physical robot controller.
660
+ *
661
+ * When set, the controller is given its own network interface on the selected
662
+ * physical network port (`pf`) with the given `address`, so it can reach the
663
+ * robot network directly.
664
+ *
665
+ *
666
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
667
+ * via the `definition` "ControllerNetworkInterface".
668
+ */
669
+ export interface ControllerNetworkInterface {
670
+ /**
671
+ * IPv4 address in CIDR notation to assign to the controller's network
672
+ * interface, for example `192.168.1.10/24`. The value must be a valid IPv4
673
+ * address followed by a prefix length between 0 and 32.
674
+ *
675
+ */
676
+ address: string
677
+ /**
678
+ * Name of the node's physical network port that connects to the robot
679
+ * network, for example `enp10s0f0`. The controller's interface is provided
680
+ * from this port.
681
+ *
682
+ */
683
+ pf: string
684
+ }
685
+ /**
686
+ * The configuration of a physical FANUC robot controller has to contain IP address of the controller.
687
+ *
688
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
689
+ * via the `definition` "FanucController".
690
+ */
691
+ export interface FanucController {
692
+ kind: "FanucController"
693
+ controller_ip: string
694
+ network_interface?: ControllerNetworkInterface
695
+ }
696
+ /**
697
+ * The configuration of a physical KUKA robot controller has to contain an IP address.
698
+ * Additionally an RSI server configuration has to be specified in order to control the robot.
699
+ * Deploying the server is a functionality of this API.
700
+ *
701
+ *
702
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
703
+ * via the `definition` "KukaController".
704
+ */
705
+ export interface KukaController {
706
+ kind: "KukaController"
707
+ controller_ip: string
708
+ controller_port: number
709
+ /**
710
+ * The RSI server runs inside of the cell.
711
+ */
712
+ rsi_server: {
713
+ ip: string
714
+ port: number
715
+ }
716
+ /**
717
+ * If true, uses slower cycle time of 12ms instead of 4ms.
718
+ *
719
+ */
720
+ slow_cycle_rate?: boolean
721
+ }
722
+ /**
723
+ * The configuration of a physical Universal Robots controller has to contain IP address of the controller.
724
+ *
725
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
726
+ * via the `definition` "UniversalrobotsController".
727
+ */
728
+ export interface UniversalrobotsController {
729
+ kind: "UniversalrobotsController"
730
+ controller_ip: string
731
+ }
732
+ /**
733
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
734
+ * via the `definition` "MotionGroupFromType".
735
+ */
736
+ export interface MotionGroupFromModel {
737
+ /**
738
+ * Unique identifier for the motion group to be added.
739
+ */
740
+ motion_group: string
741
+ motion_group_model: MotionGroupModel
742
+ /**
743
+ * Initial joint position of the added motion group.
744
+ * Provides the joint position as a JSON array of float values in radians. The array length
745
+ * must match the robot's degrees of freedom, e.g., `"[0, 0, 0, 0, 0, 0]"` for a 6-DOF robot.
746
+ * If the provided array length does not match the robot's DOF, the array will be adjusted; if it is longer, extra values will be truncated;
747
+ * if it is shorter, missing values will be filled with zeros.
748
+ *
749
+ */
750
+ initial_joint_position?: string
751
+ }
752
+ /**
753
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
754
+ * via the `definition` "MotionGroupFromJson".
755
+ */
756
+ export interface MotionGroupFromJSON {
757
+ /**
758
+ * Unique identifier for the motion group to be added.
759
+ */
760
+ motion_group: string
761
+ /**
762
+ * JSON configuration of the virtual robot controller, can be obtained from the physical controller's configuration
763
+ * via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration).
764
+ *
765
+ */
766
+ json_data: string
767
+ /**
768
+ * The identifier of the motion group that needs to be extracted from the provided JSON configuration.
769
+ *
770
+ */
771
+ extracted_motion_group_id: string
772
+ /**
773
+ * Initial joint position of the added motion group.
774
+ * Provides the joint position as a JSON array of float values in radians. The array length
775
+ * must match the robot's degrees of freedom, e.g., `"[0, 0, 0, 0, 0, 0]"` for a 6-DOF robot.
776
+ * If the provided array length does not match the robot's DOF, the array will be adjusted: if it is longer, extra values will be truncated;
777
+ * if it is shorter, missing values will be filled with zeros.
778
+ *
779
+ */
780
+ initial_joint_position?: string
781
+ }
782
+ /**
783
+ * The configuration of a virtual robot controller has to contain the manufacturer string,
784
+ * an optional joint position string array, and either a preset `type` **or** the complete JSON configuration.
785
+ *
786
+ *
787
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
788
+ * via the `definition` "VirtualController".
789
+ */
790
+ export interface VirtualController {
791
+ kind: "VirtualController"
792
+ manufacturer: Manufacturer
793
+ /**
794
+ * Preset type of the virtual robot controller.
795
+ * See [getRobotConfigurations](#/operations/getRobotConfigurations) for supported types.
796
+ *
797
+ */
798
+ type?: string
799
+ /**
800
+ * Complete JSON configuration of the virtual robot controller.
801
+ * Can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration).
802
+ * If provided, the `type` field should not be used.
803
+ *
804
+ */
805
+ json?: string
806
+ /**
807
+ * Initial joint position of the first motion group from the virtual robot controller.
808
+ * Provides the joint position as a JSON array of float values in radians. The array length
809
+ * must match the robot's degrees of freedom, e.g., `"[0, 0, 0, 0, 0, 0]"` for a 6-DOF robot.
810
+ * If the provided array length does not match the robot's DOF, the array will be adjusted: if it is longer, extra values will be truncated;
811
+ * if it is shorter, missing values will be filled with zeros.
812
+ *
813
+ */
814
+ initial_joint_position?: string
815
+ /**
816
+ * Adds a motion group configuration for the virtual robot controller.
817
+ *
818
+ * > **NOTE**
819
+ * >
820
+ * > Set only one of the two options, **motion_group_model**, or **json_data**
821
+ *
822
+ * - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types
823
+ * - **json_data**: JSON configuration of the virtual robot controller, can be obtained from the physical controller's configuration
824
+ * via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration)
825
+ * - **extracted_motion_group_id**: Motion group identifier to extract from the provided JSON configuration, required when using json_data
826
+ * - **motion_group**: Unique identifier for the motion group
827
+ * - **initial_joint_position**: Specifies the initial joint position for the added motion group
828
+ *
829
+ *
830
+ * @maxItems 10
831
+ */
832
+ motion_groups?:
833
+ | []
834
+ | [AddVirtualControllerMotionGroupRequest]
835
+ | [
836
+ AddVirtualControllerMotionGroupRequest,
837
+ AddVirtualControllerMotionGroupRequest,
838
+ ]
839
+ | [
840
+ AddVirtualControllerMotionGroupRequest,
841
+ AddVirtualControllerMotionGroupRequest,
842
+ AddVirtualControllerMotionGroupRequest,
843
+ ]
844
+ | [
845
+ AddVirtualControllerMotionGroupRequest,
846
+ AddVirtualControllerMotionGroupRequest,
847
+ AddVirtualControllerMotionGroupRequest,
848
+ AddVirtualControllerMotionGroupRequest,
849
+ ]
850
+ | [
851
+ AddVirtualControllerMotionGroupRequest,
852
+ AddVirtualControllerMotionGroupRequest,
853
+ AddVirtualControllerMotionGroupRequest,
854
+ AddVirtualControllerMotionGroupRequest,
855
+ AddVirtualControllerMotionGroupRequest,
856
+ ]
857
+ | [
858
+ AddVirtualControllerMotionGroupRequest,
859
+ AddVirtualControllerMotionGroupRequest,
860
+ AddVirtualControllerMotionGroupRequest,
861
+ AddVirtualControllerMotionGroupRequest,
862
+ AddVirtualControllerMotionGroupRequest,
863
+ AddVirtualControllerMotionGroupRequest,
864
+ ]
865
+ | [
866
+ AddVirtualControllerMotionGroupRequest,
867
+ AddVirtualControllerMotionGroupRequest,
868
+ AddVirtualControllerMotionGroupRequest,
869
+ AddVirtualControllerMotionGroupRequest,
870
+ AddVirtualControllerMotionGroupRequest,
871
+ AddVirtualControllerMotionGroupRequest,
872
+ AddVirtualControllerMotionGroupRequest,
873
+ ]
874
+ | [
875
+ AddVirtualControllerMotionGroupRequest,
876
+ AddVirtualControllerMotionGroupRequest,
877
+ AddVirtualControllerMotionGroupRequest,
878
+ AddVirtualControllerMotionGroupRequest,
879
+ AddVirtualControllerMotionGroupRequest,
880
+ AddVirtualControllerMotionGroupRequest,
881
+ AddVirtualControllerMotionGroupRequest,
882
+ AddVirtualControllerMotionGroupRequest,
883
+ ]
884
+ | [
885
+ AddVirtualControllerMotionGroupRequest,
886
+ AddVirtualControllerMotionGroupRequest,
887
+ AddVirtualControllerMotionGroupRequest,
888
+ AddVirtualControllerMotionGroupRequest,
889
+ AddVirtualControllerMotionGroupRequest,
890
+ AddVirtualControllerMotionGroupRequest,
891
+ AddVirtualControllerMotionGroupRequest,
892
+ AddVirtualControllerMotionGroupRequest,
893
+ AddVirtualControllerMotionGroupRequest,
894
+ ]
895
+ | [
896
+ AddVirtualControllerMotionGroupRequest,
897
+ AddVirtualControllerMotionGroupRequest,
898
+ AddVirtualControllerMotionGroupRequest,
899
+ AddVirtualControllerMotionGroupRequest,
900
+ AddVirtualControllerMotionGroupRequest,
901
+ AddVirtualControllerMotionGroupRequest,
902
+ AddVirtualControllerMotionGroupRequest,
903
+ AddVirtualControllerMotionGroupRequest,
904
+ AddVirtualControllerMotionGroupRequest,
905
+ AddVirtualControllerMotionGroupRequest,
906
+ ]
907
+ }
908
+ /**
909
+ * The configuration of a physical Yaskawa robot controller has to contain IP address of the controller.
910
+ *
911
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
912
+ * via the `definition` "YaskawaController".
913
+ */
914
+ export interface YaskawaController {
915
+ kind: "YaskawaController"
916
+ controller_ip: string
917
+ }
918
+ /**
919
+ * The configuration of a physical or virtual robot controller.
920
+ *
921
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
922
+ * via the `definition` "RobotController".
923
+ */
924
+ export interface RobotController {
925
+ /**
926
+ * Unique name of controller within the cell.
927
+ * It must be a valid k8s label name as defined by [RFC 1035](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#rfc-1035-label-names).
928
+ *
929
+ */
930
+ name: string
931
+ configuration:
932
+ | AbbController
933
+ | FanucController
934
+ | KukaController
935
+ | UniversalrobotsController
936
+ | VirtualController
937
+ | YaskawaController
938
+ }
939
+ /**
940
+ * User provided credentials for creating a secret to pull an image from a registry.
941
+ *
942
+ *
943
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
944
+ * via the `definition` "ImageCredentials".
945
+ */
946
+ export interface ImageCredentials {
947
+ registry: string
948
+ user: string
949
+ password: string
950
+ }
951
+ /**
952
+ * A user provided, custom container image and the required credentials to pull it from a registry.
953
+ *
954
+ *
955
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
956
+ * via the `definition` "ContainerImage".
957
+ */
958
+ export interface ContainerImage {
959
+ /**
960
+ * The location of a container image in the form of `<registry>/<image>:<tag>`.
961
+ */
962
+ image: string
963
+ credentials?: ImageCredentials
964
+ /**
965
+ * Known secrets for authentication with the container registry.
966
+ */
967
+ secrets?: {
968
+ name: string
969
+ }[]
970
+ }
971
+ /**
972
+ * The path and capacity of a volume that retains data across application restarts.
973
+ * The maximal requestable capacity is 300Mi.
974
+ * If you need more capacity consider using [storeObject](#/operations/storeObject).
975
+ *
976
+ *
977
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
978
+ * via the `definition` "ContainerStorage".
979
+ */
980
+ export interface ContainerStorage {
981
+ mount_path: string
982
+ /**
983
+ * The amount of local storage available for the application.
984
+ *
985
+ * **NOTE:** The capacity can NEVER be reduced!
986
+ *
987
+ */
988
+ capacity: string
989
+ }
990
+ /**
991
+ * Additional resources that the application requires.
992
+ *
993
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
994
+ * via the `definition` "ContainerResources".
995
+ */
996
+ export interface ContainerResources {
997
+ /**
998
+ * Number of GPUs the application requires.
999
+ */
1000
+ intel_gpu?: number
1001
+ /**
1002
+ * The maximum memory allocated to this application.
1003
+ */
1004
+ memory_limit?: string
1005
+ }
1006
+ /**
1007
+ * An App is defined by a webserver, packed inside a container, serving a web-application.
1008
+ *
1009
+ *
1010
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1011
+ * via the `definition` "App".
1012
+ */
1013
+ export interface App {
1014
+ /**
1015
+ * The name of the provided application.
1016
+ * The name must be unique within the cell and is used as an identifier for addressing the application in all API calls
1017
+ * , e.g., when updating the application.
1018
+ *
1019
+ * It also defines where the application is reachable (/$cell/$name).
1020
+ *
1021
+ * It must be a valid k8s label name as defined by [RFC 1035](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#rfc-1035-label-names).
1022
+ *
1023
+ */
1024
+ name: string
1025
+ /**
1026
+ * The path of the icon for the App (/$cell/$name/$app_icon).
1027
+ */
1028
+ app_icon: string
1029
+ container_image: ContainerImage
1030
+ /**
1031
+ * The port the containerized webserver is listening on.
1032
+ */
1033
+ port?: number
1034
+ environment?: ContainerEnvironment
1035
+ storage?: ContainerStorage
1036
+ resources?: ContainerResources
1037
+ /**
1038
+ * Defines the URL path suffix used to check the application's health status. The complete health check URL
1039
+ * is constructed as `/$cell/$name/$health_path`. When the application is working as expected,
1040
+ * the endpoint returns an HTTP 200 status code.
1041
+ *
1042
+ * If not specified, the system will default to using the application icon path suffix
1043
+ * (the value of `app_icon`) as the health check endpoint, resulting in `/$cell/$name/$app_icon`.
1044
+ *
1045
+ * If the health check fails (no response or non-200 status code), the system will
1046
+ * automatically restart the application container to restore service.
1047
+ *
1048
+ */
1049
+ health_path?: string
1050
+ /**
1051
+ * Defines the URL path suffix used to provide an endpoint for diagnosis data collection.
1052
+ * The complete diagnosis check URL is constructed as `/$cell/$name/$diagnosis_path`.
1053
+ *
1054
+ * The endpoint is called when a diagnosis package is requested via the diagnosis API.
1055
+ * The endpoint needs to return the data within a zip file `application/zip` response.
1056
+ *
1057
+ */
1058
+ diagnosis_path?: string
1059
+ }
1060
+ /**
1061
+ * To create a robot cell, only a valid name is required.
1062
+ * Once created, a robot cell provides access to the Wandelbots NOVA foundation services.
1063
+ * The configuration can be customized, e.g., robot controllers, also within apps.
1064
+ *
1065
+ *
1066
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1067
+ * via the `definition` "Cell".
1068
+ */
1069
+ export interface Cell {
1070
+ /**
1071
+ * A unique name for the cell used as an identifier for addressing the cell in all API calls.
1072
+ * It must be a valid k8s label name as defined by [RFC 1123](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names).
1073
+ *
1074
+ */
1075
+ name: string
1076
+ /**
1077
+ * Wandelbots NOVA version of the cell.
1078
+ * This version must not exceed the current system version.
1079
+ *
1080
+ */
1081
+ version?: string
1082
+ description?: CellDescription
1083
+ controllers?: RobotController[]
1084
+ apps?: App[]
1085
+ [k: string]: unknown
1086
+ }
1087
+ /**
1088
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1089
+ * via the `definition` "ProgramStatus".
1090
+ */
1091
+ export interface ProgramStatus {
1092
+ /**
1093
+ * The app name where the program is hosted.
1094
+ */
1095
+ app: string
1096
+ /**
1097
+ * Unique identifier of the program.
1098
+ */
1099
+ program: string
1100
+ /**
1101
+ * Unique identifier of the program run.
1102
+ */
1103
+ run: string
1104
+ state: ProgramRunState1
1105
+ /**
1106
+ * Error message if the program run failed.
1107
+ */
1108
+ error?: string
1109
+ /**
1110
+ * RFC3339 timestamp when the program run started.
1111
+ */
1112
+ start_time?: string
1113
+ /**
1114
+ * RFC3339 timestamp when the program run ended.
1115
+ */
1116
+ end_time?: string
1117
+ /**
1118
+ * RFC3339 timestamp when the program run ended.
1119
+ */
1120
+ timestamp: string
1121
+ }
1122
+ /**
1123
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1124
+ * via the `definition` "ServiceStatus".
1125
+ */
1126
+ export interface ServiceStatus {
1127
+ service: string
1128
+ group: ServiceGroup
1129
+ status: {
1130
+ severity: ServiceStatusSeverity
1131
+ code: ServiceStatusPhase
1132
+ reason?: string
1133
+ }
1134
+ }
1135
+ /**
1136
+ * Lifecycle event for a cell cycle.
1137
+ *
1138
+ *
1139
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1140
+ * via the `definition` "CellCycleEvent".
1141
+ */
1142
+ export interface CellCycleEvent {
1143
+ /**
1144
+ * Type of the cycle event.
1145
+ */
1146
+ event_type: "cycle_started" | "cycle_finished" | "cycle_failed"
1147
+ /**
1148
+ * Unique identifier of this cycle event.
1149
+ */
1150
+ id: string
1151
+ /**
1152
+ * Unique identifier of the cycle this event belongs to.
1153
+ */
1154
+ cycle_id: string
1155
+ /**
1156
+ * Timestamp when the cycle event occurred, in ISO 8601 format.
1157
+ */
1158
+ timestamp: string
1159
+ /**
1160
+ * Unique identifier of the cell the event belongs to.
1161
+ */
1162
+ cell: string
1163
+ /**
1164
+ * Additional event-specific data. May be empty.
1165
+ */
1166
+ extra?: {
1167
+ [k: string]: unknown
1168
+ }
1169
+ /**
1170
+ * Duration of the cycle in milliseconds.
1171
+ */
1172
+ duration_ms?: number
1173
+ /**
1174
+ * Reason for cycle failure.
1175
+ */
1176
+ reason?: string
1177
+ }
1178
+ /**
1179
+ * Defines a spherical shape centred around the origin.
1180
+ *
1181
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1182
+ * via the `definition` "Sphere".
1183
+ */
1184
+ export interface Sphere {
1185
+ shape_type: "sphere"
1186
+ /**
1187
+ * The radius of the sphere in [mm].
1188
+ */
1189
+ radius: number
1190
+ }
1191
+ /**
1192
+ * Defines a cuboid shape centred around an origin.
1193
+ *
1194
+ * If a margin is applied to the box type full, it is added to all size values. The shape will keep its edges.
1195
+ * The hollow box type consists of thin boxes that make up its walls.
1196
+ * If a margin is applied to the box type hollow, its size values are reduced by the margin.
1197
+ *
1198
+ *
1199
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1200
+ * via the `definition` "Box".
1201
+ */
1202
+ export interface Box {
1203
+ shape_type: "box"
1204
+ /**
1205
+ * The dimension in x-direction in [mm].
1206
+ */
1207
+ size_x: number
1208
+ /**
1209
+ * The dimension in y-direction in [mm].
1210
+ */
1211
+ size_y: number
1212
+ /**
1213
+ * The dimension in z-direction in [mm].
1214
+ */
1215
+ size_z: number
1216
+ /**
1217
+ * The box type defines if the box is hollow or full.
1218
+ */
1219
+ box_type: "HOLLOW" | "FULL"
1220
+ }
1221
+ /**
1222
+ * Defines an x/y-plane with finite size. Centred around the z-axis.
1223
+ *
1224
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1225
+ * via the `definition` "Rectangle".
1226
+ */
1227
+ export interface Rectangle {
1228
+ shape_type: "rectangle"
1229
+ /**
1230
+ * The dimension in x-direction in [mm].
1231
+ */
1232
+ size_x: number
1233
+ /**
1234
+ * The dimension in y-direction in [mm].
1235
+ */
1236
+ size_y: number
1237
+ }
1238
+ /**
1239
+ * Defines an x/y-plane with infinite size.
1240
+ *
1241
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1242
+ * via the `definition` "Plane".
1243
+ */
1244
+ export interface Plane {
1245
+ shape_type: "plane"
1246
+ }
1247
+ /**
1248
+ * Defines a cylindrical shape.
1249
+ * Centred around origin, symmetric around z-axis.
1250
+ *
1251
+ * If a margin is applied, it is added to radius and height. The shape will keep its edges.
1252
+ *
1253
+ *
1254
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1255
+ * via the `definition` "Cylinder".
1256
+ */
1257
+ export interface Cylinder {
1258
+ shape_type: "cylinder"
1259
+ /**
1260
+ * The radius of the cylinder in [mm].
1261
+ */
1262
+ radius: number
1263
+ /**
1264
+ * The height of the cylinder in [mm].
1265
+ */
1266
+ height: number
1267
+ }
1268
+ /**
1269
+ * Defines a cylindrical shape with 2 semi-spheres on the top and bottom.
1270
+ * Centred around origin, symmetric around z-axis.
1271
+ *
1272
+ *
1273
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1274
+ * via the `definition` "Capsule".
1275
+ */
1276
+ export interface Capsule {
1277
+ shape_type: "capsule"
1278
+ /**
1279
+ * The radius of the cylinder and semi-spheres in [mm].
1280
+ */
1281
+ radius: number
1282
+ /**
1283
+ * The height of the inner cylinder in [mm].
1284
+ */
1285
+ cylinder_height: number
1286
+ }
1287
+ /**
1288
+ * Convex hull around four spheres. Sphere center points in x/y-plane, offset by either combination "+/- sizeX" or "+/- sizeY".
1289
+ *
1290
+ * Alternative description: Rectangle in x/y-plane with a 3D padding.
1291
+ *
1292
+ *
1293
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1294
+ * via the `definition` "RectangularCapsule".
1295
+ */
1296
+ export interface RectangularCapsule {
1297
+ shape_type: "rectangular_capsule"
1298
+ /**
1299
+ * The radius of the inner spheres in [mm].
1300
+ */
1301
+ radius: number
1302
+ /**
1303
+ * The distance of the sphere center in x-direction in [mm].
1304
+ */
1305
+ sphere_center_distance_x: number
1306
+ /**
1307
+ * The distance of the sphere center in y-direction in [mm].
1308
+ */
1309
+ sphere_center_distance_y: number
1310
+ }
1311
+ /**
1312
+ * Defines a convex hull encapsulating a set of vertices.
1313
+ *
1314
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1315
+ * via the `definition` "ConvexHull".
1316
+ */
1317
+ export interface ConvexHull {
1318
+ shape_type: "convex_hull"
1319
+ /**
1320
+ * The list of encapsulated points.
1321
+ */
1322
+ vertices: Vector3D[]
1323
+ }
1324
+ /**
1325
+ * Defines a pose in 3D space.
1326
+ * A pose is a combination of a position and an orientation.
1327
+ * The position is applied before the orientation.
1328
+ *
1329
+ *
1330
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1331
+ * via the `definition` "Pose".
1332
+ */
1333
+ export interface Pose {
1334
+ position?: Vector3D
1335
+ orientation?: RotationVector
1336
+ }
1337
+ /**
1338
+ * Defines a collider with a single shape.
1339
+ *
1340
+ * A collider is an object that is used for collision detection.
1341
+ * It defines the `shape` that is attached with the offset of `pose` to a reference frame.
1342
+ *
1343
+ * Use colliders to:
1344
+ * - Define the shape of a workpiece. The reference frame is the scene origin.
1345
+ * - Define the shape of a link in a motion group. The reference frame is the link coordinate system.
1346
+ * - Define the shape of a tool. The reference frame is the flange coordinate system.
1347
+ *
1348
+ *
1349
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1350
+ * via the `definition` "Collider".
1351
+ */
1352
+ export interface Collider {
1353
+ shape:
1354
+ | Sphere
1355
+ | Box
1356
+ | Rectangle
1357
+ | Plane
1358
+ | Cylinder
1359
+ | Capsule
1360
+ | RectangularCapsule
1361
+ | ConvexHull
1362
+ pose?: Pose
1363
+ /**
1364
+ * Increases the shape's size in all dimensions. Applied in [mm]. Can be used to keep a safe distance to the shape.
1365
+ */
1366
+ margin?: number
1367
+ }
1368
+ /**
1369
+ * A collection of identifiable colliders.
1370
+ *
1371
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1372
+ * via the `definition` "ColliderDictionary".
1373
+ */
1374
+ export interface ColliderDictionary {
1375
+ [k: string]: Collider
1376
+ }
1377
+ /**
1378
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1379
+ * via the `definition` "Link".
1380
+ */
1381
+ export interface CollisionMotionGroupLink {
1382
+ [k: string]: Collider
1383
+ }
1384
+ /**
1385
+ * Defines the shape of a tool.
1386
+ *
1387
+ * A tool is a dictionary of colliders.
1388
+ *
1389
+ * All colliders that make up a tool are attached to the flange frame of the motion group.
1390
+ *
1391
+ *
1392
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1393
+ * via the `definition` "Tool".
1394
+ */
1395
+ export interface CollisionMotionGroupTool {
1396
+ [k: string]: Collider
1397
+ }
1398
+ /**
1399
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1400
+ * via the `definition` "CollisionSetup".
1401
+ */
1402
+ export interface CollisionSetup {
1403
+ colliders?: ColliderDictionary1
1404
+ link_chain?: LinkChain1
1405
+ tool?: CollisionMotionGroupTool1
1406
+ /**
1407
+ * If true, self-collision detection is enabled for the motion group.
1408
+ *
1409
+ * Self-collision detection checks if links in the kinematic chain of the motion group collide with each other.
1410
+ * Adjacent links in the kinematic chain of the motion group are not checked for mutual collision.
1411
+ * The tool is treated like a link at the end of the kinematic chain. It is checked against all links except the last one.
1412
+ *
1413
+ * Default is true.
1414
+ *
1415
+ */
1416
+ self_collision_detection?: boolean
1417
+ }
1418
+ /**
1419
+ * Colliders are checked against links and tool.
1420
+ *
1421
+ */
1422
+ export interface ColliderDictionary1 {
1423
+ [k: string]: Collider
1424
+ }
1425
+ /**
1426
+ * Shape of the tool to validate against colliders.
1427
+ *
1428
+ */
1429
+ export interface CollisionMotionGroupTool1 {
1430
+ [k: string]: Collider
1431
+ }
1432
+ /**
1433
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1434
+ * via the `definition` "BusIOsState".
1435
+ */
1436
+ export interface BusIOsState {
1437
+ state: BusIOsStateEnum
1438
+ /**
1439
+ * A message providing additional information on the input/output service, e.g., BUS service status, encountered errors.
1440
+ * May be empty if no additional information is available.
1441
+ *
1442
+ */
1443
+ message?: string
1444
+ }
1445
+ /**
1446
+ * Input/Output boolean value representation.
1447
+ *
1448
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1449
+ * via the `definition` "IOBooleanValue".
1450
+ */
1451
+ export interface IOBooleanValue {
1452
+ /**
1453
+ * Unique identifier of the input/output.
1454
+ */
1455
+ io: string
1456
+ /**
1457
+ * Value of a digital input/output.
1458
+ *
1459
+ */
1460
+ value: boolean
1461
+ value_type: "boolean"
1462
+ }
1463
+ /**
1464
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1465
+ * via the `definition` "IOIntegerValue".
1466
+ */
1467
+ export interface IOIntegerValue {
1468
+ /**
1469
+ * Unique identifier of the input/output.
1470
+ */
1471
+ io: string
1472
+ /**
1473
+ * Value of an input/output with integer representation.
1474
+ *
1475
+ * > The integral value is transmitted as a string to avoid precision loss during conversion to JSON.
1476
+ * > Recommended: Use int64 in your implementation. If you want to interact with int64 in numbers,
1477
+ * > JS bigint libraries can help you to parse the string into an integral value.
1478
+ *
1479
+ */
1480
+ value: string
1481
+ value_type: "integer"
1482
+ }
1483
+ /**
1484
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1485
+ * via the `definition` "IOFloatValue".
1486
+ */
1487
+ export interface IOFloatValue {
1488
+ /**
1489
+ * Unique identifier of the input/output.
1490
+ */
1491
+ io: string
1492
+ /**
1493
+ * Value of an analog input/output in floating number representation.
1494
+ *
1495
+ */
1496
+ value: number
1497
+ value_type: "float"
1498
+ }
1499
+ /**
1500
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1501
+ * via the `definition` "SelectIOs".
1502
+ */
1503
+ export interface SelectIOs {
1504
+ /**
1505
+ * Array of input/output identifiers to retrieve the values for.
1506
+ */
1507
+ ios: string[]
1508
+ /**
1509
+ * Type of update.
1510
+ * - changes: Only send updates when the value changes.
1511
+ * - full: Send the full list of values at the update rate.
1512
+ *
1513
+ */
1514
+ update_type?: "changes" | "full"
1515
+ }
1516
+ /**
1517
+ * Array of input/output values.
1518
+ *
1519
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1520
+ * via the `definition` "StreamIOValuesResponse".
1521
+ */
1522
+ export interface StreamIOValuesResponse {
1523
+ io_values: IOValue[]
1524
+ /**
1525
+ * Timestamp indicating when the represented information was received from the robot controller.
1526
+ */
1527
+ timestamp: string
1528
+ /**
1529
+ * Sequence number of the controller state. It starts with 0 upon establishing the connection with a physical controller.
1530
+ * The sequence number is reset when the connection to the physical controller is closed and re-established.
1531
+ *
1532
+ */
1533
+ sequence_number: number
1534
+ }
1535
+ /**
1536
+ * Indicates which joint of the motion group is in a limit.
1537
+ * If a joint is in its limit, only this joint can be moved. Movements that affect any other joints are not executed.
1538
+ *
1539
+ *
1540
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1541
+ * via the `definition` "MotionGroupState_JointLimitReached".
1542
+ */
1543
+ export interface MotionGroupState_JointLimitReached {
1544
+ /**
1545
+ * If true, operational (soft) jointLimit is reached for specific joint.
1546
+ */
1547
+ limit_reached: boolean[]
1548
+ }
1549
+ /**
1550
+ * Jogging is active.
1551
+ *
1552
+ *
1553
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1554
+ * via the `definition` "JoggingRunning".
1555
+ */
1556
+ export interface JoggingRunning {
1557
+ kind: "RUNNING"
1558
+ }
1559
+ /**
1560
+ * User has paused jogging.
1561
+ *
1562
+ *
1563
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1564
+ * via the `definition` "JoggingPausedByUser".
1565
+ */
1566
+ export interface JoggingPausedByUser {
1567
+ kind: "PAUSED_BY_USER"
1568
+ }
1569
+ /**
1570
+ * Jogging was paused because of an I/O event.
1571
+ *
1572
+ *
1573
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1574
+ * via the `definition` "JoggingPausedOnIO".
1575
+ */
1576
+ export interface JoggingPausedOnIO {
1577
+ kind: "PAUSED_ON_IO"
1578
+ }
1579
+ /**
1580
+ * Jogging was paused because a joint is near its limit.
1581
+ *
1582
+ *
1583
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1584
+ * via the `definition` "JoggingPausedNearJointLimit".
1585
+ */
1586
+ export interface JoggingPausedNearJointLimit {
1587
+ kind: "PAUSED_NEAR_JOINT_LIMIT"
1588
+ joint_indices: number[]
1589
+ }
1590
+ /**
1591
+ * Jogging was paused because the motion group neared a collision.
1592
+ *
1593
+ *
1594
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1595
+ * via the `definition` "JoggingPausedNearCollision".
1596
+ */
1597
+ export interface JoggingPausedNearCollision {
1598
+ kind: "PAUSED_NEAR_COLLISION"
1599
+ description: string
1600
+ }
1601
+ /**
1602
+ * Jogging was paused because the motion group neared a singularity or the workspace boundary.
1603
+ *
1604
+ *
1605
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1606
+ * via the `definition` "JoggingPausedNearSingularity".
1607
+ */
1608
+ export interface JoggingPausedNearSingularity {
1609
+ kind: "PAUSED_NEAR_SINGULARITY"
1610
+ description: string
1611
+ }
1612
+ /**
1613
+ * State of jogging execution.
1614
+ * This state is sent during jogging movement, response-rate closest to the nearest multiple of controller step-rate but not exceeding the configured rate.
1615
+ * The jogging state can be one of the following:
1616
+ * - RUNNING: Jogging is active.
1617
+ * - PAUSED_BY_USER: User has paused jogging.
1618
+ * - PAUSED_NEAR_JOINT_LIMIT: Jogging was paused because a joint is near its limit.
1619
+ * - PAUSED_NEAR_COLLISION: Jogging was paused because the motion group neared a collision.
1620
+ * - PAUSED_NEAR_SINGULARITY: Jogging was paused because the motion group neared a singularity or the workspace boundary.
1621
+ * - PAUSED_ON_IO: Jogging was paused because of an I/O event.
1622
+ *
1623
+ *
1624
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1625
+ * via the `definition` "JoggingDetails".
1626
+ */
1627
+ export interface JoggingDetails {
1628
+ state:
1629
+ | JoggingRunning
1630
+ | JoggingPausedByUser
1631
+ | JoggingPausedOnIO
1632
+ | JoggingPausedNearJointLimit
1633
+ | JoggingPausedNearCollision
1634
+ | JoggingPausedNearSingularity
1635
+ /**
1636
+ * Timestamp of the current jogger session in milliseconds.
1637
+ * Only waypoint sessions are supported. Other sessions return 0.
1638
+ *
1639
+ * > **NOTE**
1640
+ * >
1641
+ * > This field is experimental and its behavior may change in future releases.
1642
+ *
1643
+ */
1644
+ jogger_session_timestamp_ms?: number
1645
+ kind: "JOGGING"
1646
+ }
1647
+ /**
1648
+ * Trajectory is being executed.
1649
+ *
1650
+ *
1651
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1652
+ * via the `definition` "TrajectoryRunning".
1653
+ */
1654
+ export interface TrajectoryRunning {
1655
+ kind: "RUNNING"
1656
+ /**
1657
+ * Remaining time in milliseconds (ms) to reach the end of the motion.
1658
+ */
1659
+ time_to_end: number
1660
+ }
1661
+ /**
1662
+ * User has paused execution.
1663
+ *
1664
+ *
1665
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1666
+ * via the `definition` "TrajectoryPausedByUser".
1667
+ */
1668
+ export interface TrajectoryPausedByUser {
1669
+ kind: "PAUSED_BY_USER"
1670
+ }
1671
+ /**
1672
+ * First or last sample (depending on direction) of trajectory has been sent.
1673
+ *
1674
+ *
1675
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1676
+ * via the `definition` "TrajectoryEnded".
1677
+ */
1678
+ export interface TrajectoryEnded {
1679
+ kind: "END_OF_TRAJECTORY"
1680
+ }
1681
+ /**
1682
+ * Waiting for an I/O event to start execution.
1683
+ *
1684
+ *
1685
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1686
+ * via the `definition` "TrajectoryWaitForIO".
1687
+ */
1688
+ export interface TrajectoryWaitForIO {
1689
+ kind: "WAIT_FOR_IO"
1690
+ }
1691
+ /**
1692
+ * Execution was paused because of an I/O event.
1693
+ *
1694
+ *
1695
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1696
+ * via the `definition` "TrajectoryPausedOnIO".
1697
+ */
1698
+ export interface TrajectoryPausedOnIO {
1699
+ kind: "PAUSED_ON_IO"
1700
+ }
1701
+ /**
1702
+ * State of trajectory execution.
1703
+ * This state is sent during trajectory movement, response-rate closest to the nearest multiple of controller step-rate but not exceeding the configured rate.
1704
+ * The trajectory state can be one of the following:
1705
+ * - RUNNING: Trajectory is being executed.
1706
+ * - PAUSED_BY_USER: User has paused execution.
1707
+ * - END_OF_TRAJECTORY: First or last sample (depending on direction) of trajectory has been sent.
1708
+ * - WAIT_FOR_IO: Waiting for an I/O event to start execution.
1709
+ * - PAUSED_ON_IO: Execution was paused because of an I/O event.
1710
+ *
1711
+ *
1712
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1713
+ * via the `definition` "TrajectoryDetails".
1714
+ */
1715
+ export interface TrajectoryDetails {
1716
+ /**
1717
+ * Unique identifier of the trajectory being executed.
1718
+ *
1719
+ */
1720
+ trajectory: string
1721
+ /**
1722
+ * Location of current joint position commmand on the trajectory being executed.
1723
+ *
1724
+ */
1725
+ location: number
1726
+ state:
1727
+ | TrajectoryRunning
1728
+ | TrajectoryPausedByUser
1729
+ | TrajectoryEnded
1730
+ | TrajectoryWaitForIO
1731
+ | TrajectoryPausedOnIO
1732
+ /**
1733
+ * Discriminator for OpenApi generators, which is always "TRAJECTORY" for this schema.
1734
+ *
1735
+ */
1736
+ kind: "TRAJECTORY"
1737
+ }
1738
+ /**
1739
+ * Details about the state of the motion execution.
1740
+ * The details are either for a jogging or a trajectory.
1741
+ * If NOVA is not controlling this motion group at the moment, this field is omitted.
1742
+ *
1743
+ *
1744
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1745
+ * via the `definition` "Execute".
1746
+ */
1747
+ export interface Execute {
1748
+ /**
1749
+ * Commanded joint position of each joint. This command was sent in the time step the corresponding state was received.
1750
+ * The unit depends on the type of joint: For revolute joints, the angle is given in [rad]; for prismatic joints, the displacement is given in [mm].
1751
+ *
1752
+ */
1753
+ joint_position: number[]
1754
+ details?: JoggingDetails | TrajectoryDetails
1755
+ }
1756
+ /**
1757
+ * Presents the current state of the motion group.
1758
+ *
1759
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1760
+ * via the `definition` "MotionGroupState".
1761
+ */
1762
+ export interface MotionGroupState {
1763
+ /**
1764
+ * Timestamp for when data was received from the robot controller.
1765
+ */
1766
+ timestamp: string
1767
+ /**
1768
+ * Sequence number of the controller state. It starts with 0 upon establishing the connection with a physical controller.
1769
+ * The sequence number is reset when the connection to the physical controller is closed and re-established.
1770
+ *
1771
+ */
1772
+ sequence_number: number
1773
+ /**
1774
+ * Identifier of the motion group.
1775
+ */
1776
+ motion_group: string
1777
+ /**
1778
+ * Convenience: Identifier of the robot controller the motion group is attached to.
1779
+ */
1780
+ controller: string
1781
+ joint_position: Joints1
1782
+ joint_limit_reached: MotionGroupState_JointLimitReached1
1783
+ joint_torque?: Joints2
1784
+ joint_current?: Joints3
1785
+ flange_pose?: Pose1
1786
+ /**
1787
+ * Unique identifier addressing the active TCP.
1788
+ * Might not be returned for positioners as some do not support TCPs, depending on the model.
1789
+ *
1790
+ */
1791
+ tcp?: string
1792
+ tcp_pose?: Pose2
1793
+ /**
1794
+ * Unique identifier addressing the reference coordinate system of the cartesian data.
1795
+ * Might not be returned for positioners as some do not support TCPs, depending on the model.
1796
+ * Default: world coordinate system of corresponding controller.
1797
+ *
1798
+ */
1799
+ coordinate_system?: string
1800
+ /**
1801
+ * Unique identifier addressing the active payload.
1802
+ * Only fetchable via GET endpoint, not available in WebSocket.
1803
+ *
1804
+ */
1805
+ payload?: string
1806
+ /**
1807
+ * Indicates whether the motion group is in standstill.
1808
+ * Convenience: Signals that NOVA treats measured joint velocities as 0.
1809
+ *
1810
+ */
1811
+ standstill: boolean
1812
+ execute?: Execute1
1813
+ /**
1814
+ * Revision number of the motion group description.
1815
+ * The revision is incremented whenever the motion group description changes due to a modification of the tools or the payloads in the robot configuration.
1816
+ * The robot controller is polled every 10 s during Monitoring Mode to detect those changes.
1817
+ * Use to trigger fetching based on robot configuration changes.
1818
+ *
1819
+ */
1820
+ description_revision: number
1821
+ }
1822
+ /**
1823
+ * Indicates whether the joint is in a limit for all joints of the motion group.
1824
+ *
1825
+ */
1826
+ export interface MotionGroupState_JointLimitReached1 {
1827
+ /**
1828
+ * If true, operational (soft) jointLimit is reached for specific joint.
1829
+ */
1830
+ limit_reached: boolean[]
1831
+ }
1832
+ /**
1833
+ * Defines a pose in 3D space.
1834
+ * A pose is a combination of a position and an orientation.
1835
+ * The position is applied before the orientation.
1836
+ *
1837
+ */
1838
+ export interface Pose1 {
1839
+ position?: Vector3D
1840
+ orientation?: RotationVector
1841
+ }
1842
+ /**
1843
+ * Defines a pose in 3D space.
1844
+ * A pose is a combination of a position and an orientation.
1845
+ * The position is applied before the orientation.
1846
+ *
1847
+ */
1848
+ export interface Pose2 {
1849
+ position?: Vector3D
1850
+ orientation?: RotationVector
1851
+ }
1852
+ /**
1853
+ * Data that was commanded to the motion group. Includes additional data on NOVA's execution components for executing trajectories and jogging.
1854
+ * This is a convenience field to indicate the last command sent to the motion group.
1855
+ * It is not available in all cases, e.g., if the motion group is not moved by NOVA.
1856
+ *
1857
+ */
1858
+ export interface Execute1 {
1859
+ /**
1860
+ * Commanded joint position of each joint. This command was sent in the time step the corresponding state was received.
1861
+ * The unit depends on the type of joint: For revolute joints, the angle is given in [rad]; for prismatic joints, the displacement is given in [mm].
1862
+ *
1863
+ */
1864
+ joint_position: number[]
1865
+ details?: JoggingDetails | TrajectoryDetails
1866
+ }
1867
+ /**
1868
+ * Returns the whole current state of robot controller.
1869
+ *
1870
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1871
+ * via the `definition` "RobotControllerState".
1872
+ */
1873
+ export interface RobotControllerState {
1874
+ /**
1875
+ * Mode of communication and control between NOVA and the robot controller.
1876
+ */
1877
+ mode:
1878
+ | "MODE_CONTROLLER_NOT_CONFIGURED"
1879
+ | "MODE_INITIALIZING"
1880
+ | "MODE_MONITOR"
1881
+ | "MODE_CONTROL"
1882
+ | "MODE_FREE_DRIVE"
1883
+ /**
1884
+ * Last error stack encountered during initialization process or after a controller disconnect.
1885
+ * At this stage, it's unclear whether the error is fatal.
1886
+ *
1887
+ * Evaluate `last_error` to decide whether to remove the controller using `deleteController`.
1888
+ * Examples:
1889
+ * - Delete required: Host resolution fails repeatedly due to an incorrect IP.
1890
+ * - Delete not required: Temporary network delay caused a disconnect; the system will auto-reconnect.
1891
+ *
1892
+ */
1893
+ last_error?: string[]
1894
+ /**
1895
+ * Timestamp indicating when the represented information was received from the robot controller.
1896
+ */
1897
+ timestamp: string
1898
+ /**
1899
+ * Sequence number of the controller state. It starts with 0 upon establishing the connection with a physical controller.
1900
+ * The sequence number is reset when the connection to the physical controller is closed and re-established.
1901
+ *
1902
+ */
1903
+ sequence_number: number
1904
+ /**
1905
+ * Identifier of the configured robot controller.
1906
+ */
1907
+ controller: string
1908
+ operation_mode: OperationMode
1909
+ safety_state: SafetyStateType
1910
+ /**
1911
+ * If made available by the robot controller, returns the current velocity override in
1912
+ * [percentage] for movements adjusted on robot control panel.
1913
+ * Valid value range: 1 - 100.
1914
+ *
1915
+ */
1916
+ velocity_override?: number
1917
+ motion_groups: MotionGroupState1
1918
+ }
1919
+ /**
1920
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1921
+ * via the `definition` "TcpOffset".
1922
+ */
1923
+ export interface TcpOffset {
1924
+ /**
1925
+ * A readable and changeable name for frontend visualization.
1926
+ */
1927
+ name: string
1928
+ pose: Pose
1929
+ }
1930
+ /**
1931
+ * The upper_limit must be greater then the lower_limit.
1932
+ *
1933
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1934
+ * via the `definition` "LimitRange".
1935
+ */
1936
+ export interface LimitRange {
1937
+ lower_limit?: number
1938
+ upper_limit?: number
1939
+ }
1940
+ /**
1941
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1942
+ * via the `definition` "JointLimits".
1943
+ */
1944
+ export interface JointLimits {
1945
+ position?: LimitRange
1946
+ velocity?: number
1947
+ acceleration?: number
1948
+ /**
1949
+ * > **NOTE**
1950
+ * >
1951
+ * > This limit type is experimental and its behavior may change in future releases.
1952
+ *
1953
+ */
1954
+ jerk?: number
1955
+ torque?: number
1956
+ }
1957
+ /**
1958
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1959
+ * via the `definition` "CartesianLimits".
1960
+ */
1961
+ export interface CartesianLimits {
1962
+ velocity?: number
1963
+ acceleration?: number
1964
+ /**
1965
+ * > **NOTE**
1966
+ * >
1967
+ * > This limit type is experimental and its behavior may change in future releases.
1968
+ *
1969
+ */
1970
+ jerk?: number
1971
+ orientation_velocity?: number
1972
+ orientation_acceleration?: number
1973
+ /**
1974
+ * > **NOTE**
1975
+ * >
1976
+ * > This limit type is experimental and its behavior may change in future releases.
1977
+ *
1978
+ */
1979
+ orientation_jerk?: number
1980
+ }
1981
+ /**
1982
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1983
+ * via the `definition` "LimitSet".
1984
+ */
1985
+ export interface LimitSet {
1986
+ joints?: JointLimits[]
1987
+ tcp?: CartesianLimits
1988
+ elbow?: CartesianLimits
1989
+ flange?: CartesianLimits
1990
+ coupled_shoulder_elbow_joint?: JointLimits
1991
+ }
1992
+ /**
1993
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1994
+ * via the `definition` "OperationLimits".
1995
+ */
1996
+ export interface OperationLimits {
1997
+ auto_limits?: LimitSet
1998
+ manual_limits?: LimitSet
1999
+ manual_t1_limits?: LimitSet
2000
+ manual_t2_limits?: LimitSet
2001
+ /**
2002
+ * Flag to indicate whether the TCP velocity limit is also applied for the elbow and flange in auto mode.
2003
+ */
2004
+ safety_limit_elbow_flange_velocity_in_auto?: boolean
2005
+ }
2006
+ /**
2007
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2008
+ * via the `definition` "Payload".
2009
+ */
2010
+ export interface Payload {
2011
+ name: string
2012
+ /**
2013
+ * Mass of payload in [kg].
2014
+ */
2015
+ payload: number
2016
+ center_of_mass?: Vector3D1
2017
+ moment_of_inertia?: Vector3D2
2018
+ }
2019
+ /**
2020
+ * A single set of DH parameters.
2021
+ *
2022
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2023
+ * via the `definition` "DHParameter".
2024
+ */
2025
+ export interface DHParameter {
2026
+ /**
2027
+ * Angle about x-axis in [rad].
2028
+ */
2029
+ alpha?: number
2030
+ /**
2031
+ * Angle about z-axis in [rad].
2032
+ */
2033
+ theta?: number
2034
+ /**
2035
+ * Offset along x-axis in [mm].
2036
+ */
2037
+ a?: number
2038
+ /**
2039
+ * Offset along z-axis in [mm].
2040
+ */
2041
+ d?: number
2042
+ /**
2043
+ * True, if rotation direction of joint is reversed.
2044
+ */
2045
+ reverse_rotation_direction?: boolean
2046
+ type?: JointTypeEnum
2047
+ }
2048
+ /**
2049
+ * The configuration of a motion-group used for motion planning.
2050
+ * The parameters `mounting`, `kinematic_chain_offset`, `dh_parameters`, `flange_offset` and `tcp_offset` are used to model the kinematic structure of the motion group.
2051
+ * They can be used to compute the coordinate transformations from world to tcp frame:
2052
+ * [world frame] -> mounting -> [base frame] -> kinematic chain offset + motion group kinematics (Denavit-Hartenberg parameters) -> [end of kinematic chain frame]
2053
+ * -> flange_offset -> [flange frame] -> tcp_offset -> [tcp frame].
2054
+ *
2055
+ *
2056
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2057
+ * via the `definition` "MotionGroupDescription".
2058
+ */
2059
+ export interface MotionGroupDescription {
2060
+ motion_group_model: MotionGroupModel
2061
+ mounting?: Pose3
2062
+ tcps?: TcpOffsetDictionary
2063
+ safety_zones?: ColliderDictionary2
2064
+ /**
2065
+ * The shape of the MotionGroups links to validate against safety zones.
2066
+ * Indexed along the kinematic chain, starting with a static base shape before first joint.
2067
+ *
2068
+ */
2069
+ safety_link_colliders?: ColliderDictionary[]
2070
+ safety_tool_colliders?: SafetyToolColliders
2071
+ operation_limits: OperationLimits
2072
+ payloads?: PayloadDictionary
2073
+ /**
2074
+ * [ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
2075
+ */
2076
+ cycle_time?: number
2077
+ /**
2078
+ * The Denavit-Hartenberg parameters describing the motion group kinematics.
2079
+ */
2080
+ dh_parameters?: DHParameter[]
2081
+ kinematic_chain_offset?: Pose4
2082
+ flange_offset?: Pose5
2083
+ /**
2084
+ * The serial number of the motion group, if available. If not available, the serial number of the robot controller. If not available, empty.
2085
+ *
2086
+ */
2087
+ serial_number?: string
2088
+ /**
2089
+ * Revision number of the motion group description.
2090
+ * The revision is incremented whenever the motion group description changes due to a modification of the tools or the payloads in the robot configuration.
2091
+ * The robot controller is polled every 10 s in Monitoring Mode to detect those changes.
2092
+ * Use to detect changes since the last retrieval.
2093
+ *
2094
+ */
2095
+ description_revision?: number
2096
+ }
2097
+ /**
2098
+ * Defines a pose in 3D space.
2099
+ * A pose is a combination of a position and an orientation.
2100
+ * The position is applied before the orientation.
2101
+ *
2102
+ */
2103
+ export interface Pose3 {
2104
+ position?: Vector3D
2105
+ orientation?: RotationVector
2106
+ }
2107
+ /**
2108
+ * Maps a TCP name to its offset relative to the flange coordinate system. Key must be a TCP identifier.
2109
+ * Values are TcpOffsets.
2110
+ *
2111
+ */
2112
+ export interface TcpOffsetDictionary {
2113
+ [k: string]: TcpOffset
2114
+ }
2115
+ /**
2116
+ * SafetyZones are areas which cannot be entered or where certain limits apply.
2117
+ * SafetyZones are defined in the world coordinate system.
2118
+ *
2119
+ */
2120
+ export interface ColliderDictionary2 {
2121
+ [k: string]: Collider
2122
+ }
2123
+ /**
2124
+ * Maps a TCP name to its tool collider. Key must be a TCP identifier.
2125
+ * Values are ColliderDictionaries that make up the shape of one tool to validate against safety zones.
2126
+ *
2127
+ */
2128
+ export interface SafetyToolColliders {
2129
+ [k: string]: ColliderDictionary
2130
+ }
2131
+ /**
2132
+ * Maps a payload name to its configuration. Key must be a payload identifier.
2133
+ * Values are payload objects.
2134
+ *
2135
+ */
2136
+ export interface PayloadDictionary {
2137
+ [k: string]: Payload
2138
+ }
2139
+ /**
2140
+ * Defines a pose in 3D space.
2141
+ * A pose is a combination of a position and an orientation.
2142
+ * The position is applied before the orientation.
2143
+ *
2144
+ */
2145
+ export interface Pose4 {
2146
+ position?: Vector3D
2147
+ orientation?: RotationVector
2148
+ }
2149
+ /**
2150
+ * Defines a pose in 3D space.
2151
+ * A pose is a combination of a position and an orientation.
2152
+ * The position is applied before the orientation.
2153
+ *
2154
+ */
2155
+ export interface Pose5 {
2156
+ position?: Vector3D
2157
+ orientation?: RotationVector
2158
+ }
2159
+ /**
2160
+ * CloudEvents specification v1.0.2 compliant event structure.
2161
+ * This schema defines the standardized format for event data across all NOVA services.
2162
+ *
2163
+ *
2164
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2165
+ * via the `definition` "CloudEvent".
2166
+ */
2167
+ export interface CloudEvent {
2168
+ /**
2169
+ * The version of the CloudEvents specification which the event uses
2170
+ */
2171
+ specversion: "1.0"
2172
+ /**
2173
+ * Type of the event related to the source occurrence
2174
+ */
2175
+ type: string
2176
+ /**
2177
+ * Identifies the context in which an event happened
2178
+ */
2179
+ source: string
2180
+ /**
2181
+ * Unique identifier for the event
2182
+ */
2183
+ id: string
2184
+ /**
2185
+ * Timestamp of when the occurrence happened (RFC3339)
2186
+ */
2187
+ time?: string
2188
+ /**
2189
+ * Content type of the data value
2190
+ */
2191
+ datacontenttype?: string
2192
+ /**
2193
+ * URI reference that identifies the schema that the data adheres to
2194
+ */
2195
+ dataschema?: string
2196
+ /**
2197
+ * Subject of the event in the context of the event producer
2198
+ */
2199
+ subject?: string
2200
+ /**
2201
+ * The event payload specific to the event type
2202
+ */
2203
+ data?: {
2204
+ [k: string]: unknown
2205
+ }
2206
+ }
2207
+ /**
2208
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2209
+ * via the `definition` "NetworkState".
2210
+ */
2211
+ export interface NetworkState {
2212
+ /**
2213
+ * Indicates whether the system is connected to the internet.
2214
+ *
2215
+ */
2216
+ internet_connected: boolean
2217
+ /**
2218
+ * Type of the active network link (e.g., ethernet, wifi, cellular, vpn, unknown).
2219
+ *
2220
+ */
2221
+ connection_type?: "ethernet" | "wifi" | "cellular" | "vpn" | "unknown"
2222
+ /**
2223
+ * Received signal strength in dBm for wireless interfaces; negative values indicate weaker signals.
2224
+ *
2225
+ */
2226
+ signal_strength?: number
2227
+ /**
2228
+ * Normalized link quality metric from 0 (poor) to 1 (excellent) when provided by the interface.
2229
+ *
2230
+ */
2231
+ link_quality?: number
2232
+ /**
2233
+ * Round-trip latency to the probe endpoint measured in milliseconds.
2234
+ *
2235
+ */
2236
+ latency_ms?: number
2237
+ /**
2238
+ * Estimated downstream bandwidth in megabits per second based on the probe.
2239
+ *
2240
+ */
2241
+ bandwidth_mbps?: number
2242
+ }
2243
+ /**
2244
+ * CloudEvents v1.0 compliant event published when system network status changes.
2245
+ * This event wraps the NetworkState payload in a standard CloudEvents envelope.
2246
+ *
2247
+ *
2248
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2249
+ * via the `definition` "NetworkStatusChangedEvent".
2250
+ */
2251
+ export interface NetworkStatusChangedEvent {
2252
+ /**
2253
+ * The version of the CloudEvents specification which the event uses
2254
+ */
2255
+ specversion: "1.0"
2256
+ /**
2257
+ * Type of the event related to the source occurrence
2258
+ */
2259
+ type: "nova.v2.events.system.network.status.changed"
2260
+ /**
2261
+ * Identifies the context in which an event happened
2262
+ */
2263
+ source: "/nova/system-info"
2264
+ /**
2265
+ * Unique identifier for this network status change event
2266
+ */
2267
+ id: string
2268
+ /**
2269
+ * Timestamp when the network status changed (RFC3339)
2270
+ */
2271
+ time: string
2272
+ /**
2273
+ * Content type of the data value
2274
+ */
2275
+ datacontenttype?: string
2276
+ data: NetworkState
2277
+ }
2278
+ /**
2279
+ * Payload for a cell lifecycle event.
2280
+ *
2281
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2282
+ * via the `definition` "CellEventData".
2283
+ */
2284
+ export interface CellEventData {
2285
+ /**
2286
+ * Chart version of the cell foundation release.
2287
+ */
2288
+ version: string
2289
+ operating_state: OperatingState
2290
+ }
2291
+ /**
2292
+ * Payload for an app lifecycle event.
2293
+ *
2294
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2295
+ * via the `definition` "AppEventData".
2296
+ */
2297
+ export interface AppEventData {
2298
+ /**
2299
+ * OCI image reference of the app release.
2300
+ */
2301
+ image: string
2302
+ operating_state: OperatingState
2303
+ }
2304
+ /**
2305
+ * Payload for a robot controller lifecycle event.
2306
+ *
2307
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2308
+ * via the `definition` "RobotControllerEventData".
2309
+ */
2310
+ export interface RobotControllerEventData {
2311
+ manufacturer: Manufacturer
2312
+ /**
2313
+ * Indicates whether the controller is virtual.
2314
+ */
2315
+ virtual: boolean
2316
+ operating_state: OperatingState
2317
+ }
2318
+ /**
2319
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2320
+ * via the `definition` "NatsErrorPayload".
2321
+ */
2322
+ export interface NatsErrorPayload {
2323
+ code?: string
2324
+ message: string
2325
+ }