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

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.js CHANGED
@@ -753,7 +753,7 @@ const ApplicationApiFactory = function(configuration, basePath, axios) {
753
753
  */
754
754
  var ApplicationApi = class extends BaseAPI {
755
755
  /**
756
- * 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.
756
+ * **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.
757
757
  * @summary Add Application
758
758
  * @param {string} cell Unique identifier addressing a cell in all API calls.
759
759
  * @param {App} app
@@ -765,7 +765,7 @@ var ApplicationApi = class extends BaseAPI {
765
765
  return ApplicationApiFp(this.configuration).addApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
766
766
  }
767
767
  /**
768
- * Delete all GUI applications from the cell.
768
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete all GUI applications from the cell.
769
769
  * @summary Clear Applications
770
770
  * @param {string} cell Unique identifier addressing a cell in all API calls.
771
771
  * @param {number} [completionTimeout]
@@ -776,7 +776,7 @@ var ApplicationApi = class extends BaseAPI {
776
776
  return ApplicationApiFp(this.configuration).clearApps(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
777
777
  }
778
778
  /**
779
- * Delete a GUI application from the cell.
779
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete a GUI application from the cell.
780
780
  * @summary Delete Application
781
781
  * @param {string} cell Unique identifier addressing a cell in all API calls.
782
782
  * @param {string} app
@@ -788,7 +788,7 @@ var ApplicationApi = class extends BaseAPI {
788
788
  return ApplicationApiFp(this.configuration).deleteApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
789
789
  }
790
790
  /**
791
- * 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.
791
+ * **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.
792
792
  * @summary Configuration
793
793
  * @param {string} cell Unique identifier addressing a cell in all API calls.
794
794
  * @param {string} app
@@ -799,7 +799,7 @@ var ApplicationApi = class extends BaseAPI {
799
799
  return ApplicationApiFp(this.configuration).getApp(cell, app, options).then((request) => request(this.axios, this.basePath));
800
800
  }
801
801
  /**
802
- * 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.
802
+ * **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.
803
803
  * @summary List Applications
804
804
  * @param {string} cell Unique identifier addressing a cell in all API calls.
805
805
  * @param {*} [options] Override http request option.
@@ -809,7 +809,7 @@ var ApplicationApi = class extends BaseAPI {
809
809
  return ApplicationApiFp(this.configuration).listApps(cell, options).then((request) => request(this.axios, this.basePath));
810
810
  }
811
811
  /**
812
- * Update the configuration of a GUI application in the cell.
812
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Update the configuration of a GUI application in the cell.
813
813
  * @summary Update Configuration
814
814
  * @param {string} cell Unique identifier addressing a cell in all API calls.
815
815
  * @param {string} app
@@ -1065,7 +1065,7 @@ const CellApiFactory = function(configuration, basePath, axios) {
1065
1065
  */
1066
1066
  var CellApi = class extends BaseAPI {
1067
1067
  /**
1068
- * Delete an entire cell.
1068
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Delete an entire cell.
1069
1069
  * @summary Delete Cell
1070
1070
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1071
1071
  * @param {number} [completionTimeout]
@@ -1076,7 +1076,7 @@ var CellApi = class extends BaseAPI {
1076
1076
  return CellApiFp(this.configuration).deleteCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1077
1077
  }
1078
1078
  /**
1079
- * 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.
1079
+ * **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.
1080
1080
  * @summary Add Cell
1081
1081
  * @param {Cell} cell
1082
1082
  * @param {number} [completionTimeout]
@@ -1087,7 +1087,7 @@ var CellApi = class extends BaseAPI {
1087
1087
  return CellApiFp(this.configuration).deployCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1088
1088
  }
1089
1089
  /**
1090
- * 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.
1090
+ * **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.
1091
1091
  * @summary Configuration
1092
1092
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1093
1093
  * @param {*} [options] Override http request option.
@@ -1097,7 +1097,7 @@ var CellApi = class extends BaseAPI {
1097
1097
  return CellApiFp(this.configuration).getCell(cell, options).then((request) => request(this.axios, this.basePath));
1098
1098
  }
1099
1099
  /**
1100
- * List the status of all cell resources.
1100
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ List the status of all cell resources.
1101
1101
  * @summary Service Status
1102
1102
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1103
1103
  * @param {*} [options] Override http request option.
@@ -1107,7 +1107,7 @@ var CellApi = class extends BaseAPI {
1107
1107
  return CellApiFp(this.configuration).getCellStatus(cell, options).then((request) => request(this.axios, this.basePath));
1108
1108
  }
1109
1109
  /**
1110
- * List all deployed cell names. If no cells are deployed, an empty list is returned.
1110
+ * **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.
1111
1111
  * @summary List Cells
1112
1112
  * @param {*} [options] Override http request option.
1113
1113
  * @throws {RequiredError}
@@ -1116,7 +1116,7 @@ var CellApi = class extends BaseAPI {
1116
1116
  return CellApiFp(this.configuration).listCells(options).then((request) => request(this.axios, this.basePath));
1117
1117
  }
1118
1118
  /**
1119
- * Update the definition of the entire Cell.
1119
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Update the definition of the entire Cell.
1120
1120
  * @summary Update Configuration
1121
1121
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1122
1122
  * @param {Cell} cell2
@@ -1671,7 +1671,7 @@ const ControllerApiFactory = function(configuration, basePath, axios) {
1671
1671
  */
1672
1672
  var ControllerApi = class extends BaseAPI {
1673
1673
  /**
1674
- * Add a robot controller to the cell. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
1674
+ * **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.
1675
1675
  * @summary Add Robot Controller
1676
1676
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1677
1677
  * @param {RobotController} robotController
@@ -1683,7 +1683,7 @@ var ControllerApi = class extends BaseAPI {
1683
1683
  return ControllerApiFp(this.configuration).addRobotController(cell, robotController, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1684
1684
  }
1685
1685
  /**
1686
- * 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.
1686
+ * **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.
1687
1687
  * @summary Clear Robot Controllers
1688
1688
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1689
1689
  * @param {number} [completionTimeout]
@@ -1694,7 +1694,7 @@ var ControllerApi = class extends BaseAPI {
1694
1694
  return ControllerApiFp(this.configuration).clearRobotControllers(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1695
1695
  }
1696
1696
  /**
1697
- * Delete a robot controller from the cell. <!-- theme: warning --> > **WARNING** > > Using it in conjunction with the settings app may lead to unpredictable behavior.
1697
+ * **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.
1698
1698
  * @summary Delete Robot Controller
1699
1699
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1700
1700
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1706,7 +1706,7 @@ var ControllerApi = class extends BaseAPI {
1706
1706
  return ControllerApiFp(this.configuration).deleteRobotController(cell, controller, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1707
1707
  }
1708
1708
  /**
1709
- * Get the current state of a robot controller.
1709
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the current state of a robot controller.
1710
1710
  * @summary State of Device
1711
1711
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1712
1712
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1717,7 +1717,7 @@ var ControllerApi = class extends BaseAPI {
1717
1717
  return ControllerApiFp(this.configuration).getCurrentRobotControllerState(cell, controller, options).then((request) => request(this.axios, this.basePath));
1718
1718
  }
1719
1719
  /**
1720
- * 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).
1720
+ * **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).
1721
1721
  * @summary Current Mode
1722
1722
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1723
1723
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1728,7 +1728,7 @@ var ControllerApi = class extends BaseAPI {
1728
1728
  return ControllerApiFp(this.configuration).getMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
1729
1729
  }
1730
1730
  /**
1731
- * Get the configuration for a robot controller.
1731
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the configuration for a robot controller.
1732
1732
  * @summary Robot Controller Configuration
1733
1733
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1734
1734
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1739,7 +1739,7 @@ var ControllerApi = class extends BaseAPI {
1739
1739
  return ControllerApiFp(this.configuration).getRobotController(cell, controller, options).then((request) => request(this.axios, this.basePath));
1740
1740
  }
1741
1741
  /**
1742
- * Lists supported operating modes. Usually cobots support free drive and control, industrial robots only support control.
1742
+ * **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.
1743
1743
  * @summary Supported Motion Modes
1744
1744
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1745
1745
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1750,7 +1750,7 @@ var ControllerApi = class extends BaseAPI {
1750
1750
  return ControllerApiFp(this.configuration).getSupportedModes(cell, controller, options).then((request) => request(this.axios, this.basePath));
1751
1751
  }
1752
1752
  /**
1753
- * 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.
1753
+ * **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.
1754
1754
  * @summary Virtual Robot Configuration
1755
1755
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1756
1756
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1761,7 +1761,7 @@ var ControllerApi = class extends BaseAPI {
1761
1761
  return ControllerApiFp(this.configuration).getVirtualRobotConfiguration(cell, controller, options).then((request) => request(this.axios, this.basePath));
1762
1762
  }
1763
1763
  /**
1764
- * List all configured robot controllers.
1764
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List all configured robot controllers.
1765
1765
  * @summary List Robot Controllers
1766
1766
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1767
1767
  * @param {*} [options] Override http request option.
@@ -1771,7 +1771,7 @@ var ControllerApi = class extends BaseAPI {
1771
1771
  return ControllerApiFp(this.configuration).listControllers(cell, options).then((request) => request(this.axios, this.basePath));
1772
1772
  }
1773
1773
  /**
1774
- * 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.
1774
+ * **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.
1775
1775
  * @summary Set Default Mode
1776
1776
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1777
1777
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1783,7 +1783,7 @@ var ControllerApi = class extends BaseAPI {
1783
1783
  return ControllerApiFp(this.configuration).setDefaultMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
1784
1784
  }
1785
1785
  /**
1786
- * 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.
1786
+ * **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.
1787
1787
  * @summary Stream Free Drive Mode
1788
1788
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1789
1789
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1795,7 +1795,7 @@ var ControllerApi = class extends BaseAPI {
1795
1795
  return ControllerApiFp(this.configuration).streamFreeDrive(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
1796
1796
  }
1797
1797
  /**
1798
- * 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.
1798
+ * **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.
1799
1799
  * @summary Stream Mode Change
1800
1800
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1801
1801
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1806,7 +1806,7 @@ var ControllerApi = class extends BaseAPI {
1806
1806
  return ControllerApiFp(this.configuration).streamModeChange(cell, controller, options).then((request) => request(this.axios, this.basePath));
1807
1807
  }
1808
1808
  /**
1809
- * Receive updates of the state of a robot controller.
1809
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Receive updates of the state of a robot controller.
1810
1810
  * @summary Stream State of Device
1811
1811
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1812
1812
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -1818,7 +1818,7 @@ var ControllerApi = class extends BaseAPI {
1818
1818
  return ControllerApiFp(this.configuration).streamRobotControllerState(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
1819
1819
  }
1820
1820
  /**
1821
- * 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).
1821
+ * **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).
1822
1822
  * @summary Update Robot Controller Configuration
1823
1823
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1824
1824
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2056,7 +2056,7 @@ const ControllerIOsApiFactory = function(configuration, basePath, axios) {
2056
2056
  */
2057
2057
  var ControllerIOsApi = class extends BaseAPI {
2058
2058
  /**
2059
- * 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.
2059
+ * **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.
2060
2060
  * @summary List Descriptions
2061
2061
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2062
2062
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2068,7 +2068,7 @@ var ControllerIOsApi = class extends BaseAPI {
2068
2068
  return ControllerIOsApiFp(this.configuration).listIODescriptions(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
2069
2069
  }
2070
2070
  /**
2071
- * 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).
2071
+ * **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).
2072
2072
  * @summary Values
2073
2073
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2074
2074
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2080,7 +2080,7 @@ var ControllerIOsApi = class extends BaseAPI {
2080
2080
  return ControllerIOsApiFp(this.configuration).listIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
2081
2081
  }
2082
2082
  /**
2083
- * 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.
2083
+ * **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.
2084
2084
  * @summary Set Values
2085
2085
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2086
2086
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2092,7 +2092,7 @@ var ControllerIOsApi = class extends BaseAPI {
2092
2092
  return ControllerIOsApiFp(this.configuration).setOutputValues(cell, controller, iOValue, options).then((request) => request(this.axios, this.basePath));
2093
2093
  }
2094
2094
  /**
2095
- * 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.
2095
+ * **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.
2096
2096
  * @summary Stream Values
2097
2097
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2098
2098
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2104,7 +2104,7 @@ var ControllerIOsApi = class extends BaseAPI {
2104
2104
  return ControllerIOsApiFp(this.configuration).streamIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
2105
2105
  }
2106
2106
  /**
2107
- * 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.
2107
+ * **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.
2108
2108
  * @summary Wait For
2109
2109
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2110
2110
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2339,7 +2339,7 @@ const CoordinateSystemsApiFactory = function(configuration, basePath, axios) {
2339
2339
  */
2340
2340
  var CoordinateSystemsApi = class extends BaseAPI {
2341
2341
  /**
2342
- * 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.
2342
+ * **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.
2343
2343
  * @summary Add
2344
2344
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2345
2345
  * @param {AddRequest} addRequest
@@ -2350,7 +2350,7 @@ var CoordinateSystemsApi = class extends BaseAPI {
2350
2350
  return CoordinateSystemsApiFp(this.configuration).addCoordinateSystem(cell, addRequest, options).then((request) => request(this.axios, this.basePath));
2351
2351
  }
2352
2352
  /**
2353
- * 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.
2353
+ * **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.
2354
2354
  * @summary Delete
2355
2355
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2356
2356
  * @param {string} coordinateSystem Unique identifier addressing a coordinate system.
@@ -2361,7 +2361,7 @@ var CoordinateSystemsApi = class extends BaseAPI {
2361
2361
  return CoordinateSystemsApiFp(this.configuration).deleteCoordinateSystem(cell, coordinateSystem, options).then((request) => request(this.axios, this.basePath));
2362
2362
  }
2363
2363
  /**
2364
- * 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.
2364
+ * **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.
2365
2365
  * @summary Description
2366
2366
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2367
2367
  * @param {string} coordinateSystem Unique identifier addressing a coordinate system.
@@ -2373,7 +2373,7 @@ var CoordinateSystemsApi = class extends BaseAPI {
2373
2373
  return CoordinateSystemsApiFp(this.configuration).getCoordinateSystem(cell, coordinateSystem, rotationType, options).then((request) => request(this.axios, this.basePath));
2374
2374
  }
2375
2375
  /**
2376
- * 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.
2376
+ * **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.
2377
2377
  * @summary List
2378
2378
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2379
2379
  * @param {RotationAngleTypes} [rotationType]
@@ -2384,7 +2384,7 @@ var CoordinateSystemsApi = class extends BaseAPI {
2384
2384
  return CoordinateSystemsApiFp(this.configuration).listCoordinateSystems(cell, rotationType, options).then((request) => request(this.axios, this.basePath));
2385
2385
  }
2386
2386
  /**
2387
- * Transform a pose to another base.
2387
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Transform a pose to another base.
2388
2388
  * @summary Transform
2389
2389
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2390
2390
  * @param {string} coordinateSystem Unique identifier addressing a coordinate system.
@@ -2604,7 +2604,7 @@ const DeviceConfigurationApiFactory = function(configuration, basePath, axios) {
2604
2604
  */
2605
2605
  var DeviceConfigurationApi = class extends BaseAPI {
2606
2606
  /**
2607
- * Deprecated endpoint. Deletes **all** devices from the cell
2607
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Deprecated endpoint. Deletes **all** devices from the cell
2608
2608
  * @summary Delete Devices
2609
2609
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2610
2610
  * @param {*} [options] Override http request option.
@@ -2615,7 +2615,7 @@ var DeviceConfigurationApi = class extends BaseAPI {
2615
2615
  return DeviceConfigurationApiFp(this.configuration).clearDevices(cell, options).then((request) => request(this.axios, this.basePath));
2616
2616
  }
2617
2617
  /**
2618
- * 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.
2618
+ * **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.
2619
2619
  * @summary Create Devices
2620
2620
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2621
2621
  * @param {Array<CreateDeviceRequestInner>} createDeviceRequestInner
@@ -2627,7 +2627,7 @@ var DeviceConfigurationApi = class extends BaseAPI {
2627
2627
  return DeviceConfigurationApiFp(this.configuration).createDevice(cell, createDeviceRequestInner, options).then((request) => request(this.axios, this.basePath));
2628
2628
  }
2629
2629
  /**
2630
- * Deprecated endpoint. Deletes a specific device from the cell.
2630
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Deprecated endpoint. Deletes a specific device from the cell.
2631
2631
  * @summary Delete Device
2632
2632
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2633
2633
  * @param {string} identifier
@@ -2639,7 +2639,7 @@ var DeviceConfigurationApi = class extends BaseAPI {
2639
2639
  return DeviceConfigurationApiFp(this.configuration).deleteDevice(cell, identifier, options).then((request) => request(this.axios, this.basePath));
2640
2640
  }
2641
2641
  /**
2642
- * Deprecated endpoint. Returns information about a device.
2642
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Deprecated endpoint. Returns information about a device.
2643
2643
  * @summary Device Information
2644
2644
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2645
2645
  * @param {string} identifier
@@ -2651,7 +2651,7 @@ var DeviceConfigurationApi = class extends BaseAPI {
2651
2651
  return DeviceConfigurationApiFp(this.configuration).getDevice(cell, identifier, options).then((request) => request(this.axios, this.basePath));
2652
2652
  }
2653
2653
  /**
2654
- * Deprecated endpoint. Lists all devices which are configured in the cell: - Robots - Databases - OPC UA devices
2654
+ * **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
2655
2655
  * @summary List All Devices
2656
2656
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2657
2657
  * @param {*} [options] Override http request option.
@@ -2877,7 +2877,7 @@ const LibraryProgramApiFactory = function(configuration, basePath, axios) {
2877
2877
  */
2878
2878
  var LibraryProgramApi = class extends BaseAPI {
2879
2879
  /**
2880
- * <!-- 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 ```
2880
+ * **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 ```
2881
2881
  * @summary Create Program
2882
2882
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2883
2883
  * @param {string} body
@@ -2889,7 +2889,7 @@ var LibraryProgramApi = class extends BaseAPI {
2889
2889
  return LibraryProgramApiFp(this.configuration).createProgram(cell, body, name, options).then((request) => request(this.axios, this.basePath));
2890
2890
  }
2891
2891
  /**
2892
- * <!-- theme: danger --> > **Experimental** Deletes the program with the corresponding metadata. This action is irreversible. Does not delete the associated recipes.
2892
+ * **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.
2893
2893
  * @summary Delete Program
2894
2894
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2895
2895
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -2900,7 +2900,7 @@ var LibraryProgramApi = class extends BaseAPI {
2900
2900
  return LibraryProgramApiFp(this.configuration).deleteProgram(cell, program, options).then((request) => request(this.axios, this.basePath));
2901
2901
  }
2902
2902
  /**
2903
- * <!-- theme: danger --> > **Experimental** Deletes the provided list of programs with the corresponding metadata. This action is irreversible. Does not delete the associated recipes.
2903
+ * **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.
2904
2904
  * @summary Delete Program List
2905
2905
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2906
2906
  * @param {Array<string>} programIds Received from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -2911,7 +2911,7 @@ var LibraryProgramApi = class extends BaseAPI {
2911
2911
  return LibraryProgramApiFp(this.configuration).deleteProgramList(cell, programIds, options).then((request) => request(this.axios, this.basePath));
2912
2912
  }
2913
2913
  /**
2914
- * <!-- 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.
2914
+ * **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.
2915
2915
  * @summary Get Program
2916
2916
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2917
2917
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -2922,7 +2922,7 @@ var LibraryProgramApi = class extends BaseAPI {
2922
2922
  return LibraryProgramApiFp(this.configuration).getProgram(cell, program, options).then((request) => request(this.axios, this.basePath));
2923
2923
  }
2924
2924
  /**
2925
- * <!-- 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 ```
2925
+ * **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 ```
2926
2926
  * @summary Update Program
2927
2927
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2928
2928
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -3114,7 +3114,7 @@ const LibraryProgramMetadataApiFactory = function(configuration, basePath, axios
3114
3114
  */
3115
3115
  var LibraryProgramMetadataApi = class extends BaseAPI {
3116
3116
  /**
3117
- * <!-- theme: danger --> > **Experimental** Returns metadata of the corresponding program.
3117
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns metadata of the corresponding program.
3118
3118
  * @summary Get Program Metadata
3119
3119
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3120
3120
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -3125,7 +3125,7 @@ var LibraryProgramMetadataApi = class extends BaseAPI {
3125
3125
  return LibraryProgramMetadataApiFp(this.configuration).getProgramMetadata(cell, program, options).then((request) => request(this.axios, this.basePath));
3126
3126
  }
3127
3127
  /**
3128
- * <!-- theme: danger --> > **Experimental** Returns a list of all the stored programs, represented by their metadata.
3128
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns a list of all the stored programs, represented by their metadata.
3129
3129
  * @summary List Program Metadata
3130
3130
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3131
3131
  * @param {boolean} [showHidden] If true, hidden programs, where the &#x60;is_hidden&#x60; flag is active, are included in the list.
@@ -3136,7 +3136,7 @@ var LibraryProgramMetadataApi = class extends BaseAPI {
3136
3136
  return LibraryProgramMetadataApiFp(this.configuration).listProgramMetadata(cell, showHidden, options).then((request) => request(this.axios, this.basePath));
3137
3137
  }
3138
3138
  /**
3139
- * <!-- theme: danger --> > **Experimental** Updates the metadata of the corresponding program. The update is partial, only the set fields get updated.
3139
+ * **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.
3140
3140
  * @summary Update Program Metadata
3141
3141
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3142
3142
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -3148,7 +3148,7 @@ var LibraryProgramMetadataApi = class extends BaseAPI {
3148
3148
  return LibraryProgramMetadataApiFp(this.configuration).updateProgramMetadata(cell, program, updateProgramMetadataRequest, options).then((request) => request(this.axios, this.basePath));
3149
3149
  }
3150
3150
  /**
3151
- * <!-- 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.
3151
+ * **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.
3152
3152
  * @summary Upload Program Metadata Image
3153
3153
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3154
3154
  * @param {string} program Recieved from [listProgramMetadata](#/operations/listProgramMetadata) or from the response of [createProgram](#/operations/createProgram).
@@ -3377,7 +3377,7 @@ const LibraryRecipeApiFactory = function(configuration, basePath, axios) {
3377
3377
  */
3378
3378
  var LibraryRecipeApi = class extends BaseAPI {
3379
3379
  /**
3380
- * <!-- theme: danger --> > **Experimental** Creates a new recipe. The corresponding metadata is created as well.
3380
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Creates a new recipe. The corresponding metadata is created as well.
3381
3381
  * @summary Create Recipe
3382
3382
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3383
3383
  * @param {string} programId The identifier of the program the recipe will be associated with.
@@ -3390,7 +3390,7 @@ var LibraryRecipeApi = class extends BaseAPI {
3390
3390
  return LibraryRecipeApiFp(this.configuration).createRecipe(cell, programId, body, name, options).then((request) => request(this.axios, this.basePath));
3391
3391
  }
3392
3392
  /**
3393
- * # EXPERIMENTAL > **Note:** This endpoint is experimental and might experience functional changes in the future. Deletes a recipe. This action is irreversible.
3393
+ * **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.
3394
3394
  * @summary Delete Recipe
3395
3395
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3396
3396
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3401,7 +3401,7 @@ var LibraryRecipeApi = class extends BaseAPI {
3401
3401
  return LibraryRecipeApiFp(this.configuration).deleteRecipe(cell, recipe, options).then((request) => request(this.axios, this.basePath));
3402
3402
  }
3403
3403
  /**
3404
- * <!-- theme: danger --> > **Experimental** Deletes the provided list of recipes. This action is irreversible.
3404
+ * **Required permissions:** `can_manage_programs` - Create, update, or delete programs ___ <!-- theme: danger --> > **Experimental** Deletes the provided list of recipes. This action is irreversible.
3405
3405
  * @summary Delete Recipe List
3406
3406
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3407
3407
  * @param {Array<string>} recipeIds Received from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe)
@@ -3412,7 +3412,7 @@ var LibraryRecipeApi = class extends BaseAPI {
3412
3412
  return LibraryRecipeApiFp(this.configuration).deleteRecipeList(cell, recipeIds, options).then((request) => request(this.axios, this.basePath));
3413
3413
  }
3414
3414
  /**
3415
- * <!-- 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.
3415
+ * **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.
3416
3416
  * @summary Get Recipe
3417
3417
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3418
3418
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3423,7 +3423,7 @@ var LibraryRecipeApi = class extends BaseAPI {
3423
3423
  return LibraryRecipeApiFp(this.configuration).getRecipe(cell, recipe, options).then((request) => request(this.axios, this.basePath));
3424
3424
  }
3425
3425
  /**
3426
- * <!-- theme: danger --> > **Experimental** Updates an existing recipe. The update is partial, only the set fields get updated.
3426
+ * **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.
3427
3427
  * @summary Update Recipe
3428
3428
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3429
3429
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3614,7 +3614,7 @@ const LibraryRecipeMetadataApiFactory = function(configuration, basePath, axios)
3614
3614
  */
3615
3615
  var LibraryRecipeMetadataApi = class extends BaseAPI {
3616
3616
  /**
3617
- * <!-- theme: danger --> > **Experimental** Returns the metadata of the recipe.
3617
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Returns the metadata of the recipe.
3618
3618
  * @summary Get Recipe Metadata
3619
3619
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3620
3620
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3625,7 +3625,7 @@ var LibraryRecipeMetadataApi = class extends BaseAPI {
3625
3625
  return LibraryRecipeMetadataApiFp(this.configuration).getRecipeMetadata(cell, recipe, options).then((request) => request(this.axios, this.basePath));
3626
3626
  }
3627
3627
  /**
3628
- * <!-- theme: danger --> > **Experimental** List of all the stored recipes, represented by their metadata.
3628
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** List of all the stored recipes, represented by their metadata.
3629
3629
  * @summary List Recipe Metadata
3630
3630
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3631
3631
  * @param {*} [options] Override http request option.
@@ -3635,7 +3635,7 @@ var LibraryRecipeMetadataApi = class extends BaseAPI {
3635
3635
  return LibraryRecipeMetadataApiFp(this.configuration).listRecipeMetadata(cell, options).then((request) => request(this.axios, this.basePath));
3636
3636
  }
3637
3637
  /**
3638
- * <!-- theme: danger --> > **Experimental** Updates the metadata of a recipe. The update is partial, only the set fields get updated.
3638
+ * **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.
3639
3639
  * @summary Update Recipe Metadata
3640
3640
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3641
3641
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3647,7 +3647,7 @@ var LibraryRecipeMetadataApi = class extends BaseAPI {
3647
3647
  return LibraryRecipeMetadataApiFp(this.configuration).updateRecipeMetadata(cell, recipe, updateRecipeMetadataRequest, options).then((request) => request(this.axios, this.basePath));
3648
3648
  }
3649
3649
  /**
3650
- * <!-- 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.
3650
+ * **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.
3651
3651
  * @summary Upload Recipe Metadata Image
3652
3652
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3653
3653
  * @param {string} recipe Recieved from [listRecipeMetadata](#/operations/listRecipeMetadata) or from the response of [createRecipe](#/operations/createRecipe).
@@ -3822,7 +3822,7 @@ const LicenseApiFactory = function(configuration, basePath, axios) {
3822
3822
  */
3823
3823
  var LicenseApi = class extends BaseAPI {
3824
3824
  /**
3825
- * 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.
3825
+ * **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.
3826
3826
  * @summary Activate license
3827
3827
  * @param {ActivateLicenseRequest} activateLicenseRequest
3828
3828
  * @param {*} [options] Override http request option.
@@ -3832,7 +3832,7 @@ var LicenseApi = class extends BaseAPI {
3832
3832
  return LicenseApiFp(this.configuration).activateLicense(activateLicenseRequest, options).then((request) => request(this.axios, this.basePath));
3833
3833
  }
3834
3834
  /**
3835
- * Deactivates active license.
3835
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Deactivates active license.
3836
3836
  * @summary Deactivate license
3837
3837
  * @param {*} [options] Override http request option.
3838
3838
  * @throws {RequiredError}
@@ -3841,7 +3841,7 @@ var LicenseApi = class extends BaseAPI {
3841
3841
  return LicenseApiFp(this.configuration).deactivateLicense(options).then((request) => request(this.axios, this.basePath));
3842
3842
  }
3843
3843
  /**
3844
- * Get information on the license used with the Wandelbots NOVA instance, e.g. licensed product, expiration date, license status.
3844
+ * **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.
3845
3845
  * @summary Get license
3846
3846
  * @param {*} [options] Override http request option.
3847
3847
  * @throws {RequiredError}
@@ -3850,7 +3850,7 @@ var LicenseApi = class extends BaseAPI {
3850
3850
  return LicenseApiFp(this.configuration).getLicense(options).then((request) => request(this.axios, this.basePath));
3851
3851
  }
3852
3852
  /**
3853
- * 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.
3853
+ * **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.
3854
3854
  * @summary Get license status
3855
3855
  * @param {*} [options] Override http request option.
3856
3856
  * @throws {RequiredError}
@@ -4531,7 +4531,7 @@ const MotionApiFactory = function(configuration, basePath, axios) {
4531
4531
  */
4532
4532
  var MotionApi = class extends BaseAPI {
4533
4533
  /**
4534
- * Delete all registered motions.
4534
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Delete all registered motions.
4535
4535
  * @summary All Motions
4536
4536
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4537
4537
  * @param {*} [options] Override http request option.
@@ -4541,7 +4541,7 @@ var MotionApi = class extends BaseAPI {
4541
4541
  return MotionApiFp(this.configuration).deleteAllMotions(cell, options).then((request) => request(this.axios, this.basePath));
4542
4542
  }
4543
4543
  /**
4544
- * 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.
4544
+ * **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.
4545
4545
  * @summary Remove
4546
4546
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4547
4547
  * @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.
@@ -4552,7 +4552,7 @@ var MotionApi = class extends BaseAPI {
4552
4552
  return MotionApiFp(this.configuration).deleteMotion(cell, motion, options).then((request) => request(this.axios, this.basePath));
4553
4553
  }
4554
4554
  /**
4555
- * <!-- 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.
4555
+ * **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.
4556
4556
  * @summary Execute Trajectory
4557
4557
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4558
4558
  * @param {ExecuteTrajectoryRequest} executeTrajectoryRequest
@@ -4563,7 +4563,7 @@ var MotionApi = class extends BaseAPI {
4563
4563
  return MotionApiFp(this.configuration).executeTrajectory(cell, executeTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
4564
4564
  }
4565
4565
  /**
4566
- * 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.
4566
+ * **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.
4567
4567
  * @summary Get Trajectory
4568
4568
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4569
4569
  * @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.
@@ -4576,7 +4576,7 @@ var MotionApi = class extends BaseAPI {
4576
4576
  return MotionApiFp(this.configuration).getMotionTrajectory(cell, motion, sampleTime, responsesCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
4577
4577
  }
4578
4578
  /**
4579
- * Get a single point at a certain location of a planned motion. To get the whole trajectory, use the [getMotionTrajectory](#/operations/getMotionTrajectory) endpoint.
4579
+ * **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.
4580
4580
  * @summary Get Trajectory Sample
4581
4581
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4582
4582
  * @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.
@@ -4589,7 +4589,7 @@ var MotionApi = class extends BaseAPI {
4589
4589
  return MotionApiFp(this.configuration).getMotionTrajectorySample(cell, motion, locationOnTrajectory, responseCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
4590
4590
  }
4591
4591
  /**
4592
- * 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.
4592
+ * **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.
4593
4593
  * @summary Get Planned Motion
4594
4594
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4595
4595
  * @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.
@@ -4601,7 +4601,7 @@ var MotionApi = class extends BaseAPI {
4601
4601
  return MotionApiFp(this.configuration).getPlannedMotion(cell, motion, sampleTime, options).then((request) => request(this.axios, this.basePath));
4602
4602
  }
4603
4603
  /**
4604
- * Returns motion group models that are supported for planning.
4604
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns motion group models that are supported for planning.
4605
4605
  * @summary Motion Group Models for Planning
4606
4606
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4607
4607
  * @param {*} [options] Override http request option.
@@ -4611,7 +4611,7 @@ var MotionApi = class extends BaseAPI {
4611
4611
  return MotionApiFp(this.configuration).getPlanningMotionGroupModels(cell, options).then((request) => request(this.axios, this.basePath));
4612
4612
  }
4613
4613
  /**
4614
- * 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.
4614
+ * **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.
4615
4615
  * @summary List All Motions
4616
4616
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4617
4617
  * @param {*} [options] Override http request option.
@@ -4621,7 +4621,7 @@ var MotionApi = class extends BaseAPI {
4621
4621
  return MotionApiFp(this.configuration).listMotions(cell, options).then((request) => request(this.axios, this.basePath));
4622
4622
  }
4623
4623
  /**
4624
- * 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.
4624
+ * **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.
4625
4625
  * @summary Load Planned Motion
4626
4626
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4627
4627
  * @param {PlannedMotion} plannedMotion
@@ -4632,7 +4632,7 @@ var MotionApi = class extends BaseAPI {
4632
4632
  return MotionApiFp(this.configuration).loadPlannedMotion(cell, plannedMotion, options).then((request) => request(this.axios, this.basePath));
4633
4633
  }
4634
4634
  /**
4635
- * <!-- 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.
4635
+ * **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.
4636
4636
  * @summary Plan Collision Free PTP
4637
4637
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4638
4638
  * @param {PlanCollisionFreePTPRequest} [planCollisionFreePTPRequest]
@@ -4643,7 +4643,7 @@ var MotionApi = class extends BaseAPI {
4643
4643
  return MotionApiFp(this.configuration).planCollisionFreePTP(cell, planCollisionFreePTPRequest, options).then((request) => request(this.axios, this.basePath));
4644
4644
  }
4645
4645
  /**
4646
- * 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.
4646
+ * **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.
4647
4647
  * @summary Plan Motion
4648
4648
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4649
4649
  * @param {PlanRequest} planRequest
@@ -4655,7 +4655,7 @@ var MotionApi = class extends BaseAPI {
4655
4655
  return MotionApiFp(this.configuration).planMotion(cell, planRequest, options).then((request) => request(this.axios, this.basePath));
4656
4656
  }
4657
4657
  /**
4658
- * 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.
4658
+ * **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.
4659
4659
  * @summary Plan Trajectory
4660
4660
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4661
4661
  * @param {PlanTrajectoryRequest} [planTrajectoryRequest]
@@ -4666,7 +4666,7 @@ var MotionApi = class extends BaseAPI {
4666
4666
  return MotionApiFp(this.configuration).planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
4667
4667
  }
4668
4668
  /**
4669
- * 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.
4669
+ * **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.
4670
4670
  * @summary Stop
4671
4671
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4672
4672
  * @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.
@@ -4677,7 +4677,7 @@ var MotionApi = class extends BaseAPI {
4677
4677
  return MotionApiFp(this.configuration).stopExecution(cell, motion, options).then((request) => request(this.axios, this.basePath));
4678
4678
  }
4679
4679
  /**
4680
- * 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.
4680
+ * **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.
4681
4681
  * @summary Stream Move
4682
4682
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4683
4683
  * @param {StreamMoveRequest} streamMoveRequest
@@ -4689,7 +4689,7 @@ var MotionApi = class extends BaseAPI {
4689
4689
  return MotionApiFp(this.configuration).streamMove(cell, streamMoveRequest, options).then((request) => request(this.axios, this.basePath));
4690
4690
  }
4691
4691
  /**
4692
- * 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.
4692
+ * **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.
4693
4693
  * @summary Stream Backward
4694
4694
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4695
4695
  * @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.
@@ -4705,7 +4705,7 @@ var MotionApi = class extends BaseAPI {
4705
4705
  return MotionApiFp(this.configuration).streamMoveBackward(cell, motion, playbackSpeedInPercent, responseRate, responseCoordinateSystem, startLocationOnTrajectory, options).then((request) => request(this.axios, this.basePath));
4706
4706
  }
4707
4707
  /**
4708
- * 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.
4708
+ * **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.
4709
4709
  * @summary Stream Forward
4710
4710
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4711
4711
  * @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.
@@ -4721,7 +4721,7 @@ var MotionApi = class extends BaseAPI {
4721
4721
  return MotionApiFp(this.configuration).streamMoveForward(cell, motion, playbackSpeedInPercent, responseRate, responseCoordinateSystem, startLocationOnTrajectory, options).then((request) => request(this.axios, this.basePath));
4722
4722
  }
4723
4723
  /**
4724
- * 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.
4724
+ * **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.
4725
4725
  * @summary Stream to Trajectory
4726
4726
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4727
4727
  * @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.
@@ -4913,7 +4913,7 @@ const MotionGroupApiFactory = function(configuration, basePath, axios) {
4913
4913
  */
4914
4914
  var MotionGroupApi = class extends BaseAPI {
4915
4915
  /**
4916
- * 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).
4916
+ * **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).
4917
4917
  * @summary Activate All
4918
4918
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4919
4919
  * @param {string} controller
@@ -4924,7 +4924,7 @@ var MotionGroupApi = class extends BaseAPI {
4924
4924
  return MotionGroupApiFp(this.configuration).activateAllMotionGroups(cell, controller, options).then((request) => request(this.axios, this.basePath));
4925
4925
  }
4926
4926
  /**
4927
- * 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).
4927
+ * **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).
4928
4928
  * @summary Activate
4929
4929
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4930
4930
  * @param {string} motionGroup
@@ -4935,7 +4935,7 @@ var MotionGroupApi = class extends BaseAPI {
4935
4935
  return MotionGroupApiFp(this.configuration).activateMotionGroup(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
4936
4936
  }
4937
4937
  /**
4938
- * 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.
4938
+ * **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.
4939
4939
  * @summary Deactivate
4940
4940
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4941
4941
  * @param {string} motionGroup The motion-group id.
@@ -4946,7 +4946,7 @@ var MotionGroupApi = class extends BaseAPI {
4946
4946
  return MotionGroupApiFp(this.configuration).deactivateMotionGroup(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
4947
4947
  }
4948
4948
  /**
4949
- * List all active motion groups. A motion group is active if it is currently used by a controller.
4949
+ * **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.
4950
4950
  * @summary List Active
4951
4951
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4952
4952
  * @param {*} [options] Override http request option.
@@ -5388,7 +5388,7 @@ const MotionGroupInfosApiFactory = function(configuration, basePath, axios) {
5388
5388
  */
5389
5389
  var MotionGroupInfosApi = class extends BaseAPI {
5390
5390
  /**
5391
- * 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.
5391
+ * **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.
5392
5392
  * @summary Selected Payload
5393
5393
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5394
5394
  * @param {string} motionGroup The motion-group id.
@@ -5399,7 +5399,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5399
5399
  return MotionGroupInfosApiFp(this.configuration).getActivePayload(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5400
5400
  }
5401
5401
  /**
5402
- * Get the internal selected TCP of a connected device.
5402
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the internal selected TCP of a connected device.
5403
5403
  * @summary Selected TCP
5404
5404
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5405
5405
  * @param {string} motionGroup The motion-group id.
@@ -5411,7 +5411,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5411
5411
  return MotionGroupInfosApiFp(this.configuration).getActiveTcp(cell, motionGroup, rotationType, options).then((request) => request(this.axios, this.basePath));
5412
5412
  }
5413
5413
  /**
5414
- * Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
5414
+ * **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.
5415
5415
  * @summary State of Device
5416
5416
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5417
5417
  * @param {string} motionGroup The motion-group id.
@@ -5424,7 +5424,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5424
5424
  return MotionGroupInfosApiFp(this.configuration).getCurrentMotionGroupState(cell, motionGroup, tcp, responseCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
5425
5425
  }
5426
5426
  /**
5427
- * 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.
5427
+ * **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.
5428
5428
  * @summary Capabilities
5429
5429
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5430
5430
  * @param {string} motionGroup The motion-group id.
@@ -5435,7 +5435,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5435
5435
  return MotionGroupInfosApiFp(this.configuration).getInfoCapabilities(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5436
5436
  }
5437
5437
  /**
5438
- * 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.
5438
+ * **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.
5439
5439
  * @summary Get Static Properties
5440
5440
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5441
5441
  * @param {string} motionGroup The motion-group id.
@@ -5446,7 +5446,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5446
5446
  return MotionGroupInfosApiFp(this.configuration).getMotionGroupSpecification(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5447
5447
  }
5448
5448
  /**
5449
- * Returns the configured mounting pose offset in relation to world coordinate system and the motion groups coordinate system.
5449
+ * **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.
5450
5450
  * @summary Device Mounting
5451
5451
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5452
5452
  * @param {string} motionGroup The motion-group id.
@@ -5457,7 +5457,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5457
5457
  return MotionGroupInfosApiFp(this.configuration).getMounting(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5458
5458
  }
5459
5459
  /**
5460
- * <!-- theme: danger --> > **Experimental** Get the complete configuration which can be passed to the planner-optimizer (incl. motion group description, limits etc.)
5460
+ * **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.)
5461
5461
  * @summary Optimizer Configuration
5462
5462
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5463
5463
  * @param {string} motionGroup The motion-group id.
@@ -5469,7 +5469,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5469
5469
  return MotionGroupInfosApiFp(this.configuration).getOptimizerConfiguration(cell, motionGroup, tcp, options).then((request) => request(this.axios, this.basePath));
5470
5470
  }
5471
5471
  /**
5472
- * 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).
5472
+ * **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).
5473
5473
  * @summary Safety Setup and Limitations
5474
5474
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5475
5475
  * @param {string} motionGroup The motion-group id.
@@ -5480,7 +5480,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5480
5480
  return MotionGroupInfosApiFp(this.configuration).getSafetySetup(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5481
5481
  }
5482
5482
  /**
5483
- * 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.
5483
+ * **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.
5484
5484
  * @summary List Payloads
5485
5485
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5486
5486
  * @param {string} motionGroup The motion-group id.
@@ -5491,7 +5491,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5491
5491
  return MotionGroupInfosApiFp(this.configuration).listPayloads(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5492
5492
  }
5493
5493
  /**
5494
- * Get all internal configured TCPs of a connected device.
5494
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get all internal configured TCPs of a connected device.
5495
5495
  * @summary List TCPs
5496
5496
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5497
5497
  * @param {string} motionGroup The motion-group id.
@@ -5503,7 +5503,7 @@ var MotionGroupInfosApi = class extends BaseAPI {
5503
5503
  return MotionGroupInfosApiFp(this.configuration).listTcps(cell, motionGroup, rotationType, options).then((request) => request(this.axios, this.basePath));
5504
5504
  }
5505
5505
  /**
5506
- * Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
5506
+ * **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.
5507
5507
  * @summary Stream State of Device
5508
5508
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5509
5509
  * @param {string} motionGroup The motion-group id.
@@ -5693,7 +5693,7 @@ const MotionGroupJoggingApiFactory = function(configuration, basePath, axios) {
5693
5693
  */
5694
5694
  var MotionGroupJoggingApi = class extends BaseAPI {
5695
5695
  /**
5696
- * 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.
5696
+ * **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.
5697
5697
  * @summary Stream Cartesian
5698
5698
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5699
5699
  * @param {DirectionJoggingRequest} directionJoggingRequest
@@ -5704,7 +5704,7 @@ var MotionGroupJoggingApi = class extends BaseAPI {
5704
5704
  return MotionGroupJoggingApiFp(this.configuration).directionJogging(cell, directionJoggingRequest, options).then((request) => request(this.axios, this.basePath));
5705
5705
  }
5706
5706
  /**
5707
- * 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.
5707
+ * **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.
5708
5708
  * @summary Capabilities
5709
5709
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5710
5710
  * @param {string} motionGroup The motion-group id.
@@ -5715,7 +5715,7 @@ var MotionGroupJoggingApi = class extends BaseAPI {
5715
5715
  return MotionGroupJoggingApiFp(this.configuration).getJoggingCapabilities(cell, motionGroup, options).then((request) => request(this.axios, this.basePath));
5716
5716
  }
5717
5717
  /**
5718
- * 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.
5718
+ * **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.
5719
5719
  * @summary Stream Joints
5720
5720
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5721
5721
  * @param {JointJoggingRequest} jointJoggingRequest
@@ -5726,7 +5726,7 @@ var MotionGroupJoggingApi = class extends BaseAPI {
5726
5726
  return MotionGroupJoggingApiFp(this.configuration).jointJogging(cell, jointJoggingRequest, options).then((request) => request(this.axios, this.basePath));
5727
5727
  }
5728
5728
  /**
5729
- * 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.
5729
+ * **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.
5730
5730
  * @summary Stop
5731
5731
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5732
5732
  * @param {string} motionGroup The motion-group id.
@@ -5918,7 +5918,7 @@ const MotionGroupKinematicApiFactory = function(configuration, basePath, axios)
5918
5918
  */
5919
5919
  var MotionGroupKinematicApi = class extends BaseAPI {
5920
5920
  /**
5921
- * 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.
5921
+ * **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.
5922
5922
  * @summary All Joint Positions from TCP Pose
5923
5923
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5924
5924
  * @param {string} motionGroup The motion-group id.
@@ -5930,7 +5930,7 @@ var MotionGroupKinematicApi = class extends BaseAPI {
5930
5930
  return MotionGroupKinematicApiFp(this.configuration).calculateAllInverseKinematic(cell, motionGroup, allJointPositionsRequest, options).then((request) => request(this.axios, this.basePath));
5931
5931
  }
5932
5932
  /**
5933
- * Calculates the TCP pose from a joint position sample using the forward kinematics of the motion-group.
5933
+ * **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.
5934
5934
  * @summary TcpPose from JointPosition
5935
5935
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5936
5936
  * @param {string} motionGroup The motion-group id.
@@ -5942,7 +5942,7 @@ var MotionGroupKinematicApi = class extends BaseAPI {
5942
5942
  return MotionGroupKinematicApiFp(this.configuration).calculateForwardKinematic(cell, motionGroup, tcpPoseRequest, options).then((request) => request(this.axios, this.basePath));
5943
5943
  }
5944
5944
  /**
5945
- * 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.
5945
+ * **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.
5946
5946
  * @summary Nearest JointPosition from TcpPose
5947
5947
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5948
5948
  * @param {string} motionGroup The motion-group id.
@@ -5954,7 +5954,7 @@ var MotionGroupKinematicApi = class extends BaseAPI {
5954
5954
  return MotionGroupKinematicApiFp(this.configuration).calculateInverseKinematic(cell, motionGroup, jointPositionRequest, options).then((request) => request(this.axios, this.basePath));
5955
5955
  }
5956
5956
  /**
5957
- * Get the kinematic endpoints provided for the specified motion-group.
5957
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the kinematic endpoints provided for the specified motion-group.
5958
5958
  * @summary Capabilities
5959
5959
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5960
5960
  * @param {string} motionGroup The motion-group id.
@@ -6288,7 +6288,7 @@ const ProgramApiFactory = function(configuration, basePath, axios) {
6288
6288
  */
6289
6289
  var ProgramApi = class extends BaseAPI {
6290
6290
  /**
6291
- * 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. ```
6291
+ * **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. ```
6292
6292
  * @summary Create Program Runner
6293
6293
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6294
6294
  * @param {Request} request
@@ -6299,7 +6299,7 @@ var ProgramApi = class extends BaseAPI {
6299
6299
  return ProgramApiFp(this.configuration).createProgramRunner(cell, request, options).then((request$1) => request$1(this.axios, this.basePath));
6300
6300
  }
6301
6301
  /**
6302
- * 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)
6302
+ * **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)
6303
6303
  * @summary Execute Program
6304
6304
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6305
6305
  * @param {CodeWithArguments} codeWithArguments
@@ -6310,7 +6310,7 @@ var ProgramApi = class extends BaseAPI {
6310
6310
  return ProgramApiFp(this.configuration).executeProgram(cell, codeWithArguments, options).then((request) => request(this.axios, this.basePath));
6311
6311
  }
6312
6312
  /**
6313
- * 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
6313
+ * **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
6314
6314
  * @summary Get Program Runner
6315
6315
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6316
6316
  * @param {string} runner
@@ -6321,7 +6321,7 @@ var ProgramApi = class extends BaseAPI {
6321
6321
  return ProgramApiFp(this.configuration).getProgramRunner(cell, runner, options).then((request) => request(this.axios, this.basePath));
6322
6322
  }
6323
6323
  /**
6324
- * Get details about all existing program runners.
6324
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Get details about all existing program runners.
6325
6325
  * @summary List Program Runners
6326
6326
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6327
6327
  * @param {*} [options] Override http request option.
@@ -6331,7 +6331,7 @@ var ProgramApi = class extends BaseAPI {
6331
6331
  return ProgramApiFp(this.configuration).listProgramRunners(cell, options).then((request) => request(this.axios, this.basePath));
6332
6332
  }
6333
6333
  /**
6334
- * Migrate a program ## Parameters See the **Schema** tab for information about the request body
6334
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Migrate a program ## Parameters See the **Schema** tab for information about the request body
6335
6335
  * @summary Migrate Program
6336
6336
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6337
6337
  * @param {Request1} request1
@@ -6342,7 +6342,7 @@ var ProgramApi = class extends BaseAPI {
6342
6342
  return ProgramApiFp(this.configuration).migrateProgram(cell, request1, options).then((request) => request(this.axios, this.basePath));
6343
6343
  }
6344
6344
  /**
6345
- * 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)
6345
+ * **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)
6346
6346
  * @summary Plan Program
6347
6347
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6348
6348
  * @param {Request} request
@@ -6354,7 +6354,7 @@ var ProgramApi = class extends BaseAPI {
6354
6354
  return ProgramApiFp(this.configuration).planProgram(cell, request, identifier, options).then((request$1) => request$1(this.axios, this.basePath));
6355
6355
  }
6356
6356
  /**
6357
- * Stop all runners.
6357
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Stop all runners.
6358
6358
  * @summary Stop All Program Runners
6359
6359
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6360
6360
  * @param {*} [options] Override http request option.
@@ -6364,7 +6364,7 @@ var ProgramApi = class extends BaseAPI {
6364
6364
  return ProgramApiFp(this.configuration).stopAllProgramRunner(cell, options).then((request) => request(this.axios, this.basePath));
6365
6365
  }
6366
6366
  /**
6367
- * 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
6367
+ * **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
6368
6368
  * @summary Stop Program Runner
6369
6369
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6370
6370
  * @param {string} runner
@@ -6697,7 +6697,7 @@ const ProgramOperatorApiFactory = function(configuration, basePath, axios) {
6697
6697
  */
6698
6698
  var ProgramOperatorApi = class extends BaseAPI {
6699
6699
  /**
6700
- * <!-- 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.
6700
+ * **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.
6701
6701
  * @summary Run Program from Library
6702
6702
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6703
6703
  * @param {CreateProgramRunRequest} createProgramRunRequest
@@ -6708,7 +6708,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6708
6708
  return ProgramOperatorApiFp(this.configuration).createProgramRun(cell, createProgramRunRequest, options).then((request) => request(this.axios, this.basePath));
6709
6709
  }
6710
6710
  /**
6711
- * <!-- 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.
6711
+ * **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.
6712
6712
  * @summary Create Trigger
6713
6713
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6714
6714
  * @param {CreateTriggerRequest} createTriggerRequest
@@ -6719,7 +6719,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6719
6719
  return ProgramOperatorApiFp(this.configuration).createTrigger(cell, createTriggerRequest, options).then((request) => request(this.axios, this.basePath));
6720
6720
  }
6721
6721
  /**
6722
- * <!-- theme: danger --> > **Experimental** Delete an existing trigger.
6722
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Delete an existing trigger.
6723
6723
  * @summary Delete Trigger
6724
6724
  * @param {string} trigger The identifier of the trigger.
6725
6725
  * @param {string} cell Unique identifier addressing a cell in all API calls.
@@ -6730,7 +6730,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6730
6730
  return ProgramOperatorApiFp(this.configuration).deleteTrigger(trigger, cell, options).then((request) => request(this.axios, this.basePath));
6731
6731
  }
6732
6732
  /**
6733
- * <!-- theme: danger --> > **Experimental** Retrieves all program runs, including past and current executions. Use the optional `state` parameter to filter the results by their status.
6733
+ * **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.
6734
6734
  * @summary Get All Program Runs
6735
6735
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6736
6736
  * @param {string} [state]
@@ -6741,7 +6741,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6741
6741
  return ProgramOperatorApiFp(this.configuration).getAllProgramRuns(cell, state, options).then((request) => request(this.axios, this.basePath));
6742
6742
  }
6743
6743
  /**
6744
- * <!-- 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.
6744
+ * **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.
6745
6745
  * @summary Get All Triggers
6746
6746
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6747
6747
  * @param {*} [options] Override http request option.
@@ -6751,7 +6751,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6751
6751
  return ProgramOperatorApiFp(this.configuration).getAllTriggers(cell, options).then((request) => request(this.axios, this.basePath));
6752
6752
  }
6753
6753
  /**
6754
- * <!-- theme: danger --> > **Experimental** Retrieves detailed information about a specific program run.
6754
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Retrieves detailed information about a specific program run.
6755
6755
  * @summary Get Program Run
6756
6756
  * @param {string} run
6757
6757
  * @param {string} cell Unique identifier addressing a cell in all API calls.
@@ -6762,7 +6762,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6762
6762
  return ProgramOperatorApiFp(this.configuration).getProgramRun(run, cell, options).then((request) => request(this.axios, this.basePath));
6763
6763
  }
6764
6764
  /**
6765
- * <!-- theme: danger --> > **Experimental** Retrieves detailed information about a specific trigger.
6765
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Retrieves detailed information about a specific trigger.
6766
6766
  * @summary Get Trigger
6767
6767
  * @param {string} trigger The identifier of the trigger.
6768
6768
  * @param {string} cell Unique identifier addressing a cell in all API calls.
@@ -6773,7 +6773,7 @@ var ProgramOperatorApi = class extends BaseAPI {
6773
6773
  return ProgramOperatorApiFp(this.configuration).getTrigger(trigger, cell, options).then((request) => request(this.axios, this.basePath));
6774
6774
  }
6775
6775
  /**
6776
- * <!-- 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.
6776
+ * **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.
6777
6777
  * @summary Update Trigger
6778
6778
  * @param {string} trigger the id of the trigger
6779
6779
  * @param {string} cell Unique identifier addressing a cell in all API calls.
@@ -7032,7 +7032,7 @@ const ProgramValuesApiFactory = function(configuration, basePath, axios) {
7032
7032
  */
7033
7033
  var ProgramValuesApi = class extends BaseAPI {
7034
7034
  /**
7035
- * Deprecated endpoint. Delete all values from the database.
7035
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Deprecated endpoint. Delete all values from the database.
7036
7036
  * @summary Delete All Values
7037
7037
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7038
7038
  * @param {*} [options] Override http request option.
@@ -7043,7 +7043,7 @@ var ProgramValuesApi = class extends BaseAPI {
7043
7043
  return ProgramValuesApiFp(this.configuration).clearProgramsValues(cell, options).then((request) => request(this.axios, this.basePath));
7044
7044
  }
7045
7045
  /**
7046
- * 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)
7046
+ * **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)
7047
7047
  * @summary Add Value(s)
7048
7048
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7049
7049
  * @param {{ [key: string]: CollectionValue; }} requestBody
@@ -7055,7 +7055,7 @@ var ProgramValuesApi = class extends BaseAPI {
7055
7055
  return ProgramValuesApiFp(this.configuration).createProgramsValue(cell, requestBody, options).then((request) => request(this.axios, this.basePath));
7056
7056
  }
7057
7057
  /**
7058
- * Delete a value from the database.
7058
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ Delete a value from the database.
7059
7059
  * @summary Delete Value
7060
7060
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7061
7061
  * @param {string} key
@@ -7067,7 +7067,7 @@ var ProgramValuesApi = class extends BaseAPI {
7067
7067
  return ProgramValuesApiFp(this.configuration).deleteProgramValue(cell, key, options).then((request) => request(this.axios, this.basePath));
7068
7068
  }
7069
7069
  /**
7070
- * 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)
7070
+ * **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)
7071
7071
  * @summary Get Value
7072
7072
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7073
7073
  * @param {string} key
@@ -7079,7 +7079,7 @@ var ProgramValuesApi = class extends BaseAPI {
7079
7079
  return ProgramValuesApiFp(this.configuration).getProgramValue(cell, key, options).then((request) => request(this.axios, this.basePath));
7080
7080
  }
7081
7081
  /**
7082
- * 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)
7082
+ * **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)
7083
7083
  * @summary Get Values
7084
7084
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7085
7085
  * @param {*} [options] Override http request option.
@@ -7090,7 +7090,7 @@ var ProgramValuesApi = class extends BaseAPI {
7090
7090
  return ProgramValuesApiFp(this.configuration).listProgramsValues(cell, options).then((request) => request(this.axios, this.basePath));
7091
7091
  }
7092
7092
  /**
7093
- * 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)
7093
+ * **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)
7094
7094
  * @summary Create or Update Value
7095
7095
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7096
7096
  * @param {string} key
@@ -7605,7 +7605,7 @@ const StoreCollisionComponentsApiFactory = function(configuration, basePath, axi
7605
7605
  */
7606
7606
  var StoreCollisionComponentsApi = class extends BaseAPI {
7607
7607
  /**
7608
- * Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
7608
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
7609
7609
  * @summary Delete Collider
7610
7610
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7611
7611
  * @param {string} collider Unique identifier addressing a collider.
@@ -7616,7 +7616,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7616
7616
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
7617
7617
  }
7618
7618
  /**
7619
- * Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
7619
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
7620
7620
  * @summary Delete Link Chain
7621
7621
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7622
7622
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -7627,7 +7627,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7627
7627
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
7628
7628
  }
7629
7629
  /**
7630
- * Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
7630
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
7631
7631
  * @summary Delete Tool
7632
7632
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7633
7633
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -7638,7 +7638,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7638
7638
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
7639
7639
  }
7640
7640
  /**
7641
- * 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.
7641
+ * **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.
7642
7642
  * @summary Get Default Link Chain
7643
7643
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7644
7644
  * @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).
@@ -7650,7 +7650,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7650
7650
  return StoreCollisionComponentsApiFp(this.configuration).getDefaultLinkChain(cell, motionGroupModel, options).then((request) => request(this.axios, this.basePath));
7651
7651
  }
7652
7652
  /**
7653
- * Returns the collider.
7653
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collider.
7654
7654
  * @summary Get Collider
7655
7655
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7656
7656
  * @param {string} collider Unique identifier addressing a collider.
@@ -7661,7 +7661,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7661
7661
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
7662
7662
  }
7663
7663
  /**
7664
- * Returns the collision link chain.
7664
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collision link chain.
7665
7665
  * @summary Get Link Chain
7666
7666
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7667
7667
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -7672,7 +7672,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7672
7672
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
7673
7673
  }
7674
7674
  /**
7675
- * Returns the stored tool.
7675
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored tool.
7676
7676
  * @summary Get Tool
7677
7677
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7678
7678
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -7683,7 +7683,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7683
7683
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
7684
7684
  }
7685
7685
  /**
7686
- * Returns the stored link chains.
7686
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored link chains.
7687
7687
  * @summary List Link Chains
7688
7688
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7689
7689
  * @param {*} [options] Override http request option.
@@ -7693,7 +7693,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7693
7693
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChains(cell, options).then((request) => request(this.axios, this.basePath));
7694
7694
  }
7695
7695
  /**
7696
- * Returns a list of colliders in a scene. This excludes colliders that are part of a motion group.
7696
+ * **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.
7697
7697
  * @summary List Colliders
7698
7698
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7699
7699
  * @param {*} [options] Override http request option.
@@ -7703,7 +7703,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7703
7703
  return StoreCollisionComponentsApiFp(this.configuration).listStoredColliders(cell, options).then((request) => request(this.axios, this.basePath));
7704
7704
  }
7705
7705
  /**
7706
- * Returns the list of stored tools.
7706
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the list of stored tools.
7707
7707
  * @summary List Tools
7708
7708
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7709
7709
  * @param {*} [options] Override http request option.
@@ -7713,7 +7713,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7713
7713
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionTools(cell, options).then((request) => request(this.axios, this.basePath));
7714
7714
  }
7715
7715
  /**
7716
- * Stores collider. If the collider does not exist, it will be created. If the collider exists, it will be updated.
7716
+ * **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.
7717
7717
  * @summary Store Collider
7718
7718
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7719
7719
  * @param {string} collider Unique identifier addressing a collider.
@@ -7725,7 +7725,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7725
7725
  return StoreCollisionComponentsApiFp(this.configuration).storeCollider(cell, collider, collider2, options).then((request) => request(this.axios, this.basePath));
7726
7726
  }
7727
7727
  /**
7728
- * Stores link chain. If the link chain does not exist, it will be created. If the link chain exists, it will be updated.
7728
+ * **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.
7729
7729
  * @summary Store Link Chain
7730
7730
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7731
7731
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -7737,7 +7737,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
7737
7737
  return StoreCollisionComponentsApiFp(this.configuration).storeCollisionLinkChain(cell, linkChain, collider, options).then((request) => request(this.axios, this.basePath));
7738
7738
  }
7739
7739
  /**
7740
- * Stores the tool. If the tool does not exist, it will be created. If the tool exists, it will be updated.
7740
+ * **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.
7741
7741
  * @summary Store Tool
7742
7742
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7743
7743
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -8094,7 +8094,7 @@ const StoreCollisionScenesApiFactory = function(configuration, basePath, axios)
8094
8094
  */
8095
8095
  var StoreCollisionScenesApi = class extends BaseAPI {
8096
8096
  /**
8097
- * Deletes the stored scene. <!-- theme: danger --> > This will delete persistently stored data.
8097
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored scene. <!-- theme: danger --> > This will delete persistently stored data.
8098
8098
  * @summary Delete Scene
8099
8099
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8100
8100
  * @param {string} scene Unique identifier addressing a collision scene.
@@ -8105,7 +8105,7 @@ var StoreCollisionScenesApi = class extends BaseAPI {
8105
8105
  return StoreCollisionScenesApiFp(this.configuration).deleteStoredCollisionScene(cell, scene, options).then((request) => request(this.axios, this.basePath));
8106
8106
  }
8107
8107
  /**
8108
- * Returns the stored scene.
8108
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored scene.
8109
8109
  * @summary Get Scene
8110
8110
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8111
8111
  * @param {string} scene Unique identifier addressing a collision scene.
@@ -8116,7 +8116,7 @@ var StoreCollisionScenesApi = class extends BaseAPI {
8116
8116
  return StoreCollisionScenesApiFp(this.configuration).getStoredCollisionScene(cell, scene, options).then((request) => request(this.axios, this.basePath));
8117
8117
  }
8118
8118
  /**
8119
- * Returns a list of stored scenes.
8119
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of stored scenes.
8120
8120
  * @summary List Scenes
8121
8121
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8122
8122
  * @param {*} [options] Override http request option.
@@ -8126,7 +8126,7 @@ var StoreCollisionScenesApi = class extends BaseAPI {
8126
8126
  return StoreCollisionScenesApiFp(this.configuration).listStoredCollisionScenes(cell, options).then((request) => request(this.axios, this.basePath));
8127
8127
  }
8128
8128
  /**
8129
- * 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.
8129
+ * **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.
8130
8130
  * @summary Store Scene
8131
8131
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8132
8132
  * @param {string} scene Unique identifier addressing a collision scene.
@@ -8385,7 +8385,7 @@ const StoreObjectApiFactory = function(configuration, basePath, axios) {
8385
8385
  */
8386
8386
  var StoreObjectApi = class extends BaseAPI {
8387
8387
  /**
8388
- * Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
8388
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
8389
8389
  * @summary Clear all Objects
8390
8390
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8391
8391
  * @param {*} [options] Override http request option.
@@ -8395,7 +8395,7 @@ var StoreObjectApi = class extends BaseAPI {
8395
8395
  return StoreObjectApiFp(this.configuration).clearAllObjects(cell, options).then((request) => request(this.axios, this.basePath));
8396
8396
  }
8397
8397
  /**
8398
- * Delete an object <!-- theme: danger --> > This will delete persistently stored data.
8398
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete an object <!-- theme: danger --> > This will delete persistently stored data.
8399
8399
  * @summary Delete Object
8400
8400
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8401
8401
  * @param {string} key
@@ -8406,7 +8406,7 @@ var StoreObjectApi = class extends BaseAPI {
8406
8406
  return StoreObjectApiFp(this.configuration).deleteObject(cell, key, options).then((request) => request(this.axios, this.basePath));
8407
8407
  }
8408
8408
  /**
8409
- * Get the object. This request returns the object and any metadata attached to it.
8409
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Get the object. This request returns the object and any metadata attached to it.
8410
8410
  * @summary Get Object
8411
8411
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8412
8412
  * @param {string} key
@@ -8417,7 +8417,7 @@ var StoreObjectApi = class extends BaseAPI {
8417
8417
  return StoreObjectApiFp(this.configuration).getObject(cell, key, options).then((request) => request(this.axios, this.basePath));
8418
8418
  }
8419
8419
  /**
8420
- * Get object metadata. Objects can be large. Therefore this request only returns metadata without fetching the object\'s content.
8420
+ * **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.
8421
8421
  * @summary Get Object Metadata
8422
8422
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8423
8423
  * @param {string} key
@@ -8428,7 +8428,7 @@ var StoreObjectApi = class extends BaseAPI {
8428
8428
  return StoreObjectApiFp(this.configuration).getObjectMetadata(cell, key, options).then((request) => request(this.axios, this.basePath));
8429
8429
  }
8430
8430
  /**
8431
- * List the keys for all objects.
8431
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ List the keys for all objects.
8432
8432
  * @summary List all Object Keys
8433
8433
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8434
8434
  * @param {*} [options] Override http request option.
@@ -8438,7 +8438,7 @@ var StoreObjectApi = class extends BaseAPI {
8438
8438
  return StoreObjectApiFp(this.configuration).listAllObjectKeys(cell, options).then((request) => request(this.axios, this.basePath));
8439
8439
  }
8440
8440
  /**
8441
- * 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.
8441
+ * **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.
8442
8442
  * @summary Store Object
8443
8443
  * @param {string} cell Unique identifier addressing a cell in all API calls.
8444
8444
  * @param {string} key
@@ -8649,7 +8649,7 @@ const SystemApiFactory = function(configuration, basePath, axios) {
8649
8649
  */
8650
8650
  var SystemApi = class extends BaseAPI {
8651
8651
  /**
8652
- * Check if a more recent Wandelbots NOVA Version is available.
8652
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Check if a more recent Wandelbots NOVA Version is available.
8653
8653
  * @summary Check update
8654
8654
  * @param {ReleaseChannel} channel
8655
8655
  * @param {*} [options] Override http request option.
@@ -8659,7 +8659,7 @@ var SystemApi = class extends BaseAPI {
8659
8659
  return SystemApiFp(this.configuration).checkNovaVersionUpdate(channel, options).then((request) => request(this.axios, this.basePath));
8660
8660
  }
8661
8661
  /**
8662
- * 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.
8662
+ * **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.
8663
8663
  * @summary Download Diagnosis Package
8664
8664
  * @param {*} [options] Override http request option.
8665
8665
  * @throws {RequiredError}
@@ -8668,7 +8668,7 @@ var SystemApi = class extends BaseAPI {
8668
8668
  return SystemApiFp(this.configuration).getDiagnosePackage(options).then((request) => request(this.axios, this.basePath));
8669
8669
  }
8670
8670
  /**
8671
- * Get the status of all system services.
8671
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the status of all system services.
8672
8672
  * @summary Wandelbots NOVA status
8673
8673
  * @param {*} [options] Override http request option.
8674
8674
  * @throws {RequiredError}
@@ -8677,7 +8677,7 @@ var SystemApi = class extends BaseAPI {
8677
8677
  return SystemApiFp(this.configuration).getSystemStatus(options).then((request) => request(this.axios, this.basePath));
8678
8678
  }
8679
8679
  /**
8680
- * Get the current Wandelbots NOVA version.
8680
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the current Wandelbots NOVA version.
8681
8681
  * @summary Wandelbots NOVA Version
8682
8682
  * @param {*} [options] Override http request option.
8683
8683
  * @throws {RequiredError}
@@ -8686,7 +8686,7 @@ var SystemApi = class extends BaseAPI {
8686
8686
  return SystemApiFp(this.configuration).getSystemVersion(options).then((request) => request(this.axios, this.basePath));
8687
8687
  }
8688
8688
  /**
8689
- * 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.
8689
+ * **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.
8690
8690
  * @summary Update Wandelbots NOVA version
8691
8691
  * @param {UpdateNovaVersionRequest} updateNovaVersionRequest
8692
8692
  * @param {*} [options] Override http request option.
@@ -8751,7 +8751,7 @@ const VersionApiFactory = function(configuration, basePath, axios) {
8751
8751
  */
8752
8752
  var VersionApi = class extends BaseAPI {
8753
8753
  /**
8754
- * Retrieves the version of the NOVA API.
8754
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Retrieves the version of the NOVA API.
8755
8755
  * @summary API Version
8756
8756
  * @param {*} [options] Override http request option.
8757
8757
  * @throws {RequiredError}
@@ -9014,7 +9014,7 @@ const VirtualRobotApiFactory = function(configuration, basePath, axios) {
9014
9014
  */
9015
9015
  var VirtualRobotApi = class extends BaseAPI {
9016
9016
  /**
9017
- * Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
9017
+ * **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.
9018
9018
  * @summary Get Motion Group State
9019
9019
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9020
9020
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9026,7 +9026,7 @@ var VirtualRobotApi = class extends BaseAPI {
9026
9026
  return VirtualRobotApiFp(this.configuration).getMotionGroupState(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
9027
9027
  }
9028
9028
  /**
9029
- * Gets information on the motion group.
9029
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets information on the motion group.
9030
9030
  * @summary Motion Group Description
9031
9031
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9032
9032
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9037,7 +9037,7 @@ var VirtualRobotApi = class extends BaseAPI {
9037
9037
  return VirtualRobotApiFp(this.configuration).getMotionGroups(cell, controller, options).then((request) => request(this.axios, this.basePath));
9038
9038
  }
9039
9039
  /**
9040
- * Gets the description and value of a virtual controller I/O.
9040
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets the description and value of a virtual controller I/O.
9041
9041
  * @summary Get I/O
9042
9042
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9043
9043
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9049,7 +9049,7 @@ var VirtualRobotApi = class extends BaseAPI {
9049
9049
  return VirtualRobotApiFp(this.configuration).getVirtualRobotIOValue(cell, controller, io, options).then((request) => request(this.axios, this.basePath));
9050
9050
  }
9051
9051
  /**
9052
- * 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.
9052
+ * **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.
9053
9053
  * @summary List Inputs/Outputs
9054
9054
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9055
9055
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9060,7 +9060,7 @@ var VirtualRobotApi = class extends BaseAPI {
9060
9060
  return VirtualRobotApiFp(this.configuration).listIOs(cell, controller, options).then((request) => request(this.axios, this.basePath));
9061
9061
  }
9062
9062
  /**
9063
- * 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.
9063
+ * **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.
9064
9064
  * @summary Set Motion Group State
9065
9065
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9066
9066
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9073,7 +9073,7 @@ var VirtualRobotApi = class extends BaseAPI {
9073
9073
  return VirtualRobotApiFp(this.configuration).setMotionGroupState(cell, controller, id, motionGroupJoints, options).then((request) => request(this.axios, this.basePath));
9074
9074
  }
9075
9075
  /**
9076
- * Sets the value of a virtual controller I/O.
9076
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets the value of a virtual controller I/O.
9077
9077
  * @summary Set I/O
9078
9078
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9079
9079
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9230,7 +9230,7 @@ const VirtualRobotBehaviorApiFactory = function(configuration, basePath, axios)
9230
9230
  */
9231
9231
  var VirtualRobotBehaviorApi = class extends BaseAPI {
9232
9232
  /**
9233
- * 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.
9233
+ * **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.
9234
9234
  * @summary Stream Joint Configuration
9235
9235
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9236
9236
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9242,7 +9242,7 @@ var VirtualRobotBehaviorApi = class extends BaseAPI {
9242
9242
  return VirtualRobotBehaviorApiFp(this.configuration).externalJointsStream(cell, controller, externalJointStreamDatapoint, options).then((request) => request(this.axios, this.basePath));
9243
9243
  }
9244
9244
  /**
9245
- * Get the current robot motion group behavior - please see the setter [setMotionGroupBehavior](#/operations/setMotionGroupBehavior) and the enum for details.
9245
+ * **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.
9246
9246
  * @summary Behavior
9247
9247
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9248
9248
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9254,7 +9254,7 @@ var VirtualRobotBehaviorApi = class extends BaseAPI {
9254
9254
  return VirtualRobotBehaviorApiFp(this.configuration).getMotionGroupBehavior(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
9255
9255
  }
9256
9256
  /**
9257
- * Switch robot motion group behavior.
9257
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Switch robot motion group behavior.
9258
9258
  * @summary Switch Behavior
9259
9259
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9260
9260
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9513,7 +9513,7 @@ const VirtualRobotModeApiFactory = function(configuration, basePath, axios) {
9513
9513
  */
9514
9514
  var VirtualRobotModeApi = class extends BaseAPI {
9515
9515
  /**
9516
- * Get the cycle time of controller communication in [ms].
9516
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the cycle time of controller communication in [ms].
9517
9517
  * @summary Cycle Time
9518
9518
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9519
9519
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9524,7 +9524,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9524
9524
  return VirtualRobotModeApiFp(this.configuration).getCycleTime(cell, controller, options).then((request) => request(this.axios, this.basePath));
9525
9525
  }
9526
9526
  /**
9527
- * 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.
9527
+ * **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.
9528
9528
  * @summary Get E-Stop State
9529
9529
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9530
9530
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9535,7 +9535,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9535
9535
  return VirtualRobotModeApiFp(this.configuration).getEStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
9536
9536
  }
9537
9537
  /**
9538
- * 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.
9538
+ * **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.
9539
9539
  * @summary Get Operation Mode
9540
9540
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9541
9541
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9546,7 +9546,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9546
9546
  return VirtualRobotModeApiFp(this.configuration).getOperationMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
9547
9547
  }
9548
9548
  /**
9549
- * 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.
9549
+ * **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.
9550
9550
  * @summary Push E-Stop
9551
9551
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9552
9552
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9557,7 +9557,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9557
9557
  return VirtualRobotModeApiFp(this.configuration).pushEStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
9558
9558
  }
9559
9559
  /**
9560
- * 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.
9560
+ * **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.
9561
9561
  * @summary Release E-Stop
9562
9562
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9563
9563
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9568,7 +9568,7 @@ var VirtualRobotModeApi = class extends BaseAPI {
9568
9568
  return VirtualRobotModeApiFp(this.configuration).releaseEStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
9569
9569
  }
9570
9570
  /**
9571
- * 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.
9571
+ * **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.
9572
9572
  * @summary Set Operation Mode
9573
9573
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9574
9574
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9917,7 +9917,7 @@ const VirtualRobotSetupApiFactory = function(configuration, basePath, axios) {
9917
9917
  */
9918
9918
  var VirtualRobotSetupApi = class extends BaseAPI {
9919
9919
  /**
9920
- * 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.
9920
+ * **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.
9921
9921
  * @summary Add Coordinate Systems
9922
9922
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9923
9923
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9929,7 +9929,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9929
9929
  return VirtualRobotSetupApiFp(this.configuration).addVirtualRobotCoordinateSystem(cell, controller, coordinateSystem, options).then((request) => request(this.axios, this.basePath));
9930
9930
  }
9931
9931
  /**
9932
- * 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.
9932
+ * **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.
9933
9933
  * @summary Add TCP
9934
9934
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9935
9935
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9942,7 +9942,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9942
9942
  return VirtualRobotSetupApiFp(this.configuration).addVirtualRobotTcp(cell, controller, id, robotTcp, options).then((request) => request(this.axios, this.basePath));
9943
9943
  }
9944
9944
  /**
9945
- * 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.
9945
+ * **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.
9946
9946
  * @summary Remove Coordinate System
9947
9947
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9948
9948
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9955,7 +9955,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9955
9955
  return VirtualRobotSetupApiFp(this.configuration).deleteVirtualRobotCoordinateSystem(cell, controller, coordinateSystem, deleteDependent, options).then((request) => request(this.axios, this.basePath));
9956
9956
  }
9957
9957
  /**
9958
- * 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.
9958
+ * **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.
9959
9959
  * @summary Remove TCP
9960
9960
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9961
9961
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9968,7 +9968,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9968
9968
  return VirtualRobotSetupApiFp(this.configuration).deleteVirtualRobotTcp(cell, controller, id, tcp, options).then((request) => request(this.axios, this.basePath));
9969
9969
  }
9970
9970
  /**
9971
- * Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
9971
+ * **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.
9972
9972
  * @summary Get Mounting
9973
9973
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9974
9974
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9980,7 +9980,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9980
9980
  return VirtualRobotSetupApiFp(this.configuration).getVirtualRobotMounting(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
9981
9981
  }
9982
9982
  /**
9983
- * Lists all coordinate systems on the robot controller.
9983
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists all coordinate systems on the robot controller.
9984
9984
  * @summary List Coordinate Systems
9985
9985
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9986
9986
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -9991,7 +9991,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
9991
9991
  return VirtualRobotSetupApiFp(this.configuration).listVirtualRobotCoordinateSystems(cell, controller, options).then((request) => request(this.axios, this.basePath));
9992
9992
  }
9993
9993
  /**
9994
- * Lists TCPs of the motion group. An empty TCP list is valid, for example for external axes.
9994
+ * **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.
9995
9995
  * @summary List TCPs
9996
9996
  * @param {string} cell Unique identifier addressing a cell in all API calls.
9997
9997
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -10003,7 +10003,7 @@ var VirtualRobotSetupApi = class extends BaseAPI {
10003
10003
  return VirtualRobotSetupApiFp(this.configuration).listVirtualRobotTcps(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
10004
10004
  }
10005
10005
  /**
10006
- * 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.
10006
+ * **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.
10007
10007
  * @summary Set Mounting
10008
10008
  * @param {string} cell Unique identifier addressing a cell in all API calls.
10009
10009
  * @param {string} controller Unique identifier to address a controller in the cell.