@wandelbots/nova-js 4.9.1-nova-api-dev.26-8-0-dev-66 → 4.9.1-nova-api-dev.26-8-0-dev-68

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.
@@ -38,7 +38,7 @@ type CellDescription = string;
38
38
  * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
39
39
  * via the `definition` "Manufacturer".
40
40
  */
41
- type Manufacturer = "abb" | "fanuc" | "kuka" | "staubli" | "universalrobots" | "yaskawa";
41
+ type Manufacturer = "abb" | "bostondynamics" | "fanuc" | "kuka" | "staubli" | "techman" | "unitree" | "universalrobots" | "yaskawa";
42
42
  /**
43
43
  * Identifies a single motion group model.
44
44
  * See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types.
@@ -180,6 +180,16 @@ type IOValue = IOBooleanValue | IOIntegerValue | IOFloatValue;
180
180
  * via the `definition` "ListIOValuesResponse".
181
181
  */
182
182
  type ListIOValuesResponse = IOValue[];
183
+ /**
184
+ * Type of update for a stream of input/output values.
185
+ * - changes: Only send updates when the value changes.
186
+ * - full: Send the full list of values at the update rate.
187
+ *
188
+ *
189
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
190
+ * via the `definition` "IOUpdateType".
191
+ */
192
+ type IOUpdateType = "changes" | "full";
183
193
  /**
184
194
  * Defines the current system mode of the robot system, including NOVA communicating with the robot controller.
185
195
  *
@@ -384,6 +394,30 @@ type SystemUpdateCompletedEvent = CloudEvent & {
384
394
  error?: string;
385
395
  };
386
396
  };
397
+ /**
398
+ * Network attachment method used to expose the interface to workloads.
399
+ *
400
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
401
+ * via the `definition` "NetworkBackend".
402
+ */
403
+ type NetworkBackend = "macvlan" | "sriov";
404
+ /**
405
+ * Link state of the physical interface.
406
+ *
407
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
408
+ * via the `definition` "NetworkLinkState".
409
+ */
410
+ type NetworkLinkState = "up" | "down";
411
+ /**
412
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
413
+ * via the `definition` "NetworkInterfacesReply".
414
+ */
415
+ type NetworkInterfacesReply = NetworkInterface[];
416
+ /**
417
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
418
+ * via the `definition` "ArpScanReply".
419
+ */
420
+ type ArpScanReply = Device[];
387
421
  /**
388
422
  * The operating state.
389
423
  *
@@ -580,48 +614,49 @@ type RobotControllerDeletedEvent = {
580
614
  };
581
615
  data: RobotControllerEventData;
582
616
  } & CloudEvent;
583
- interface AbbController {
584
- kind: "AbbController";
585
- controller_ip: string;
617
+ interface ControllerNetworkInterface {
586
618
  /**
587
- * Default values: 80, 443. If custom value is set, field is required.
619
+ * Network port identifier. Either a bare port name, e.g., `enp3s0` or a
620
+ * node-qualified identifier, e.g., `wandelbox-abc123-enp3s0`. Use the
621
+ * node-qualified form on multi-node clusters to pin the interface to a
622
+ * specific node.
623
+ *
624
+ * Cannot be changed in-place. Delete and add the controller again to another port.
588
625
  *
589
626
  */
590
- controller_port: number;
627
+ interface: string;
591
628
  /**
592
- * The EGM server runs inside of the cell, thus its IP must be in the same network as the 'controller_ip'
629
+ * IPv4 addresses to assign to the interface, in address/prefix format, e.g., `192.168.1.10/24`.
630
+ *
631
+ * @minItems 1
593
632
  */
594
- egm_server: {
595
- ip: string;
596
- port: number;
597
- };
633
+ addresses: [string, ...string[]];
598
634
  }
599
635
  /**
600
- * Optional dedicated network interface for a physical robot controller.
601
- *
602
- * When set, the controller is given its own network interface on the selected
603
- * physical network port (`pf`) with the given `address`, so it can reach the
604
- * robot network directly.
636
+ * The configuration of a physical ABB robot controller has to contain IP address.
637
+ * Additionally an EGM server configuration has to be specified in order to control the robot.
638
+ * Deploying the server is a functionality of this API.
605
639
  *
606
640
  *
607
641
  * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
608
- * via the `definition` "ControllerNetworkInterface".
642
+ * via the `definition` "AbbController".
609
643
  */
610
- interface ControllerNetworkInterface {
644
+ interface AbbController {
645
+ kind: "AbbController";
646
+ controller_ip: string;
647
+ network_interface?: ControllerNetworkInterface;
611
648
  /**
612
- * IPv4 address in CIDR notation to assign to the controller's network
613
- * interface, for example `192.168.1.10/24`. The value must be a valid IPv4
614
- * address followed by a prefix length between 0 and 32.
649
+ * Default values: 80, 443. If custom value is set, field is required.
615
650
  *
616
651
  */
617
- address: string;
652
+ controller_port: number;
618
653
  /**
619
- * Name of the node's physical network port that connects to the robot
620
- * network, for example `enp10s0f0`. The controller's interface is provided
621
- * from this port.
622
- *
654
+ * The EGM server runs inside of the cell, thus its IP must be in the same network as the 'controller_ip'
623
655
  */
624
- pf: string;
656
+ egm_server: {
657
+ ip: string;
658
+ port: number;
659
+ };
625
660
  }
626
661
  /**
627
662
  * The configuration of a physical FANUC robot controller has to contain IP address of the controller.
@@ -633,6 +668,12 @@ interface FanucController {
633
668
  kind: "FanucController";
634
669
  controller_ip: string;
635
670
  network_interface?: ControllerNetworkInterface;
671
+ /**
672
+ * Enable the FANUC Stream Motion interface. When enabled, the GCI server
673
+ * communicates with the controller via the Stream Motion interface.
674
+ *
675
+ */
676
+ stream_motion?: boolean;
636
677
  }
637
678
  /**
638
679
  * The configuration of a physical KUKA robot controller has to contain an IP address.
@@ -646,6 +687,7 @@ interface FanucController {
646
687
  interface KukaController {
647
688
  kind: "KukaController";
648
689
  controller_ip: string;
690
+ network_interface?: ControllerNetworkInterface1;
649
691
  controller_port: number;
650
692
  /**
651
693
  * The RSI server runs inside of the cell.
@@ -660,6 +702,88 @@ interface KukaController {
660
702
  */
661
703
  slow_cycle_rate?: boolean;
662
704
  }
