@wandelbots/nova-api 26.3.0-dev.9 → 26.3.0-rc.1

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.
package/dist/v1/index.cjs CHANGED
@@ -755,7 +755,7 @@ const ApplicationApiFactory = function(configuration, basePath, axios$1) {
755
755
  */
756
756
  var ApplicationApi = class extends BaseAPI {
757
757
  /**
758
- * Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The endpoint where the API is reachable from the container serving the Application. > - `BASE_PATH`: The root path of the deployed Application. It will be reachable via: http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell where the application is deployed.
758
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Install a basic, containerized web application to the cell to control robots with a customized frontend. Prerequisites: A Docker hub account or similar container registry account, with valid credentials. After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](/docs/docs/development/) for more information. <!-- theme: none --> > #### Predefined Environment Variables > - `NOVA_API`: The endpoint where the API is reachable from the container serving the Application. > - `BASE_PATH`: The root path of the deployed Application. It will be reachable via: http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell where the application is deployed.
759
759
  * @summary Add Application
760
760
  * @param {string} cell Unique identifier addressing a cell in all API calls.
761
761
  * @param {App} app
@@ -767,7 +767,7 @@ var ApplicationApi = class extends BaseAPI {
767
767
  return ApplicationApiFp(this.configuration).addApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
768
768
  }
769
769
  /**
770
- * Delete all GUI applications from the cell.
770
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete all GUI applications from the cell.
771
771
  * @summary Clear Applications
772
772
  * @param {string} cell Unique identifier addressing a cell in all API calls.
773
773
  * @param {number} [completionTimeout]
@@ -778,7 +778,7 @@ var ApplicationApi = class extends BaseAPI {
778
778
  return ApplicationApiFp(this.configuration).clearApps(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
779
779
  }
780
780
  /**
781
- * Delete a GUI application from the cell.
781
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete a GUI application from the cell.
782
782
  * @summary Delete Application
783
783
  * @param {string} cell Unique identifier addressing a cell in all API calls.
784
784
  * @param {string} app
@@ -790,7 +790,7 @@ var ApplicationApi = class extends BaseAPI {
790
790
  return ApplicationApiFp(this.configuration).deleteApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
791
791
  }
792
792
  /**
793
- * Get the configuration for an active GUI application in the cell. To update the configuration of a GUI application in the cell, use this configuration with the \'Update Configuration\' endpoint.
793
+ * **Required permissions:** `can_access_apps` - View application configurations ___ Get the configuration for an active GUI application in the cell. To update the configuration of a GUI application in the cell, use this configuration with the \'Update Configuration\' endpoint.
794
794
  * @summary Configuration
795
795
  * @param {string} cell Unique identifier addressing a cell in all API calls.
796
796
  * @param {string} app
@@ -801,7 +801,7 @@ var ApplicationApi = class extends BaseAPI {
801
801
  return ApplicationApiFp(this.configuration).getApp(cell, app, options).then((request) => request(this.axios, this.basePath));
802
802
  }
803
803
  /**
804
- * List all GUI applications that have been added to a cell. with the \'Add Application\' endpoint. If the cell does not contain GUI applications, the list is returned empty.
804
+ * **Required permissions:** `can_access_apps` - View application configurations ___ List all GUI applications that have been added to a cell. with the \'Add Application\' endpoint. If the cell does not contain GUI applications, the list is returned empty.
805
805
  * @summary List Applications
806
806
  * @param {string} cell Unique identifier addressing a cell in all API calls.
807
807
  * @param {*} [options] Override http request option.
@@ -811,7 +811,7 @@ var ApplicationApi = class extends BaseAPI {
811
811
  return ApplicationApiFp(this.configuration).listApps(cell, options).then((request) => request(this.axios, this.basePath));
812
812
  }
813
813
  /**
814
- * Update the configuration of a GUI application in the cell.
814
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Update the configuration of a GUI application in the cell.
815
815
  * @summary Update Configuration
816
816
  * @param {string} cell Unique identifier addressing a cell in all API calls.
817
817
  * @param {string} app
@@ -1067,7 +1067,7 @@ const CellApiFactory = function(configuration, basePath, axios$1) {
1067
1067
  */
1068
1068
  var CellApi = class extends BaseAPI {
1069
1069
  /**
1070
- * Delete an entire cell.
1070
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Delete an entire cell.
1071
1071
  * @summary Delete Cell
1072
1072
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1073
1073
  * @param {number} [completionTimeout]
@@ -1078,7 +1078,7 @@ var CellApi = class extends BaseAPI {
1078
1078
  return CellApiFp(this.configuration).deleteCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1079
1079
  }
1080
1080
  /**
1081
- * Deploy an entire cell with all its resources. A cell can be used to deploy a robot controller, one or more robots, as well as custom applications. Refer to the [Wandelbots NOVA documentation](docs/wandelbots-nova-api/#create-a-cell) for more information.
1081
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Deploy an entire cell with all its resources. A cell can be used to deploy a robot controller, one or more robots, as well as custom applications. Refer to the [Wandelbots NOVA documentation](docs/wandelbots-nova-api/#create-a-cell) for more information.
1082
1082
  * @summary Add Cell
1083
1083
  * @param {Cell} cell
1084
1084
  * @param {number} [completionTimeout]
@@ -1089,7 +1089,7 @@ var CellApi = class extends BaseAPI {
1089
1089
  return CellApiFp(this.configuration).deployCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1090
1090
  }
1091
1091
  /**
1092
- * List all cell resources. > **NOTE** > > The output generated by this endpoint can be too large for the site to handle, and may produce an error or incorrect output. > Use `curl` in combination with `> output.json` to capture the output, or use an API client like Postman.
1092
+ * **Required permissions:** `can_access_cells` - View cell configurations and resources ___ List all cell resources. > **NOTE** > > The output generated by this endpoint can be too large for the site to handle, and may produce an error or incorrect output. > Use `curl` in combination with `> output.json` to capture the output, or use an API client like Postman.
1093
1093
  * @summary Configuration
1094
1094
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1095
1095
  * @param {*} [options] Override http request option.
@@ -1099,7 +1099,7 @@ var CellApi = class extends BaseAPI {
1099
1099
  return CellApiFp(this.configuration).getCell(cell, options).then((request) => request(this.axios, this.basePath));
1100
1100
  }
1101
1101
  /**
1102
- * List the status of all cell resources.
1102
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ List the status of all cell resources.
1103
1103
  * @summary Service Status
1104
1104
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1105
1105
  * @param {*} [options] Override http request option.
@@ -1109,7 +1109,7 @@ var CellApi = class extends BaseAPI {
1109
1109
  return CellApiFp(this.configuration).getCellStatus(cell, options).then((request) => request(this.axios, this.basePath));
1110
1110
  }
1111
1111
  /**
1112
- * List all deployed cell names. If no cells are deployed, an empty list is returned.
1112
+ * **Required permissions:** `can_access_cells` - View cell configurations and resources ___ List all deployed cell names. If no cells are deployed, an empty list is returned.
1113
1113
  * @summary List Cells
1114
1114
  * @param {*} [options] Override http request option.
1115
1115
  * @throws {RequiredError}
@@ -1118,7 +1118,7 @@ var CellApi = class extends BaseAPI {
1118
1118
  return CellApiFp(this.configuration).listCells(options).then((request) => request(this.axios, this.basePath));
1119
1119
  }
1120
1120
  /**
1121
- * Update the definition of the entire Cell.
1121
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Update the definition of the entire Cell.
1122
1122
  * @summary Update Configuration
1123
1123
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1124
1124
  * @param {Cell} cell2
@@ -1673,7 +1673,7 @@ const ControllerApiFactory = function(configuration, basePath, axios$1) {
1673
1673
  */
1674
1674
  var ControllerApi = class extends BaseAPI {
1675
1675
  /**
1676
- * Add a robot controller to the cell. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
1676
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Add a robot controller to the cell. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
1677
1677
  * @summary Add Robot Controller
1678
1678
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1679
1679
  * @param {RobotController} robotController
@@ -1685,7 +1685,7 @@ var ControllerApi = class extends BaseAPI {
1685
1685
  return ControllerApiFp(this.configuration).addRobotController(cell, robotController, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1686
1686
  }
1687
1687
  /**
1688
- * Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with the \'Add Robot Controller\' endpoint. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
1688
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with the \'Add Robot Controller\' endpoint. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
1689
1689
  * @summary Clear Robot Controllers
1690
1690
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1691
1691
  * @param {number} [completionTimeout]
@@ -1696,7 +1696,7 @@ var ControllerApi = class extends BaseAPI {
1696
1696
  return ControllerApiFp(this.configuration).clearRobotControllers(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1697
1697
  }
1698
1698
  /**
1699
- * Delete a robot controller from the cell. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
1699
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Delete a robot controller from the cell. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
1700
1700
  * @summary Delete Robot Controller
1701
1701
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1702
1702
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1708,7 +1708,7 @@ var ControllerApi = class extends BaseAPI {
1708
1708
  return ControllerApiFp(this.configuration).deleteRobotController(cell, controller, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1709
1709
  }
1710
1710
  /**
1711
- * Get the current state of a robot controller.
1711
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the current state of a robot controller.
1712
1712
  * @summary State of Device
1713
1713
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1714
1714
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1719,7 +1719,7 @@ var ControllerApi = class extends BaseAPI {
1719
1719
  return ControllerApiFp(this.configuration).getCurrentRobotControllerState(cell, controller, options).then((request) => request(this.axios, this.basePath));
1720
1720
  }
1721
1721
  /**
1722
- * Get the current robot system mode of a registered robot controller. The robot system mode indicates if a robot controller can be used. See [setDefaultMode](#/operations/setDefaultMode) for more information about the different modes. The mode is influenced by the operating mode of the robot controller. The operating mode can be changed via [setDefaultMode](#/operations/setDefaultMode). Request the current operating mode of the robot controller via [getCurrentRobotControllerState](#/operations/getCurrentRobotControllerState).
1722
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the current robot system mode of a registered robot controller. The robot system mode indicates if a robot controller can be used. See [setDefaultMode](#/operations/setDefaultMode) for more information about the different modes. The mode is influenced by the operating mode of the robot controller. The operating mode can be changed via [setDefaultMode](#/operations/setDefaultMode). Request the current operating mode of the robot controller via [getCurrentRobotControllerState](#/operations/getCurrentRobotControllerState).
1723
1723
  * @summary Current Mode
1724
1724
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1725
1725
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1730,7 +1730,7 @@ var ControllerApi = class extends BaseAPI {
1730
1730
  return ControllerApiFp(this.configuration).getMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
1731
1731
  }
1732
1732
  /**
1733
- * Get the configuration for a robot controller.
1733
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the configuration for a robot controller.
1734
1734
  * @summary Robot Controller Configuration
1735
1735
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1736
1736
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1741,7 +1741,7 @@ var ControllerApi = class extends BaseAPI {
1741
1741
  return ControllerApiFp(this.configuration).getRobotController(cell, controller, options).then((request) => request(this.axios, this.basePath));
1742
1742
  }
1743
1743
  /**
1744
- * Lists supported operating modes. Usually cobots support free drive and control, industrial robots only support control.
1744
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists supported operating modes. Usually cobots support free drive and control, industrial robots only support control.
1745
1745
  * @summary Supported Motion Modes
1746
1746
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1747
1747
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1752,7 +1752,7 @@ var ControllerApi = class extends BaseAPI {
1752
1752
  return ControllerApiFp(this.configuration).getSupportedModes(cell, controller, options).then((request) => request(this.axios, this.basePath));
1753
1753
  }
1754
1754
  /**
1755
- * Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the virtual configuration variant of [addRobotController](#/operations/addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration, which is not required when providing a complete configuration. > **NOTE** > > The output generated by this endpoint can be too large for the site to handle and may produce an error or incorrect output. > Use `curl` in combination with `> output.json` to capture the output, or use an API client like Postman.
1755
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the virtual configuration variant of [addRobotController](#/operations/addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration, which is not required when providing a complete configuration. > **NOTE** > > The output generated by this endpoint can be too large for the site to handle and may produce an error or incorrect output. > Use `curl` in combination with `> output.json` to capture the output, or use an API client like Postman.
1756
1756
  * @summary Virtual Robot Configuration
1757
1757
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1758
1758
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1763,7 +1763,7 @@ var ControllerApi = class extends BaseAPI {
1763
1763
  return ControllerApiFp(this.configuration).getVirtualRobotConfiguration(cell, controller, options).then((request) => request(this.axios, this.basePath));
1764
1764
  }
1765
1765
  /**
1766
- * List all configured robot controllers.
1766
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List all configured robot controllers.
1767
1767
  * @summary List Robot Controllers
1768
1768
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1769
1769
  * @param {*} [options] Override http request option.
@@ -1773,7 +1773,7 @@ var ControllerApi = class extends BaseAPI {
1773
1773
  return ControllerApiFp(this.configuration).listControllers(cell, options).then((request) => request(this.axios, this.basePath));
1774
1774
  }
1775
1775
  /**
1776
- * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode, the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation, the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](#/operations/getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
1776
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode, the robot controller must be in `automatic` or `manual` operating mode and safety state \'normal\' or \'reduced\'. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation, the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](#/operations/getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
1777
1777
  * @summary Set Default Mode
1778
1778
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1779
1779
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1785,7 +1785,7 @@ var ControllerApi = class extends BaseAPI {
1785
1785
  return ControllerApiFp(this.configuration).setDefaultMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
1786
1786
  }
1787
1787
  /**
1788
- * Sets the robot controller into freedrive mode and stays in freedrive until the websocket connection is closed by the client. In freedrive mode, it is possible to move the attached motion groups by hand. This is a blocking call. As long as the websocket connection is open, no other endpoint can control or move the robot. <!-- theme: danger --> > **DANGER** > Danger caused by robot. Improper assessment by the integrator of the application-specific hazards can result in people being crushed, > drawn in or caught due to the robot\'s complex movement sequences. Before opening the websocket, ensure that > - The robot is in a safe state, > - The right payload is set (e.g by using the (getActivePayload)[getActivePayload] endpoint), > - No humans or object are within the robot\'s reach or within the cell. As long as the websocket connection is open you will get the current state of the robot system in the response in the specified response_rate. If the activation failed, the returned status will return possible reasons for the failure. Free drive mode is only available for robot controllers that support it, in particular Collobarative Robots (\"Cobots\"). Use the (getSupportedModes)[getSupportedModes] endpoint to check if the robot controller supports free drive mode.
1788
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Sets the robot controller into freedrive mode and stays in freedrive until the websocket connection is closed by the client. In freedrive mode, it is possible to move the attached motion groups by hand. This is a blocking call. As long as the websocket connection is open, no other endpoint can control or move the robot. <!-- theme: danger --> > **DANGER** > Danger caused by robot. Improper assessment by the integrator of the application-specific hazards can result in people being crushed, > drawn in or caught due to the robot\'s complex movement sequences. Before opening the websocket, ensure that > - The robot is in a safe state, > - The right payload is set (e.g by using the (getActivePayload)[getActivePayload] endpoint), > - No humans or object are within the robot\'s reach or within the cell. As long as the websocket connection is open you will get the current state of the robot system in the response in the specified response_rate. If the activation failed, the returned status will return possible reasons for the failure. Free drive mode is only available for robot controllers that support it, in particular Collobarative Robots (\"Cobots\"). Use the (getSupportedModes)[getSupportedModes] endpoint to check if the robot controller supports free drive mode.
1789
1789
  * @summary Stream Free Drive Mode
1790
1790
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1791
1791
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1797,7 +1797,7 @@ var ControllerApi = class extends BaseAPI {
1797
1797
  return ControllerApiFp(this.configuration).streamFreeDrive(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
1798
1798
  }
1799
1799
  /**
1800
- * Receive updates of the current robot system mode of a robot controller via websocket upon robot system mode change. See [setDefaultMode](#/operations/setDefaultMode) for more information about the different modes.
1800
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Receive updates of the current robot system mode of a robot controller via websocket upon robot system mode change. See [setDefaultMode](#/operations/setDefaultMode) for more information about the different modes.
1801
1801
  * @summary Stream Mode Change
1802
1802
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1803
1803
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1808,7 +1808,7 @@ var ControllerApi = class extends BaseAPI {
1808
1808
  return ControllerApiFp(this.configuration).streamModeChange(cell, controller, options).then((request) => request(this.axios, this.basePath));
1809
1809
  }
1810
1810
  /**
1811
- * Receive updates of the state of a robot controller.
1811
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Receive updates of the state of a robot controller.
1812
1812
  * @summary Stream State of Device
1813
1813
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1814
1814
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1820,7 +1820,7 @@ var ControllerApi = class extends BaseAPI {
1820
1820
  return ControllerApiFp(this.configuration).streamRobotControllerState(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
1821
1821
  }
1822
1822
  /**
1823
- * Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](#/operations/getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](#/operations/deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](#/operations/addRobotController).
1823
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](#/operations/getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](#/operations/deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](#/operations/addRobotController).
1824
1824
  * @summary Update Robot Controller Configuration
1825
1825
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1826
1826
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2058,7 +2058,7 @@ const ControllerIOsApiFactory = function(configuration, basePath, axios$1) {
2058
2058
  */
2059
2059
  var ControllerIOsApi = class extends BaseAPI {
2060
2060
  /**
2061
- * Lists the I/O descriptions of the robot controller. The I/O descriptions contain information such as the name of the I/O, the I/O type and the I/O unit. The set of available I/Os is defined by the robot controller. Each I/O has a unique identifier. If no identifiers are specified in the request, retrieve the full list of available I/Os in this endpoint.
2061
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists the I/O descriptions of the robot controller. The I/O descriptions contain information such as the name of the I/O, the I/O type and the I/O unit. The set of available I/Os is defined by the robot controller. Each I/O has a unique identifier. If no identifiers are specified in the request, retrieve the full list of available I/Os in this endpoint.
2062
2062
  * @summary List Descriptions
2063
2063
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2064
2064
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2070,7 +2070,7 @@ var ControllerIOsApi = class extends BaseAPI {
2070
2070
  return ControllerIOsApiFp(this.configuration).listIODescriptions(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
2071
2071
  }
2072
2072
  /**
2073
- * Retrieves the current values of I/Os. The identifiers of the I/Os must be provided in the request. Request all available I/O identifiers via [listIODescriptions](#/operations/listIODescriptions).
2073
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Retrieves the current values of I/Os. The identifiers of the I/Os must be provided in the request. Request all available I/O identifiers via [listIODescriptions](#/operations/listIODescriptions).
2074
2074
  * @summary Values
2075
2075
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2076
2076
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2082,7 +2082,7 @@ var ControllerIOsApi = class extends BaseAPI {
2082
2082
  return ControllerIOsApiFp(this.configuration).listIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
2083
2083
  }
2084
2084
  /**
2085
- * Set the values of outputs. All available I/O identifiers and possible value ranges can be requested via [listIODescriptions](#/operations/listIODescriptions). The call will return once the values have been set on and accepted by the robot. This might take up to 200 milliseconds. > **NOTE** > > Do not call this endpoint while another request is still in progress. The second call will fail.
2085
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Set the values of outputs. All available I/O identifiers and possible value ranges can be requested via [listIODescriptions](#/operations/listIODescriptions). The call will return once the values have been set on and accepted by the robot. This might take up to 200 milliseconds. > **NOTE** > > Do not call this endpoint while another request is still in progress. The second call will fail.
2086
2086
  * @summary Set Values
2087
2087
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2088
2088
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2094,7 +2094,7 @@ var ControllerIOsApi = class extends BaseAPI {
2094
2094
  return ControllerIOsApiFp(this.configuration).setOutputValues(cell, controller, iOValue, options).then((request) => request(this.axios, this.basePath));
2095
2095
  }
2096
2096
  /**
2097
- * Continuously receive updates of I/O values via websocket. Updates are sent in the update rate of the controller. > **NOTE** > > Do not request too many values simultaneously as the request is then likely to fail. The amount of values that can be streamed simultaneously depends on the specific robot controller. > **NOTE** > > The inputs and outputs are sent in the update rate of the controller to prevent losing any values. Consider that this might lead to a high amount of data transmitted.
2097
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Continuously receive updates of I/O values via websocket. Updates are sent in the update rate of the controller. > **NOTE** > > Do not request too many values simultaneously as the request is then likely to fail. The amount of values that can be streamed simultaneously depends on the specific robot controller. > **NOTE** > > The inputs and outputs are sent in the update rate of the controller to prevent losing any values. Consider that this might lead to a high amount of data transmitted.
2098
2098
  * @summary Stream Values
2099
2099
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2100
2100
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2106,7 +2106,7 @@ var ControllerIOsApi = class extends BaseAPI {
2106
2106
  return ControllerIOsApiFp(this.configuration).streamIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
2107
2107
  }
2108
2108
  /**
2109
- * Wait until an I/O reaches a certain value. This call returns as soon as the condition is met or the request fails. The comparison_type value is used to define how the current value of the I/O is compared with given value. Only set the value that corresponds to the value_type of the I/O, see (listIODescriptions)[listIODescriptions] for more information. Examples: If you want to wait until an analog input (\"AI_1\") is less than 10, you would set io to \"AI_1\" comparison_type to COMPARISON_LESS and only integer_value to 10. If you want to wait until an analog input (\"AI_2\") is greater than 5.0, you would set io to \"AI_2\" comparison_type to COMPARISON_GREATER and only floating_value to 5.0. If you want to wait until a digital input (\"DI_3\") is true, you would set io to \"DI_3\" comparison_type to COMPARISON_EQUAL and only boolean_value to true.
2109
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Wait until an I/O reaches a certain value. This call returns as soon as the condition is met or the request fails. The comparison_type value is used to define how the current value of the I/O is compared with given value. Only set the value that corresponds to the value_type of the I/O, see (listIODescriptions)[listIODescriptions] for more information. Examples: If you want to wait until an analog input (\"AI_1\") is less than 10, you would set io to \"AI_1\" comparison_type to COMPARISON_LESS and only integer_value to 10. If you want to wait until an analog input (\"AI_2\") is greater than 5.0, you would set io to \"AI_2\" comparison_type to COMPARISON_GREATER and only floating_value to 5.0. If you want to wait until a digital input (\"DI_3\") is true, you would set io to \"DI_3\" comparison_type to COMPARISON_EQUAL and only boolean_value to true.
2110
2110
  * @summary Wait For
2111
2111
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2112
2112
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2341,7 +2341,7 @@ const CoordinateSystemsApiFactory = function(configuration, basePath, axios$1) {
2341
2341
  */
2342
2342
  var CoordinateSystemsApi = class extends BaseAPI {
2343
2343
  /**
2344
- * Add a user coordinate system to the list of coordinate systems but not on a robot controller. The coordinate system is defined by a name and an offset in another coordinate system referenced by the unique identifier of the reference coordinate system. Will return the specification of the added coordinate systems which includes the unique identifier of the added coordinate system. All available coordinate systems can be listed via the [listCoordinateSystems](#/operations/listCoordinateSystems) endpoint.
2344
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Add a user coordinate system to the list of coordinate systems but not on a robot controller. The coordinate system is defined by a name and an offset in another coordinate system referenced by the unique identifier of the reference coordinate system. Will return the specification of the added coordinate systems which includes the unique identifier of the added coordinate system. All available coordinate systems can be listed via the [listCoordinateSystems](#/operations/listCoordinateSystems) endpoint.
2345
2345
  * @summary Add
2346
2346
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2347
2347
  * @param {AddRequest} addRequest
@@ -2352,7 +2352,7 @@ var CoordinateSystemsApi = class extends BaseAPI {
2352
2352
  return CoordinateSystemsApiFp(this.configuration).addCoordinateSystem(cell, addRequest, options).then((request) => request(this.axios, this.basePath));
2353
2353
  }
2354
2354
  /**
2355
- * Removes a user coordinate system specified by the given identifier. > **NOTE** > > If the coordinate system has originally been configured on the robot controller, it will remain on the controller even after this endpoint has been executed successfully.. This will remove the user coordinate system from the list of user coordinate systems but keep all dependent coordinate systems which use the deleted coordinate system as reference. Coordinate systems on the robot controller are not affected by this operation. They can be removed via the robot control panel only and will be removed in NOVA when the controller is removed. On virtual controllers, use the [deleteVirtualRobotCoordinateSystem](#/operations/deleteVirtualRobotCoordinateSystem) endpoint to remove coordinate systems from NOVA and the virtual controller. All available coordinate systems can be listed via the [listCoordinateSystems](#/operations/listCoordinateSystems) endpoint.
2355
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Removes a user coordinate system specified by the given identifier. > **NOTE** > > If the coordinate system has originally been configured on the robot controller, it will remain on the controller even after this endpoint has been executed successfully.. This will remove the user coordinate system from the list of user coordinate systems but keep all dependent coordinate systems which use the deleted coordinate system as reference. Coordinate systems on the robot controller are not affected by this operation. They can be removed via the robot control panel only and will be removed in NOVA when the controller is removed. On virtual controllers, use the [deleteVirtualRobotCoordinateSystem](#/operations/deleteVirtualRobotCoordinateSystem) endpoint to remove coordinate systems from NOVA and the virtual controller. All available coordinate systems can be listed via the [listCoordinateSystems](#/operations/listCoordinateSystems) endpoint.
2356
2356
  * @summary Delete
2357
2357
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2358
2358
  * @param {string} coordinateSystem Unique identifier addressing a coordinate system.
@@ -2363,7 +2363,7 @@ var CoordinateSystemsApi = class extends BaseAPI {
2363
2363
  return CoordinateSystemsApiFp(this.configuration).deleteCoordinateSystem(cell, coordinateSystem, options).then((request) => request(this.axios, this.basePath));
2364
2364
  }
2365
2365
  /**
2366
- * Request a coordinate system specification for a given identifier. Use parameter rotation_type to get the orientation part of the transformation offset of the coordinate system returned in the requested rotation angle type. If parameter rotation_type is not set, the orientation part of the transformation offset of the coordinate system is returned in the rotation angle type used on the robot controller. This can be useful for visualization purposes in the client application due to equivalent numbers with robot control panel visualization. User coordinate systems can be configured on a robot controller during setup or added to the system via the [addCoordinateSystem](#/operations/addCoordinateSystem) endpoint. Updating the robot controller\'s configuration either requires credentials or is not possible. With the endpoint [addCoordinateSystem](#/operations/addCoordinateSystem) you can create a coordinate system without changing the robot controller\'s configuration.
2366
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Request a coordinate system specification for a given identifier. Use parameter rotation_type to get the orientation part of the transformation offset of the coordinate system returned in the requested rotation angle type. If parameter rotation_type is not set, the orientation part of the transformation offset of the coordinate system is returned in the rotation angle type used on the robot controller. This can be useful for visualization purposes in the client application due to equivalent numbers with robot control panel visualization. User coordinate systems can be configured on a robot controller during setup or added to the system via the [addCoordinateSystem](#/operations/addCoordinateSystem) endpoint. Updating the robot controller\'s configuration either requires credentials or is not possible. With the endpoint [addCoordinateSystem](#/operations/addCoordinateSystem) you can create a coordinate system without changing the robot controller\'s configuration.
2367
2367
  * @summary Description
2368
2368
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2369
2369
  * @param {string} coordinateSystem Unique identifier addressing a coordinate system.
@@ -2375,7 +2375,7 @@ var CoordinateSystemsApi = class extends BaseAPI {
2375
2375
  return CoordinateSystemsApiFp(this.configuration).getCoordinateSystem(cell, coordinateSystem, rotationType, options).then((request) => request(this.axios, this.basePath));
2376
2376
  }
2377
2377
  /**
2378
- * Lists all specifications of coordinate systems from robot controllers and user coordinate systems added to the system via the [addCoordinateSystem](#/operations/addCoordinateSystem) endpoint. Use parameter rotation_type to get the orientation part of the transformation offset of the coordinate system returned in the requested rotation angle type. If parameter rotation_type is not set, the orientation part of the transformation offset of the coordinate system is returned in the rotation angle type used on the robot controller. This can be useful for visualization purposes in the client application due to equivalent numbers with robot control panel visualization. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with \"On\" + the unique identifier of the robot controller. Updating the robot controller\'s configuration either requires credentials or is not possible. With the endpoint [addCoordinateSystem](#/operations/addCoordinateSystem) you can create a coordinate system without changing the robot controller\'s configuration.
2378
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists all specifications of coordinate systems from robot controllers and user coordinate systems added to the system via the [addCoordinateSystem](#/operations/addCoordinateSystem) endpoint. Use parameter rotation_type to get the orientation part of the transformation offset of the coordinate system returned in the requested rotation angle type. If parameter rotation_type is not set, the orientation part of the transformation offset of the coordinate system is returned in the rotation angle type used on the robot controller. This can be useful for visualization purposes in the client application due to equivalent numbers with robot control panel visualization. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with \"On\" + the unique identifier of the robot controller. Updating the robot controller\'s configuration either requires credentials or is not possible. With the endpoint [addCoordinateSystem](#/operations/addCoordinateSystem) you can create a coordinate system without changing the robot controller\'s configuration.
2379
2379
  * @summary List
2380
2380
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2381
2381
  * @param {RotationAngleTypes} [rotationType]
@@ -2386,7 +2386,7 @@ var CoordinateSystemsApi = class extends BaseAPI {
2386
2386
  return CoordinateSystemsApiFp(this.configuration).listCoordinateSystems(cell, rotationType, options).then((request) => request(this.axios, this.basePath));
2387
2387
  }
2388
2388
  /**
2389
- * Transform a pose to another base.
2389
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Transform a pose to another base.
2390
2390
  * @summary Transform
2391
2391
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2392
2392
  * @param {string} coordinateSystem Unique identifier addressing a coordinate system.
@@ -2606,7 +2606,7 @@ const DeviceConfigurationApiFactory = function(configuration, basePath, axios$1)
2606
2606
  */
2607
2607
  var DeviceConfigurationApi = class extends BaseAPI {
2608
2608
  /**
2609
- * Deprecated endpoint. Deletes **all** devices from the cell
2609
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Deprecated endpoint. Deletes **all** devices from the cell
2610
2610
  * @summary Delete Devices
2611
2611
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2612
2612
  * @param {*} [options] Override http request option.
@@ -2617,7 +2617,7 @@ var DeviceConfigurationApi = class extends BaseAPI {
2617
2617
  return DeviceConfigurationApiFp(this.configuration).clearDevices(cell, options).then((request) => request(this.axios, this.basePath));
2618
2618
  }
2619
2619
  /**
2620
- * Deprecated endpoint. Overwrite existing devices in an existing robot cell. The devices are added to the robot cell in the order they are specified in the request body. Each device needs to have a unique identifier which is used to reference the device in Wandelscript. Devices which can be configured in the cell: - Robots - OPC UA devices ## Parameters - For more information about the available device configurations have a look at the **Schema** tab or in the provided examples.
2620
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Deprecated endpoint. Overwrite existing devices in an existing robot cell. The devices are added to the robot cell in the order they are specified in the request body. Each device needs to have a unique identifier which is used to reference the device in Wandelscript. Devices which can be configured in the cell: - Robots - OPC UA devices ## Parameters - For more information about the available device configurations have a look at the **Schema** tab or in the provided examples.
2621
2621
  * @summary Create Devices
2622
2622
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2623
2623
  * @param {Array<CreateDeviceRequestInner>} createDeviceRequestInner
@@ -2629,7 +2629,7 @@ var DeviceConfigurationApi = class extends BaseAPI {
2629
2629
  return DeviceConfigurationApiFp(this.configuration).createDevice(cell, createDeviceRequestInner, options).then((request) => request(this.axios, this.basePath));
2630
2630
  }
2631
2631
  /**
2632
- * Deprecated endpoint. Deletes a specific device from the cell.
2632
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Deprecated endpoint. Deletes a specific device from the cell.
2633
2633
  * @summary Delete Device
2634
2634
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2635
2635
  * @param {string} identifier
@@ -2641,7 +2641,7 @@ var DeviceConfigurationApi = class extends BaseAPI {
2641
2641
  return DeviceConfigurationApiFp(this.configuration).deleteDevice(cell, identifier, options).then((request) => request(this.axios, this.basePath));
2642
2642
  }
2643
2643
  /**
2644
- * Deprecated endpoint. Returns information about a device.
2644
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Deprecated endpoint. Returns information about a device.
2645
2645
  * @summary Device Information
2646
2646
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2647
2647
  * @param {string} identifier
@@ -2653,7 +2653,7 @@ var DeviceConfigurationApi = class extends BaseAPI {
2653
2653
  return DeviceConfigurationApiFp(this.configuration).getDevice(cell, identifier, options).then((request) => request(this.axios, this.basePath));
2654
2654
  }
2655
2655
  /**
2656
- * Deprecated endpoint. Lists all devices which are configured in the cell: - Robots - Databases - OPC UA devices
2656
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Deprecated endpoint. Lists all devices which are configured in the cell: - Robots - Databases - OPC UA devices
2657
2657
  * @summary List All Devices
2658
2658
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2659
2659
  * @param {*} [options] Override http request option.
@@ -2879,7 +2879,7 @@ const LibraryProgramApiFactory = function(configuration, basePath, axios$1) {
2879
2879
  */
2880
2880
  var LibraryProgramApi = class extends BaseAPI {
2881
2881
  /**
2882
- * <!-- theme: danger --> > **Experimental** Creates a new program. The corresponding metadata is created as well. ## Examples ``` move via p2p() to [0, 0, 0, 0, 0, 0] move frame(\"flange\") to [1, 2, 0] move via line() to [1, 1, 0] a := planned_pose() ``` ``` {% from \'schneider_conveyor_v1.j2\' import schneider_conveyor_library -%} {{ schneider_conveyor_library() }} def start_main(): conveyor_speed_percentage = {{ conveyor_speed_percentage | round(4) }} conveyer_speed = conveyor_speed_percentage*1500 schneider_conveyor_start(conveyer_speed) end ```
2882
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Creates a new program. The corresponding metadata is created as well. ## Examples ``` move via p2p() to [0, 0, 0, 0, 0, 0] move frame(\"flange\") to [1, 2, 0] move via line() to [1, 1, 0] a := planned_pose() ``` ``` {% from \'schneider_conveyor_v1.j2\' import schneider_conveyor_library -%} {{ schneider_conveyor_library() }} def start_main(): conveyor_speed_percentage = {{ conveyor_speed_percentage | round(4) }} conveyer_speed = conveyor_speed_percentage*1500 schneider_conveyor_start(conveyer_speed) end ```
2883
2883
  * @summary Create Program
2884
2884
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2885
2885
  * @param {string} body
@@ -2891,7 +2891,7 @@ var LibraryProgramApi = class extends BaseAPI {
2891
2891
  return LibraryProgramApiFp(this.configuration).createProgram(cell, body, name, options).then((request) => request(this.axios, this.basePath));
2892
2892
  }
2893
2893
  /**
2894
- * <!-- theme: danger --> > **Experimental** Deletes the program with the corresponding metadata. This action is irreversible. Does not delete the associated recipes.
2894
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Deletes the program with the corresponding metadata. This action is irreversible. Does not delete the associated recipes.
2895
2895
  * @summary Delete Program
2896
2896
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2897
2897
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -2902,7 +2902,7 @@ var LibraryProgramApi = class extends BaseAPI {
2902
2902
  return LibraryProgramApiFp(this.configuration).deleteProgram(cell, program, options).then((request) => request(this.axios, this.basePath));
2903
2903
  }
2904
2904
  /**
2905
- * <!-- theme: danger --> > **Experimental** Deletes the provided list of programs with the corresponding metadata. This action is irreversible. Does not delete the associated recipes.
2905
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Deletes the provided list of programs with the corresponding metadata. This action is irreversible. Does not delete the associated recipes.
2906
2906
  * @summary Delete Program List
2907
2907
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2908
2908
  * @param {Array<string>} programIds Received from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -2913,7 +2913,7 @@ var LibraryProgramApi = class extends BaseAPI {
2913
2913
  return LibraryProgramApiFp(this.configuration).deleteProgramList(cell, programIds, options).then((request) => request(this.axios, this.basePath));
2914
2914
  }
2915
2915
  /**
2916
- * <!-- theme: danger --> > **Experimental** Returns the content of the program. The identifier of the program is received upon creation or from the metadata list of all the programs.
2916
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns the content of the program. The identifier of the program is received upon creation or from the metadata list of all the programs.
2917
2917
  * @summary Get Program
2918
2918
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2919
2919
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -2924,7 +2924,7 @@ var LibraryProgramApi = class extends BaseAPI {
2924
2924
  return LibraryProgramApiFp(this.configuration).getProgram(cell, program, options).then((request) => request(this.axios, this.basePath));
2925
2925
  }
2926
2926
  /**
2927
- * <!-- theme: danger --> > **Experimental** Updates the content of the program. The update overwrites the existing content. The metadata is updated in correspondence. ## Examples ``` move via p2p() to [0, 0, 0, 0, 0, 0] move frame(\"flange\") to [1, 2, 0] move via line() to [1, 1, 0] a := planned_pose() ``` ``` {% from \'schneider_conveyor_v1.j2\' import schneider_conveyor_library -%} {{ schneider_conveyor_library() }} def start_main(): conveyor_speed_percentage = {{ conveyor_speed_percentage | round(4) }} conveyer_speed = conveyor_speed_percentage*1500 schneider_conveyor_start(conveyer_speed) end ```
2927
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Updates the content of the program. The update overwrites the existing content. The metadata is updated in correspondence. ## Examples ``` move via p2p() to [0, 0, 0, 0, 0, 0] move frame(\"flange\") to [1, 2, 0] move via line() to [1, 1, 0] a := planned_pose() ``` ``` {% from \'schneider_conveyor_v1.j2\' import schneider_conveyor_library -%} {{ schneider_conveyor_library() }} def start_main(): conveyor_speed_percentage = {{ conveyor_speed_percentage | round(4) }} conveyer_speed = conveyor_speed_percentage*1500 schneider_conveyor_start(conveyer_speed) end ```
2928
2928
  * @summary Update Program
2929
2929
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2930
2930
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -3116,7 +3116,7 @@ const LibraryProgramMetadataApiFactory = function(configuration, basePath, axios
3116
3116
  */
3117
3117
  var LibraryProgramMetadataApi = class extends BaseAPI {
3118
3118
  /**
3119
- * <!-- theme: danger --> > **Experimental** Returns metadata of the corresponding program.
3119
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns metadata of the corresponding program.
3120
3120
  * @summary Get Program Metadata
3121
3121
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3122
3122
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -3127,7 +3127,7 @@ var LibraryProgramMetadataApi = class extends BaseAPI {
3127
3127
  return LibraryProgramMetadataApiFp(this.configuration).getProgramMetadata(cell, program, options).then((request) => request(this.axios, this.basePath));
3128
3128
  }
3129
3129
  /**
3130
- * <!-- theme: danger --> > **Experimental** Returns a list of all the stored programs, represented by their metadata.
3130
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns a list of all the stored programs, represented by their metadata.
3131
3131
  * @summary List Program Metadata
3132
3132
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3133
3133
  * @param {boolean} [showHidden] If true, hidden programs, where the &#x60;is_hidden&#x60; flag is active, are included in the list.
@@ -3138,7 +3138,7 @@ var LibraryProgramMetadataApi = class extends BaseAPI {
3138
3138
  return LibraryProgramMetadataApiFp(this.configuration).listProgramMetadata(cell, showHidden, options).then((request) => request(this.axios, this.basePath));
3139
3139
  }
3140
3140
  /**
3141
- * <!-- theme: danger --> > **Experimental** Updates the metadata of the corresponding program. The update is partial, only the set fields get updated.
3141
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Updates the metadata of the corresponding program. The update is partial, only the set fields get updated.
3142
3142
  * @summary Update Program Metadata
3143
3143
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3144
3144
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -3150,7 +3150,7 @@ var LibraryProgramMetadataApi = class extends BaseAPI {
3150
3150
  return LibraryProgramMetadataApiFp(this.configuration).updateProgramMetadata(cell, program, updateProgramMetadataRequest, options).then((request) => request(this.axios, this.basePath));
3151
3151
  }
3152
3152
  /**
3153
- * <!-- theme: danger --> > **Experimental** Uploads an image for the corresponding program. The image is served as a static file. The path to the image is stored in the metadata.
3153
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Uploads an image for the corresponding program. The image is served as a static file. The path to the image is stored in the metadata.
3154
3154
  * @summary Upload Program Metadata Image
3155
3155
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3156
3156
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -3379,7 +3379,7 @@ const LibraryRecipeApiFactory = function(configuration, basePath, axios$1) {
3379
3379
  */
3380
3380
  var LibraryRecipeApi = class extends BaseAPI {
3381
3381
  /**
3382
- * <!-- theme: danger --> > **Experimental** Creates a new recipe. The corresponding metadata is created as well.
3382
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Creates a new recipe. The corresponding metadata is created as well.
3383
3383
  * @summary Create Recipe
3384
3384
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3385
3385
  * @param {string} programId The identifier of the program the recipe will be associated with.
@@ -3392,7 +3392,7 @@ var LibraryRecipeApi = class extends BaseAPI {
3392
3392
  return LibraryRecipeApiFp(this.configuration).createRecipe(cell, programId, body, name, options).then((request) => request(this.axios, this.basePath));
3393
3393
  }
3394
3394
  /**
3395
- * # EXPERIMENTAL > **Note:** This endpoint is experimental and might experience functional changes in the future. Deletes a recipe. This action is irreversible.
3395
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ # EXPERIMENTAL > **Note:** This endpoint is experimental and might experience functional changes in the future. Deletes a recipe. This action is irreversible.
3396
3396
  * @summary Delete Recipe
3397
3397
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3398
3398
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3403,7 +3403,7 @@ var LibraryRecipeApi = class extends BaseAPI {
3403
3403
  return LibraryRecipeApiFp(this.configuration).deleteRecipe(cell, recipe, options).then((request) => request(this.axios, this.basePath));
3404
3404
  }
3405
3405
  /**
3406
- * <!-- theme: danger --> > **Experimental** Deletes the provided list of recipes. This action is irreversible.
3406
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Deletes the provided list of recipes. This action is irreversible.
3407
3407
  * @summary Delete Recipe List
3408
3408
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3409
3409
  * @param {Array<string>} recipeIds Received from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe)
@@ -3414,7 +3414,7 @@ var LibraryRecipeApi = class extends BaseAPI {
3414
3414
  return LibraryRecipeApiFp(this.configuration).deleteRecipeList(cell, recipeIds, options).then((request) => request(this.axios, this.basePath));
3415
3415
  }
3416
3416
  /**
3417
- * <!-- theme: danger --> > **Experimental** Returns the content of a recipe. The identifier of the recipe is recieved on creation or from the metadata list of all the recipes.
3417
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns the content of a recipe. The identifier of the recipe is recieved on creation or from the metadata list of all the recipes.
3418
3418
  * @summary Get Recipe
3419
3419
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3420
3420
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3425,7 +3425,7 @@ var LibraryRecipeApi = class extends BaseAPI {
3425
3425
  return LibraryRecipeApiFp(this.configuration).getRecipe(cell, recipe, options).then((request) => request(this.axios, this.basePath));
3426
3426
  }
3427
3427
  /**
3428
- * <!-- theme: danger --> > **Experimental** Updates an existing recipe. The update is partial, only the set fields get updated.
3428
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Updates an existing recipe. The update is partial, only the set fields get updated.
3429
3429
  * @summary Update Recipe
3430
3430
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3431
3431
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3616,7 +3616,7 @@ const LibraryRecipeMetadataApiFactory = function(configuration, basePath, axios$
3616
3616
  */
3617
3617
  var LibraryRecipeMetadataApi = class extends BaseAPI {
3618
3618
  /**
3619
- * <!-- theme: danger --> > **Experimental** Returns the metadata of the recipe.
3619
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns the metadata of the recipe.
3620
3620
  * @summary Get Recipe Metadata
3621
3621
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3622
3622
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3627,7 +3627,7 @@ var LibraryRecipeMetadataApi = class extends BaseAPI {
3627
3627
  return LibraryRecipeMetadataApiFp(this.configuration).getRecipeMetadata(cell, recipe, options).then((request) => request(this.axios, this.basePath));
3628
3628
  }
3629
3629
  /**
3630
- * <!-- theme: danger --> > **Experimental** List of all the stored recipes, represented by their metadata.
3630
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** List of all the stored recipes, represented by their metadata.
3631
3631
  * @summary List Recipe Metadata
3632
3632
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3633
3633
  * @param {*} [options] Override http request option.
@@ -3637,7 +3637,7 @@ var LibraryRecipeMetadataApi = class extends BaseAPI {
3637
3637
  return LibraryRecipeMetadataApiFp(this.configuration).listRecipeMetadata(cell, options).then((request) => request(this.axios, this.basePath));
3638
3638
  }
3639
3639
  /**
3640
- * <!-- theme: danger --> > **Experimental** Updates the metadata of a recipe. The update is partial, only the set fields get updated.
3640
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Updates the metadata of a recipe. The update is partial, only the set fields get updated.
3641
3641
  * @summary Update Recipe Metadata
3642
3642
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3643
3643
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3649,7 +3649,7 @@ var LibraryRecipeMetadataApi = class extends BaseAPI {
3649
3649
  return LibraryRecipeMetadataApiFp(this.configuration).updateRecipeMetadata(cell, recipe, updateRecipeMetadataRequest, options).then((request) => request(this.axios, this.basePath));
3650
3650
  }
3651
3651
  /**
3652
- * <!-- theme: danger --> > **Experimental** Uploads an image for a recipe. The image is served as a static file and the path is stored in the metadata.
3652
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Uploads an image for a recipe. The image is served as a static file and the path is stored in the metadata.
3653
3653
  * @summary Upload Recipe Metadata Image
3654
3654
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3655
3655
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3824,7 +3824,7 @@ const LicenseApiFactory = function(configuration, basePath, axios$1) {
3824
3824
  */
3825
3825
  var LicenseApi = class extends BaseAPI {
3826
3826
  /**
3827
- * Activates a license using the provided license owner authentication token. The refresh token is used to enable communication with the license provider without requiring user interaction.
3827
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Activates a license using the provided license owner authentication token. The refresh token is used to enable communication with the license provider without requiring user interaction.
3828
3828
  * @summary Activate license
3829
3829
  * @param {ActivateLicenseRequest} activateLicenseRequest
3830
3830
  * @param {*} [options] Override http request option.
@@ -3834,7 +3834,7 @@ var LicenseApi = class extends BaseAPI {
3834
3834
  return LicenseApiFp(this.configuration).activateLicense(activateLicenseRequest, options).then((request) => request(this.axios, this.basePath));
3835
3835
  }
3836
3836
  /**
3837
- * Deactivates active license.
3837
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Deactivates active license.
3838
3838
  * @summary Deactivate license
3839
3839
  * @param {*} [options] Override http request option.
3840
3840
  * @throws {RequiredError}
@@ -3843,7 +3843,7 @@ var LicenseApi = class extends BaseAPI {
3843
3843
  return LicenseApiFp(this.configuration).deactivateLicense(options).then((request) => request(this.axios, this.basePath));
3844
3844
  }
3845
3845
  /**
3846
- * Get information on the license used with the Wandelbots NOVA instance, e.g. licensed product, expiration date, license status.
3846
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Get information on the license used with the Wandelbots NOVA instance, e.g. licensed product, expiration date, license status.
3847
3847
  * @summary Get license
3848
3848
  * @param {*} [options] Override http request option.
3849
3849
  * @throws {RequiredError}
@@ -3852,7 +3852,7 @@ var LicenseApi = class extends BaseAPI {
3852
3852
  return LicenseApiFp(this.configuration).getLicense(options).then((request) => request(this.axios, this.basePath));
3853
3853
  }
3854
3854
  /**
3855
- * Get the license status. If `valid`, Wandelbots NOVA can be used. If `expired`, the license has to be renewed in order to use Wandelbots NOVA.
3855
+ * **Required permissions:** `can_access_license` - View license status ___ Get the license status. If `valid`, Wandelbots NOVA can be used. If `expired`, the license has to be renewed in order to use Wandelbots NOVA.
3856
3856
  * @summary Get license status
3857
3857
  * @param {*} [options] Override http request option.
3858
3858
  * @throws {RequiredError}
@@ -4533,7 +4533,7 @@ const MotionApiFactory = function(configuration, basePath, axios$1) {
4533
4533
  */
4534
4534
  var MotionApi = class extends BaseAPI {
4535
4535
  /**
4536
- * Delete all registered motions.
4536
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Delete all registered motions.
4537
4537
  * @summary All Motions
4538
4538
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4539
4539
  * @param {*} [options] Override http request option.
@@ -4543,7 +4543,7 @@ var MotionApi = class extends BaseAPI {
4543
4543
  return MotionApiFp(this.configuration).deleteAllMotions(cell, options).then((request) => request(this.axios, this.basePath));
4544
4544
  }
4545
4545
  /**
4546
- * Remove a previously created motion from cache. Use [listMotions](#/operations/listMotions) to list all available motions. Motions are removed automatically if the motion group or the corresponding controller is disconnected.
4546
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Remove a previously created motion from cache. Use [listMotions](#/operations/listMotions) to list all available motions. Motions are removed automatically if the motion group or the corresponding controller is disconnected.
4547
4547
  * @summary Remove
4548
4548
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4549
4549
  * @param {string} motion This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion.
@@ -4554,7 +4554,7 @@ var MotionApi = class extends BaseAPI {
4554
4554
  return MotionApiFp(this.configuration).deleteMotion(cell, motion, options).then((request) => request(this.axios, this.basePath));
4555
4555
  }
4556
4556
  /**
4557
- * <!-- theme: danger --> > Websocket endpoint Provide execution control over a previously planned trajectory. Enable the caller to attach I/O actions to the trajectory. Understanding the concept of location: The location or path parameter specifies the exact position along a trajectory. The location is a scalar value that ranges from 0 to `n`, where `n` denotes the number of motion commands, or trajectory segments, e.g. line, p2p, etc. See [planMotion](#/operations/planMotion). Each integer value of the location corresponds to one motion command, e.g. 3.0 to 3.999 could be a line. ### Preconditions - The motion group\'s control mode is not claimed by any other endpoint. - The motion group\'s joint position is at the start location specified with InitializeMovementRequest. ### Requests #### 1. Send InitializeMovementRequest to lock the trajectory to this connection The following actions are executed: - Sets robot controller mode to control mode - Sets start location of the execution Keep in mind that only a single trajectory can be locked to a websocket connection at a time and not unlocked anymore. To execute another trajectory, a new connection must be established. #### 2. Send StartMovementRequest to start the movement - Sets direction of movement, default is forward. #### **Optional** - To pause, send PauseMovementRequest before the movement has reached its end location. - Change the movement\'s velocity with PlaybackSpeedRequest after initializing the movement with InitializeMovementRequest. ### Responses - InitializeMovementResponse is sent to signal the success or failure of the InitializeMovementRequest. - Movement responses are streamed after a StartMovementRequest successfully started the movement. Movement responses are streamed in a rate that is defined as the multiple of the controller step-rate closest to but not exceeding the rate configured by InitializeMovementRequest. - Standstill response is sent once the movement has finished or has come to a standstill due to a pause. - PauseMovementResponse is sent to signal the success of the PauseMovementRequest. It does not signal the end of the movement. End of movement is signaled by standstill response. - PlaybackSpeedResponse is sent to signal the success of the PlaybackSpeedRequest. - MovementError with error details is sent in case of an unexpected error, e.g. controller disconnects during movement. ### Tips and Tricks - A movement can be paused and resumed by sending PauseMovementRequest and StartMovementRequest. - Send PlaybackSpeedRequest before StartMovementRequest to reduce the velocity of the movement before it starts. - Send PlaybackSpeedRequest repeatedly to implement a slider. The velocity of the motion group can be adjusted with each controller step. Therefore, if your app needs a slider-like UI to alter the velocity of a currently running movement, you can send PlaybackSpeedRequest with different speed values repeatedly during the movement. - A closed trajectory (end and start joint position are equal) can be repeated by sending StartMovementRequest after the movement has finished.
4557
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: danger --> > Websocket endpoint Provide execution control over a previously planned trajectory. Enable the caller to attach I/O actions to the trajectory. Understanding the concept of location: The location or path parameter specifies the exact position along a trajectory. The location is a scalar value that ranges from 0 to `n`, where `n` denotes the number of motion commands, or trajectory segments, e.g. line, p2p, etc. See [planMotion](#/operations/planMotion). Each integer value of the location corresponds to one motion command, e.g. 3.0 to 3.999 could be a line. ### Preconditions - The motion group\'s control mode is not claimed by any other endpoint. - The motion group\'s joint position is at the start location specified with InitializeMovementRequest. ### Requests #### 1. Send InitializeMovementRequest to lock the trajectory to this connection The following actions are executed: - Sets robot controller mode to control mode - Sets start location of the execution Keep in mind that only a single trajectory can be locked to a websocket connection at a time and not unlocked anymore. To execute another trajectory, a new connection must be established. #### 2. Send StartMovementRequest to start the movement - Sets direction of movement, default is forward. #### **Optional** - To pause, send PauseMovementRequest before the movement has reached its end location. - Change the movement\'s velocity with PlaybackSpeedRequest after initializing the movement with InitializeMovementRequest. ### Responses - InitializeMovementResponse is sent to signal the success or failure of the InitializeMovementRequest. - Movement responses are streamed after a StartMovementRequest successfully started the movement. Movement responses are streamed in a rate that is defined as the multiple of the controller step-rate closest to but not exceeding the rate configured by InitializeMovementRequest. - Standstill response is sent once the movement has finished or has come to a standstill due to a pause. - PauseMovementResponse is sent to signal the success of the PauseMovementRequest. It does not signal the end of the movement. End of movement is signaled by standstill response. - PlaybackSpeedResponse is sent to signal the success of the PlaybackSpeedRequest. - MovementError with error details is sent in case of an unexpected error, e.g. controller disconnects during movement. ### Tips and Tricks - A movement can be paused and resumed by sending PauseMovementRequest and StartMovementRequest. - Send PlaybackSpeedRequest before StartMovementRequest to reduce the velocity of the movement before it starts. - Send PlaybackSpeedRequest repeatedly to implement a slider. The velocity of the motion group can be adjusted with each controller step. Therefore, if your app needs a slider-like UI to alter the velocity of a currently running movement, you can send PlaybackSpeedRequest with different speed values repeatedly during the movement. - A closed trajectory (end and start joint position are equal) can be repeated by sending StartMovementRequest after the movement has finished.
4558
4558
  * @summary Execute Trajectory
4559
4559
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4560
4560
  * @param {ExecuteTrajectoryRequest} executeTrajectoryRequest
@@ -4565,7 +4565,7 @@ var MotionApi = class extends BaseAPI {
4565
4565
  return MotionApiFp(this.configuration).executeTrajectory(cell, executeTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
4566
4566
  }
4567
4567
  /**
4568
- * Get the trajectory of a planned motion with defined `sample_time` in milliseconds (ms). The trajectory is a list of points containing cartesian and joint data. The cartesian data is in the requested coordinate system. To get a single point of the trajectory, please use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
4568
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the trajectory of a planned motion with defined `sample_time` in milliseconds (ms). The trajectory is a list of points containing cartesian and joint data. The cartesian data is in the requested coordinate system. To get a single point of the trajectory, please use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
4569
4569
  * @summary Get Trajectory
4570
4570
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4571
4571
  * @param {string} motion This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion.
@@ -4578,7 +4578,7 @@ var MotionApi = class extends BaseAPI {
4578
4578
  return MotionApiFp(this.configuration).getMotionTrajectory(cell, motion, sampleTime, responsesCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
4579
4579
  }
4580
4580
  /**
4581
- * Get a single point at a certain location of a planned motion. To get the whole trajectory, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint.
4581
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get a single point at a certain location of a planned motion. To get the whole trajectory, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint.
4582
4582
  * @summary Get Trajectory Sample
4583
4583
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4584
4584
  * @param {string} motion This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion.
@@ -4591,7 +4591,7 @@ var MotionApi = class extends BaseAPI {
4591
4591
  return MotionApiFp(this.configuration).getMotionTrajectorySample(cell, motion, locationOnTrajectory, responseCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
4592
4592
  }
4593
4593
  /**
4594
- * Get the joint data of a planned motion. The planned motion contains only the joint information, to persistently store and reload it later. The data will be sampled equidistantly with defined `sample_time` in milliseconds (ms). If not provided, the data is returned as it is stored on Wandelbots NOVA system. To request cartesian data for visualization purposes, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint. To get a single point of the planned motion, use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
4594
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the joint data of a planned motion. The planned motion contains only the joint information, to persistently store and reload it later. The data will be sampled equidistantly with defined `sample_time` in milliseconds (ms). If not provided, the data is returned as it is stored on Wandelbots NOVA system. To request cartesian data for visualization purposes, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint. To get a single point of the planned motion, use the [getMotionTrajectorySample](#/operations/getMotionTrajectorySample) endpoint.
4595
4595
  * @summary Get Planned Motion
4596
4596
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4597
4597
  * @param {string} motion This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion.
@@ -4603,7 +4603,7 @@ var MotionApi = class extends BaseAPI {
4603
4603
  return MotionApiFp(this.configuration).getPlannedMotion(cell, motion, sampleTime, options).then((request) => request(this.axios, this.basePath));
4604
4604
  }
4605
4605
  /**
4606
- * Returns motion group models that are supported for planning.
4606
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns motion group models that are supported for planning.
4607
4607
  * @summary Motion Group Models for Planning
4608
4608
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4609
4609
  * @param {*} [options] Override http request option.
@@ -4613,7 +4613,7 @@ var MotionApi = class extends BaseAPI {
4613
4613
  return MotionApiFp(this.configuration).getPlanningMotionGroupModels(cell, options).then((request) => request(this.axios, this.basePath));
4614
4614
  }
4615
4615
  /**
4616
- * List all currently planned and available motions. Use [planMotion](#/operations/planMotion) to plan a new motion. Motions are removed if the corresponding motion group or controller disconnects.
4616
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List all currently planned and available motions. Use [planMotion](#/operations/planMotion) to plan a new motion. Motions are removed if the corresponding motion group or controller disconnects.
4617
4617
  * @summary List All Motions
4618
4618
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4619
4619
  * @param {*} [options] Override http request option.
@@ -4623,7 +4623,7 @@ var MotionApi = class extends BaseAPI {
4623
4623
  return MotionApiFp(this.configuration).listMotions(cell, options).then((request) => request(this.axios, this.basePath));
4624
4624
  }
4625
4625
  /**
4626
- * Loads and validates the data of a planned motion into a motion session. The response contains information about the validated motion. Validation can lead to three different results: - Fully valid: The whole planned motion can be executed from start to end. The response will contain the session to move the robot. - Partially valid: Only parts of the planned motion can be executed. The response will contain the session to move the robot and information about the failure for the part that is not executable. - Invalid: The planned motion can not be executed. The response will tell you, which information about the reason of failure. If the motion is at least partially valid, the parts of the motion that are valid can be executed using the [streamMoveForward](#/operations/streamMoveForward) endpoint. You can use the following workflows: - Plan motions using the [planMotion](#/operations/planMotion) endpoint, - Store the planned motion persistently, - Use this endpoint to reload the stored motion and get a motion session for it. - Execute the loaded motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. OR: - Generate a planned motion with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the planned motion to this endpoint to validate it and get a motion session for it, - Execute your motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. Once a planned motion is validated, it is treated like a motion session and will appear in the list of available motions, see [listMotions](#/operations/listMotions) endpoint. You can then execute a motion session with the [streamMoveForward](#/operations/streamMoveForward) endpoint.
4626
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Loads and validates the data of a planned motion into a motion session. The response contains information about the validated motion. Validation can lead to three different results: - Fully valid: The whole planned motion can be executed from start to end. The response will contain the session to move the robot. - Partially valid: Only parts of the planned motion can be executed. The response will contain the session to move the robot and information about the failure for the part that is not executable. - Invalid: The planned motion can not be executed. The response will tell you, which information about the reason of failure. If the motion is at least partially valid, the parts of the motion that are valid can be executed using the [streamMoveForward](#/operations/streamMoveForward) endpoint. You can use the following workflows: - Plan motions using the [planMotion](#/operations/planMotion) endpoint, - Store the planned motion persistently, - Use this endpoint to reload the stored motion and get a motion session for it. - Execute the loaded motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. OR: - Generate a planned motion with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the planned motion to this endpoint to validate it and get a motion session for it, - Execute your motion using the [streamMoveForward](#/operations/streamMoveForward) endpoint. Once a planned motion is validated, it is treated like a motion session and will appear in the list of available motions, see [listMotions](#/operations/listMotions) endpoint. You can then execute a motion session with the [streamMoveForward](#/operations/streamMoveForward) endpoint.
4627
4627
  * @summary Load Planned Motion
4628
4628
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4629
4629
  * @param {PlannedMotion} plannedMotion
@@ -4634,7 +4634,7 @@ var MotionApi = class extends BaseAPI {
4634
4634
  return MotionApiFp(this.configuration).loadPlannedMotion(cell, plannedMotion, options).then((request) => request(this.axios, this.basePath));
4635
4635
  }
4636
4636
  /**
4637
- * <!-- theme: danger --> > **Experimental** Plans a collision-free PTP motion for a single motion group. Use the following workflow to execute a planned trajectory: 1. Plan a collision-free movement/motion. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint.
4637
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Plans a collision-free PTP motion for a single motion group. Use the following workflow to execute a planned trajectory: 1. Plan a collision-free movement/motion. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint.
4638
4638
  * @summary Plan Collision Free PTP
4639
4639
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4640
4640
  * @param {PlanCollisionFreePTPRequest} [planCollisionFreePTPRequest]
@@ -4645,7 +4645,7 @@ var MotionApi = class extends BaseAPI {
4645
4645
  return MotionApiFp(this.configuration).planCollisionFreePTP(cell, planCollisionFreePTPRequest, options).then((request) => request(this.axios, this.basePath));
4646
4646
  }
4647
4647
  /**
4648
- * Deprecated endpoint. Use [planTrajectory](#/operations/planTrajectory) and [loadPlannedMotion](#/operations/loadPlannedMotion) instead. Plans a new motion for a single previously configured [motion group](#/operations/listMotionGroups). Motions are described by a sequence of motion commands starting with start joints. A motion is planned from standstill to standstill. A single motion has constant TCP and payload. Currently, I/O actions can\'t be attached to a motion to execute the action in realtime while a motion is executed. If an I/O is needed at a specific point, multiple motions need to be planned. If an I/O is needed to be set while a motion is executed, the endpoint [setOutputValues](#/operations/setOutputValues) could be used.
4648
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use [planTrajectory](#/operations/planTrajectory) and [loadPlannedMotion](#/operations/loadPlannedMotion) instead. Plans a new motion for a single previously configured [motion group](#/operations/listMotionGroups). Motions are described by a sequence of motion commands starting with start joints. A motion is planned from standstill to standstill. A single motion has constant TCP and payload. Currently, I/O actions can\'t be attached to a motion to execute the action in realtime while a motion is executed. If an I/O is needed at a specific point, multiple motions need to be planned. If an I/O is needed to be set while a motion is executed, the endpoint [setOutputValues](#/operations/setOutputValues) could be used.
4649
4649
  * @summary Plan Motion
4650
4650
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4651
4651
  * @param {PlanRequest} planRequest
@@ -4657,7 +4657,7 @@ var MotionApi = class extends BaseAPI {
4657
4657
  return MotionApiFp(this.configuration).planMotion(cell, planRequest, options).then((request) => request(this.axios, this.basePath));
4658
4658
  }
4659
4659
  /**
4660
- * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint. If the trajectory is not executable, the PlanTrajectoryFailedResponse will contain the joint trajectory up until the error (e.g. a collision) occurred. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
4660
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Validate and load the planned trajectory using the [loadPlannedMotion](#/operations/loadPlannedMotion) endpoint. 3. Execute the loaded trajectory using the [streamMove](#/operations/streamMove) endpoint. If the trajectory is not executable, the PlanTrajectoryFailedResponse will contain the joint trajectory up until the error (e.g. a collision) occurred. EXCEPTION: If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
4661
4661
  * @summary Plan Trajectory
4662
4662
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4663
4663
  * @param {PlanTrajectoryRequest} [planTrajectoryRequest]
@@ -4668,7 +4668,7 @@ var MotionApi = class extends BaseAPI {
4668
4668
  return MotionApiFp(this.configuration).planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
4669
4669
  }
4670
4670
  /**
4671
- * Stops an active motion gracefully with deceleration until standstill while staying on the planned trajectory. When an active movement is stopped any further update request will be rejected. This call will immediately return even if the deceleration is still in progress. The active movement stream returns responses until the robot has reached standstill. Currently it is not possible to restart the motion. Please send in a feature request if you need to restart/continue the motion.
4671
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Stops an active motion gracefully with deceleration until standstill while staying on the planned trajectory. When an active movement is stopped any further update request will be rejected. This call will immediately return even if the deceleration is still in progress. The active movement stream returns responses until the robot has reached standstill. Currently it is not possible to restart the motion. Please send in a feature request if you need to restart/continue the motion.
4672
4672
  * @summary Stop
4673
4673
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4674
4674
  * @param {string} motion This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion.
@@ -4679,7 +4679,7 @@ var MotionApi = class extends BaseAPI {
4679
4679
  return MotionApiFp(this.configuration).stopExecution(cell, motion, options).then((request) => request(this.axios, this.basePath));
4680
4680
  }
4681
4681
  /**
4682
- * Deprecated endpoint. Use `executeTrajectory` instead. Moves the motion group forward or backward along a previously planned motion. Or request to move the motion group via joint point-to-point to a given location on a planned motion. Or set the playback speed of the motion. Or stop the motion execution.
4682
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use `executeTrajectory` instead. Moves the motion group forward or backward along a previously planned motion. Or request to move the motion group via joint point-to-point to a given location on a planned motion. Or set the playback speed of the motion. Or stop the motion execution.
4683
4683
  * @summary Stream Move
4684
4684
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4685
4685
  * @param {StreamMoveRequest} streamMoveRequest
@@ -4691,7 +4691,7 @@ var MotionApi = class extends BaseAPI {
4691
4691
  return MotionApiFp(this.configuration).streamMove(cell, streamMoveRequest, options).then((request) => request(this.axios, this.basePath));
4692
4692
  }
4693
4693
  /**
4694
- * Deprecated endpoint. Use the [executeTrajectory](#/operations/executeTrajectory) endpoint instead. Request to move the motion group backward along a previously planned motion. Once started, you can stop a motion using the [stopExecution](#/operations/stopExecution) endpoint. Prerequisites, before starting the motion execution: - The motion group is currently at the endpoint of the planned motion OR - The motion was stopped using [stopExecution](#/operations/stopExecution) endpoint. Then it is possible to resume the motion execution from where it stopped OR - The motion group was moved onto the motion using the [streamMoveToTrajectoryViaJointP2P](#/operations/streamMoveToTrajectoryViaJointP2P) endpoint.
4694
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use the [executeTrajectory](#/operations/executeTrajectory) endpoint instead. Request to move the motion group backward along a previously planned motion. Once started, you can stop a motion using the [stopExecution](#/operations/stopExecution) endpoint. Prerequisites, before starting the motion execution: - The motion group is currently at the endpoint of the planned motion OR - The motion was stopped using [stopExecution](#/operations/stopExecution) endpoint. Then it is possible to resume the motion execution from where it stopped OR - The motion group was moved onto the motion using the [streamMoveToTrajectoryViaJointP2P](#/operations/streamMoveToTrajectoryViaJointP2P) endpoint.
4695
4695
  * @summary Stream Backward
4696
4696
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4697
4697
  * @param {string} motion This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion.
@@ -4707,7 +4707,7 @@ var MotionApi = class extends BaseAPI {
4707
4707
  return MotionApiFp(this.configuration).streamMoveBackward(cell, motion, playbackSpeedInPercent, responseRate, responseCoordinateSystem, startLocationOnTrajectory, options).then((request) => request(this.axios, this.basePath));
4708
4708
  }
4709
4709
  /**
4710
- * Deprecated endpoint. Use the [executeTrajectory](#/operations/executeTrajectory) endpoint instead. Move the motion group forward along a previously planned motion. Once started, you can stop a motion using the [stopExecution](#/operations/stopExecution) endpoint. Prerequisites, before starting the motion execution: - The motion group is currently at the start point of the planned motion OR - The motion was stopped using [stopExecution](#/operations/stopExecution) endpoint. Then it is possible to resume the motion execution from where it stopped OR - The motion group was moved onto the motion using the [streamMoveToTrajectoryViaJointP2P](#/operations/streamMoveToTrajectoryViaJointP2P) endpoint.
4710
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deprecated endpoint. Use the [executeTrajectory](#/operations/executeTrajectory) endpoint instead. Move the motion group forward along a previously planned motion. Once started, you can stop a motion using the [stopExecution](#/operations/stopExecution) endpoint. Prerequisites, before starting the motion execution: - The motion group is currently at the start point of the planned motion OR - The motion was stopped using [stopExecution](#/operations/stopExecution) endpoint. Then it is possible to resume the motion execution from where it stopped OR - The motion group was moved onto the motion using the [streamMoveToTrajectoryViaJointP2P](#/operations/streamMoveToTrajectoryViaJointP2P) endpoint.
4711
4711
  * @summary Stream Forward
4712
4712
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4713
4713
  * @param {string} motion This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion.
@@ -4723,7 +4723,7 @@ var MotionApi = class extends BaseAPI {
4723
4723
  return MotionApiFp(this.configuration).streamMoveForward(cell, motion, playbackSpeedInPercent, responseRate, responseCoordinateSystem, startLocationOnTrajectory, options).then((request) => request(this.axios, this.basePath));
4724
4724
  }
4725
4725
  /**
4726
- * Request to move the motion group via joint point-to-point to a given location on a planned motion. You must use this endpoint in order to start moving from an arbritrary location of the trajectory. Afterwards, you are able to call [streamMoveForward](#/operations/streamMoveForward) or [streamMoveBackward](#/operations/streamMoveBackward) to move along planned motion. Use the [stopExecution](#/operations/stopExecution) endpoint to stop the motion gracefully.
4726
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Request to move the motion group via joint point-to-point to a given location on a planned motion. You must use this endpoint in order to start moving from an arbritrary location of the trajectory. Afterwards, you are able to call [streamMoveForward](#/operations/streamMoveForward) or [streamMoveBackward](#/operations/streamMoveBackward) to move along planned motion. Use the [stopExecution](#/operations/stopExecution) endpoint to stop the motion gracefully.
4727
4727
  * @summary Stream to Trajectory
4728
4728
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4729
4729
  * @param {string} motion This represents the UUID of a motion. Every executable or partially executable motion is cached and an UUID is returned. Indicate the UUID to execute the motion or retrieve information on the motion.
@@ -4915,7 +4915,7 @@ const MotionGroupApiFactory = function(configuration, basePath, axios$1) {
4915
4915
  */
4916
4916
  var MotionGroupApi = class extends BaseAPI {
4917
4917
  /**
4918
- * Activate the motion group and keep the motion group in an active status. To activate all motion groups of a robot controller, use this endpoint. It will return all activated motion groups of that controller. When activating motion groups, it is not possible to interact with the controller in any other way. To deactivate a motion group, use [deactivateMotionGroup](#/operations/deactivateMotionGroup).
4918
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Activate the motion group and keep the motion group in an active status. To activate all motion groups of a robot controller, use this endpoint. It will return all activated motion groups of that controller. When activating motion groups, it is not possible to interact with the controller in any other way. To deactivate a motion group, use [deactivateMotionGroup](#/operations/deactivateMotionGroup).
4919
4919
  * @summary Activate All
4920
4920
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4921
4921
  * @param {string} controller
@@ -4926,7 +4926,7 @@ var MotionGroupApi = class extends BaseAPI {
4926
4926
  return MotionGroupApiFp(this.configuration).activateAllMotionGroups(cell, controller, options).then((request) => request(this.axios, this.basePath));
4927
4927
  }
4928
4928
  /**
4929
- * Activate the motion group and keep the motion group in an active status. To manually activate a motion group, use this endpoint. When activating a motion group, interacting with the controller in other ways is not possible. To deactivate a motion group, use [deactivateMotionGroup](#/operations/deactivateMotionGroup).
4929
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Activate the motion group and keep the motion group in an active status. To manually activate a motion group, use this endpoint. When activating a motion group, interacting with the controller in other ways is not possible. To deactivate a motion group, use [deactivateMotionGroup](#/operations/deactivateMotionGroup).
4930
4930
  * @summary Activate
4931
4931
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4932
4932
  * @param {string} motionGroup
@@ -4937,7 +4937,7 @@ var MotionGroupApi = class extends BaseAPI {
4937
4937
  return MotionGroupApiFp(this.configuration).activateMotionGroup(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
4938
4938
  }
4939
4939
  /**
4940
- * Deactivate a motion group. Activate the motion group and keeps the motion group in an active status. The robot controller streams information about all active motion groups. Deactivate motion groups that you no longer use. When deactivating motion groups, it is not possible to interact with the controller in any other way.
4940
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Deactivate a motion group. Activate the motion group and keeps the motion group in an active status. The robot controller streams information about all active motion groups. Deactivate motion groups that you no longer use. When deactivating motion groups, it is not possible to interact with the controller in any other way.
4941
4941
  * @summary Deactivate
4942
4942
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4943
4943
  * @param {string} motionGroup The motion-group id.
@@ -4948,7 +4948,7 @@ var MotionGroupApi = class extends BaseAPI {
4948
4948
  return MotionGroupApiFp(this.configuration).deactivateMotionGroup(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
4949
4949
  }
4950
4950
  /**
4951
- * List all active motion groups. A motion group is active if it is currently used by a controller.
4951
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List all active motion groups. A motion group is active if it is currently used by a controller.
4952
4952
  * @summary List Active
4953
4953
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4954
4954
  * @param {*} [options] Override http request option.
@@ -5390,7 +5390,7 @@ const MotionGroupInfosApiFactory = function(configuration, basePath, axios$1) {
5390
5390
  */
5391
5391
  var MotionGroupInfosApi = class extends BaseAPI {
5392
5392
  /**
5393
- * Gets the currently selected payload of the motion group. The payload is defined as the sum of all weights attached to the flange/endpoint of the motion group, e.g. sum of the tools and workpiece weight that are currently attached.
5393
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Gets the currently selected payload of the motion group. The payload is defined as the sum of all weights attached to the flange/endpoint of the motion group, e.g. sum of the tools and workpiece weight that are currently attached.
5394
5394
  * @summary Selected Payload
5395
5395
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5396
5396
  * @param {string} motionGroup The motion-group id.
@@ -5401,7 +5401,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5401
5401
  return MotionGroupInfosApiFp(this.configuration).getActivePayload(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5402
5402
  }
5403
5403
  /**
5404
- * Get the internal selected TCP of a connected device.
5404
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the internal selected TCP of a connected device.
5405
5405
  * @summary Selected TCP
5406
5406
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5407
5407
  * @param {string} motionGroup The motion-group id.
@@ -5413,7 +5413,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5413
5413
  return MotionGroupInfosApiFp(this.configuration).getActiveTcp(cell, motionGroup, rotationType, options).then((request) => request(this.axios, this.basePath));
5414
5414
  }
5415
5415
  /**
5416
- * Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
5416
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
5417
5417
  * @summary State of Device
5418
5418
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5419
5419
  * @param {string} motionGroup The motion-group id.
@@ -5426,7 +5426,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5426
5426
  return MotionGroupInfosApiFp(this.configuration).getCurrentMotionGroupState(cell, motionGroup, tcp, responseCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
5427
5427
  }
5428
5428
  /**
5429
- * Shows the options the motion group offers in regard to the information service. Some motion groups may not provide all information services, e.g. some manufacturers don\'t have a blending zone concept.
5429
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Shows the options the motion group offers in regard to the information service. Some motion groups may not provide all information services, e.g. some manufacturers don\'t have a blending zone concept.
5430
5430
  * @summary Capabilities
5431
5431
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5432
5432
  * @param {string} motionGroup The motion-group id.
@@ -5437,7 +5437,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5437
5437
  return MotionGroupInfosApiFp(this.configuration).getInfoCapabilities(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5438
5438
  }
5439
5439
  /**
5440
- * Get static properties of the motion group. Those properties are used internally for motion group plannning. Only supported motion groups will return a valid response.
5440
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get static properties of the motion group. Those properties are used internally for motion group plannning. Only supported motion groups will return a valid response.
5441
5441
  * @summary Get Static Properties
5442
5442
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5443
5443
  * @param {string} motionGroup The motion-group id.
@@ -5448,7 +5448,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5448
5448
  return MotionGroupInfosApiFp(this.configuration).getMotionGroupSpecification(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5449
5449
  }
5450
5450
  /**
5451
- * Returns the configured mounting pose offset in relation to world coordinate system and the motion groups coordinate system.
5451
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Returns the configured mounting pose offset in relation to world coordinate system and the motion groups coordinate system.
5452
5452
  * @summary Device Mounting
5453
5453
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5454
5454
  * @param {string} motionGroup The motion-group id.
@@ -5459,7 +5459,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5459
5459
  return MotionGroupInfosApiFp(this.configuration).getMounting(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5460
5460
  }
5461
5461
  /**
5462
- * <!-- theme: danger --> > **Experimental** Get the complete configuration which can be passed to the planner-optimizer (incl. motion group description, limits etc.)
5462
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: danger --> > **Experimental** Get the complete configuration which can be passed to the planner-optimizer (incl. motion group description, limits etc.)
5463
5463
  * @summary Optimizer Configuration
5464
5464
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5465
5465
  * @param {string} motionGroup The motion-group id.
@@ -5471,7 +5471,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5471
5471
  return MotionGroupInfosApiFp(this.configuration).getOptimizerConfiguration(cell, motionGroup, tcp, options).then((request) => request(this.axios, this.basePath));
5472
5472
  }
5473
5473
  /**
5474
- * Get the safety setup and limitations of a connected device, which restricts the device. Safety settings are configured globally on the robot controller and are valid for all the connected devices (like robots).
5474
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the safety setup and limitations of a connected device, which restricts the device. Safety settings are configured globally on the robot controller and are valid for all the connected devices (like robots).
5475
5475
  * @summary Safety Setup and Limitations
5476
5476
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5477
5477
  * @param {string} motionGroup The motion-group id.
@@ -5482,7 +5482,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5482
5482
  return MotionGroupInfosApiFp(this.configuration).getSafetySetup(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5483
5483
  }
5484
5484
  /**
5485
- * Lists all defined payloads of the motion group. The payload is defined as the sum of all weights attached to the flange/endpoint of the motion group, e.g. sum of the tools and workpiece weight that are currently attached.
5485
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists all defined payloads of the motion group. The payload is defined as the sum of all weights attached to the flange/endpoint of the motion group, e.g. sum of the tools and workpiece weight that are currently attached.
5486
5486
  * @summary List Payloads
5487
5487
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5488
5488
  * @param {string} motionGroup The motion-group id.
@@ -5493,7 +5493,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5493
5493
  return MotionGroupInfosApiFp(this.configuration).listPayloads(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5494
5494
  }
5495
5495
  /**
5496
- * Get all internal configured TCPs of a connected device.
5496
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get all internal configured TCPs of a connected device.
5497
5497
  * @summary List TCPs
5498
5498
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5499
5499
  * @param {string} motionGroup The motion-group id.
@@ -5505,7 +5505,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5505
5505
  return MotionGroupInfosApiFp(this.configuration).listTcps(cell, motionGroup, rotationType, options).then((request) => request(this.axios, this.basePath));
5506
5506
  }
5507
5507
  /**
5508
- * Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
5508
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
5509
5509
  * @summary Stream State of Device
5510
5510
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5511
5511
  * @param {string} motionGroup The motion-group id.
@@ -5695,7 +5695,7 @@ const MotionGroupJoggingApiFactory = function(configuration, basePath, axios$1)
5695
5695
  */
5696
5696
  var MotionGroupJoggingApi = class extends BaseAPI {
5697
5697
  /**
5698
- * Move TCP along/around a specified direction vector with a specified velocity via a websocket. The purpose of a direction jogging motion is to move a device in exactly one direction with a specified maximum velocity. The sign of the velocity determines the direction of the movement: Positive [+] or Negative [-]. The velocity is given in [mm/s]. In contrast to a planned motion, a jogging motion can be changed dynamically while the motion group is in motion. Only one single client at a time can jog a particular motion group. If another client tries to jog the same motion group at the same time, the second call will fail. The movement of the motion group will start as soon as: * the motion group is not in motion * the websocket connection is established * the first request has been sent As long as the jogging motion is ongoing, responses will be sent continuously and contain the current state of the motion group. The responses will be sent with the specified rate according to the *response_rate* parameter of the initial websocket request. While in motion, the desired direction and velocity can be changed by sending a new request to the same websocket. The motion and sending of the replies will stop when: * a [stopJogging](#/operations/stopJogging) request was received, processed, and the movement stopped The motion group state will be published in the original command stream until the motion group has stopped * the client cancels the stream (not recommended, because final stopping position will not be returned from the stream) When a physical limit (e.g. workspace boundary) is reached, the motion group will stop moving in the desired direction. The stream, howewer, will continue to send the state until the client cancels the stream or sends the [stopJogging](#/operations/stopJogging) request. Singularities are avoided during a jogging motion. This avoidance can result in deviations from the specified direction. The amount of deviation depends on the robot type and current velocity. These mechanisms can lead to a small deviation from the specified direction. The size of deviation is depending on robot type and current velocity. **Usage example:** 1. Open a websocket via Python and start the jogging motion: ```bash > python -m websockets \"ws://<IP of Wandelbots NOVA API>/api/v1/cells/<your cell id>/motion-groups/move-tcp\" ``` 2. Send the following message to the server to move current TCP two parts up in the z direction and one part in the negative y direction with 0.2 mm/s along the specified direction vector: ```json { \"motion_group\": \"<your motion group id>\", \"position_direction\": { \"y\": -0.5, \"z\": 1 }, \"rotation_direction\": {}, \"position_velocity\": 0.2, \"response_rate\": 500 } ``` The NOVA API clients support jogging motions without the need to manually open a websocket. > **NOTE** > > If the jogging movement is stopped immediately, ensure that > > - A websocket connection is established. Websockets can be kept open until the robot\'s movement is done as opposed to a simple HTTP GET request. > > - The motion group is not in motion by another jogging movement or a planned movement. > **NOTE** > > If the robot does not move, ensure that > > - The joint velocity values are not zero, > > - The motion group is not in a state where it cannot move further (e.g. joint limit reached). > **NOTE** > > If the specified velocities are higher than the maximum allowed by the robot controller, the motion group will move with the maximum allowed velocities.
5698
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Move TCP along/around a specified direction vector with a specified velocity via a websocket. The purpose of a direction jogging motion is to move a device in exactly one direction with a specified maximum velocity. The sign of the velocity determines the direction of the movement: Positive [+] or Negative [-]. The velocity is given in [mm/s]. In contrast to a planned motion, a jogging motion can be changed dynamically while the motion group is in motion. Only one single client at a time can jog a particular motion group. If another client tries to jog the same motion group at the same time, the second call will fail. The movement of the motion group will start as soon as: * the motion group is not in motion * the websocket connection is established * the first request has been sent As long as the jogging motion is ongoing, responses will be sent continuously and contain the current state of the motion group. The responses will be sent with the specified rate according to the *response_rate* parameter of the initial websocket request. While in motion, the desired direction and velocity can be changed by sending a new request to the same websocket. The motion and sending of the replies will stop when: * a [stopJogging](#/operations/stopJogging) request was received, processed, and the movement stopped The motion group state will be published in the original command stream until the motion group has stopped * the client cancels the stream (not recommended, because final stopping position will not be returned from the stream) When a physical limit (e.g. workspace boundary) is reached, the motion group will stop moving in the desired direction. The stream, howewer, will continue to send the state until the client cancels the stream or sends the [stopJogging](#/operations/stopJogging) request. Singularities are avoided during a jogging motion. This avoidance can result in deviations from the specified direction. The amount of deviation depends on the robot type and current velocity. These mechanisms can lead to a small deviation from the specified direction. The size of deviation is depending on robot type and current velocity. **Usage example:** 1. Open a websocket via Python and start the jogging motion: ```bash > python -m websockets \"ws://<IP of Wandelbots NOVA API>/api/v1/cells/<your cell id>/motion-groups/move-tcp\" ``` 2. Send the following message to the server to move current TCP two parts up in the z direction and one part in the negative y direction with 0.2 mm/s along the specified direction vector: ```json { \"motion_group\": \"<your motion group id>\", \"position_direction\": { \"y\": -0.5, \"z\": 1 }, \"rotation_direction\": {}, \"position_velocity\": 0.2, \"response_rate\": 500 } ``` The NOVA API clients support jogging motions without the need to manually open a websocket. > **NOTE** > > If the jogging movement is stopped immediately, ensure that > > - A websocket connection is established. Websockets can be kept open until the robot\'s movement is done as opposed to a simple HTTP GET request. > > - The motion group is not in motion by another jogging movement or a planned movement. > **NOTE** > > If the robot does not move, ensure that > > - The joint velocity values are not zero, > > - The motion group is not in a state where it cannot move further (e.g. joint limit reached). > **NOTE** > > If the specified velocities are higher than the maximum allowed by the robot controller, the motion group will move with the maximum allowed velocities.
5699
5699
  * @summary Stream Cartesian
5700
5700
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5701
5701
  * @param {DirectionJoggingRequest} directionJoggingRequest
@@ -5706,7 +5706,7 @@ var MotionGroupJoggingApi = class extends BaseAPI {
5706
5706
  return MotionGroupJoggingApiFp(this.configuration).directionJogging(cell, directionJoggingRequest, options).then((request) => request(this.axios, this.basePath));
5707
5707
  }
5708
5708
  /**
5709
- * Shows the options the motion group offers in regard to jogging. Some motion groups may not provide all information services, e.g. it is physically not possible to move a one-axis-turntable in a linear way.
5709
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Shows the options the motion group offers in regard to jogging. Some motion groups may not provide all information services, e.g. it is physically not possible to move a one-axis-turntable in a linear way.
5710
5710
  * @summary Capabilities
5711
5711
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5712
5712
  * @param {string} motionGroup The motion-group id.
@@ -5717,7 +5717,7 @@ var MotionGroupJoggingApi = class extends BaseAPI {
5717
5717
  return MotionGroupJoggingApiFp(this.configuration).getJoggingCapabilities(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5718
5718
  }
5719
5719
  /**
5720
- * Move one or more joints of a motion group with specified velocities via a websocket. The purpose of a joint jogging motion is to maneuver a motion group in one or more joints with a specified velocity for each joint. The sign of the velocity determines the direction of the joint movement. The velocity is given in [rad/s]. In contrast to a planned motion, a jogging motion can be changed dynamically while the motion group is in motion. Only one single client at a time can jog a particular motion group. If another client tries to jog the same motion group at the same time, the second call will fail. The movement of the motion group will start as soon as: * the motion group is not in motion * the websocket connection is established * the first request has been sent As long as the jogging motion is ongoing, responses will be sent continuously and contain the current state of the motion group. The responses will be sent with the specified rate according to the *response_rate* parameter of the initial websocket request. While in motion, the desired joint velocity can be changed by sending a new request to the same websocket. The motion and sending of the replies will stop when: * a [stopJogging](#/operations/stopJogging) request was received, processed, and the movement stopped Motion group state will be published in the original command stream until the motion group has fully stopped * the client cancels the stream (not recommended, because final stopping position will not be returned from the stream) When a physical limit (e.g. joint limit) is reached, the motion group will stop moving in the desired direction. The stream, howewer, will continue to send the state until the client cancels the stream or sends the [stopJogging](#/operations/stopJogging) request. **Usage example:** 1. Open a websocket via Python and start the jogging motion: ```bash > python -m websockets \"ws://<IP of Wandelbots NOVA API>/api/v1/cells/<your cell id>/motion-groups/move-joint\" ``` 2. Send the following message to move with a velocity of 0.1 rad/s (negative) for joint 5 and 0.2 rad/s for joint 6: ```json { \"motion_group\": \"<your motion group id>\", \"joint_velocities\": [0, 0, 0, 0, -0.1, 0.2], \"response_rate\": 500 } ``` The provided NOVA API clients also natively support jogging motions, without the need to manually open a websocket. > **NOTE** > > If the jogging movement is stopped immediately, ensure that > > - A websocket connection is established. Websockets can be kept open until the robot\'s movement is done as opposed to a simple HTTP GET request. > > - The motion group is not in motion by another jogging movement or a planned movement. > **NOTE** > > If the robot does not move, ensure that > > - The joint velocity values are not zero, > > - The motion group is not in a state where it cannot move further (e.g. joint limit reached). > **NOTE** > > If the specified velocities are higher than the maximum allowed by the robot controller, the motion group will move with the maximum allowed velocities.
5720
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Move one or more joints of a motion group with specified velocities via a websocket. The purpose of a joint jogging motion is to maneuver a motion group in one or more joints with a specified velocity for each joint. The sign of the velocity determines the direction of the joint movement. The velocity is given in [rad/s]. In contrast to a planned motion, a jogging motion can be changed dynamically while the motion group is in motion. Only one single client at a time can jog a particular motion group. If another client tries to jog the same motion group at the same time, the second call will fail. The movement of the motion group will start as soon as: * the motion group is not in motion * the websocket connection is established * the first request has been sent As long as the jogging motion is ongoing, responses will be sent continuously and contain the current state of the motion group. The responses will be sent with the specified rate according to the *response_rate* parameter of the initial websocket request. While in motion, the desired joint velocity can be changed by sending a new request to the same websocket. The motion and sending of the replies will stop when: * a [stopJogging](#/operations/stopJogging) request was received, processed, and the movement stopped Motion group state will be published in the original command stream until the motion group has fully stopped * the client cancels the stream (not recommended, because final stopping position will not be returned from the stream) When a physical limit (e.g. joint limit) is reached, the motion group will stop moving in the desired direction. The stream, howewer, will continue to send the state until the client cancels the stream or sends the [stopJogging](#/operations/stopJogging) request. **Usage example:** 1. Open a websocket via Python and start the jogging motion: ```bash > python -m websockets \"ws://<IP of Wandelbots NOVA API>/api/v1/cells/<your cell id>/motion-groups/move-joint\" ``` 2. Send the following message to move with a velocity of 0.1 rad/s (negative) for joint 5 and 0.2 rad/s for joint 6: ```json { \"motion_group\": \"<your motion group id>\", \"joint_velocities\": [0, 0, 0, 0, -0.1, 0.2], \"response_rate\": 500 } ``` The provided NOVA API clients also natively support jogging motions, without the need to manually open a websocket. > **NOTE** > > If the jogging movement is stopped immediately, ensure that > > - A websocket connection is established. Websockets can be kept open until the robot\'s movement is done as opposed to a simple HTTP GET request. > > - The motion group is not in motion by another jogging movement or a planned movement. > **NOTE** > > If the robot does not move, ensure that > > - The joint velocity values are not zero, > > - The motion group is not in a state where it cannot move further (e.g. joint limit reached). > **NOTE** > > If the specified velocities are higher than the maximum allowed by the robot controller, the motion group will move with the maximum allowed velocities.
5721
5721
  * @summary Stream Joints
5722
5722
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5723
5723
  * @param {JointJoggingRequest} jointJoggingRequest
@@ -5728,7 +5728,7 @@ var MotionGroupJoggingApi = class extends BaseAPI {
5728
5728
  return MotionGroupJoggingApiFp(this.configuration).jointJogging(cell, jointJoggingRequest, options).then((request) => request(this.axios, this.basePath));
5729
5729
  }
5730
5730
  /**
5731
- * Stops an ongoing jogging movement as fast as possible. Until the motion group reaches standstill, it decelerates and keeps the last specified direction. This call will immediately return even if the deceleration is still in progress. After a stop request has been received, no further updates to the ongoing jogging movement are possible. State responses will be sent via the jogging stream until the motion group reaches standstill.
5731
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Stops an ongoing jogging movement as fast as possible. Until the motion group reaches standstill, it decelerates and keeps the last specified direction. This call will immediately return even if the deceleration is still in progress. After a stop request has been received, no further updates to the ongoing jogging movement are possible. State responses will be sent via the jogging stream until the motion group reaches standstill.
5732
5732
  * @summary Stop
5733
5733
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5734
5734
  * @param {string} motionGroup The motion-group id.
@@ -5920,7 +5920,7 @@ const MotionGroupKinematicApiFactory = function(configuration, basePath, axios$1
5920
5920
  */
5921
5921
  var MotionGroupKinematicApi = class extends BaseAPI {
5922
5922
  /**
5923
- * Calculate the joint positions of a motion group in order to move its TCP to a specific pose (Inverse Kinematic Solutions). All solutions are within the configured joint limits of the robot and not in a singular position of the robot. Return all joint positions as list of distinct joint positions in [rad] with their respective inverse feedback. Will be empty when unreachable, e.g. outside joint position limits, singular. Does not include multiple solutions where the robot links are in the same postition. Those can occur when single joints are allowed to move in a range larger than 360 degrees.
5923
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Calculate the joint positions of a motion group in order to move its TCP to a specific pose (Inverse Kinematic Solutions). All solutions are within the configured joint limits of the robot and not in a singular position of the robot. Return all joint positions as list of distinct joint positions in [rad] with their respective inverse feedback. Will be empty when unreachable, e.g. outside joint position limits, singular. Does not include multiple solutions where the robot links are in the same postition. Those can occur when single joints are allowed to move in a range larger than 360 degrees.
5924
5924
  * @summary All Joint Positions from TCP Pose
5925
5925
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5926
5926
  * @param {string} motionGroup The motion-group id.
@@ -5932,7 +5932,7 @@ var MotionGroupKinematicApi = class extends BaseAPI {
5932
5932
  return MotionGroupKinematicApiFp(this.configuration).calculateAllInverseKinematic(cell, motionGroup, allJointPositionsRequest, options).then((request) => request(this.axios, this.basePath));
5933
5933
  }
5934
5934
  /**
5935
- * Calculates the TCP pose from a joint position sample using the forward kinematics of the motion-group.
5935
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Calculates the TCP pose from a joint position sample using the forward kinematics of the motion-group.
5936
5936
  * @summary TcpPose from JointPosition
5937
5937
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5938
5938
  * @param {string} motionGroup The motion-group id.
@@ -5944,7 +5944,7 @@ var MotionGroupKinematicApi = class extends BaseAPI {
5944
5944
  return MotionGroupKinematicApiFp(this.configuration).calculateForwardKinematic(cell, motionGroup, tcpPoseRequest, options).then((request) => request(this.axios, this.basePath));
5945
5945
  }
5946
5946
  /**
5947
- * Calculate the joint positions the motion-group needs to apply for its TCP to be in a specified pose (Inverse Kinematic Solution). If multiple solutions are found, the one nearest to the given specified joint position is picked. * For all supported robot models, except the Fanuc CRX line, the returned joint position is guaranteed to have the same configuration (often referred to as ELBOW_UP, WRIST_DOWN, SHOULDER_RIGHT, f.e.) as the specified reference joint position. If the position limit of any single joint allows it to be in a range larger than 2 PI, the respective joint value in the result will be as close as possible to its reference value. * For the Fanuc CRX line the solution is selected to have the smallest distance measured by the norm of its difference to the reference joint position. The returned joint position is guaranteed to be within the joint limits and not in a singular position of the robot.
5947
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Calculate the joint positions the motion-group needs to apply for its TCP to be in a specified pose (Inverse Kinematic Solution). If multiple solutions are found, the one nearest to the given specified joint position is picked. * For all supported robot models, except the Fanuc CRX line, the returned joint position is guaranteed to have the same configuration (often referred to as ELBOW_UP, WRIST_DOWN, SHOULDER_RIGHT, f.e.) as the specified reference joint position. If the position limit of any single joint allows it to be in a range larger than 2 PI, the respective joint value in the result will be as close as possible to its reference value. * For the Fanuc CRX line the solution is selected to have the smallest distance measured by the norm of its difference to the reference joint position. The returned joint position is guaranteed to be within the joint limits and not in a singular position of the robot.
5948
5948
  * @summary Nearest JointPosition from TcpPose
5949
5949
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5950
5950
  * @param {string} motionGroup The motion-group id.
@@ -5956,7 +5956,7 @@ var MotionGroupKinematicApi = class extends BaseAPI {
5956
5956
  return MotionGroupKinematicApiFp(this.configuration).calculateInverseKinematic(cell, motionGroup, jointPositionRequest, options).then((request) => request(this.axios, this.basePath));
5957
5957
  }
5958
5958
  /**
5959
- * Get the kinematic endpoints provided for the specified motion-group.
5959
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the kinematic endpoints provided for the specified motion-group.
5960
5960
  * @summary Capabilities
5961
5961
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5962
5962
  * @param {string} motionGroup The motion-group id.
@@ -6290,7 +6290,7 @@ const ProgramApiFactory = function(configuration, basePath, axios$1) {
6290
6290
  */
6291
6291
  var ProgramApi = class extends BaseAPI {
6292
6292
  /**
6293
- * This endpoint accepts a program written in Wandelscript and if desired, initial arguments (in the form of a dict). It will then execute this Wandelscript asynchronously. It returns a program runner reference which can be used to query the state of the program runner. ## Parameters See the **Schema** tab for information about the request body. ## Returns A program runner reference which can be used to query the state of the program runner. ## Receiving state updates Receive state updates of the program runner via polling the `/programs/runners/{runner_id}/` ### Via polling You can receive updates about the state of the program runner by polling the `/programs/runners/{runner_id}/` endpoint. ```
6293
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ This endpoint accepts a program written in Wandelscript and if desired, initial arguments (in the form of a dict). It will then execute this Wandelscript asynchronously. It returns a program runner reference which can be used to query the state of the program runner. ## Parameters See the **Schema** tab for information about the request body. ## Returns A program runner reference which can be used to query the state of the program runner. ## Receiving state updates Receive state updates of the program runner via polling the `/programs/runners/{runner_id}/` ### Via polling You can receive updates about the state of the program runner by polling the `/programs/runners/{runner_id}/` endpoint. ```
6294
6294
  * @summary Create Program Runner
6295
6295
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6296
6296
  * @param {Request} request
@@ -6301,7 +6301,7 @@ var ProgramApi = class extends BaseAPI {
6301
6301
  return ProgramApiFp(this.configuration).createProgramRunner(cell, request, options).then((request$1) => request$1(this.axios, this.basePath));
6302
6302
  }
6303
6303
  /**
6304
- * Execute a program in Wandelscript. The Wandelscript can also move multiple robots by using the \'do with\' syntax. The execute operation will be started from the current joint configuration of any addressed robot(s). Addressed robots have to be in control mode for the execute operation to succeed. A request to this endpoint will block this endpoint until the program has been executed, or until an error occurs. The executed movement is returned in case of a succesful execution. Otherwise an error (e.g. out of reach, singularity), is returned. The Wandelscript can either be submitted as is, using Content-type text/plain, or as content-type application/json with the Wandelscript under \"code\" alongside a set of values provided under \"initial_state\". * [WandelEngine & Wandelscript Documentation](/docs/docs/wandelscript)
6304
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Execute a program in Wandelscript. The Wandelscript can also move multiple robots by using the \'do with\' syntax. The execute operation will be started from the current joint configuration of any addressed robot(s). Addressed robots have to be in control mode for the execute operation to succeed. A request to this endpoint will block this endpoint until the program has been executed, or until an error occurs. The executed movement is returned in case of a succesful execution. Otherwise an error (e.g. out of reach, singularity), is returned. The Wandelscript can either be submitted as is, using Content-type text/plain, or as content-type application/json with the Wandelscript under \"code\" alongside a set of values provided under \"initial_state\". * [WandelEngine & Wandelscript Documentation](/docs/docs/wandelscript)
6305
6305
  * @summary Execute Program
6306
6306
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6307
6307
  * @param {CodeWithArguments} codeWithArguments
@@ -6312,7 +6312,7 @@ var ProgramApi = class extends BaseAPI {
6312
6312
  return ProgramApiFp(this.configuration).executeProgram(cell, codeWithArguments, options).then((request) => request(this.axios, this.basePath));
6313
6313
  }
6314
6314
  /**
6315
- * Returns information about a program currently executed. When a program is finished: Program response, result, collected Wandelscript logs, etc. When a program is running: Running status, current executed line, etc. ## Parameters - **runner_id**: The id of the program runner
6315
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Returns information about a program currently executed. When a program is finished: Program response, result, collected Wandelscript logs, etc. When a program is running: Running status, current executed line, etc. ## Parameters - **runner_id**: The id of the program runner
6316
6316
  * @summary Get Program Runner
6317
6317
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6318
6318
  * @param {string} runner
@@ -6323,7 +6323,7 @@ var ProgramApi = class extends BaseAPI {
6323
6323
  return ProgramApiFp(this.configuration).getProgramRunner(cell, runner, options).then((request) => request(this.axios, this.basePath));
6324
6324
  }
6325
6325
  /**
6326
- * Get details about all existing program runners.
6326
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Get details about all existing program runners.
6327
6327
  * @summary List Program Runners
6328
6328
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6329
6329
  * @param {*} [options] Override http request option.
@@ -6333,7 +6333,7 @@ var ProgramApi = class extends BaseAPI {
6333
6333
  return ProgramApiFp(this.configuration).listProgramRunners(cell, options).then((request) => request(this.axios, this.basePath));
6334
6334
  }
6335
6335
  /**
6336
- * Migrate a program ## Parameters See the **Schema** tab for information about the request body
6336
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Migrate a program ## Parameters See the **Schema** tab for information about the request body
6337
6337
  * @summary Migrate Program
6338
6338
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6339
6339
  * @param {Request1} request1
@@ -6344,7 +6344,7 @@ var ProgramApi = class extends BaseAPI {
6344
6344
  return ProgramApiFp(this.configuration).migrateProgram(cell, request1, options).then((request) => request(this.axios, this.basePath));
6345
6345
  }
6346
6346
  /**
6347
- * Plan a program based on the specified robot type. The plan operation can be used to check if a Wandelscript is executable, given the current joint configuration of the robot. If the Wandelscript is executable, the result contains the motion path. If the Wandelscript is not executable, e.g. points that are out of reach, or the joints encounter a singularity, the reason is returned. The plan operation can be used in other operating modes besides control mode. The Wandelscript can either be submitted as is, using Content-type text/plain, or as content-type application/json with the Wandelscript under \"code\" alongside a set of values provided under \"initial_state\". The plan operation can be used in other operating modes besides control mode. The Wandelscript can either be submitted as is, using Content-type text/plain, or as Content-type application/json with the Wandelscript under \"code\" alongside a set of values provided under \"initial_state\". * [WandelEngine & Wandelscript Documentation](/docs/docs/wandelscript)
6347
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Plan a program based on the specified robot type. The plan operation can be used to check if a Wandelscript is executable, given the current joint configuration of the robot. If the Wandelscript is executable, the result contains the motion path. If the Wandelscript is not executable, e.g. points that are out of reach, or the joints encounter a singularity, the reason is returned. The plan operation can be used in other operating modes besides control mode. The Wandelscript can either be submitted as is, using Content-type text/plain, or as content-type application/json with the Wandelscript under \"code\" alongside a set of values provided under \"initial_state\". The plan operation can be used in other operating modes besides control mode. The Wandelscript can either be submitted as is, using Content-type text/plain, or as Content-type application/json with the Wandelscript under \"code\" alongside a set of values provided under \"initial_state\". * [WandelEngine & Wandelscript Documentation](/docs/docs/wandelscript)
6348
6348
  * @summary Plan Program
6349
6349
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6350
6350
  * @param {Request} request
@@ -6356,7 +6356,7 @@ var ProgramApi = class extends BaseAPI {
6356
6356
  return ProgramApiFp(this.configuration).planProgram(cell, request, identifier, options).then((request$1) => request$1(this.axios, this.basePath));
6357
6357
  }
6358
6358
  /**
6359
- * Stop all runners.
6359
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Stop all runners.
6360
6360
  * @summary Stop All Program Runners
6361
6361
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6362
6362
  * @param {*} [options] Override http request option.
@@ -6366,7 +6366,7 @@ var ProgramApi = class extends BaseAPI {
6366
6366
  return ProgramApiFp(this.configuration).stopAllProgramRunner(cell, options).then((request) => request(this.axios, this.basePath));
6367
6367
  }
6368
6368
  /**
6369
- * Stop a specific program runner. If the indicated runner was not running, an error will be returned. ## Parameters - **runner_id**: The id of the program runner
6369
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Stop a specific program runner. If the indicated runner was not running, an error will be returned. ## Parameters - **runner_id**: The id of the program runner
6370
6370
  * @summary Stop Program Runner
6371
6371
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6372
6372
  * @param {string} runner
@@ -6699,7 +6699,7 @@ const ProgramOperatorApiFactory = function(configuration, basePath, axios$1) {
6699
6699
  */
6700
6700
  var ProgramOperatorApi = class extends BaseAPI {
6701
6701
  /**
6702
- * <!-- theme: danger --> > **Experimental** This endpoint initiates the execution of a program stored in the program library. A program is started with the a specific program id that exists in the program library.
6702
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** This endpoint initiates the execution of a program stored in the program library. A program is started with the a specific program id that exists in the program library.
6703
6703
  * @summary Run Program from Library
6704
6704
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6705
6705
  * @param {CreateProgramRunRequest} createProgramRunRequest
@@ -6710,7 +6710,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6710
6710
  return ProgramOperatorApiFp(this.configuration).createProgramRun(cell, createProgramRunRequest, options).then((request) => request(this.axios, this.basePath));
6711
6711
  }
6712
6712
  /**
6713
- * <!-- theme: danger --> > **Experimental** Creates a new trigger that automatically runs a program when certain conditions are met. Each trigger has a different configuration, and the configuration must be valid for the provided trigger type.
6713
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Creates a new trigger that automatically runs a program when certain conditions are met. Each trigger has a different configuration, and the configuration must be valid for the provided trigger type.
6714
6714
  * @summary Create Trigger
6715
6715
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6716
6716
  * @param {CreateTriggerRequest} createTriggerRequest
@@ -6721,7 +6721,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6721
6721
  return ProgramOperatorApiFp(this.configuration).createTrigger(cell, createTriggerRequest, options).then((request) => request(this.axios, this.basePath));
6722
6722
  }
6723
6723
  /**
6724
- * <!-- theme: danger --> > **Experimental** Delete an existing trigger.
6724
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Delete an existing trigger.
6725
6725
  * @summary Delete Trigger
6726
6726
  * @param {string} trigger The identifier of the trigger.
6727
6727
  * @param {string} cell Unique identifier addressing a cell in all API calls.
@@ -6732,7 +6732,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6732
6732
  return ProgramOperatorApiFp(this.configuration).deleteTrigger(trigger, cell, options).then((request) => request(this.axios, this.basePath));
6733
6733
  }
6734
6734
  /**
6735
- * <!-- theme: danger --> > **Experimental** Retrieves all program runs, including past and current executions. Use the optional `state` parameter to filter the results by their status.
6735
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Retrieves all program runs, including past and current executions. Use the optional `state` parameter to filter the results by their status.
6736
6736
  * @summary Get All Program Runs
6737
6737
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6738
6738
  * @param {string} [state]
@@ -6743,7 +6743,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6743
6743
  return ProgramOperatorApiFp(this.configuration).getAllProgramRuns(cell, state, options).then((request) => request(this.axios, this.basePath));
6744
6744
  }
6745
6745
  /**
6746
- * <!-- theme: danger --> > **Experimental** Returns all triggers in the system with the program runs caused by each trigger. You can use the program run id to get more details about a specific program run.
6746
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns all triggers in the system with the program runs caused by each trigger. You can use the program run id to get more details about a specific program run.
6747
6747
  * @summary Get All Triggers
6748
6748
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6749
6749
  * @param {*} [options] Override http request option.
@@ -6753,7 +6753,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6753
6753
  return ProgramOperatorApiFp(this.configuration).getAllTriggers(cell, options).then((request) => request(this.axios, this.basePath));
6754
6754
  }
6755
6755
  /**
6756
- * <!-- theme: danger --> > **Experimental** Retrieves detailed information about a specific program run.
6756
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Retrieves detailed information about a specific program run.
6757
6757
  * @summary Get Program Run
6758
6758
  * @param {string} run
6759
6759
  * @param {string} cell Unique identifier addressing a cell in all API calls.
@@ -6764,7 +6764,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6764
6764
  return ProgramOperatorApiFp(this.configuration).getProgramRun(run, cell, options).then((request) => request(this.axios, this.basePath));
6765
6765
  }
6766
6766
  /**
6767
- * <!-- theme: danger --> > **Experimental** Retrieves detailed information about a specific trigger.
6767
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Retrieves detailed information about a specific trigger.
6768
6768
  * @summary Get Trigger
6769
6769
  * @param {string} trigger The identifier of the trigger.
6770
6770
  * @param {string} cell Unique identifier addressing a cell in all API calls.
@@ -6775,7 +6775,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6775
6775
  return ProgramOperatorApiFp(this.configuration).getTrigger(trigger, cell, options).then((request) => request(this.axios, this.basePath));
6776
6776
  }
6777
6777
  /**
6778
- * <!-- theme: danger --> > **Experimental** Updates the details of an existing trigger The exact behavior of switching a trigger from active to inactive or vice versa is not defined yet.
6778
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Updates the details of an existing trigger The exact behavior of switching a trigger from active to inactive or vice versa is not defined yet.
6779
6779
  * @summary Update Trigger
6780
6780
  * @param {string} trigger the id of the trigger
6781
6781
  * @param {string} cell Unique identifier addressing a cell in all API calls.
@@ -7034,7 +7034,7 @@ const ProgramValuesApiFactory = function(configuration, basePath, axios$1) {
7034
7034
  */
7035
7035
  var ProgramValuesApi = class extends BaseAPI {
7036
7036
  /**
7037
- * Deprecated endpoint. Delete all values from the database.
7037
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Deprecated endpoint. Delete all values from the database.
7038
7038
  * @summary Delete All Values
7039
7039
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7040
7040
  * @param {*} [options] Override http request option.
@@ -7045,7 +7045,7 @@ var ProgramValuesApi = class extends BaseAPI {
7045
7045
  return ProgramValuesApiFp(this.configuration).clearProgramsValues(cell, options).then((request) => request(this.axios, this.basePath));
7046
7046
  }
7047
7047
  /**
7048
- * Deprecated endpoint. Add or overwrite one or more values in the database. PREREQUISITE: The database has been added as a device. Add the database with [createDevice](#/operations/createDevice). The database itself is a key-value store. For reference of possible data types see: * [Documentation for elementary data types](/docs/docs/wandelscript/data-types/#elementary-types)
7048
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Deprecated endpoint. Add or overwrite one or more values in the database. PREREQUISITE: The database has been added as a device. Add the database with [createDevice](#/operations/createDevice). The database itself is a key-value store. For reference of possible data types see: * [Documentation for elementary data types](/docs/docs/wandelscript/data-types/#elementary-types)
7049
7049
  * @summary Add Value(s)
7050
7050
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7051
7051
  * @param {{ [key: string]: CollectionValue; }} requestBody
@@ -7057,7 +7057,7 @@ var ProgramValuesApi = class extends BaseAPI {
7057
7057
  return ProgramValuesApiFp(this.configuration).createProgramsValue(cell, requestBody, options).then((request) => request(this.axios, this.basePath));
7058
7058
  }
7059
7059
  /**
7060
- * Delete a value from the database.
7060
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Delete a value from the database.
7061
7061
  * @summary Delete Value
7062
7062
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7063
7063
  * @param {string} key
@@ -7069,7 +7069,7 @@ var ProgramValuesApi = class extends BaseAPI {
7069
7069
  return ProgramValuesApiFp(this.configuration).deleteProgramValue(cell, key, options).then((request) => request(this.axios, this.basePath));
7070
7070
  }
7071
7071
  /**
7072
- * Deprecated endpoint. Return a value stored in the database. PREREQUISITE: The database has been added as a device. Add the database with [createDevice](#/operations/createDevice). The database itself is a key-value store. For reference of possible data types see: * [Documentation for elementary data types](/docs/docs/wandelscript/data-types/#elementary-types)
7072
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Deprecated endpoint. Return a value stored in the database. PREREQUISITE: The database has been added as a device. Add the database with [createDevice](#/operations/createDevice). The database itself is a key-value store. For reference of possible data types see: * [Documentation for elementary data types](/docs/docs/wandelscript/data-types/#elementary-types)
7073
7073
  * @summary Get Value
7074
7074
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7075
7075
  * @param {string} key
@@ -7081,7 +7081,7 @@ var ProgramValuesApi = class extends BaseAPI {
7081
7081
  return ProgramValuesApiFp(this.configuration).getProgramValue(cell, key, options).then((request) => request(this.axios, this.basePath));
7082
7082
  }
7083
7083
  /**
7084
- * Deprecated endpoint. Gets all values that are stored in the database. PREREQUISITE: The database has been added as a device. Add the database with [createDevice](#/operations/createDevice). The database itself is a key-value storage. For reference of possible data types see: * [Documentation for elementary data types](/docs/docs/wandelscript/data-types/#elementary-types)
7084
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Deprecated endpoint. Gets all values that are stored in the database. PREREQUISITE: The database has been added as a device. Add the database with [createDevice](#/operations/createDevice). The database itself is a key-value storage. For reference of possible data types see: * [Documentation for elementary data types](/docs/docs/wandelscript/data-types/#elementary-types)
7085
7085
  * @summary Get Values
7086
7086
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7087
7087
  * @param {*} [options] Override http request option.
@@ -7092,7 +7092,7 @@ var ProgramValuesApi = class extends BaseAPI {
7092
7092
  return ProgramValuesApiFp(this.configuration).listProgramsValues(cell, options).then((request) => request(this.axios, this.basePath));
7093
7093
  }
7094
7094
  /**
7095
- * Deprecated endpoint. Creates or updates a value in the database. PREREQUISITE: The database has been added as a device. Add the database with [createDevice](#/operations/createDevice). The database itself is a key-value store. For reference of possible data types see: * [Documentation for elementary data types](/docs/docs/wandelscript/data-types/#elementary-types)
7095
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Deprecated endpoint. Creates or updates a value in the database. PREREQUISITE: The database has been added as a device. Add the database with [createDevice](#/operations/createDevice). The database itself is a key-value store. For reference of possible data types see: * [Documentation for elementary data types](/docs/docs/wandelscript/data-types/#elementary-types)
7096
7096
  * @summary Create or Update Value
7097
7097
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7098
7098
  * @param {string} key
@@ -7607,7 +7607,7 @@ const StoreCollisionComponentsApiFactory = function(configuration, basePath, axi
7607
7607
  */
7608
7608
  var StoreCollisionComponentsApi = class extends BaseAPI {
7609
7609
  /**
7610
- * Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
7610
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
7611
7611
  * @summary Delete Collider
7612
7612
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7613
7613
  * @param {string} collider Unique identifier addressing a collider.
@@ -7618,7 +7618,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7618
7618
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
7619
7619
  }
7620
7620
  /**
7621
- * Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
7621
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
7622
7622
  * @summary Delete Link Chain
7623
7623
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7624
7624
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -7629,7 +7629,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7629
7629
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
7630
7630
  }
7631
7631
  /**
7632
- * Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
7632
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
7633
7633
  * @summary Delete Tool
7634
7634
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7635
7635
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -7640,7 +7640,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7640
7640
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
7641
7641
  }
7642
7642
  /**
7643
- * Deprecated endpoint. Use [getCollisionModel](https://portal.wandelbots.io/docs/api/v2/ui/#/operations/getMotionGroupCollisionModel) instead. Returns the default collision link chain for a given motion group model. See [getPlanningMotionGroupModels](#/operations/getPlanningMotionGroupModels) for supported motion group models. The default link chain is derived from 3D models and optimized for collision detection within NOVA. The default link chain includes link shapes only. It does not include any attached components like wire feeders or sensors. Use the `stored_link_chain` or `link_chain` field in [storeCollisionScene](#/operations/storeCollisionScene) to attach additional shapes to the link reference frames. Additional shapes may overlap each other per link and may also overlap the respective link\'s default shape.
7643
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Deprecated endpoint. Use [getCollisionModel](https://portal.wandelbots.io/docs/api/v2/ui/#/operations/getMotionGroupCollisionModel) instead. Returns the default collision link chain for a given motion group model. See [getPlanningMotionGroupModels](#/operations/getPlanningMotionGroupModels) for supported motion group models. The default link chain is derived from 3D models and optimized for collision detection within NOVA. The default link chain includes link shapes only. It does not include any attached components like wire feeders or sensors. Use the `stored_link_chain` or `link_chain` field in [storeCollisionScene](#/operations/storeCollisionScene) to attach additional shapes to the link reference frames. Additional shapes may overlap each other per link and may also overlap the respective link\'s default shape.
7644
7644
  * @summary Get Default Link Chain
7645
7645
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7646
7646
  * @param {GetDefaultLinkChainMotionGroupModelEnum} motionGroupModel Unique identifier for the type of a motion group (robot model). Get the model name for a configured motion group from [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
@@ -7652,7 +7652,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7652
7652
  return StoreCollisionComponentsApiFp(this.configuration).getDefaultLinkChain(cell, motionGroupModel, options).then((request) => request(this.axios, this.basePath));
7653
7653
  }
7654
7654
  /**
7655
- * Returns the collider.
7655
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collider.
7656
7656
  * @summary Get Collider
7657
7657
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7658
7658
  * @param {string} collider Unique identifier addressing a collider.
@@ -7663,7 +7663,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7663
7663
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
7664
7664
  }
7665
7665
  /**
7666
- * Returns the collision link chain.
7666
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collision link chain.
7667
7667
  * @summary Get Link Chain
7668
7668
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7669
7669
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -7674,7 +7674,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7674
7674
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
7675
7675
  }
7676
7676
  /**
7677
- * Returns the stored tool.
7677
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored tool.
7678
7678
  * @summary Get Tool
7679
7679
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7680
7680
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -7685,7 +7685,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7685
7685
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
7686
7686
  }
7687
7687
  /**
7688
- * Returns the stored link chains.
7688
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored link chains.
7689
7689
  * @summary List Link Chains
7690
7690
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7691
7691
  * @param {*} [options] Override http request option.
@@ -7695,7 +7695,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7695
7695
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChains(cell, options).then((request) => request(this.axios, this.basePath));
7696
7696
  }
7697
7697
  /**
7698
- * Returns a list of colliders in a scene. This excludes colliders that are part of a motion group.
7698
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of colliders in a scene. This excludes colliders that are part of a motion group.
7699
7699
  * @summary List Colliders
7700
7700
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7701
7701
  * @param {*} [options] Override http request option.
@@ -7705,7 +7705,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7705
7705
  return StoreCollisionComponentsApiFp(this.configuration).listStoredColliders(cell, options).then((request) => request(this.axios, this.basePath));
7706
7706
  }
7707
7707
  /**
7708
- * Returns the list of stored tools.
7708
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the list of stored tools.
7709
7709
  * @summary List Tools
7710
7710
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7711
7711
  * @param {*} [options] Override http request option.
@@ -7715,7 +7715,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7715
7715
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionTools(cell, options).then((request) => request(this.axios, this.basePath));
7716
7716
  }
7717
7717
  /**
7718
- * Stores collider. If the collider does not exist, it will be created. If the collider exists, it will be updated.
7718
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores collider. If the collider does not exist, it will be created. If the collider exists, it will be updated.
7719
7719
  * @summary Store Collider
7720
7720
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7721
7721
  * @param {string} collider Unique identifier addressing a collider.
@@ -7727,7 +7727,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7727
7727
  return StoreCollisionComponentsApiFp(this.configuration).storeCollider(cell, collider, collider2, options).then((request) => request(this.axios, this.basePath));
7728
7728
  }
7729
7729
  /**
7730
- * Stores link chain. If the link chain does not exist, it will be created. If the link chain exists, it will be updated.
7730
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores link chain. If the link chain does not exist, it will be created. If the link chain exists, it will be updated.
7731
7731
  * @summary Store Link Chain
7732
7732
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7733
7733
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -7739,7 +7739,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7739
7739
  return StoreCollisionComponentsApiFp(this.configuration).storeCollisionLinkChain(cell, linkChain, collider, options).then((request) => request(this.axios, this.basePath));
7740
7740
  }
7741
7741
  /**
7742
- * Stores the tool. If the tool does not exist, it will be created. If the tool exists, it will be updated.
7742
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores the tool. If the tool does not exist, it will be created. If the tool exists, it will be updated.
7743
7743
  * @summary Store Tool
7744
7744
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7745
7745
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -8096,7 +8096,7 @@ const StoreCollisionScenesApiFactory = function(configuration, basePath, axios$1
8096
8096
  */
8097
8097
  var StoreCollisionScenesApi = class extends BaseAPI {
8098
8098
  /**
8099
- * Deletes the stored scene. <!-- theme: danger --> > This will delete persistently stored data.
8099
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored scene. <!-- theme: danger --> > This will delete persistently stored data.
8100
8100
  * @summary Delete Scene
8101
8101
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8102
8102
  * @param {string} scene Unique identifier addressing a collision scene.
@@ -8107,7 +8107,7 @@ var StoreCollisionScenesApi = class extends BaseAPI {
8107
8107
  return StoreCollisionScenesApiFp(this.configuration).deleteStoredCollisionScene(cell, scene, options).then((request) => request(this.axios, this.basePath));
8108
8108
  }
8109
8109
  /**
8110
- * Returns the stored scene.
8110
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored scene.
8111
8111
  * @summary Get Scene
8112
8112
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8113
8113
  * @param {string} scene Unique identifier addressing a collision scene.
@@ -8118,7 +8118,7 @@ var StoreCollisionScenesApi = class extends BaseAPI {
8118
8118
  return StoreCollisionScenesApiFp(this.configuration).getStoredCollisionScene(cell, scene, options).then((request) => request(this.axios, this.basePath));
8119
8119
  }
8120
8120
  /**
8121
- * Returns a list of stored scenes.
8121
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of stored scenes.
8122
8122
  * @summary List Scenes
8123
8123
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8124
8124
  * @param {*} [options] Override http request option.
@@ -8128,7 +8128,7 @@ var StoreCollisionScenesApi = class extends BaseAPI {
8128
8128
  return StoreCollisionScenesApiFp(this.configuration).listStoredCollisionScenes(cell, options).then((request) => request(this.axios, this.basePath));
8129
8129
  }
8130
8130
  /**
8131
- * Creates or replaces the stored collision scene. The scene is assembled from components as defined in the request body. An error is returned if a stored object does not exist.
8131
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Creates or replaces the stored collision scene. The scene is assembled from components as defined in the request body. An error is returned if a stored object does not exist.
8132
8132
  * @summary Store Scene
8133
8133
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8134
8134
  * @param {string} scene Unique identifier addressing a collision scene.
@@ -8387,7 +8387,7 @@ const StoreObjectApiFactory = function(configuration, basePath, axios$1) {
8387
8387
  */
8388
8388
  var StoreObjectApi = class extends BaseAPI {
8389
8389
  /**
8390
- * Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
8390
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
8391
8391
  * @summary Clear all Objects
8392
8392
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8393
8393
  * @param {*} [options] Override http request option.
@@ -8397,7 +8397,7 @@ var StoreObjectApi = class extends BaseAPI {
8397
8397
  return StoreObjectApiFp(this.configuration).clearAllObjects(cell, options).then((request) => request(this.axios, this.basePath));
8398
8398
  }
8399
8399
  /**
8400
- * Delete an object <!-- theme: danger --> > This will delete persistently stored data.
8400
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete an object <!-- theme: danger --> > This will delete persistently stored data.
8401
8401
  * @summary Delete Object
8402
8402
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8403
8403
  * @param {string} key
@@ -8408,7 +8408,7 @@ var StoreObjectApi = class extends BaseAPI {
8408
8408
  return StoreObjectApiFp(this.configuration).deleteObject(cell, key, options).then((request) => request(this.axios, this.basePath));
8409
8409
  }
8410
8410
  /**
8411
- * Get the object. This request returns the object and any metadata attached to it.
8411
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Get the object. This request returns the object and any metadata attached to it.
8412
8412
  * @summary Get Object
8413
8413
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8414
8414
  * @param {string} key
@@ -8419,7 +8419,7 @@ var StoreObjectApi = class extends BaseAPI {
8419
8419
  return StoreObjectApiFp(this.configuration).getObject(cell, key, options).then((request) => request(this.axios, this.basePath));
8420
8420
  }
8421
8421
  /**
8422
- * Get object metadata. Objects can be large. Therefore this request only returns metadata without fetching the object\'s content.
8422
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Get object metadata. Objects can be large. Therefore this request only returns metadata without fetching the object\'s content.
8423
8423
  * @summary Get Object Metadata
8424
8424
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8425
8425
  * @param {string} key
@@ -8430,7 +8430,7 @@ var StoreObjectApi = class extends BaseAPI {
8430
8430
  return StoreObjectApiFp(this.configuration).getObjectMetadata(cell, key, options).then((request) => request(this.axios, this.basePath));
8431
8431
  }
8432
8432
  /**
8433
- * List the keys for all objects.
8433
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ List the keys for all objects.
8434
8434
  * @summary List all Object Keys
8435
8435
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8436
8436
  * @param {*} [options] Override http request option.
@@ -8440,7 +8440,7 @@ var StoreObjectApi = class extends BaseAPI {
8440
8440
  return StoreObjectApiFp(this.configuration).listAllObjectKeys(cell, options).then((request) => request(this.axios, this.basePath));
8441
8441
  }
8442
8442
  /**
8443
- * Store any data as an object. Using a key which already contains an object will override the previously stored object. Use [getObjectMetadata](#/operations/getObjectMetadata) to verify that the key does not contain objects. Optional: Specify metadata as a dictionary with names and values.
8443
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Store any data as an object. Using a key which already contains an object will override the previously stored object. Use [getObjectMetadata](#/operations/getObjectMetadata) to verify that the key does not contain objects. Optional: Specify metadata as a dictionary with names and values.
8444
8444
  * @summary Store Object
8445
8445
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8446
8446
  * @param {string} key
@@ -8651,7 +8651,7 @@ const SystemApiFactory = function(configuration, basePath, axios$1) {
8651
8651
  */
8652
8652
  var SystemApi = class extends BaseAPI {
8653
8653
  /**
8654
- * Check if a more recent Wandelbots NOVA Version is available.
8654
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Check if a more recent Wandelbots NOVA Version is available.
8655
8655
  * @summary Check update
8656
8656
  * @param {ReleaseChannel} channel
8657
8657
  * @param {*} [options] Override http request option.
@@ -8661,7 +8661,7 @@ var SystemApi = class extends BaseAPI {
8661
8661
  return SystemApiFp(this.configuration).checkNovaVersionUpdate(channel, options).then((request) => request(this.axios, this.basePath));
8662
8662
  }
8663
8663
  /**
8664
- * Collects information on the current status of all NOVA services and exports them as a .zip file. Includes information on all cells on the instance such as the service logs and virtual robot controllers. From each cell the logs of all services are included, as well as the configuration of each connected controller to start virtual robots.
8664
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Collects information on the current status of all NOVA services and exports them as a .zip file. Includes information on all cells on the instance such as the service logs and virtual robot controllers. From each cell the logs of all services are included, as well as the configuration of each connected controller to start virtual robots.
8665
8665
  * @summary Download Diagnosis Package
8666
8666
  * @param {*} [options] Override http request option.
8667
8667
  * @throws {RequiredError}
@@ -8670,7 +8670,7 @@ var SystemApi = class extends BaseAPI {
8670
8670
  return SystemApiFp(this.configuration).getDiagnosePackage(options).then((request) => request(this.axios, this.basePath));
8671
8671
  }
8672
8672
  /**
8673
- * Get the status of all system services.
8673
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the status of all system services.
8674
8674
  * @summary Wandelbots NOVA status
8675
8675
  * @param {*} [options] Override http request option.
8676
8676
  * @throws {RequiredError}
@@ -8679,7 +8679,7 @@ var SystemApi = class extends BaseAPI {
8679
8679
  return SystemApiFp(this.configuration).getSystemStatus(options).then((request) => request(this.axios, this.basePath));
8680
8680
  }
8681
8681
  /**
8682
- * Get the current Wandelbots NOVA version.
8682
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the current Wandelbots NOVA version.
8683
8683
  * @summary Wandelbots NOVA Version
8684
8684
  * @param {*} [options] Override http request option.
8685
8685
  * @throws {RequiredError}
@@ -8688,7 +8688,7 @@ var SystemApi = class extends BaseAPI {
8688
8688
  return SystemApiFp(this.configuration).getSystemVersion(options).then((request) => request(this.axios, this.basePath));
8689
8689
  }
8690
8690
  /**
8691
- * Update the Wandelbots NOVA version and all attached services. Sending this API Request will trigger an update of all NOVA services that are part of a cell. Previous cells and cell configurations will remain on the instance. If an error occurs, the API Request is sent 3 times. If the error persists, the old Wandelbots NOVA version is restored.
8691
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Update the Wandelbots NOVA version and all attached services. Sending this API Request will trigger an update of all NOVA services that are part of a cell. Previous cells and cell configurations will remain on the instance. If an error occurs, the API Request is sent 3 times. If the error persists, the old Wandelbots NOVA version is restored.
8692
8692
  * @summary Update Wandelbots NOVA version
8693
8693
  * @param {UpdateNovaVersionRequest} updateNovaVersionRequest
8694
8694
  * @param {*} [options] Override http request option.
@@ -8753,7 +8753,7 @@ const VersionApiFactory = function(configuration, basePath, axios$1) {
8753
8753
  */
8754
8754
  var VersionApi = class extends BaseAPI {
8755
8755
  /**
8756
- * Retrieves the version of the NOVA API.
8756
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Retrieves the version of the NOVA API.
8757
8757
  * @summary API Version
8758
8758
  * @param {*} [options] Override http request option.
8759
8759
  * @throws {RequiredError}
@@ -9016,7 +9016,7 @@ const VirtualRobotApiFactory = function(configuration, basePath, axios$1) {
9016
9016
  */
9017
9017
  var VirtualRobotApi = class extends BaseAPI {
9018
9018
  /**
9019
- * Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
9019
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
9020
9020
  * @summary Get Motion Group State
9021
9021
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9022
9022
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9028,7 +9028,7 @@ var VirtualRobotApi = class extends BaseAPI {
9028
9028
  return VirtualRobotApiFp(this.configuration).getMotionGroupState(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
9029
9029
  }
9030
9030
  /**
9031
- * Gets information on the motion group.
9031
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets information on the motion group.
9032
9032
  * @summary Motion Group Description
9033
9033
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9034
9034
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9039,7 +9039,7 @@ var VirtualRobotApi = class extends BaseAPI {
9039
9039
  return VirtualRobotApiFp(this.configuration).getMotionGroups(cell, controller, options).then((request) => request(this.axios, this.basePath));
9040
9040
  }
9041
9041
  /**
9042
- * Gets the description and value of a virtual controller I/O.
9042
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets the description and value of a virtual controller I/O.
9043
9043
  * @summary Get I/O
9044
9044
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9045
9045
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9051,7 +9051,7 @@ var VirtualRobotApi = class extends BaseAPI {
9051
9051
  return VirtualRobotApiFp(this.configuration).getVirtualRobotIOValue(cell, controller, io, options).then((request) => request(this.axios, this.basePath));
9052
9052
  }
9053
9053
  /**
9054
- * Lists all inputs/outputs of the virtual controller. Every input/output contains the description and the value. As a virtual robot can have up to thousand inputs/outputs, be ready to handle a large response. Use [List Descriptions](List Descriptions) to get a detailed description of an input/output.
9054
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists all inputs/outputs of the virtual controller. Every input/output contains the description and the value. As a virtual robot can have up to thousand inputs/outputs, be ready to handle a large response. Use [List Descriptions](List Descriptions) to get a detailed description of an input/output.
9055
9055
  * @summary List Inputs/Outputs
9056
9056
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9057
9057
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9062,7 +9062,7 @@ var VirtualRobotApi = class extends BaseAPI {
9062
9062
  return VirtualRobotApiFp(this.configuration).listIOs(cell, controller, options).then((request) => request(this.axios, this.basePath));
9063
9063
  }
9064
9064
  /**
9065
- * Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. We recommend to only use the endpoint when the motion group is in monitor mode. In case the motion group is controlled, currently jogging or planning motions, the values are overridden by the controller or an error may occur.
9065
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. We recommend to only use the endpoint when the motion group is in monitor mode. In case the motion group is controlled, currently jogging or planning motions, the values are overridden by the controller or an error may occur.
9066
9066
  * @summary Set Motion Group State
9067
9067
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9068
9068
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9075,7 +9075,7 @@ var VirtualRobotApi = class extends BaseAPI {
9075
9075
  return VirtualRobotApiFp(this.configuration).setMotionGroupState(cell, controller, id, motionGroupJoints, options).then((request) => request(this.axios, this.basePath));
9076
9076
  }
9077
9077
  /**
9078
- * Sets the value of a virtual controller I/O.
9078
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets the value of a virtual controller I/O.
9079
9079
  * @summary Set I/O
9080
9080
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9081
9081
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9232,7 +9232,7 @@ const VirtualRobotBehaviorApiFactory = function(configuration, basePath, axios$1
9232
9232
  */
9233
9233
  var VirtualRobotBehaviorApi = class extends BaseAPI {
9234
9234
  /**
9235
- * This stream provides the commanded joint state and sets a motion groups joint configuration, e.g. to move a motion group. The concept is that an application is using the Motion Service to move a motion group. The Motion Service is commanding the desired joint configuration of a motion group. Physical motion groups move to this joint configuration. With physical motion groups, this takes some time and only works if possible. And you have the *actual* joint state - the current real motion group configuration. Again, this stream is providing *commanded* joint state! It is __not__ providing the *actual* joint state! (Please file a request - if you need a stream of the *actual* joint state) When the virtual controller receives joint commands the joint configuration is immediately adapted to match the incoming joint configurations. CAUTION: Incoming joint configurations are not visualized and their velocity limits are not checked. we don\'t even check limits! Possible use cases are: 1. Creating a robotic application that dynamically adapts to the configured joints on the robot controller, using this stream to feed new joint configurations back to the motion group. The stream only sends data to the robot controller if a motion is executed. If the robot controller\'s joint configuration differs too much from the incoming joint configuration, a following error occurs. Joint configurations that result in following errors are executed only for motions with a low velocity. 2. Mimic Freedrive motions. <!-- theme: danger --> > **DANGER** > > If the incoming joint configuration is set to maximum velocity, the movement to reach this incoming joint configuration will be executed with maximum speed regardless > of safety zones and mechanical limits.
9235
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ This stream provides the commanded joint state and sets a motion groups joint configuration, e.g. to move a motion group. The concept is that an application is using the Motion Service to move a motion group. The Motion Service is commanding the desired joint configuration of a motion group. Physical motion groups move to this joint configuration. With physical motion groups, this takes some time and only works if possible. And you have the *actual* joint state - the current real motion group configuration. Again, this stream is providing *commanded* joint state! It is __not__ providing the *actual* joint state! (Please file a request - if you need a stream of the *actual* joint state) When the virtual controller receives joint commands the joint configuration is immediately adapted to match the incoming joint configurations. CAUTION: Incoming joint configurations are not visualized and their velocity limits are not checked. we don\'t even check limits! Possible use cases are: 1. Creating a robotic application that dynamically adapts to the configured joints on the robot controller, using this stream to feed new joint configurations back to the motion group. The stream only sends data to the robot controller if a motion is executed. If the robot controller\'s joint configuration differs too much from the incoming joint configuration, a following error occurs. Joint configurations that result in following errors are executed only for motions with a low velocity. 2. Mimic Freedrive motions. <!-- theme: danger --> > **DANGER** > > If the incoming joint configuration is set to maximum velocity, the movement to reach this incoming joint configuration will be executed with maximum speed regardless > of safety zones and mechanical limits.
9236
9236
  * @summary Stream Joint Configuration
9237
9237
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9238
9238
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9244,7 +9244,7 @@ var VirtualRobotBehaviorApi = class extends BaseAPI {
9244
9244
  return VirtualRobotBehaviorApiFp(this.configuration).externalJointsStream(cell, controller, externalJointStreamDatapoint, options).then((request) => request(this.axios, this.basePath));
9245
9245
  }
9246
9246
  /**
9247
- * Get the current robot motion group behavior - please see the setter [setMotionGroupBehavior](#/operations/setMotionGroupBehavior) and the enum for details.
9247
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the current robot motion group behavior - please see the setter [setMotionGroupBehavior](#/operations/setMotionGroupBehavior) and the enum for details.
9248
9248
  * @summary Behavior
9249
9249
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9250
9250
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9256,7 +9256,7 @@ var VirtualRobotBehaviorApi = class extends BaseAPI {
9256
9256
  return VirtualRobotBehaviorApiFp(this.configuration).getMotionGroupBehavior(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
9257
9257
  }
9258
9258
  /**
9259
- * Switch robot motion group behavior.
9259
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Switch robot motion group behavior.
9260
9260
  * @summary Switch Behavior
9261
9261
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9262
9262
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9515,7 +9515,7 @@ const VirtualRobotModeApiFactory = function(configuration, basePath, axios$1) {
9515
9515
  */
9516
9516
  var VirtualRobotModeApi = class extends BaseAPI {
9517
9517
  /**
9518
- * Get the cycle time of controller communication in [ms].
9518
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the cycle time of controller communication in [ms].
9519
9519
  * @summary Cycle Time
9520
9520
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9521
9521
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9526,7 +9526,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9526
9526
  return VirtualRobotModeApiFp(this.configuration).getCycleTime(cell, controller, options).then((request) => request(this.axios, this.basePath));
9527
9527
  }
9528
9528
  /**
9529
- * Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state regardless of the controller type. There, the Emergency Stop state is visible as the `safety_state`. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
9529
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state regardless of the controller type. There, the Emergency Stop state is visible as the `safety_state`. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
9530
9530
  * @summary Get E-Stop State
9531
9531
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9532
9532
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9537,7 +9537,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9537
9537
  return VirtualRobotModeApiFp(this.configuration).getEStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
9538
9538
  }
9539
9539
  /**
9540
- * Requests the Operation Mode of the virtual robot controller. To get the Operation Mode regardless of the controller type use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The Operating Mode can only be changed via API when using virtual robot controllers.
9540
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Requests the Operation Mode of the virtual robot controller. To get the Operation Mode regardless of the controller type use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The Operating Mode can only be changed via API when using virtual robot controllers.
9541
9541
  * @summary Get Operation Mode
9542
9542
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9543
9543
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9548,7 +9548,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9548
9548
  return VirtualRobotModeApiFp(this.configuration).getOperationMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
9549
9549
  }
9550
9550
  /**
9551
- * Activates the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions on virtual and physical robot controllers. To return to normal operation, the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state regardless of the controller type. There, the Emergency Stop state is visible as the `safety_state`. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
9551
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Activates the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions on virtual and physical robot controllers. To return to normal operation, the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state regardless of the controller type. There, the Emergency Stop state is visible as the `safety_state`. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
9552
9552
  * @summary Push E-Stop
9553
9553
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9554
9554
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9559,7 +9559,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9559
9559
  return VirtualRobotModeApiFp(this.configuration).pushEStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
9560
9560
  }
9561
9561
  /**
9562
- * Releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions on virtual and physical robot controllers. To return to normal operation, the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state regardless of the controller type. There, the Emergency Stop state is visible as the `safety_state`. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
9562
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions on virtual and physical robot controllers. To return to normal operation, the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state regardless of the controller type. There, the Emergency Stop state is visible as the `safety_state`. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
9563
9563
  * @summary Release E-Stop
9564
9564
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9565
9565
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9570,7 +9570,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9570
9570
  return VirtualRobotModeApiFp(this.configuration).releaseEStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
9571
9571
  }
9572
9572
  /**
9573
- * Changes the Operation Mode of the virtual robot controller to the specified value. To get the Operation Mode, regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The Operating Mode can only be changed via API when using virtual robot controllers.
9573
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Changes the Operation Mode of the virtual robot controller to the specified value. To get the Operation Mode, regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The Operating Mode can only be changed via API when using virtual robot controllers.
9574
9574
  * @summary Set Operation Mode
9575
9575
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9576
9576
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9919,7 +9919,7 @@ const VirtualRobotSetupApiFactory = function(configuration, basePath, axios$1) {
9919
9919
  */
9920
9920
  var VirtualRobotSetupApi = class extends BaseAPI {
9921
9921
  /**
9922
- * Adds a coordinate system to the robot controller. > **NOTE** > > Upon adding or removing a coordinate system, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before NOVA is fully operational again. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that > immediately after a successful response, the new coordinate system may not be available for visualization or program execution.
9922
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a coordinate system to the robot controller. > **NOTE** > > Upon adding or removing a coordinate system, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before NOVA is fully operational again. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that > immediately after a successful response, the new coordinate system may not be available for visualization or program execution.
9923
9923
  * @summary Add Coordinate Systems
9924
9924
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9925
9925
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9931,7 +9931,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9931
9931
  return VirtualRobotSetupApiFp(this.configuration).addVirtualRobotCoordinateSystem(cell, controller, coordinateSystem, options).then((request) => request(this.axios, this.basePath));
9932
9932
  }
9933
9933
  /**
9934
- * Adds a new [TCP](https://docs.wandelbots.io/latest/vocabulary#tcp) or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange\'s coordinate system. > **NOTE** > Ensure the TCP\'s position is within the robot\'s reach. Refer to the robot\'s documentation or data sheet for details like joint limits or reach. > **NOTE** > Upon adding or updating a TCP, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear. > - TCP visualization may be delayed or outdated during the first run. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before the TCP is available for use. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that > immediately after a successful response, the TCP may not be available for visualization or program execution.
9934
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a new [TCP](https://docs.wandelbots.io/latest/vocabulary#tcp) or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange\'s coordinate system. > **NOTE** > Ensure the TCP\'s position is within the robot\'s reach. Refer to the robot\'s documentation or data sheet for details like joint limits or reach. > **NOTE** > Upon adding or updating a TCP, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear. > - TCP visualization may be delayed or outdated during the first run. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before the TCP is available for use. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that > immediately after a successful response, the TCP may not be available for visualization or program execution.
9935
9935
  * @summary Add TCP
9936
9936
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9937
9937
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9944,7 +9944,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9944
9944
  return VirtualRobotSetupApiFp(this.configuration).addVirtualRobotTcp(cell, controller, id, robotTcp, options).then((request) => request(this.axios, this.basePath));
9945
9945
  }
9946
9946
  /**
9947
- * Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems which use the deleted coordinate system as a reference. **Important notes:** - When a new coordinate system is added/removed, the **virtual robot is restarted** in the background in order to apply the new configuration. - During this restart: - Robot visualization may temporarily disappear or appear outdated in the UI. - coordinate system changes are not immediately visible in visualizations. - All existing connections to the virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. - The API call itself does **not wait until the restart and re-synchronization are complete**. This means that immediately after a successful response, the new coordinate system may not yet be > **NOTE** > > Upon adding or removing a coordinate system, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before NOVA is fully operational again. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that > immediately after a successful response, the new coordinate system may not be available for visualization or program execution.
9947
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems which use the deleted coordinate system as a reference. **Important notes:** - When a new coordinate system is added/removed, the **virtual robot is restarted** in the background in order to apply the new configuration. - During this restart: - Robot visualization may temporarily disappear or appear outdated in the UI. - coordinate system changes are not immediately visible in visualizations. - All existing connections to the virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. - The API call itself does **not wait until the restart and re-synchronization are complete**. This means that immediately after a successful response, the new coordinate system may not yet be > **NOTE** > > Upon adding or removing a coordinate system, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before NOVA is fully operational again. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that > immediately after a successful response, the new coordinate system may not be available for visualization or program execution.
9948
9948
  * @summary Remove Coordinate System
9949
9949
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9950
9950
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9957,7 +9957,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9957
9957
  return VirtualRobotSetupApiFp(this.configuration).deleteVirtualRobotCoordinateSystem(cell, controller, coordinateSystem, deleteDependent, options).then((request) => request(this.axios, this.basePath));
9958
9958
  }
9959
9959
  /**
9960
- * Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. > **NOTE** > Upon removing a TCP, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear. > - TCP visualization may be delayed or outdated during the first run. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before the TCP is removed. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that immediately after a successful response, the TCP may not be removed.
9960
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. > **NOTE** > Upon removing a TCP, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear. > - TCP visualization may be delayed or outdated during the first run. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before the TCP is removed. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that immediately after a successful response, the TCP may not be removed.
9961
9961
  * @summary Remove TCP
9962
9962
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9963
9963
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9970,7 +9970,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9970
9970
  return VirtualRobotSetupApiFp(this.configuration).deleteVirtualRobotTcp(cell, controller, id, tcp, options).then((request) => request(this.axios, this.basePath));
9971
9971
  }
9972
9972
  /**
9973
- * Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
9973
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
9974
9974
  * @summary Get Mounting
9975
9975
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9976
9976
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9982,7 +9982,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9982
9982
  return VirtualRobotSetupApiFp(this.configuration).getVirtualRobotMounting(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
9983
9983
  }
9984
9984
  /**
9985
- * Lists all coordinate systems on the robot controller.
9985
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists all coordinate systems on the robot controller.
9986
9986
  * @summary List Coordinate Systems
9987
9987
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9988
9988
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9993,7 +9993,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9993
9993
  return VirtualRobotSetupApiFp(this.configuration).listVirtualRobotCoordinateSystems(cell, controller, options).then((request) => request(this.axios, this.basePath));
9994
9994
  }
9995
9995
  /**
9996
- * Lists TCPs of the motion group. An empty TCP list is valid, for example for external axes.
9996
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists TCPs of the motion group. An empty TCP list is valid, for example for external axes.
9997
9997
  * @summary List TCPs
9998
9998
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9999
9999
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -10005,7 +10005,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
10005
10005
  return VirtualRobotSetupApiFp(this.configuration).listVirtualRobotTcps(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
10006
10006
  }
10007
10007
  /**
10008
- * Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system\'s origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. > **NOTE** > Changing the mounting configuration is considered a configuration change. > > Upon updating the mounting to another coordinate system, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear or not reflect the updated mounting. > - Motion group state and coordinate system alignment may not be instantly updated. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before NOVA is fully operational again. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that > immediately after a successful response, the new mounting may not be available for visualization or program execution.
10008
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system\'s origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. > **NOTE** > Changing the mounting configuration is considered a configuration change. > > Upon updating the mounting to another coordinate system, virtual robots are restarted to apply the new configuration. > What happens during restart: > - Robot visualization may temporarily disappear or not reflect the updated mounting. > - Motion group state and coordinate system alignment may not be instantly updated. > - Existing connections to the virtual robot are closed and re-established, which introduces a short delay before NOVA is fully operational again. > > The API call itself **does not wait until the restart and synchronization are complete**. This means that > immediately after a successful response, the new mounting may not be available for visualization or program execution.
10009
10009
  * @summary Set Mounting
10010
10010
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10011
10011
  * @param {string} controller Unique identifier to address a controller in the cell.