705
+ /**
706
+ * Direct network interface for the robot controller. When set, the controller
707
+ * gets its own interface on the specified port with the given addresses to
708
+ * reach the controller's network.
709
+ *
710
+ */
711
+ interface ControllerNetworkInterface1 {
712
+ /**
713
+ * Network port identifier. Either a bare port name, e.g., `enp3s0` or a
714
+ * node-qualified identifier, e.g., `wandelbox-abc123-enp3s0`. Use the
715
+ * node-qualified form on multi-node clusters to pin the interface to a
716
+ * specific node.
717
+ *
718
+ * Cannot be changed in-place. Delete and add the controller again to another port.
719
+ *
720
+ */
721
+ interface: string;
722
+ /**
723
+ * IPv4 addresses to assign to the interface, in address/prefix format, e.g., `192.168.1.10/24`.
724
+ *
725
+ * @minItems 1
726
+ */
727
+ addresses: [string, ...string[]];
728
+ }
729
+ /**
730
+ * The configuration of a physical STÄUBLI robot controller has to contain an IP address.
731
+ * Additionally, an RTI server configuration has to be specified in order to control the robot.
732
+ * Deploying the server is a functionality of this API.
733
+ *
734
+ *
735
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
736
+ * via the `definition` "StaubliController".
737
+ */
738
+ interface StaubliController {
739
+ kind: "StaubliController";
740
+ controller_ip: string;
741
+ network_interface?: ControllerNetworkInterface;
742
+ controller_port: number;
743
+ command_port: number;
744
+ /**
745
+ * The RTI server runs inside of the cell.
746
+ */
747
+ rti_server: {
748
+ ip: string;
749
+ port: number;
750
+ };
751
+ }
752
+ /**
753
+ * The configuration of a physical Techman robot controller has to contain an IP address.
754
+ * Additionally an RTRS server configuration has to be specified to obtain state from the robot.
755
+ *
756
+ *
757
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
758
+ * via the `definition` "TechmanController".
759
+ */
760
+ interface TechmanController {
761
+ kind: "TechmanController";
762
+ controller_ip: string;
763
+ network_interface?: ControllerNetworkInterface;
764
+ /**
765
+ * TCP port for the TMSVR channel on the robot controller.
766
+ */
767
+ tmsvr_port?: number;
768
+ /**
769
+ * TCP port for the TMSCT channel on the robot controller.
770
+ */
771
+ tmsct_port?: number;
772
+ /**
773
+ * RTRS server configuration for real-time communication.
774
+ */
775
+ rtrs: {
776
+ ip: string;
777
+ /**
778
+ * TCP port for the TMRTS state reporting channel.
779
+ */
780
+ tmrts_port?: number;
781
+ /**
782
+ * TCP port for the TMRTC real-time control channel.
783
+ */
784
+ tmrtc_port?: number;
785
+ };
786
+ }
663
787
  /**
664
788
  * The configuration of a physical Universal Robots controller has to contain IP address of the controller.
665
789
  *
@@ -669,6 +793,7 @@ interface KukaController {
669
793
  interface UniversalrobotsController {
670
794
  kind: "UniversalrobotsController";
671
795
  controller_ip: string;
796
+ network_interface?: ControllerNetworkInterface;
672
797
  }
673
798
  /**
674
799
  * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
@@ -781,6 +906,78 @@ interface VirtualController {
781
906
  interface YaskawaController {
782
907
  kind: "YaskawaController";
783
908
  controller_ip: string;
909
+ network_interface?: ControllerNetworkInterface;
910
+ }
911
+ /**
912
+ * The configuration of a Boston Dynamics robot controller.
913
+ * Requires the hostname or IP address of the robot and authentication credentials.
914
+ *
915
+ *
916
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
917
+ * via the `definition` "BostondynamicsController".
918
+ */
919
+ interface BostondynamicsController {
920
+ kind: "BostondynamicsController";
921
+ /**
922
+ * The hostname or IP address of the robot.
923
+ */
924
+ controller_ip: string;
925
+ /**
926
+ * The Boston Dynamics robot model type.
927
+ */
928
+ robot_type?: "spot";
929
+ /**
930
+ * The authentication password for the robot.
931
+ */
932
+ password: string;
933
+ /**
934
+ * The authentication username for the robot.
935
+ */
936
+ username?: string;
937
+ /**
938
+ * The network interface used to communicate with the robot.
939
+ */
940
+ network_interface?: string;
941
+ /**
942
+ * JPEG quality for camera streams (1-100).
943
+ */
944
+ stream_quality?: number;
945
+ /**
946
+ * Frames per second for camera streams.
947
+ */
948
+ stream_fps?: number;
949
+ }
950
+ /**
951
+ * The configuration of a Unitree robot controller.
952
+ * Supports Go2, G1, B2, and H1 robot models.
953
+ * Requires the IP address of the robot and the robot model type.
954
+ *
955
+ *
956
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
957
+ * via the `definition` "UnitreeController".
958
+ */
959
+ interface UnitreeController {
960
+ kind: "UnitreeController";
961
+ /**
962
+ * The IP address of the Unitree robot.
963
+ */
964
+ controller_ip: string;
965
+ /**
966
+ * The Unitree robot model type.
967
+ */
968
+ robot_type: "go2" | "g1" | "b2" | "h1";
969
+ /**
970
+ * The network interface used for DDS discovery.
971
+ */
972
+ network_interface?: string;
973
+ /**
974
+ * Enable DDS unicast mode for environments where multicast is unavailable.
975
+ */
976
+ dds_unicast_mode?: boolean;
977
+ /**
978
+ * Enable exclusive lease-based control of the robot.
979
+ */
980
+ enable_lease?: boolean;
784
981
  }
785
982
  /**
786
983
  * The configuration of a physical or virtual robot controller.
@@ -795,7 +992,7 @@ interface RobotController {
795
992
  *
796
993
  */
797
994
  name: string;
798
- configuration: AbbController | FanucController | KukaController | UniversalrobotsController | VirtualController | YaskawaController;
995
+ configuration: AbbController | FanucController | KukaController | StaubliController | TechmanController | UniversalrobotsController | VirtualController | YaskawaController | BostondynamicsController | UnitreeController;
799
996
  }
800
997
  /**
801
998
  * User provided credentials for creating a secret to pull an image from a registry.
@@ -1385,6 +1582,116 @@ interface StreamIOValuesResponse {
1385
1582
  */
1386
1583
  sequence_number: number;
1387
1584
  }
1585
+ /**
1586
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1587
+ * via the `definition` "AsyncRequestHeaders".
1588
+ */
1589
+ interface AsyncRequestHeaders {
1590
+ /**
1591
+ * Unique inbox subject the caller is subscribed to. The server publishes the response to this address. Use a per-request unique subject, e.g., NATS inbox _INBOX.*.
1592
+ *
1593
+ */
1594
+ replyTo: string;
1595
+ }
1596
+ /**
1597
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1598
+ * via the `definition` "SubscribeIOs".
1599
+ */
1600
+ interface SubscribeIOs {
1601
+ /**
1602
+ * Array of input/output identifiers to stream the values for.
1603
+ *
1604
+ * @minItems 1
1605
+ */
1606
+ ios: [string, ...string[]];
1607
+ /**
1608
+ * Type of update for a stream of input/output values.
1609
+ * - changes: Only send updates when the value changes.
1610
+ * - full: Send the full list of values at the update rate.
1611
+ *
1612
+ */
1613
+ update_type?: "changes" | "full";
1614
+ /**
1615
+ * The subscription's time to live (TTL), in seconds: once it elapses the subscription expires and
1616
+ * streaming stops. Fractional values are allowed. Any non-negative value is accepted and clamped server-side to
1617
+ * the range 5..300 seconds. Clients should renew the subscription at roughly a third of this interval.
1618
+ *
1619
+ */
1620
+ ttl_seconds?: number;
1621
+ }
1622
+ /**
1623
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1624
+ * via the `definition` "IOSubscriptionCreated".
1625
+ */
1626
+ interface IOSubscriptionCreated {
1627
+ /**
1628
+ * Server-issued, subject-safe identifier of the created subscription.
1629
+ * Values for this subscription are published on the
1630
+ * `{instance}.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}` subject.
1631
+ *
1632
+ */
1633
+ subscription_id: string;
1634
+ /**
1635
+ * Timestamp at which the subscription expires, unless it is renewed.
1636
+ */
1637
+ expires_at: string;
1638
+ }
1639
+ /**
1640
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1641
+ * via the `definition` "UpdateIOSubscription".
1642
+ */
1643
+ interface UpdateIOSubscription {
1644
+ /**
1645
+ * Server-issued identifier of the subscription to update.
1646
+ */
1647
+ subscription_id: string;
1648
+ /**
1649
+ * Array of input/output identifiers to stream the values for.
1650
+ * When omitted the current selection is kept unchanged. An empty array is rejected.
1651
+ *
1652
+ *
1653
+ * @minItems 1
1654
+ */
1655
+ ios?: [string, ...string[]];
1656
+ update_type?: IOUpdateType;
1657
+ /**
1658
+ * The subscription's time to live (TTL), in seconds. When omitted the current value is kept unchanged.
1659
+ * Fractional values are allowed. Any non-negative value is accepted and clamped server-side to
1660
+ * the range 5..300 seconds.
1661
+ *
1662
+ */
1663
+ ttl_seconds?: number;
1664
+ }
1665
+ /**
1666
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1667
+ * via the `definition` "IOSubscriptionLease".
1668
+ */
1669
+ interface IOSubscriptionLease {
1670
+ /**
1671
+ * Timestamp at which the subscription expires, unless it is renewed again.
1672
+ */
1673
+ expires_at: string;
1674
+ }
1675
+ /**
1676
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1677
+ * via the `definition` "RenewIOSubscription".
1678
+ */
1679
+ interface RenewIOSubscription {
1680
+ /**
1681
+ * Server-issued identifier of the subscription to renew.
1682
+ */
1683
+ subscription_id: string;
1684
+ }
1685
+ /**
1686
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1687
+ * via the `definition` "CancelIOSubscription".
1688
+ */
1689
+ interface CancelIOSubscription {
1690
+ /**
1691
+ * Server-issued identifier of the subscription to cancel.
1692
+ */
1693
+ subscription_id: string;
1694
+ }
1388
1695
  /**
1389
1696
  * Indicates which joint of the motion group is in a limit.
1390
1697
  * If a joint is in its limit, only this joint can be moved. Movements that affect any other joints are not executed.
@@ -1399,6 +1706,18 @@ interface MotionGroupState_JointLimitReached {
1399
1706
  */
1400
1707
  limit_reached: boolean[];
1401
1708
  }
1709
+ /**
1710
+ * Defines a cartesian velocity in 3D space.
1711
+ * The unit of the translation velocity is mm/s and the unit of the rotation velocity is rad/s.
1712
+ *
1713
+ *
1714
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1715
+ * via the `definition` "CartesianVelocity".
1716
+ */
1717
+ interface CartesianVelocity {
1718
+ translation: Vector3D;
1719
+ rotation: Vector3D;
1720
+ }
1402
1721
  /**
1403
1722
  * Jogging is active.
1404
1723
  *
@@ -1579,7 +1898,7 @@ interface TrajectoryDetails {
1579
1898
  }
1580
1899
  /**
1581
1900
  * Details about the state of the motion execution.
1582
- * The details are either for a jogging or a trajectory.
1901
+ * The details are either for a jogging, a trajectory, or an action chunk.
1583
1902
  * If NOVA is not controlling this motion group at the moment, this field is omitted.
1584
1903
  *
1585
1904
  *
@@ -1625,6 +1944,7 @@ interface MotionGroupState {
1625
1944
  joint_torque?: Joints2;
1626
1945
  joint_current?: Joints3;
1627
1946
  flange_pose?: Pose1;
1947
+ flange_velocity?: CartesianVelocity1;
1628
1948
  /**
1629
1949
  * Unique identifier addressing the active TCP.
1630
1950
  * Might not be returned for positioners as some do not support TCPs, depending on the model.
@@ -1632,6 +1952,7 @@ interface MotionGroupState {
1632
1952
  */
1633
1953
  tcp?: string;
1634
1954
  tcp_pose?: Pose2;
1955
+ tcp_velocity?: CartesianVelocity2;
1635
1956
  /**
1636
1957
  * Unique identifier addressing the reference coordinate system of the cartesian data.
1637
1958
  * Might not be returned for positioners as some do not support TCPs, depending on the model.
@@ -1681,6 +2002,15 @@ interface Pose1 {
1681
2002
  position?: Vector3D;
1682
2003
  orientation?: RotationVector;
1683
2004
  }
2005
+ /**
2006
+ * Cartesian velocity of the flange.
2007
+ * The velocity is relative to the response coordinate system specified in the request.
2008
+ *
2009
+ */
2010
+ interface CartesianVelocity1 {
2011
+ translation: Vector3D;
2012
+ rotation: Vector3D;
2013
+ }
1684
2014
  /**
1685
2015
  * Defines a pose in 3D space.
1686
2016
  * A pose is a combination of a position and an orientation.
@@ -1691,6 +2021,15 @@ interface Pose2 {
1691
2021
  position?: Vector3D;
1692
2022
  orientation?: RotationVector;
1693
2023
  }
2024
+ /**
2025
+ * Cartesian velocity of the TCP selected on the robot control panel.
2026
+ * The velocity is relative to the response coordinate system specified in the request.
2027
+ *
2028
+ */
2029
+ interface CartesianVelocity2 {
2030
+ translation: Vector3D;
2031
+ rotation: Vector3D;
2032
+ }
1694
2033
  /**
1695
2034
  * Data that was commanded to the motion group. Includes additional data on NOVA's execution components for executing trajectories and jogging.
1696
2035
  * This is a convenience field to indicate the last command sent to the motion group.
@@ -1771,7 +2110,13 @@ interface TcpOffset {
1771
2110
  * via the `definition` "LimitRange".
1772
2111
  */
1773
2112
  interface LimitRange {
2113
+ /**
2114
+ * Lower position limit in rad.
2115
+ */
1774
2116
  lower_limit?: number;
2117
+ /**
2118
+ * Upper position limit in rad.
2119
+ */
1775
2120
  upper_limit?: number;
1776
2121
  }
1777
2122
  /**
@@ -1779,35 +2124,75 @@ interface LimitRange {
1779
2124
  * via the `definition` "JointLimits".
1780
2125
  */
1781
2126
  interface JointLimits {
1782
- position?: LimitRange;
2127
+ position?: LimitRange1;
2128
+ /**
2129
+ * Joint velocity limit in rad/s.
2130
+ */
1783
2131
  velocity?: number;
2132
+ /**
2133
+ * Joint acceleration limit in rad/s².
2134
+ */
1784
2135
  acceleration?: number;
1785
2136
  /**
2137
+ * Joint jerk limit in rad/s³.
2138
+ *
1786
2139
  * > **NOTE**
1787
2140
  * >
1788
2141
  * > This limit type is experimental and its behavior may change in future releases.
1789
2142
  *
1790
2143
  */
1791
2144
  jerk?: number;
2145
+ /**
2146
+ * Joint torque limit in Nm.
2147
+ */
1792
2148
  torque?: number;
1793
2149
  }
2150
+ /**
2151
+ * Joint position limits in rad.
2152
+ */
2153
+ interface LimitRange1 {
2154
+ /**
2155
+ * Lower position limit in rad.
2156
+ */
2157
+ lower_limit?: number;
2158
+ /**
2159
+ * Upper position limit in rad.
2160
+ */
2161
+ upper_limit?: number;
2162
+ }
1794
2163
  /**
1795
2164
  * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
1796
2165
  * via the `definition` "CartesianLimits".
1797
2166
  */
1798
2167
  interface CartesianLimits {
2168
+ /**
2169
+ * Cartesian velocity limit in mm/s.
2170
+ */
1799
2171
  velocity?: number;
2172
+ /**
2173
+ * Cartesian acceleration limit in mm/s².
2174
+ */
1800
2175
  acceleration?: number;
1801
2176
  /**
2177
+ * Cartesian jerk limit in mm/s³.
2178
+ *
1802
2179
  * > **NOTE**
1803
2180
  * >
1804
2181
  * > This limit type is experimental and its behavior may change in future releases.
1805
2182
  *
1806
2183
  */
1807
2184
  jerk?: number;
2185
+ /**
2186
+ * Orientation velocity limit in rad/s.
2187
+ */
1808
2188
  orientation_velocity?: number;
2189
+ /**
2190
+ * Orientation acceleration limit in rad/s².
2191
+ */
1809
2192
  orientation_acceleration?: number;
1810
2193
  /**
2194
+ * Orientation jerk limit in rad/s³.
2195
+ *
1811
2196
  * > **NOTE**
1812
2197
  * >
1813
2198
  * > This limit type is experimental and its behavior may change in future releases.
@@ -2051,21 +2436,6 @@ interface NetworkState {
2051
2436
  *
2052
2437
  */
2053
2438
  internet_connected: boolean;
2054
- /**
2055
- * Type of the active network link (e.g., ethernet, wifi, cellular, vpn, unknown).
2056
- *
2057
- */
2058
- connection_type?: "ethernet" | "wifi" | "cellular" | "vpn" | "unknown";
2059
- /**
2060
- * Received signal strength in dBm for wireless interfaces; negative values indicate weaker signals.
2061
- *
2062
- */
2063
- signal_strength?: number;
2064
- /**
2065
- * Normalized link quality metric from 0 (poor) to 1 (excellent) when provided by the interface.
2066
- *
2067
- */
2068
- link_quality?: number;
2069
2439
  /**
2070
2440
  * Round-trip latency to the probe endpoint measured in milliseconds.
2071
2441
  *
@@ -2112,6 +2482,88 @@ interface NetworkStatusChangedEvent {
2112
2482
  datacontenttype?: string;
2113
2483
  data: NetworkState;
2114
2484
  }
2485
+ /**
2486
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2487
+ * via the `definition` "AsyncReplyHeaders".
2488
+ */
2489
+ interface AsyncReplyHeaders {
2490
+ /**
2491
+ * HTTP status code indicating the result of the operation, e.g., "200" for success, "400" for bad request, "404" for not found, "500" for server error.
2492
+ *
2493
+ */
2494
+ Status: string;
2495
+ /**
2496
+ * Human-readable error message. Only present when Status is not 2xx.
2497
+ */
2498
+ Description?: string;
2499
+ }
2500
+ /**
2501
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2502
+ * via the `definition` "NetworkInterface".
2503
+ */
2504
+ interface NetworkInterface {
2505
+ /**
2506
+ * Host network interface name, e.g., enp0s31f6.
2507
+ */
2508
+ name: string;
2509
+ /**
2510
+ * Stable identifier for this interface. Pass it as the `interface` field in ARP scan request, e.g., wandelbox-abc123-enp3s0.
2511
+ */
2512
+ interface: string;
2513
+ /**
2514
+ * Hostname that exposes this interface.
2515
+ */
2516
+ node: string;
2517
+ backend: NetworkBackend;
2518
+ link: NetworkLinkState;
2519
+ /**
2520
+ * IP/CIDR addresses currently assigned to the interface. Omitted when not available.
2521
+ */
2522
+ addresses?: string[];
2523
+ }
2524
+ /**
2525
+ * Empty request. No parameters needed.
2526
+ *
2527
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2528
+ * via the `definition` "NetworkInterfacesRequest".
2529
+ */
2530
+ interface NetworkInterfacesRequest {}
2531
+ /**
2532
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2533
+ * via the `definition` "ArpScanRequest".
2534
+ */
2535
+ interface ArpScanRequest {
2536
+ /**
2537
+ * Interface to scan. Use the `interface` value from the network interfaces list, e.g., wandelbox-abc123-enp3s0.
2538
+ */
2539
+ interface: string;
2540
+ /**
2541
+ * IP range to scan in CIDR notation, e.g., 192.168.1.0/24.
2542
+ */
2543
+ cidr: string;
2544
+ /**
2545
+ * Scan timeout in milliseconds. Defaults to 5000 if omitted or zero.
2546
+ */
2547
+ timeout?: number;
2548
+ }
2549
+ /**
2550
+ * This interface was referenced by `GeneratedNatsPayloadsRoot`'s JSON-Schema
2551
+ * via the `definition` "Device".
2552
+ */
2553
+ interface Device {
2554
+ /**
2555
+ * IPv4 address of the discovered device.
2556
+ */
2557
+ ip: string;
2558
+ /**
2559
+ * MAC address of the discovered device.
2560
+ */
2561
+ mac: string;
2562
+ /**
2563
+ * Hardware manufacturer name derived from the MAC address, omitted when unknown.
2564
+ */
2565
+ vendor?: string;
2566
+ }
2115
2567
  /**
2116
2568
  * Payload for a cell lifecycle event.
2117
2569
  *
@@ -2332,7 +2784,12 @@ interface NatsOperationParams {
2332
2784
  /**
2333
2785
  * Select Input/Output Values
2334
2786
  *
2335
- * Select input/output values published by the controller.
2787
+ * Select input/output values published by the controller on the shared `...ios` subject.
2788
+ *
2789
+ * This is the reserved, never-expiring default stream, shared by all clients that use it. For
2790
+ * independent per-client streams with their own update type and time to live use the `ios.subscribe`
2791
+ * operations instead. Malformed requests (non-string or empty entries in `ios`, an invalid
2792
+ * `update_type`) are rejected and leave the current selection unchanged.
2336
2793
  *
2337
2794
  * @operationId selectRobotControllerIOs
2338
2795
  */
@@ -2363,6 +2820,112 @@ interface NatsOperationParams {
2363
2820
  */
2364
2821
  controller: string;
2365
2822
  };
2823
+ /**
2824
+ * Subscribe to Input/Output Values
2825
+ *
2826
+ * Create a per-client subscription that streams the selected input/output values on a dedicated,
2827
+ * subscription-specific subject.
2828
+ *
2829
+ * The server generates a subject-safe `subscription_id` and returns it in the reply; values are then
2830
+ * published on `{instance}.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}`. The
2831
+ * subscription expires after `ttl_seconds` unless it is renewed. A subscription that would push the
2832
+ * union of all subscriptions' ports beyond the controller's realtime input/output capacity is rejected.
2833
+ *
2834
+ * @operationId subscribeRobotControllerIOs
2835
+ */
2836
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe": {
2837
+ /**
2838
+ * Unique identifier addressing a cell in all API calls.
2839
+ */
2840
+ cell: string;
2841
+ /**
2842
+ * Unique identifier to address a controller in a cell.
2843
+ */
2844
+ controller: string;
2845
+ };
2846
+ /**
2847
+ * Update an Input/Output Subscription
2848
+ *
2849
+ * Partially update an existing subscription by its server-issued `subscription_id`. Only the supplied
2850
+ * fields (`ios`, `update_type`, `ttl_seconds`) are changed; omitted fields are kept unchanged, so the
2851
+ * time to live or the update type can be changed without resending the port list. An update that would
2852
+ * push the union of all subscriptions' ports beyond the controller's realtime input/output capacity is
2853
+ * rejected and leaves the subscription unchanged.
2854
+ *
2855
+ * A successful update also renews the lease: `expires_at` is reset to the current time plus the
2856
+ * subscription's time to live, even when `ttl_seconds` is omitted.
2857
+ *
2858
+ * @operationId updateRobotControllerIOSubscription
2859
+ */
2860
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.update": {
2861
+ /**
2862
+ * Unique identifier addressing a cell in all API calls.
2863
+ */
2864
+ cell: string;
2865
+ /**
2866
+ * Unique identifier to address a controller in a cell.
2867
+ */
2868
+ controller: string;
2869
+ };
2870
+ /**
2871
+ * Renew an Input/Output Subscription
2872
+ *
2873
+ * Extend the lease of an existing subscription identified by its server-issued `subscription_id`.
2874
+ * Clients should renew at roughly a third of the subscription's time to live. A subscription that has
2875
+ * already expired is not found and must be created again.
2876
+ *
2877
+ * @operationId renewRobotControllerIOSubscription
2878
+ */
2879
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.renew": {
2880
+ /**
2881
+ * Unique identifier addressing a cell in all API calls.
2882
+ */
2883
+ cell: string;
2884
+ /**
2885
+ * Unique identifier to address a controller in a cell.
2886
+ */
2887
+ controller: string;
2888
+ };
2889
+ /**
2890
+ * Cancel an Input/Output Subscription
2891
+ *
2892
+ * Cancel an existing subscription identified by its server-issued `subscription_id`. Streaming on the
2893
+ * subscription's subject stops and its ports are removed from the union read from the controller.
2894
+ *
2895
+ * @operationId cancelRobotControllerIOSubscription
2896
+ */
2897
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.cancel": {
2898
+ /**
2899
+ * Unique identifier addressing a cell in all API calls.
2900
+ */
2901
+ cell: string;
2902
+ /**
2903
+ * Unique identifier to address a controller in a cell.
2904
+ */
2905
+ controller: string;
2906
+ };
2907
+ /**
2908
+ * Subscription Input/Output Values
2909
+ *
2910
+ * Publishes updates of input/output values for a single subscription on its dedicated
2911
+ * `...ios.{subscription_id}` subject. Each subscription receives its own `full` or `changes` view.
2912
+ *
2913
+ * @operationId publishRobotControllerIOSubscription
2914
+ */
2915
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}": {
2916
+ /**
2917
+ * Unique identifier addressing a cell in all API calls.
2918
+ */
2919
+ cell: string;
2920
+ /**
2921
+ * Unique identifier to address a controller in the cell.
2922
+ */
2923
+ controller: string;
2924
+ /**
2925
+ * Server-issued identifier of the subscription this stream belongs to.
2926
+ */
2927
+ subscription_id: string;
2928
+ };
2366
2929
  /**
2367
2930
  * State of Robot Controller
2368
2931
  *
@@ -2444,6 +3007,22 @@ interface NatsOperationParams {
2444
3007
  * @operationId eventSystemNetworkStatusChanged
2445
3008
  */
2446
3009
  "nova.v2.events.system.network.status.changed": Record<never, never>;
3010
+ /**
3011
+ * List Network Interfaces
3012
+ *
3013
+ * Lists all managed network interfaces available for controller connections and ARP scanning.
3014
+ *
3015
+ * @operationId getNetworkInterfaces
3016
+ */
3017
+ "nova.v2.system.network.interfaces": Record<never, never>;
3018
+ /**
3019
+ * Run ARP Scan
3020
+ *
3021
+ * Runs an ARP scan on the target interface and returns all discovered devices.
3022
+ *
3023
+ * @operationId arpScan
3024
+ */
3025
+ "nova.v2.system.network.arpscan": Record<never, never>;
2447
3026
  /**
2448
3027
  * Cell Created
2449
3028
  *
@@ -2707,6 +3286,15 @@ interface NatsSubscribePayloads {
2707
3286
  * @operationId publishRobotControllerIOs
2708
3287
  */
2709
3288
  "nova.v2.cells.{cell}.controllers.{controller}.ios": StreamIOValuesResponse;
3289
+ /**
3290
+ * Subscription Input/Output Values
3291
+ *
3292
+ * Publishes updates of input/output values for a single subscription on its dedicated
3293
+ * `...ios.{subscription_id}` subject. Each subscription receives its own `full` or `changes` view.
3294
+ *
3295
+ * @operationId publishRobotControllerIOSubscription
3296
+ */
3297
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}": StreamIOValuesResponse;
2710
3298
  /**
2711
3299
  * State of Robot Controller
2712
3300
  *
@@ -2872,11 +3460,80 @@ interface NatsRequestPayloads {
2872
3460
  /**
2873
3461
  * Select Input/Output Values
2874
3462
  *
2875
- * Select input/output values published by the controller.
3463
+ * Select input/output values published by the controller on the shared `...ios` subject.
3464
+ *
3465
+ * This is the reserved, never-expiring default stream, shared by all clients that use it. For
3466
+ * independent per-client streams with their own update type and time to live use the `ios.subscribe`
3467
+ * operations instead. Malformed requests (non-string or empty entries in `ios`, an invalid
3468
+ * `update_type`) are rejected and leave the current selection unchanged.
2876
3469
  *
2877
3470
  * @operationId selectRobotControllerIOs
2878
3471
  */
2879
3472
  "nova.v2.cells.{cell}.controllers.{controller}.ios.select": SelectIOs;
3473
+ /**
3474
+ * Subscribe to Input/Output Values
3475
+ *
3476
+ * Create a per-client subscription that streams the selected input/output values on a dedicated,
3477
+ * subscription-specific subject.
3478
+ *
3479
+ * The server generates a subject-safe `subscription_id` and returns it in the reply; values are then
3480
+ * published on `{instance}.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}`. The
3481
+ * subscription expires after `ttl_seconds` unless it is renewed. A subscription that would push the
3482
+ * union of all subscriptions' ports beyond the controller's realtime input/output capacity is rejected.
3483
+ *
3484
+ * @operationId subscribeRobotControllerIOs
3485
+ */
3486
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe": SubscribeIOs;
3487
+ /**
3488
+ * Update an Input/Output Subscription
3489
+ *
3490
+ * Partially update an existing subscription by its server-issued `subscription_id`. Only the supplied
3491
+ * fields (`ios`, `update_type`, `ttl_seconds`) are changed; omitted fields are kept unchanged, so the
3492
+ * time to live or the update type can be changed without resending the port list. An update that would
3493
+ * push the union of all subscriptions' ports beyond the controller's realtime input/output capacity is
3494
+ * rejected and leaves the subscription unchanged.
3495
+ *
3496
+ * A successful update also renews the lease: `expires_at` is reset to the current time plus the
3497
+ * subscription's time to live, even when `ttl_seconds` is omitted.
3498
+ *
3499
+ * @operationId updateRobotControllerIOSubscription
3500
+ */
3501
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.update": UpdateIOSubscription;
3502
+ /**
3503
+ * Renew an Input/Output Subscription
3504
+ *
3505
+ * Extend the lease of an existing subscription identified by its server-issued `subscription_id`.
3506
+ * Clients should renew at roughly a third of the subscription's time to live. A subscription that has
3507
+ * already expired is not found and must be created again.
3508
+ *
3509
+ * @operationId renewRobotControllerIOSubscription
3510
+ */
3511
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.renew": RenewIOSubscription;
3512
+ /**
3513
+ * Cancel an Input/Output Subscription
3514
+ *
3515
+ * Cancel an existing subscription identified by its server-issued `subscription_id`. Streaming on the
3516
+ * subscription's subject stops and its ports are removed from the union read from the controller.
3517
+ *
3518
+ * @operationId cancelRobotControllerIOSubscription
3519
+ */
3520
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.cancel": CancelIOSubscription;
3521
+ /**
3522
+ * List Network Interfaces
3523
+ *
3524
+ * Lists all managed network interfaces available for controller connections and ARP scanning.
3525
+ *
3526
+ * @operationId getNetworkInterfaces
3527
+ */
3528
+ "nova.v2.system.network.interfaces": NetworkInterfacesRequest;
3529
+ /**
3530
+ * Run ARP Scan
3531
+ *
3532
+ * Runs an ARP scan on the target interface and returns all discovered devices.
3533
+ *
3534
+ * @operationId arpScan
3535
+ */
3536
+ "nova.v2.system.network.arpscan": ArpScanRequest;
2880
3537
  }
2881
3538
  /** Reply payload types for request/reply subjects. */
2882
3539
  interface NatsReplyPayloads {
@@ -2892,11 +3549,80 @@ interface NatsReplyPayloads {
2892
3549
  /**
2893
3550
  * Select Input/Output Values
2894
3551
  *
2895
- * Select input/output values published by the controller.
3552
+ * Select input/output values published by the controller on the shared `...ios` subject.
3553
+ *
3554
+ * This is the reserved, never-expiring default stream, shared by all clients that use it. For
3555
+ * independent per-client streams with their own update type and time to live use the `ios.subscribe`
3556
+ * operations instead. Malformed requests (non-string or empty entries in `ios`, an invalid
3557
+ * `update_type`) are rejected and leave the current selection unchanged.
2896
3558
  *
2897
3559
  * @operationId selectRobotControllerIOs
2898
3560
  */
2899
3561
  "nova.v2.cells.{cell}.controllers.{controller}.ios.select": NatsErrorPayload;
3562
+ /**
3563
+ * Subscribe to Input/Output Values
3564
+ *
3565
+ * Create a per-client subscription that streams the selected input/output values on a dedicated,
3566
+ * subscription-specific subject.
3567
+ *
3568
+ * The server generates a subject-safe `subscription_id` and returns it in the reply; values are then
3569
+ * published on `{instance}.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}`. The
3570
+ * subscription expires after `ttl_seconds` unless it is renewed. A subscription that would push the
3571
+ * union of all subscriptions' ports beyond the controller's realtime input/output capacity is rejected.
3572
+ *
3573
+ * @operationId subscribeRobotControllerIOs
3574
+ */
3575
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe": IOSubscriptionCreated;
3576
+ /**
3577
+ * Update an Input/Output Subscription
3578
+ *
3579
+ * Partially update an existing subscription by its server-issued `subscription_id`. Only the supplied
3580
+ * fields (`ios`, `update_type`, `ttl_seconds`) are changed; omitted fields are kept unchanged, so the
3581
+ * time to live or the update type can be changed without resending the port list. An update that would
3582
+ * push the union of all subscriptions' ports beyond the controller's realtime input/output capacity is
3583
+ * rejected and leaves the subscription unchanged.
3584
+ *
3585
+ * A successful update also renews the lease: `expires_at` is reset to the current time plus the
3586
+ * subscription's time to live, even when `ttl_seconds` is omitted.
3587
+ *
3588
+ * @operationId updateRobotControllerIOSubscription
3589
+ */
3590
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.update": IOSubscriptionLease;
3591
+ /**
3592
+ * Renew an Input/Output Subscription
3593
+ *
3594
+ * Extend the lease of an existing subscription identified by its server-issued `subscription_id`.
3595
+ * Clients should renew at roughly a third of the subscription's time to live. A subscription that has
3596
+ * already expired is not found and must be created again.
3597
+ *
3598
+ * @operationId renewRobotControllerIOSubscription
3599
+ */
3600
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.renew": IOSubscriptionLease;
3601
+ /**
3602
+ * Cancel an Input/Output Subscription
3603
+ *
3604
+ * Cancel an existing subscription identified by its server-issued `subscription_id`. Streaming on the
3605
+ * subscription's subject stops and its ports are removed from the union read from the controller.
3606
+ *
3607
+ * @operationId cancelRobotControllerIOSubscription
3608
+ */
3609
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.cancel": NatsErrorPayload;
3610
+ /**
3611
+ * List Network Interfaces
3612
+ *
3613
+ * Lists all managed network interfaces available for controller connections and ARP scanning.
3614
+ *
3615
+ * @operationId getNetworkInterfaces
3616
+ */
3617
+ "nova.v2.system.network.interfaces": NetworkInterfacesReply;
3618
+ /**
3619
+ * Run ARP Scan
3620
+ *
3621
+ * Runs an ARP scan on the target interface and returns all discovered devices.
3622
+ *
3623
+ * @operationId arpScan
3624
+ */
3625
+ "nova.v2.system.network.arpscan": ArpScanReply;
2900
3626
  }
2901
3627
  type NatsRequestSubject = keyof NatsRequestPayloads;
2902
3628
  /** Payload types for every subject defined in the spec, publishable via NovaNatsClient#publish. */
@@ -3006,7 +3732,12 @@ interface NatsPublishPayloads {
3006
3732
  /**
3007
3733
  * Select Input/Output Values
3008
3734
  *
3009
- * Select input/output values published by the controller.
3735
+ * Select input/output values published by the controller on the shared `...ios` subject.
3736
+ *
3737
+ * This is the reserved, never-expiring default stream, shared by all clients that use it. For
3738
+ * independent per-client streams with their own update type and time to live use the `ios.subscribe`
3739
+ * operations instead. Malformed requests (non-string or empty entries in `ios`, an invalid
3740
+ * `update_type`) are rejected and leave the current selection unchanged.
3010
3741
  *
3011
3742
  * @operationId selectRobotControllerIOs
3012
3743
  */
@@ -3019,6 +3750,63 @@ interface NatsPublishPayloads {
3019
3750
  * @operationId publishRobotControllerIOs
3020
3751
  */
3021
3752
  "nova.v2.cells.{cell}.controllers.{controller}.ios": StreamIOValuesResponse;
3753
+ /**
3754
+ * Subscribe to Input/Output Values
3755
+ *
3756
+ * Create a per-client subscription that streams the selected input/output values on a dedicated,
3757
+ * subscription-specific subject.
3758
+ *
3759
+ * The server generates a subject-safe `subscription_id` and returns it in the reply; values are then
3760
+ * published on `{instance}.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}`. The
3761
+ * subscription expires after `ttl_seconds` unless it is renewed. A subscription that would push the
3762
+ * union of all subscriptions' ports beyond the controller's realtime input/output capacity is rejected.
3763
+ *
3764
+ * @operationId subscribeRobotControllerIOs
3765
+ */
3766
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe": SubscribeIOs;
3767
+ /**
3768
+ * Update an Input/Output Subscription
3769
+ *
3770
+ * Partially update an existing subscription by its server-issued `subscription_id`. Only the supplied
3771
+ * fields (`ios`, `update_type`, `ttl_seconds`) are changed; omitted fields are kept unchanged, so the
3772
+ * time to live or the update type can be changed without resending the port list. An update that would
3773
+ * push the union of all subscriptions' ports beyond the controller's realtime input/output capacity is
3774
+ * rejected and leaves the subscription unchanged.
3775
+ *
3776
+ * A successful update also renews the lease: `expires_at` is reset to the current time plus the
3777
+ * subscription's time to live, even when `ttl_seconds` is omitted.
3778
+ *
3779
+ * @operationId updateRobotControllerIOSubscription
3780
+ */
3781
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.update": UpdateIOSubscription;
3782
+ /**
3783
+ * Renew an Input/Output Subscription
3784
+ *
3785
+ * Extend the lease of an existing subscription identified by its server-issued `subscription_id`.
3786
+ * Clients should renew at roughly a third of the subscription's time to live. A subscription that has
3787
+ * already expired is not found and must be created again.
3788
+ *
3789
+ * @operationId renewRobotControllerIOSubscription
3790
+ */
3791
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.renew": RenewIOSubscription;
3792
+ /**
3793
+ * Cancel an Input/Output Subscription
3794
+ *
3795
+ * Cancel an existing subscription identified by its server-issued `subscription_id`. Streaming on the
3796
+ * subscription's subject stops and its ports are removed from the union read from the controller.
3797
+ *
3798
+ * @operationId cancelRobotControllerIOSubscription
3799
+ */
3800
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.subscribe.cancel": CancelIOSubscription;
3801
+ /**
3802
+ * Subscription Input/Output Values
3803
+ *
3804
+ * Publishes updates of input/output values for a single subscription on its dedicated
3805
+ * `...ios.{subscription_id}` subject. Each subscription receives its own `full` or `changes` view.
3806
+ *
3807
+ * @operationId publishRobotControllerIOSubscription
3808
+ */
3809
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.{subscription_id}": StreamIOValuesResponse;
3022
3810
  /**
3023
3811
  * State of Robot Controller
3024
3812
  *
@@ -3078,6 +3866,22 @@ interface NatsPublishPayloads {
3078
3866
  * @operationId eventSystemNetworkStatusChanged
3079
3867
  */
3080
3868
  "nova.v2.events.system.network.status.changed": NetworkStatusChangedEvent;
3869
+ /**
3870
+ * List Network Interfaces
3871
+ *
3872
+ * Lists all managed network interfaces available for controller connections and ARP scanning.
3873
+ *
3874
+ * @operationId getNetworkInterfaces
3875
+ */
3876
+ "nova.v2.system.network.interfaces": NetworkInterfacesRequest;
3877
+ /**
3878
+ * Run ARP Scan
3879
+ *
3880
+ * Runs an ARP scan on the target interface and returns all discovered devices.
3881
+ *
3882
+ * @operationId arpScan
3883
+ */
3884
+ "nova.v2.system.network.arpscan": ArpScanRequest;
3081
3885
  /**
3082
3886
  * Cell Created
3083
3887
  *
@@ -3279,5 +4083,5 @@ declare class NovaNatsClient {
3279
4083
  publish<K extends NatsPublishSubject>(subject: K, params: NatsOperationParams[K], payload: NatsPublishPayloads[K]): Promise<void>;
3280
4084
  }
3281
4085
  //#endregion
3282
- export { type AbbController, type AddVirtualControllerMotionGroupRequest, type App, type AppCreatedEvent, type AppDeletedEvent, type AppEventData, type AppUpdatedEvent, type Box, type BusIOsState, type BusIOsStateEnum, type Capacity, type Capsule, type CartesianLimits, type Cell, type CellCreatedEvent, type CellCycleEvent, type CellDeletedEvent, type CellDescription, type CellEventData, type CellName, type CellUpdatedEvent, type CloudEvent, type Collider, type ColliderDictionary, type ColliderDictionary1, type ColliderDictionary2, type CollisionMotionGroupLink, type CollisionMotionGroupTool, type CollisionMotionGroupTool1, type CollisionSetup, type ContainerEnvironment, type ContainerImage, type ContainerResources, type ContainerStorage, type ControllerNetworkInterface, type ConvexHull, type Cylinder, type DHParameter, type Execute, type Execute1, type FanucController, type IOBooleanValue, type IOFloatValue, type IOIntegerValue, type IOValue, type ImageCredentials, type JoggingDetails, type JoggingPausedByUser, type JoggingPausedNearCollision, type JoggingPausedNearJointLimit, type JoggingPausedNearSingularity, type JoggingPausedOnIO, type JoggingRunning, type JointLimits, type JointTypeEnum, type Joints, type Joints1, type Joints2, type Joints3, type KukaController, type LimitRange, type LimitSet, type LinkChain, type LinkChain1, type ListIOValuesResponse, type Location, type Manufacturer, type MotionGroupDescription, type MotionGroupFromJSON, type MotionGroupFromModel, type MotionGroupModel, type MotionGroupState, type MotionGroupState1, type MotionGroupState_JointLimitReached, type MotionGroupState_JointLimitReached1, type NatsErrorPayload, type NatsOperationParams, type NatsPublishPayloads, type NatsPublishSubject, type NatsReceivedMsg, type NatsReplyPayloads, type NatsRequestPayloads, type NatsRequestSubject, type NatsSubscribeMsg, type NatsSubscribeOptions, type NatsSubscribePayloads, type NatsSubscribeSubject, type NetworkState, type NetworkStatusChangedEvent, NovaNatsClient, type NovaNatsClientConfig, type OperatingState, type OperationLimits, type OperationMode, type Payload, type PayloadDictionary, type Plane, type Pose, type Pose1, type Pose2, type Pose3, type Pose4, type Pose5, type ProgramRunState, type ProgramRunState1, type ProgramStatus, type Rectangle, type RectangularCapsule, type RobotController, type RobotControllerCreatedEvent, type RobotControllerDeletedEvent, type RobotControllerEventData, type RobotControllerState, type RobotControllerUpdatedEvent, type RobotSystemMode, type RotationVector, type SafetyStateType, type SafetyToolColliders, type SelectIOs, type ServiceGroup, type ServiceStatus, type ServiceStatusList, type ServiceStatusPhase, type ServiceStatusSeverity, type Sphere, type StreamIOValuesResponse, type SystemUpdateCompletedEvent, type SystemUpdateStartedEvent, type TcpOffset, type TcpOffsetDictionary, type TrajectoryDetails, type TrajectoryEnded, type TrajectoryPausedByUser, type TrajectoryPausedOnIO, type TrajectoryRunning, type TrajectoryWaitForIO, type UniversalrobotsController, type Vector3D, type Vector3D1, type Vector3D2, type VirtualController, type YaskawaController, buildNatsServerUrl };
4086
+ export { type AbbController, type AddVirtualControllerMotionGroupRequest, type App, type AppCreatedEvent, type AppDeletedEvent, type AppEventData, type AppUpdatedEvent, type ArpScanReply, type ArpScanRequest, type AsyncReplyHeaders, type AsyncRequestHeaders, type BostondynamicsController, type Box, type BusIOsState, type BusIOsStateEnum, type CancelIOSubscription, type Capacity, type Capsule, type CartesianLimits, type CartesianVelocity, type CartesianVelocity1, type CartesianVelocity2, type Cell, type CellCreatedEvent, type CellCycleEvent, type CellDeletedEvent, type CellDescription, type CellEventData, type CellName, type CellUpdatedEvent, type CloudEvent, type Collider, type ColliderDictionary, type ColliderDictionary1, type ColliderDictionary2, type CollisionMotionGroupLink, type CollisionMotionGroupTool, type CollisionMotionGroupTool1, type CollisionSetup, type ContainerEnvironment, type ContainerImage, type ContainerResources, type ContainerStorage, type ControllerNetworkInterface, type ControllerNetworkInterface1, type ConvexHull, type Cylinder, type DHParameter, type Device, type Execute, type Execute1, type FanucController, type IOBooleanValue, type IOFloatValue, type IOIntegerValue, type IOSubscriptionCreated, type IOSubscriptionLease, type IOUpdateType, type IOValue, type ImageCredentials, type JoggingDetails, type JoggingPausedByUser, type JoggingPausedNearCollision, type JoggingPausedNearJointLimit, type JoggingPausedNearSingularity, type JoggingPausedOnIO, type JoggingRunning, type JointLimits, type JointTypeEnum, type Joints, type Joints1, type Joints2, type Joints3, type KukaController, type LimitRange, type LimitRange1, type LimitSet, type LinkChain, type LinkChain1, type ListIOValuesResponse, type Location, type Manufacturer, type MotionGroupDescription, type MotionGroupFromJSON, type MotionGroupFromModel, type MotionGroupModel, type MotionGroupState, type MotionGroupState1, type MotionGroupState_JointLimitReached, type MotionGroupState_JointLimitReached1, type NatsErrorPayload, type NatsOperationParams, type NatsPublishPayloads, type NatsPublishSubject, type NatsReceivedMsg, type NatsReplyPayloads, type NatsRequestPayloads, type NatsRequestSubject, type NatsSubscribeMsg, type NatsSubscribeOptions, type NatsSubscribePayloads, type NatsSubscribeSubject, type NetworkBackend, type NetworkInterface, type NetworkInterfacesReply, type NetworkInterfacesRequest, type NetworkLinkState, type NetworkState, type NetworkStatusChangedEvent, NovaNatsClient, type NovaNatsClientConfig, type OperatingState, type OperationLimits, type OperationMode, type Payload, type PayloadDictionary, type Plane, type Pose, type Pose1, type Pose2, type Pose3, type Pose4, type Pose5, type ProgramRunState, type ProgramRunState1, type ProgramStatus, type Rectangle, type RectangularCapsule, type RenewIOSubscription, type RobotController, type RobotControllerCreatedEvent, type RobotControllerDeletedEvent, type RobotControllerEventData, type RobotControllerState, type RobotControllerUpdatedEvent, type RobotSystemMode, type RotationVector, type SafetyStateType, type SafetyToolColliders, type SelectIOs, type ServiceGroup, type ServiceStatus, type ServiceStatusList, type ServiceStatusPhase, type ServiceStatusSeverity, type Sphere, type StaubliController, type StreamIOValuesResponse, type SubscribeIOs, type SystemUpdateCompletedEvent, type SystemUpdateStartedEvent, type TcpOffset, type TcpOffsetDictionary, type TechmanController, type TrajectoryDetails, type TrajectoryEnded, type TrajectoryPausedByUser, type TrajectoryPausedOnIO, type TrajectoryRunning, type TrajectoryWaitForIO, type UnitreeController, type UniversalrobotsController, type UpdateIOSubscription, type Vector3D, type Vector3D1, type Vector3D2, type VirtualController, type YaskawaController, buildNatsServerUrl };
3283
4087
  //# sourceMappingURL=index.d.mts.map