@wandelbots/nova-api 26.3.0-dev.5 → 26.3.0-dev.51

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/v2/index.js CHANGED
@@ -114,6 +114,16 @@ const BusIOsStateEnum = {
114
114
  BusIosStateDisconnected: "BUS_IOS_STATE_DISCONNECTED"
115
115
  };
116
116
  const CapsuleShapeTypeEnum = { Capsule: "capsule" };
117
+ const CloudConfigStatusConfiguredStatusEnum = { Configured: "configured" };
118
+ const CloudConfigStatusNotConfiguredStatusEnum = { NotConfigured: "not_configured" };
119
+ const CloudConnectionErrorInvalidTokenCodeEnum = { InvalidCloudToken: "invalid_cloud_token" };
120
+ const CloudConnectionErrorLeafnodeConnectionErrorCodeEnum = { LeafnodeConnectionError: "leafnode_connection_error" };
121
+ const CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum = { LeafnodeConnectionTimeout: "leafnode_connection_timeout" };
122
+ const CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum = { LeafnodeRestartTimeout: "leafnode_restart_timeout" };
123
+ const CloudConnectionErrorNatsFailedCodeEnum = { NatsConnectionFailed: "nats_connection_failed" };
124
+ const CloudConnectionErrorUnexpectedResponseCodeEnum = { UnexpectedCloudResponse: "unexpected_cloud_response" };
125
+ const CloudDisconnectionStatusDisconnectedStatusEnum = { Disconnected: "disconnected" };
126
+ const CloudDisconnectionStatusDisconnectingStatusEnum = { Disconnecting: "disconnecting" };
117
127
  const CollisionErrorKindEnum = { CollisionError: "CollisionError" };
118
128
  /**
119
129
  * Comparator for the comparison of two values. The comparator is used to compare two values and return a boolean result. The default comparator is unknown.
@@ -138,15 +148,31 @@ const Direction = {
138
148
  DirectionForward: "DIRECTION_FORWARD",
139
149
  DirectionBackward: "DIRECTION_BACKWARD"
140
150
  };
151
+ const DirectionConstraintConstraintNameEnum = { DirectionConstraint: "DirectionConstraint" };
152
+ const ErrorDirectionConstraintNotMetErrorFeedbackNameEnum = { ErrorDirectionConstraintNotMet: "ErrorDirectionConstraintNotMet" };
153
+ const ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { ErrorDirectionConstraintNotNormalized: "ErrorDirectionConstraintNotNormalized" };
141
154
  const ErrorInvalidJointCountErrorFeedbackNameEnum = { ErrorInvalidJointCount: "ErrorInvalidJointCount" };
142
155
  const ErrorJointLimitExceededErrorFeedbackNameEnum = { ErrorJointLimitExceeded: "ErrorJointLimitExceeded" };
143
156
  const ErrorJointPositionCollisionErrorFeedbackNameEnum = { ErrorJointPositionCollision: "ErrorJointPositionCollision" };
144
157
  const ErrorMaxIterationsExceededErrorFeedbackNameEnum = { ErrorMaxIterationsExceeded: "ErrorMaxIterationsExceeded" };
158
+ const ErrorUnsupportedOperationErrorFeedbackNameEnum = { ErrorUnsupportedOperation: "ErrorUnsupportedOperation" };
145
159
  const FanucControllerKindEnum = { FanucController: "FanucController" };
146
160
  const FeedbackCollisionErrorFeedbackNameEnum = { FeedbackCollision: "FeedbackCollision" };
161
+ const FeedbackCommandsMissingErrorFeedbackNameEnum = { FeedbackCommandsMissing: "FeedbackCommandsMissing" };
162
+ const FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum = { FeedbackCubicSplineIsNotIncreasing: "FeedbackCubicSplineIsNotIncreasing" };
163
+ const FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum = { FeedbackCubicSplineNotAtStartPose: "FeedbackCubicSplineNotAtStartPose" };
164
+ const FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum = { FeedbackDirectionConstraintNoSolutionExists: "FeedbackDirectionConstraintNoSolutionExists" };
165
+ const FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotMet: "FeedbackDirectionConstraintNotMet" };
166
+ const FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotNormalized: "FeedbackDirectionConstraintNotNormalized" };
167
+ const FeedbackInvalidDofErrorFeedbackNameEnum = { FeedbackInvalidDof: "FeedbackInvalidDof" };
168
+ const FeedbackInvalidNanValueErrorFeedbackNameEnum = { FeedbackInvalidNanValue: "FeedbackInvalidNanValue" };
169
+ const FeedbackInvalidSamplingTimeErrorFeedbackNameEnum = { FeedbackInvalidSamplingTime: "FeedbackInvalidSamplingTime" };
147
170
  const FeedbackJointLimitExceededErrorFeedbackNameEnum = { FeedbackJointLimitExceeded: "FeedbackJointLimitExceeded" };
171
+ const FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum = { FeedbackNoSolutionInCurrentConfiguration: "FeedbackNoSolutionInCurrentConfiguration" };
148
172
  const FeedbackOutOfWorkspaceErrorFeedbackNameEnum = { FeedbackOutOfWorkspace: "FeedbackOutOfWorkspace" };
149
173
  const FeedbackSingularityErrorFeedbackNameEnum = { FeedbackSingularity: "FeedbackSingularity" };
174
+ const FeedbackStartJointsMissingErrorFeedbackNameEnum = { FeedbackStartJointsMissing: "FeedbackStartJointsMissing" };
175
+ const FeedbackTorqueExceededErrorFeedbackNameEnum = { FeedbackTorqueExceeded: "FeedbackTorqueExceeded" };
150
176
  const FloatValueValueTypeEnum = { Float: "float" };
151
177
  const IOBooleanValueValueTypeEnum = { Boolean: "boolean" };
152
178
  /**
@@ -184,6 +210,7 @@ const JoggingDetailsKindEnum = { Jogging: "JOGGING" };
184
210
  const JoggingPausedByUserKindEnum = { PausedByUser: "PAUSED_BY_USER" };
185
211
  const JoggingPausedNearCollisionKindEnum = { PausedNearCollision: "PAUSED_NEAR_COLLISION" };
186
212
  const JoggingPausedNearJointLimitKindEnum = { PausedNearJointLimit: "PAUSED_NEAR_JOINT_LIMIT" };
213
+ const JoggingPausedNearSingularityKindEnum = { PausedNearSingularity: "PAUSED_NEAR_SINGULARITY" };
187
214
  const JoggingPausedOnIOKindEnum = { PausedOnIo: "PAUSED_ON_IO" };
188
215
  const JoggingRunningKindEnum = { Running: "RUNNING" };
189
216
  const JointLimitExceededErrorKindEnum = { JointLimitExceededError: "JointLimitExceededError" };
@@ -303,6 +330,8 @@ const OrientationType = {
303
330
  const PathCartesianPTPPathDefinitionNameEnum = { PathCartesianPtp: "PathCartesianPTP" };
304
331
  const PathCirclePathDefinitionNameEnum = { PathCircle: "PathCircle" };
305
332
  const PathCubicSplinePathDefinitionNameEnum = { PathCubicSpline: "PathCubicSpline" };
333
+ const PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum = { DirectionConstrainedCartesianPtp: "DirectionConstrainedCartesianPTP" };
334
+ const PathDirectionConstrainedJointPTPPathDefinitionNameEnum = { DirectionConstrainedJointPtp: "DirectionConstrainedJointPTP" };
306
335
  const PathJointPTPPathDefinitionNameEnum = { PathJointPtp: "PathJointPTP" };
307
336
  const PathLinePathDefinitionNameEnum = { PathLine: "PathLine" };
308
337
  const PauseJoggingRequestMessageTypeEnum = { PauseJoggingRequest: "PauseJoggingRequest" };
@@ -460,6 +489,7 @@ const UnitType = {
460
489
  const UniversalrobotsControllerKindEnum = { UniversalrobotsController: "UniversalrobotsController" };
461
490
  const VirtualControllerKindEnum = { VirtualController: "VirtualController" };
462
491
  const YaskawaControllerKindEnum = { YaskawaController: "YaskawaController" };
492
+ const ZodValidationErrorErrorCodeEnum = { ValidationError: "validation_error" };
463
493
  /**
464
494
  * ApplicationApi - axios parameter creator
465
495
  */
@@ -711,7 +741,7 @@ const ApplicationApiFactory = function(configuration, basePath, axios) {
711
741
  */
712
742
  var ApplicationApi = class extends BaseAPI {
713
743
  /**
714
- * 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. #### Workflow After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](https://docs.wandelbots.io/latest/developing-introduction) for more information. #### Predefined environment variables <!-- theme: NOTE --> > **NOTE** > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
744
+ * **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. #### Workflow After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](https://docs.wandelbots.io/latest/developing-introduction) for more information. #### Predefined environment variables <!-- theme: NOTE --> > **NOTE** > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
715
745
  * @summary Add Application
716
746
  * @param {string} cell Unique identifier addressing a cell in all API calls.
717
747
  * @param {App} app
@@ -723,7 +753,7 @@ var ApplicationApi = class extends BaseAPI {
723
753
  return ApplicationApiFp(this.configuration).addApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
724
754
  }
725
755
  /**
726
- * Delete all GUI applications from the cell.
756
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete all GUI applications from the cell.
727
757
  * @summary Clear Applications
728
758
  * @param {string} cell Unique identifier addressing a cell in all API calls.
729
759
  * @param {number} [completionTimeout]
@@ -734,7 +764,7 @@ var ApplicationApi = class extends BaseAPI {
734
764
  return ApplicationApiFp(this.configuration).clearApps(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
735
765
  }
736
766
  /**
737
- * Delete a GUI application from the cell.
767
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete a GUI application from the cell.
738
768
  * @summary Delete Application
739
769
  * @param {string} cell Unique identifier addressing a cell in all API calls.
740
770
  * @param {string} app
@@ -746,7 +776,7 @@ var ApplicationApi = class extends BaseAPI {
746
776
  return ApplicationApiFp(this.configuration).deleteApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
747
777
  }
748
778
  /**
749
- * 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 [updateApp](#/operations/updateApp).
779
+ * **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 [updateApp](#/operations/updateApp).
750
780
  * @summary Configuration
751
781
  * @param {string} cell Unique identifier addressing a cell in all API calls.
752
782
  * @param {string} app
@@ -757,7 +787,7 @@ var ApplicationApi = class extends BaseAPI {
757
787
  return ApplicationApiFp(this.configuration).getApp(cell, app, options).then((request) => request(this.axios, this.basePath));
758
788
  }
759
789
  /**
760
- * List all GUI applications that have been added to a cell with [addApp](#/operations/addApp). If the cell does not contain GUI applications, the list is returned empty.
790
+ * **Required permissions:** `can_access_apps` - View application configurations ___ List all GUI applications that have been added to a cell with [addApp](#/operations/addApp). If the cell does not contain GUI applications, the list is returned empty.
761
791
  * @summary List Applications
762
792
  * @param {string} cell Unique identifier addressing a cell in all API calls.
763
793
  * @param {*} [options] Override http request option.
@@ -767,7 +797,7 @@ var ApplicationApi = class extends BaseAPI {
767
797
  return ApplicationApiFp(this.configuration).listApps(cell, options).then((request) => request(this.axios, this.basePath));
768
798
  }
769
799
  /**
770
- * Update the configuration of a GUI application in the cell.
800
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Update the configuration of a GUI application in the cell.
771
801
  * @summary Update Configuration
772
802
  * @param {string} cell Unique identifier addressing a cell in all API calls.
773
803
  * @param {string} app
@@ -1113,6 +1143,32 @@ const BUSInputsOutputsApiAxiosParamCreator = function(configuration) {
1113
1143
  options: localVarRequestOptions
1114
1144
  };
1115
1145
  },
1146
+ getProfinetGSDML: async (cell, options = {}) => {
1147
+ assertParamExists("getProfinetGSDML", "cell", cell);
1148
+ const localVarPath = `/cells/{cell}/bus-ios/profinet/gsdml`.replace(`{cell}`, encodeURIComponent(String(cell)));
1149
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1150
+ let baseOptions;
1151
+ if (configuration) baseOptions = configuration.baseOptions;
1152
+ const localVarRequestOptions = {
1153
+ method: "GET",
1154
+ ...baseOptions,
1155
+ ...options
1156
+ };
1157
+ const localVarHeaderParameter = {};
1158
+ const localVarQueryParameter = {};
1159
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
1160
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1161
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1162
+ localVarRequestOptions.headers = {
1163
+ ...localVarHeaderParameter,
1164
+ ...headersFromBaseOptions,
1165
+ ...options.headers
1166
+ };
1167
+ return {
1168
+ url: toPathString(localVarUrlObj),
1169
+ options: localVarRequestOptions
1170
+ };
1171
+ },
1116
1172
  getProfinetIOsFromFile: async (cell, inputOffset, outputOffset, options = {}) => {
1117
1173
  assertParamExists("getProfinetIOsFromFile", "cell", cell);
1118
1174
  const localVarPath = `/cells/{cell}/bus-ios/profinet/iofile`.replace(`{cell}`, encodeURIComponent(String(cell)));
@@ -1357,6 +1413,12 @@ const BUSInputsOutputsApiFp = function(configuration) {
1357
1413
  const localVarOperationServerBasePath = operationServerMap["BUSInputsOutputsApi.getProfinetDescription"]?.[localVarOperationServerIndex]?.url;
1358
1414
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1359
1415
  },
1416
+ async getProfinetGSDML(cell, options) {
1417
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getProfinetGSDML(cell, options);
1418
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1419
+ const localVarOperationServerBasePath = operationServerMap["BUSInputsOutputsApi.getProfinetGSDML"]?.[localVarOperationServerIndex]?.url;
1420
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1421
+ },
1360
1422
  async getProfinetIOsFromFile(cell, inputOffset, outputOffset, options) {
1361
1423
  const localVarAxiosArgs = await localVarAxiosParamCreator.getProfinetIOsFromFile(cell, inputOffset, outputOffset, options);
1362
1424
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -1437,6 +1499,9 @@ const BUSInputsOutputsApiFactory = function(configuration, basePath, axios) {
1437
1499
  getProfinetDescription(cell, options) {
1438
1500
  return localVarFp.getProfinetDescription(cell, options).then((request) => request(axios, basePath));
1439
1501
  },
1502
+ getProfinetGSDML(cell, options) {
1503
+ return localVarFp.getProfinetGSDML(cell, options).then((request) => request(axios, basePath));
1504
+ },
1440
1505
  getProfinetIOsFromFile(cell, inputOffset, outputOffset, options) {
1441
1506
  return localVarFp.getProfinetIOsFromFile(cell, inputOffset, outputOffset, options).then((request) => request(axios, basePath));
1442
1507
  },
@@ -1462,7 +1527,7 @@ const BUSInputsOutputsApiFactory = function(configuration, basePath, axios) {
1462
1527
  */
1463
1528
  var BUSInputsOutputsApi = class extends BaseAPI {
1464
1529
  /**
1465
- * Add the BUS inputs/outputs service to the cell. Starts a containerized service that enables BUS connections via the specified ethernet port.
1530
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Add the BUS inputs/outputs service to the cell. Starts a containerized service that enables BUS connections via the specified ethernet port.
1466
1531
  * @summary Add Service
1467
1532
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1468
1533
  * @param {BusIOType} busIOType
@@ -1474,7 +1539,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1474
1539
  return BUSInputsOutputsApiFp(this.configuration).addBusIOService(cell, busIOType, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1475
1540
  }
1476
1541
  /**
1477
- * Adds an input/output variable to or updates an input/output variable on the MODBUS device, e.g., NOVA\'s MODBUS service. The inputs/outputs map variables to specific memory addresses in the process image. The NOVA\'s MODBUS service\'s configuration can be viewed via [listModbusIOs](#/operations/listModbusIOs).
1542
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Adds an input/output variable to or updates an input/output variable on the MODBUS device, e.g., NOVA\'s MODBUS service. The inputs/outputs map variables to specific memory addresses in the process image. The NOVA\'s MODBUS service\'s configuration can be viewed via [listModbusIOs](#/operations/listModbusIOs).
1478
1543
  * @summary Add MODBUS Input/Output
1479
1544
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1480
1545
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1486,7 +1551,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1486
1551
  return BUSInputsOutputsApiFp(this.configuration).addModbusIO(cell, io, modbusIOData, options).then((request) => request(this.axios, this.basePath));
1487
1552
  }
1488
1553
  /**
1489
- * Adds an input/output variable to or updates an input/output variable on the PROFINET device, e.g., NOVA\'s PROFINET service. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller as well as NOVA\'s PROFINET service use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal).
1554
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Adds an input/output variable to or updates an input/output variable on the PROFINET device, e.g., NOVA\'s PROFINET service. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller as well as NOVA\'s PROFINET service use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal).
1490
1555
  * @summary Add PROFINET Input/Output
1491
1556
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1492
1557
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1498,7 +1563,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1498
1563
  return BUSInputsOutputsApiFp(this.configuration).addProfinetIO(cell, io, profinetIOData, options).then((request) => request(this.axios, this.basePath));
1499
1564
  }
1500
1565
  /**
1501
- * Remove the BUS inputs/outputs service from the cell.
1566
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Remove the BUS inputs/outputs service from the cell.
1502
1567
  * @summary Clear Service
1503
1568
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1504
1569
  * @param {number} [completionTimeout]
@@ -1509,7 +1574,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1509
1574
  return BUSInputsOutputsApiFp(this.configuration).clearBusIOService(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1510
1575
  }
1511
1576
  /**
1512
- * Removes all input/output variable configurations from the MODBUS device, e.g., NOVA\'s MODBUS service.
1577
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes all input/output variable configurations from the MODBUS device, e.g., NOVA\'s MODBUS service.
1513
1578
  * @summary Remove all MODBUS Input/Outputs
1514
1579
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1515
1580
  * @param {*} [options] Override http request option.
@@ -1519,7 +1584,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1519
1584
  return BUSInputsOutputsApiFp(this.configuration).deleteAllModbusIOs(cell, options).then((request) => request(this.axios, this.basePath));
1520
1585
  }
1521
1586
  /**
1522
- * Removes all input/output variable configurations from the PROFINET device, e.g., NOVA\'s PROFINET service.
1587
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes all input/output variable configurations from the PROFINET device, e.g., NOVA\'s PROFINET service.
1523
1588
  * @summary Remove all PROFINET Input/Outputs
1524
1589
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1525
1590
  * @param {*} [options] Override http request option.
@@ -1529,7 +1594,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1529
1594
  return BUSInputsOutputsApiFp(this.configuration).deleteAllProfinetIOs(cell, options).then((request) => request(this.axios, this.basePath));
1530
1595
  }
1531
1596
  /**
1532
- * Removes an input/output variable configuration from the MODBUS device, e.g., NOVA\'s MODBUS service.
1597
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes an input/output variable configuration from the MODBUS device, e.g., NOVA\'s MODBUS service.
1533
1598
  * @summary Remove MODBUS Input/Output
1534
1599
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1535
1600
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1540,7 +1605,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1540
1605
  return BUSInputsOutputsApiFp(this.configuration).deleteModbusIO(cell, io, options).then((request) => request(this.axios, this.basePath));
1541
1606
  }
1542
1607
  /**
1543
- * Removes an input/output variable configuration from the PROFINET device, e.g., NOVA\'s PROFINET service.
1608
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes an input/output variable configuration from the PROFINET device, e.g., NOVA\'s PROFINET service.
1544
1609
  * @summary Remove PROFINET Input/Ouptut
1545
1610
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1546
1611
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1551,7 +1616,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1551
1616
  return BUSInputsOutputsApiFp(this.configuration).deleteProfinetIO(cell, io, options).then((request) => request(this.axios, this.basePath));
1552
1617
  }
1553
1618
  /**
1554
- * Get deployed BUS inputs/outputs service.
1619
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get deployed BUS inputs/outputs service.
1555
1620
  * @summary Get Service
1556
1621
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1557
1622
  * @param {*} [options] Override http request option.
@@ -1561,7 +1626,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1561
1626
  return BUSInputsOutputsApiFp(this.configuration).getBusIOService(cell, options).then((request) => request(this.axios, this.basePath));
1562
1627
  }
1563
1628
  /**
1564
- * Get the current state of the BUS Inputs/Outputs service.
1629
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get the current state of the BUS Inputs/Outputs service.
1565
1630
  * @summary State
1566
1631
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1567
1632
  * @param {*} [options] Override http request option.
@@ -1571,7 +1636,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1571
1636
  return BUSInputsOutputsApiFp(this.configuration).getBusIOState(cell, options).then((request) => request(this.axios, this.basePath));
1572
1637
  }
1573
1638
  /**
1574
- * Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listBusIODescriptions](#/operations/listBusIODescriptions).
1639
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listBusIODescriptions](#/operations/listBusIODescriptions).
1575
1640
  * @summary Get Input/Output Values
1576
1641
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1577
1642
  * @param {Array<string>} [ios]
@@ -1582,7 +1647,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1582
1647
  return BUSInputsOutputsApiFp(this.configuration).getBusIOValues(cell, ios, options).then((request) => request(this.axios, this.basePath));
1583
1648
  }
1584
1649
  /**
1585
- * Get description of NOVA as a PROFINET device.
1650
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get description of NOVA as a PROFINET device.
1586
1651
  * @summary Get PROFINET Description
1587
1652
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1588
1653
  * @param {*} [options] Override http request option.
@@ -1592,7 +1657,17 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1592
1657
  return BUSInputsOutputsApiFp(this.configuration).getProfinetDescription(cell, options).then((request) => request(this.axios, this.basePath));
1593
1658
  }
1594
1659
  /**
1595
- * Get input/output variable configuration of the PROFINET device, e.g., NOVA\'s PROFINET service as file. You can specify byte offsets for the input and output variable addresses to get an XML tagmap that is ready to paste to the third party software, e.g., TIA portal.
1660
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Returns the Generic Station Description Markup Language (GSDML) file for the PROFINET device. The GSDML file describes the PROFINET device configuration and capabilities, and can be imported into PROFINET engineering tools, e.g., TIA Portal, or other PLC programming environments. The returned GSDML file matches the current slot configuration of the PROFINET device.
1661
+ * @summary Get PROFINET GSDML File
1662
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
1663
+ * @param {*} [options] Override http request option.
1664
+ * @throws {RequiredError}
1665
+ */
1666
+ getProfinetGSDML(cell, options) {
1667
+ return BUSInputsOutputsApiFp(this.configuration).getProfinetGSDML(cell, options).then((request) => request(this.axios, this.basePath));
1668
+ }
1669
+ /**
1670
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA\'s PROFINET service as file. You can specify byte offsets for the input and output variable addresses to get an XML tagmap that is ready to paste to the third party software, e.g., TIA portal.
1596
1671
  * @summary PROFINET Inputs/Outputs to File
1597
1672
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1598
1673
  * @param {number} [inputOffset]
@@ -1604,7 +1679,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1604
1679
  return BUSInputsOutputsApiFp(this.configuration).getProfinetIOsFromFile(cell, inputOffset, outputOffset, options).then((request) => request(this.axios, this.basePath));
1605
1680
  }
1606
1681
  /**
1607
- * List all input/output descriptions for configured BUS services. The input/output descriptions contain information like name, type and unit. The input/output direction is given in perspective of the BUS service.
1682
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List all input/output descriptions for configured BUS services. The input/output descriptions contain information like name, type and unit. The input/output direction is given in perspective of the BUS service.
1608
1683
  * @summary List Descriptions
1609
1684
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1610
1685
  * @param {*} [options] Override http request option.
@@ -1614,7 +1689,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1614
1689
  return BUSInputsOutputsApiFp(this.configuration).listBusIODescriptions(cell, options).then((request) => request(this.axios, this.basePath));
1615
1690
  }
1616
1691
  /**
1617
- * List descriptions for all configured input/output variables of the MODBUS service. The input/output descriptions contain information like name, type, and address. The input/output direction is given in perspective of the active MODBUS type (service or client). - The byte and bit addresses are the locations in the MODBUS input/output process image the variable points to. - The MODBUS controller, as well as NOVA\'s MODBUS service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA MODBUS service\'s configuration is modified via [addModbusIO](#/operations/addModbusIO).
1692
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List descriptions for all configured input/output variables of the MODBUS service. The input/output descriptions contain information like name, type, and address. The input/output direction is given in perspective of the active MODBUS type (service or client). - The byte and bit addresses are the locations in the MODBUS input/output process image the variable points to. - The MODBUS controller, as well as NOVA\'s MODBUS service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA MODBUS service\'s configuration is modified via [addModbusIO](#/operations/addModbusIO).
1618
1693
  * @summary List MODBUS Input/Output Configuration
1619
1694
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1620
1695
  * @param {*} [options] Override http request option.
@@ -1624,7 +1699,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1624
1699
  return BUSInputsOutputsApiFp(this.configuration).listModbusIOs(cell, options).then((request) => request(this.axios, this.basePath));
1625
1700
  }
1626
1701
  /**
1627
- * List descriptions for all configured input/output variables of the PROFINET service. The input/output descriptions contain information like name, type, and unit. The input/output direction is given in perspective of the PROFINET device, e.g., the configured PROFINET service. - The byte and bit addresses are the locations in the PROFINET input/output process image the variable points to. - The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA PROFINET service\'s configuration is modified via [addProfinetIO](#/operations/addProfinetIO) and [setProfinetIOsFromFile](#/operations/setProfinetIOsFromFile). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal.
1702
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List descriptions for all configured input/output variables of the PROFINET service. The input/output descriptions contain information like name, type, and unit. The input/output direction is given in perspective of the PROFINET device, e.g., the configured PROFINET service. - The byte and bit addresses are the locations in the PROFINET input/output process image the variable points to. - The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA PROFINET service\'s configuration is modified via [addProfinetIO](#/operations/addProfinetIO) and [setProfinetIOsFromFile](#/operations/setProfinetIOsFromFile). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal.
1628
1703
  * @summary List PROFINET Input/Output Configuration
1629
1704
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1630
1705
  * @param {*} [options] Override http request option.
@@ -1634,7 +1709,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1634
1709
  return BUSInputsOutputsApiFp(this.configuration).listProfinetIOs(cell, options).then((request) => request(this.axios, this.basePath));
1635
1710
  }
1636
1711
  /**
1637
- * Set values of outputs. In case of virtual Bus Input/Outputs, also inputs can be set. All available output identifiers can be requested via [listBusIODescriptions](#/operations/listBusIODescriptions). The call will return once the values have been set and accepted by the service.
1712
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Set values of outputs. In case of virtual Bus Input/Outputs, also inputs can be set. All available output identifiers can be requested via [listBusIODescriptions](#/operations/listBusIODescriptions). The call will return once the values have been set and accepted by the service.
1638
1713
  * @summary Set Output Values
1639
1714
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1640
1715
  * @param {Array<IOValue>} iOValue
@@ -1645,7 +1720,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1645
1720
  return BUSInputsOutputsApiFp(this.configuration).setBusIOValues(cell, iOValue, options).then((request) => request(this.axios, this.basePath));
1646
1721
  }
1647
1722
  /**
1648
- * Sets input/output variable configuration on the PROFINET device (i.e. NOVA\'s PROFINET service) from XML file. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding engineering system, e.g., TIA portal. #### Export variables You can export the variable configuration of the PROFINET controller as an XML file from your engineering system, e.g., TIA portal. - The endpoint is built so that the perspective of input and output (PROFINET Device\'s input is PROFINET Controller\'s output) is internally handled (PROFINET device input is PROFINET controller output), meaning that you can paste the exported XML file here without modifying.
1723
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Sets input/output variable configuration on the PROFINET device (i.e. NOVA\'s PROFINET service) from XML file. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding engineering system, e.g., TIA portal. #### Export variables You can export the variable configuration of the PROFINET controller as an XML file from your engineering system, e.g., TIA portal. - The endpoint is built so that the perspective of input and output (PROFINET Device\'s input is PROFINET Controller\'s output) is internally handled (PROFINET device input is PROFINET controller output), meaning that you can paste the exported XML file here without modifying.
1649
1724
  * @summary Set PROFINET Inputs/Outputs from File
1650
1725
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1651
1726
  * @param {ProfinetInputOutputConfig} profinetInputOutputConfig
@@ -2011,7 +2086,7 @@ const CellApiFactory = function(configuration, basePath, axios) {
2011
2086
  */
2012
2087
  var CellApi = class extends BaseAPI {
2013
2088
  /**
2014
- * Check if a more recent Wandelbots NOVA version is available for the cell. Updates greater than the system version are ignored.
2089
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Check if a more recent Wandelbots NOVA version is available for the cell. Updates greater than the system version are ignored.
2015
2090
  * @summary Check Cell Update
2016
2091
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2017
2092
  * @param {ReleaseChannel} channel
@@ -2022,7 +2097,7 @@ var CellApi = class extends BaseAPI {
2022
2097
  return CellApiFp(this.configuration).checkCellVersionUpdate(cell, channel, options).then((request) => request(this.axios, this.basePath));
2023
2098
  }
2024
2099
  /**
2025
- * Delete an entire cell.
2100
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Delete an entire cell.
2026
2101
  * @summary Delete Cell
2027
2102
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2028
2103
  * @param {number} [completionTimeout]
@@ -2033,7 +2108,7 @@ var CellApi = class extends BaseAPI {
2033
2108
  return CellApiFp(this.configuration).deleteCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2034
2109
  }
2035
2110
  /**
2036
- * 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](https://docs.wandelbots.io/latest/setup-cell) for more information.
2111
+ * **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](https://docs.wandelbots.io/latest/setup-cell) for more information.
2037
2112
  * @summary Add Cell
2038
2113
  * @param {Cell} cell
2039
2114
  * @param {number} [completionTimeout]
@@ -2044,7 +2119,7 @@ var CellApi = class extends BaseAPI {
2044
2119
  return CellApiFp(this.configuration).deployCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2045
2120
  }
2046
2121
  /**
2047
- * List all cell resources.
2122
+ * **Required permissions:** `can_access_cells` - View cell configurations and resources ___ List all cell resources.
2048
2123
  * @summary Configuration
2049
2124
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2050
2125
  * @param {*} [options] Override http request option.
@@ -2054,7 +2129,7 @@ var CellApi = class extends BaseAPI {
2054
2129
  return CellApiFp(this.configuration).getCell(cell, options).then((request) => request(this.axios, this.basePath));
2055
2130
  }
2056
2131
  /**
2057
- * List the status of all cell resources.
2132
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ List the status of all cell resources.
2058
2133
  * @summary Service Status
2059
2134
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2060
2135
  * @param {*} [options] Override http request option.
@@ -2064,7 +2139,7 @@ var CellApi = class extends BaseAPI {
2064
2139
  return CellApiFp(this.configuration).getCellStatus(cell, options).then((request) => request(this.axios, this.basePath));
2065
2140
  }
2066
2141
  /**
2067
- * List all deployed cell names. If no cells are deployed, an empty list is returned.
2142
+ * **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.
2068
2143
  * @summary List Cells
2069
2144
  * @param {*} [options] Override http request option.
2070
2145
  * @throws {RequiredError}
@@ -2073,7 +2148,7 @@ var CellApi = class extends BaseAPI {
2073
2148
  return CellApiFp(this.configuration).listCells(options).then((request) => request(this.axios, this.basePath));
2074
2149
  }
2075
2150
  /**
2076
- * Deactivate or activate the services of a cell.
2151
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Deactivate or activate the services of a cell.
2077
2152
  * @summary Operating State
2078
2153
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2079
2154
  * @param {OperatingState} operatingState Set state of the cell. Active or inactive.
@@ -2084,7 +2159,7 @@ var CellApi = class extends BaseAPI {
2084
2159
  return CellApiFp(this.configuration).setCellStatus(cell, operatingState, options).then((request) => request(this.axios, this.basePath));
2085
2160
  }
2086
2161
  /**
2087
- * Update the definition of the entire Cell.
2162
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Update the definition of the entire cell. <!-- theme: info --> > **NOTE** > > This endpoint replaces the full cell configuration and is not a partial update. > To change only one field: > 1. Get the current configuration via [Cell > Configuration](#/operations/getCell). > 2. Send the full configuration with your intended changes via [Cell > Update Configuration](#/operations/updateCell). Omitting existing sections may reset or remove their current configuration.
2088
2163
  * @summary Update Configuration
2089
2164
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2090
2165
  * @param {Cell} cell2
@@ -2096,7 +2171,7 @@ var CellApi = class extends BaseAPI {
2096
2171
  return CellApiFp(this.configuration).updateCell(cell, cell2, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2097
2172
  }
2098
2173
  /**
2099
- * Update the Foundation chart version for a single cell based on a release channel. The resulting version is capped at the current system version.
2174
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Update the Foundation chart version for a single cell based on a release channel. The resulting version is capped at the current system version.
2100
2175
  * @summary Update Cell Version
2101
2176
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2102
2177
  * @param {UpdateCellVersionRequest} updateCellVersionRequest
@@ -2654,7 +2729,7 @@ const ControllerApiFactory = function(configuration, basePath, axios) {
2654
2729
  */
2655
2730
  var ControllerApi = class extends BaseAPI {
2656
2731
  /**
2657
- * Add a robot controller to the cell.
2732
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Add a robot controller to the cell.
2658
2733
  * @summary Add Robot Controller
2659
2734
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2660
2735
  * @param {RobotController} robotController
@@ -2666,7 +2741,7 @@ var ControllerApi = class extends BaseAPI {
2666
2741
  return ControllerApiFp(this.configuration).addRobotController(cell, robotController, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2667
2742
  }
2668
2743
  /**
2669
- * Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](#/operations/addRobotController).
2744
+ * **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 [addRobotController](#/operations/addRobotController).
2670
2745
  * @summary Clear Robot Controllers
2671
2746
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2672
2747
  * @param {number} [completionTimeout]
@@ -2677,7 +2752,7 @@ var ControllerApi = class extends BaseAPI {
2677
2752
  return ControllerApiFp(this.configuration).clearRobotControllers(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2678
2753
  }
2679
2754
  /**
2680
- * Delete a robot controller from the cell.
2755
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Delete a robot controller from the cell.
2681
2756
  * @summary Delete Robot Controller
2682
2757
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2683
2758
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2689,7 +2764,7 @@ var ControllerApi = class extends BaseAPI {
2689
2764
  return ControllerApiFp(this.configuration).deleteRobotController(cell, controller, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2690
2765
  }
2691
2766
  /**
2692
- * Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](#/operations/getMotionGroupDescription) to get more information about the motion group.
2767
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](#/operations/getMotionGroupDescription) to get more information about the motion group.
2693
2768
  * @summary Description
2694
2769
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2695
2770
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2700,7 +2775,7 @@ var ControllerApi = class extends BaseAPI {
2700
2775
  return ControllerApiFp(this.configuration).getControllerDescription(cell, controller, options).then((request) => request(this.axios, this.basePath));
2701
2776
  }
2702
2777
  /**
2703
- * Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. 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.
2778
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. 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.
2704
2779
  * @summary Coordinate System
2705
2780
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2706
2781
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2713,7 +2788,7 @@ var ControllerApi = class extends BaseAPI {
2713
2788
  return ControllerApiFp(this.configuration).getCoordinateSystem(cell, controller, coordinateSystem, orientationType, options).then((request) => request(this.axios, this.basePath));
2714
2789
  }
2715
2790
  /**
2716
- * Get the current state of a robot controller.
2791
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the current state of a robot controller.
2717
2792
  * @summary State
2718
2793
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2719
2794
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2724,7 +2799,7 @@ var ControllerApi = class extends BaseAPI {
2724
2799
  return ControllerApiFp(this.configuration).getCurrentRobotControllerState(cell, controller, options).then((request) => request(this.axios, this.basePath));
2725
2800
  }
2726
2801
  /**
2727
- * Get the configuration for a robot controller.
2802
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the configuration for a robot controller.
2728
2803
  * @summary Robot Controller
2729
2804
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2730
2805
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2735,7 +2810,7 @@ var ControllerApi = class extends BaseAPI {
2735
2810
  return ControllerApiFp(this.configuration).getRobotController(cell, controller, options).then((request) => request(this.axios, this.basePath));
2736
2811
  }
2737
2812
  /**
2738
- * 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.
2813
+ * **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.
2739
2814
  * @summary Virtual Controller Configuration
2740
2815
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2741
2816
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2746,7 +2821,7 @@ var ControllerApi = class extends BaseAPI {
2746
2821
  return ControllerApiFp(this.configuration).getVirtualControllerConfiguration(cell, controller, options).then((request) => request(this.axios, this.basePath));
2747
2822
  }
2748
2823
  /**
2749
- * Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. 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.
2824
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. 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.
2750
2825
  * @summary List Coordinate Systems
2751
2826
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2752
2827
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2758,7 +2833,7 @@ var ControllerApi = class extends BaseAPI {
2758
2833
  return ControllerApiFp(this.configuration).listCoordinateSystems(cell, controller, orientationType, options).then((request) => request(this.axios, this.basePath));
2759
2834
  }
2760
2835
  /**
2761
- * List the names of all deployed robot controllers.
2836
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List the names of all deployed robot controllers.
2762
2837
  * @summary List Robot Controllers
2763
2838
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2764
2839
  * @param {*} [options] Override http request option.
@@ -2768,7 +2843,7 @@ var ControllerApi = class extends BaseAPI {
2768
2843
  return ControllerApiFp(this.configuration).listRobotControllers(cell, options).then((request) => request(this.axios, this.basePath));
2769
2844
  }
2770
2845
  /**
2771
- * 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** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **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.
2846
+ * **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** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **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.
2772
2847
  * @summary Set Default Mode
2773
2848
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2774
2849
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2780,7 +2855,7 @@ var ControllerApi = class extends BaseAPI {
2780
2855
  return ControllerApiFp(this.configuration).setDefaultMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
2781
2856
  }
2782
2857
  /**
2783
- * <!-- theme: success --> > Websocket endpoint 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, > - 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 cobots. Use [listRobotControllers](#/operations/listRobotControllers) to check if the robot controller supports free drive mode.
2858
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint 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, > - 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 cobots. Use [listRobotControllers](#/operations/listRobotControllers) to check if the robot controller supports free drive mode.
2784
2859
  * @summary Stream Free Drive
2785
2860
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2786
2861
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2792,7 +2867,7 @@ var ControllerApi = class extends BaseAPI {
2792
2867
  return ControllerApiFp(this.configuration).streamFreeDrive(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
2793
2868
  }
2794
2869
  /**
2795
- * <!-- theme: success --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](#/operations/addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
2870
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](#/operations/addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
2796
2871
  * @summary Stream State
2797
2872
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2798
2873
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2805,7 +2880,7 @@ var ControllerApi = class extends BaseAPI {
2805
2880
  return ControllerApiFp(this.configuration).streamRobotControllerState(cell, controller, responseRate, addControllerTimeout, options).then((request) => request(this.axios, this.basePath));
2806
2881
  }
2807
2882
  /**
2808
- * Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. 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).
2883
+ * **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. 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).
2809
2884
  * @summary Update Robot Controller
2810
2885
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2811
2886
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3038,7 +3113,7 @@ const ControllerInputsOutputsApiFactory = function(configuration, basePath, axio
3038
3113
  */
3039
3114
  var ControllerInputsOutputsApi = class extends BaseAPI {
3040
3115
  /**
3041
- * Lists the input/output descriptions of the robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the robot controller\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
3116
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists the input/output descriptions of the robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the robot controller\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
3042
3117
  * @summary List Descriptions
3043
3118
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3044
3119
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3053,7 +3128,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3053
3128
  return ControllerInputsOutputsApiFp(this.configuration).listIODescriptions(cell, controller, ios, direction, valueType, group, options).then((request) => request(this.axios, this.basePath));
3054
3129
  }
3055
3130
  /**
3056
- * Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listIODescriptions](#/operations/listIODescriptions).
3131
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listIODescriptions](#/operations/listIODescriptions).
3057
3132
  * @summary Get Input/Output Values
3058
3133
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3059
3134
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3065,7 +3140,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3065
3140
  return ControllerInputsOutputsApiFp(this.configuration).listIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
3066
3141
  }
3067
3142
  /**
3068
- * Set the values of outputs. All available output 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 can take up to 200 milliseconds. > **NOTE** > > Do not call this endpoint while another request is still in progress. The second call will fail.
3143
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Set the values of outputs. All available output 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 can take up to 200 milliseconds. > **NOTE** > > Do not call this endpoint while another request is still in progress. The second call will fail.
3069
3144
  * @summary Set Output Values
3070
3145
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3071
3146
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3077,7 +3152,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3077
3152
  return ControllerInputsOutputsApiFp(this.configuration).setOutputValues(cell, controller, iOValue, options).then((request) => request(this.axios, this.basePath));
3078
3153
  }
3079
3154
  /**
3080
- * <!-- theme: success --> > Websocket endpoint Continuously receive updates of input/output values via websocket. Updates are sent in the update rate of the controller. > **NOTE** > > If you request many values simultaneously, the request is 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. This can lead to a high amount of data transmitted.
3155
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Continuously receive updates of input/output values via websocket. Updates are sent in the update rate of the controller. > **NOTE** > > If you request many values simultaneously, the request is 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. This can lead to a high amount of data transmitted.
3081
3156
  * @summary Stream Input/Output Values
3082
3157
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3083
3158
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3089,7 +3164,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3089
3164
  return ControllerInputsOutputsApiFp(this.configuration).streamIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
3090
3165
  }
3091
3166
  /**
3092
- * Wait until an input/output 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 input/output is compared with given value. Only set the value that corresponds to the `value_type` of the input/output. See [listIODescriptions](#/operations/listIODescriptions) for more information. **Examples** 1. Wait until analog input `AI_1` < 10: ``` io: \"AI_1\" comparison_type: \"COMPARISON_LESS\" value: 10 ``` 2. Wait until analog input `AI_2` > 5.0: ``` io: \"AI_2\" comparison_type: \"COMPARISON_GREATER\" value: 5.0 ``` 3. Wait until digital input `DI_3` is true: ``` io: \"DI_3\" comparison_type: \"COMPARISON_EQUAL\" value: true ```
3167
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Wait until an input/output 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 input/output is compared with given value. Only set the value that corresponds to the `value_type` of the input/output. See [listIODescriptions](#/operations/listIODescriptions) for more information. **Examples** 1. Wait until analog input `AI_1` < 10: ``` io: \"AI_1\" comparison_type: \"COMPARISON_LESS\" value: 10 ``` 2. Wait until analog input `AI_2` > 5.0: ``` io: \"AI_2\" comparison_type: \"COMPARISON_GREATER\" value: 5.0 ``` 3. Wait until digital input `DI_3` is true: ``` io: \"DI_3\" comparison_type: \"COMPARISON_EQUAL\" value: true ```
3093
3168
  * @summary Wait For
3094
3169
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3095
3170
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3162,7 +3237,7 @@ const JoggingApiFactory = function(configuration, basePath, axios) {
3162
3237
  */
3163
3238
  var JoggingApi = class extends BaseAPI {
3164
3239
  /**
3165
- * <!-- theme: success --> > Websocket endpoint Provides execution control over a dynamically adaptable jogging motion for a motion group. Jogging describes controlling a motion group by sending real-time commands to move either its joints or the TCP. The commands contain target velocities that may change at any time during execution, so the resulting motion cannot be computed upfront. ### Preconditions The motion group is not moved by any other endpoint. ### Requests #### 1. Send `InitializeJoggingRequest` to configure the jogging. - Sets the robot controller mode to control mode. - Claims the motion group for jogging. For robotic arms, TCP is required to ensure that limits, including TCP limits, are respected. #### 2. Send `JointVelocityRequest` or `TcpVelocityRequest` to start the jogging motion. - Commands can only be processed in the cycle rate of the controller - Sending commands faster will not increase the responsiveness of the jogging motion, it will lead to dropped commands - It is recommended to couple sending commands with the [state stream](#/operations/streamMotionGroupState), which can be subscribed to via nats as well. #### 3. Change or stop the jogging motion - Change the jogging direction and/or velocity during the jogging motion with `JointVelocityRequest` or `TcpVelocityRequest`. - To stop the jogging motion, send zero velocities via either request or `PauseJoggingRequest`. ### Responses - Each request is acknowledged with a corresponding response: - `InitializeJoggingResponse` after `InitializeJoggingRequest` - `JointVelocityResponse` after `JointVelocityRequest` - `TcpVelocityResponse` after `TcpVelocityRequest` - `PauseJoggingResponse` after `PauseJoggingRequest` The responses confirm that the requests were received. They do not signal that the operation was successful; check the [motion group state](#/operations/streamMotionGroupState) for that. - `MovementErrorResponse` with error details is sent in case of an unexpected error, e.g., controller disconnects during jogging. ### Tips and Tricks - Ensure that the websocket connection remains open until the jogging motion is stopped to avoid unexpected stops.
3240
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Provides execution control over a dynamically adaptable jogging motion for a motion group. Jogging describes controlling a motion group by sending real-time commands to move either its joints or the TCP. The commands contain target velocities that may change at any time during execution, so the resulting motion cannot be computed upfront. ### Preconditions The motion group is not moved by any other endpoint. ### Requests #### 1. Send `InitializeJoggingRequest` to configure the jogging. - Sets the robot controller mode to control mode. - Claims the motion group for jogging. For robotic arms, TCP is required to ensure that limits, including TCP limits, are respected. #### 2. Send `JointVelocityRequest` or `TcpVelocityRequest` to start the jogging motion. - Commands can only be processed in the cycle rate of the controller - Sending commands faster will not increase the responsiveness of the jogging motion, it will lead to dropped commands - It is recommended to couple sending commands with the [state stream](#/operations/streamMotionGroupState), which can be subscribed to via nats as well. #### 3. Change or stop the jogging motion - Change the jogging direction and/or velocity during the jogging motion with `JointVelocityRequest` or `TcpVelocityRequest`. - To stop the jogging motion, send zero velocities via either request or `PauseJoggingRequest`. ### Responses - Each request is acknowledged with a corresponding response: - `InitializeJoggingResponse` after `InitializeJoggingRequest` - `JointVelocityResponse` after `JointVelocityRequest` - `TcpVelocityResponse` after `TcpVelocityRequest` - `PauseJoggingResponse` after `PauseJoggingRequest` The responses confirm that the requests were received. They do not signal that the operation was successful; check the [motion group state](#/operations/streamMotionGroupState) for that. - `MovementErrorResponse` with error details is sent in case of an unexpected error, e.g., controller disconnects during jogging. ### Tips and Tricks - Ensure that the websocket connection remains open until the jogging motion is stopped to avoid unexpected stops.
3166
3241
  * @summary Execute Jogging
3167
3242
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3168
3243
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3278,7 +3353,7 @@ const KinematicsApiFactory = function(configuration, basePath, axios) {
3278
3353
  */
3279
3354
  var KinematicsApi = class extends BaseAPI {
3280
3355
  /**
3281
- * Returns the TCP poses for a list of given joint positions.
3356
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns the TCP poses for a list of given joint positions.
3282
3357
  * @summary Forward kinematics
3283
3358
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3284
3359
  * @param {ForwardKinematicsRequest} forwardKinematicsRequest
@@ -3289,7 +3364,7 @@ var KinematicsApi = class extends BaseAPI {
3289
3364
  return KinematicsApiFp(this.configuration).forwardKinematics(cell, forwardKinematicsRequest, options).then((request) => request(this.axios, this.basePath));
3290
3365
  }
3291
3366
  /**
3292
- * Returns the reachable joint positions for a list of given poses.
3367
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns the reachable joint positions for a list of given poses.
3293
3368
  * @summary Inverse kinematics
3294
3369
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3295
3370
  * @param {InverseKinematicsRequest} inverseKinematicsRequest
@@ -3463,7 +3538,7 @@ const LicenseApiFactory = function(configuration, basePath, axios) {
3463
3538
  */
3464
3539
  var LicenseApi = class extends BaseAPI {
3465
3540
  /**
3466
- * 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.
3541
+ * **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.
3467
3542
  * @summary Activate license
3468
3543
  * @param {ActivateLicenseRequest} activateLicenseRequest
3469
3544
  * @param {*} [options] Override http request option.
@@ -3473,7 +3548,7 @@ var LicenseApi = class extends BaseAPI {
3473
3548
  return LicenseApiFp(this.configuration).activateLicense(activateLicenseRequest, options).then((request) => request(this.axios, this.basePath));
3474
3549
  }
3475
3550
  /**
3476
- * Deactivates active license.
3551
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Deactivates active license.
3477
3552
  * @summary Deactivate license
3478
3553
  * @param {*} [options] Override http request option.
3479
3554
  * @throws {RequiredError}
@@ -3482,7 +3557,7 @@ var LicenseApi = class extends BaseAPI {
3482
3557
  return LicenseApiFp(this.configuration).deactivateLicense(options).then((request) => request(this.axios, this.basePath));
3483
3558
  }
3484
3559
  /**
3485
- * Get information on the license used with the Wandelbots NOVA instance, e.g., licensed product, expiration date, license status.
3560
+ * **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.
3486
3561
  * @summary Get license
3487
3562
  * @param {*} [options] Override http request option.
3488
3563
  * @throws {RequiredError}
@@ -3491,7 +3566,7 @@ var LicenseApi = class extends BaseAPI {
3491
3566
  return LicenseApiFp(this.configuration).getLicense(options).then((request) => request(this.axios, this.basePath));
3492
3567
  }
3493
3568
  /**
3494
- * 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.
3569
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ 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.
3495
3570
  * @summary Get license status
3496
3571
  * @param {*} [options] Override http request option.
3497
3572
  * @throws {RequiredError}
@@ -3642,7 +3717,7 @@ const MotionGroupApiFactory = function(configuration, basePath, axios) {
3642
3717
  */
3643
3718
  var MotionGroupApi = class extends BaseAPI {
3644
3719
  /**
3645
- * Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
3720
+ * **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.
3646
3721
  * @summary State
3647
3722
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3648
3723
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3655,7 +3730,7 @@ var MotionGroupApi = class extends BaseAPI {
3655
3730
  return MotionGroupApiFp(this.configuration).getCurrentMotionGroupState(cell, controller, motionGroup, responseCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
3656
3731
  }
3657
3732
  /**
3658
- * Get the set of parameters that describe the motion group and its configuration including safety zones, limits, etc. This data can change upon connection to the robot.
3733
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the set of parameters that describe the motion group and its configuration including safety zones, limits, etc. This data can change upon connection to the robot.
3659
3734
  * @summary Description
3660
3735
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3661
3736
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3667,7 +3742,7 @@ var MotionGroupApi = class extends BaseAPI {
3667
3742
  return MotionGroupApiFp(this.configuration).getMotionGroupDescription(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
3668
3743
  }
3669
3744
  /**
3670
- * <!-- theme: success --> > Websocket endpoint Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
3745
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
3671
3746
  * @summary Stream State
3672
3747
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3673
3748
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3882,7 +3957,7 @@ const MotionGroupModelsApiFactory = function(configuration, basePath, axios) {
3882
3957
  */
3883
3958
  var MotionGroupModelsApi = class extends BaseAPI {
3884
3959
  /**
3885
- * Returns the default collision link chain for a given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) 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. Attach additional shapes to the link reference frames by extending the link dictionaries before further use. Additional shapes may overlap each other per link and may also overlap the respective link\'s default shape.
3960
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the default collision link chain for a given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) 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. Attach additional shapes to the link reference frames by extending the link dictionaries before further use. Additional shapes may overlap each other per link and may also overlap the respective link\'s default shape.
3886
3961
  * @summary Get Collision Model
3887
3962
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3888
3963
  * @param {*} [options] Override http request option.
@@ -3892,7 +3967,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3892
3967
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupCollisionModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3893
3968
  }
3894
3969
  /**
3895
- * Returns the GLB asset for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3970
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the GLB asset for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3896
3971
  * @summary Download GLB Model
3897
3972
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3898
3973
  * @param {*} [options] Override http request option.
@@ -3902,7 +3977,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3902
3977
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupGlbModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3903
3978
  }
3904
3979
  /**
3905
- * Returns the kinematics model (DH parameters) for the given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models.
3980
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the kinematics model (DH parameters) for the given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models.
3906
3981
  * @summary Get Kinematics
3907
3982
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3908
3983
  * @param {*} [options] Override http request option.
@@ -3912,7 +3987,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3912
3987
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupKinematicModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3913
3988
  }
3914
3989
  /**
3915
- * Returns the list of supported motion group models.
3990
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the list of supported motion group models.
3916
3991
  * @summary Motion Group Models
3917
3992
  * @param {*} [options] Override http request option.
3918
3993
  * @throws {RequiredError}
@@ -3921,7 +3996,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3921
3996
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupModels(options).then((request) => request(this.axios, this.basePath));
3922
3997
  }
3923
3998
  /**
3924
- * Returns the USD scene model for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3999
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the USD scene model for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3925
4000
  * @summary Download USD Model
3926
4001
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3927
4002
  * @param {*} [options] Override http request option.
@@ -3932,6 +4007,167 @@ var MotionGroupModelsApi = class extends BaseAPI {
3932
4007
  }
3933
4008
  };
3934
4009
  /**
4010
+ * NOVACloudApi - axios parameter creator
4011
+ */
4012
+ const NOVACloudApiAxiosParamCreator = function(configuration) {
4013
+ return {
4014
+ connectToNovaCloud: async (completionTimeout, cloudConnectionRequest, options = {}) => {
4015
+ const localVarUrlObj = new URL(`/experimental/cloud/connect`, DUMMY_BASE_URL);
4016
+ let baseOptions;
4017
+ if (configuration) baseOptions = configuration.baseOptions;
4018
+ const localVarRequestOptions = {
4019
+ method: "POST",
4020
+ ...baseOptions,
4021
+ ...options
4022
+ };
4023
+ const localVarHeaderParameter = {};
4024
+ const localVarQueryParameter = {};
4025
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4026
+ if (completionTimeout !== void 0) localVarQueryParameter["completion_timeout"] = completionTimeout;
4027
+ localVarHeaderParameter["Content-Type"] = "application/json";
4028
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4029
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4030
+ localVarRequestOptions.headers = {
4031
+ ...localVarHeaderParameter,
4032
+ ...headersFromBaseOptions,
4033
+ ...options.headers
4034
+ };
4035
+ localVarRequestOptions.data = serializeDataIfNeeded(cloudConnectionRequest, localVarRequestOptions, configuration);
4036
+ return {
4037
+ url: toPathString(localVarUrlObj),
4038
+ options: localVarRequestOptions
4039
+ };
4040
+ },
4041
+ disconnectFromNovaCloud: async (completionTimeout, options = {}) => {
4042
+ const localVarUrlObj = new URL(`/experimental/cloud/config`, DUMMY_BASE_URL);
4043
+ let baseOptions;
4044
+ if (configuration) baseOptions = configuration.baseOptions;
4045
+ const localVarRequestOptions = {
4046
+ method: "DELETE",
4047
+ ...baseOptions,
4048
+ ...options
4049
+ };
4050
+ const localVarHeaderParameter = {};
4051
+ const localVarQueryParameter = {};
4052
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4053
+ if (completionTimeout !== void 0) localVarQueryParameter["completion_timeout"] = completionTimeout;
4054
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4055
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4056
+ localVarRequestOptions.headers = {
4057
+ ...localVarHeaderParameter,
4058
+ ...headersFromBaseOptions,
4059
+ ...options.headers
4060
+ };
4061
+ return {
4062
+ url: toPathString(localVarUrlObj),
4063
+ options: localVarRequestOptions
4064
+ };
4065
+ },
4066
+ getNovaCloudConfig: async (options = {}) => {
4067
+ const localVarUrlObj = new URL(`/experimental/cloud/config`, DUMMY_BASE_URL);
4068
+ let baseOptions;
4069
+ if (configuration) baseOptions = configuration.baseOptions;
4070
+ const localVarRequestOptions = {
4071
+ method: "GET",
4072
+ ...baseOptions,
4073
+ ...options
4074
+ };
4075
+ const localVarHeaderParameter = {};
4076
+ const localVarQueryParameter = {};
4077
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4078
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4079
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4080
+ localVarRequestOptions.headers = {
4081
+ ...localVarHeaderParameter,
4082
+ ...headersFromBaseOptions,
4083
+ ...options.headers
4084
+ };
4085
+ return {
4086
+ url: toPathString(localVarUrlObj),
4087
+ options: localVarRequestOptions
4088
+ };
4089
+ }
4090
+ };
4091
+ };
4092
+ /**
4093
+ * NOVACloudApi - functional programming interface
4094
+ */
4095
+ const NOVACloudApiFp = function(configuration) {
4096
+ const localVarAxiosParamCreator = NOVACloudApiAxiosParamCreator(configuration);
4097
+ return {
4098
+ async connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4099
+ const localVarAxiosArgs = await localVarAxiosParamCreator.connectToNovaCloud(completionTimeout, cloudConnectionRequest, options);
4100
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4101
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.connectToNovaCloud"]?.[localVarOperationServerIndex]?.url;
4102
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4103
+ },
4104
+ async disconnectFromNovaCloud(completionTimeout, options) {
4105
+ const localVarAxiosArgs = await localVarAxiosParamCreator.disconnectFromNovaCloud(completionTimeout, options);
4106
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4107
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.disconnectFromNovaCloud"]?.[localVarOperationServerIndex]?.url;
4108
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4109
+ },
4110
+ async getNovaCloudConfig(options) {
4111
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getNovaCloudConfig(options);
4112
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4113
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.getNovaCloudConfig"]?.[localVarOperationServerIndex]?.url;
4114
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4115
+ }
4116
+ };
4117
+ };
4118
+ /**
4119
+ * NOVACloudApi - factory interface
4120
+ */
4121
+ const NOVACloudApiFactory = function(configuration, basePath, axios) {
4122
+ const localVarFp = NOVACloudApiFp(configuration);
4123
+ return {
4124
+ connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4125
+ return localVarFp.connectToNovaCloud(completionTimeout, cloudConnectionRequest, options).then((request) => request(axios, basePath));
4126
+ },
4127
+ disconnectFromNovaCloud(completionTimeout, options) {
4128
+ return localVarFp.disconnectFromNovaCloud(completionTimeout, options).then((request) => request(axios, basePath));
4129
+ },
4130
+ getNovaCloudConfig(options) {
4131
+ return localVarFp.getNovaCloudConfig(options).then((request) => request(axios, basePath));
4132
+ }
4133
+ };
4134
+ };
4135
+ /**
4136
+ * NOVACloudApi - object-oriented interface
4137
+ */
4138
+ var NOVACloudApi = class extends BaseAPI {
4139
+ /**
4140
+ * **Required permissions:** `can_manage_cloud_connection` - Manage NOVA Cloud connection ___ <!-- theme: danger --> > **Experimental** Register this instance with the NOVA Cloud fleet manager and configure the local NATS server to establish a leafnode connection. The fleet manager will then be able to receive event data from this instance, allowing it to monitor the connected robots. Establishing the connection can take some time (~30-60 seconds), as the NATS server pod in the cluster needs to restart to apply the new configuration.
4141
+ * @summary Connect to NOVA Cloud
4142
+ * @param {number} [completionTimeout] The maximum time (**in seconds**) spent waiting until the operation is complete. If the parameter is set, the request will wait for completion until the specified time is up. For POST and PUT requests completion means that all resources are running and usable. For DELETE completion means that the deletion process is completed.
4143
+ * @param {CloudConnectionRequest} [cloudConnectionRequest]
4144
+ * @param {*} [options] Override http request option.
4145
+ * @throws {RequiredError}
4146
+ */
4147
+ connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4148
+ return NOVACloudApiFp(this.configuration).connectToNovaCloud(completionTimeout, cloudConnectionRequest, options).then((request) => request(this.axios, this.basePath));
4149
+ }
4150
+ /**
4151
+ * **Required permissions:** `can_manage_cloud_connection` - Manage NOVA Cloud connection ___ <!-- theme: danger --> > **Experimental** Disconnects this instance from NOVA Cloud and removes the local NATS leafnode configuration.
4152
+ * @summary Disconnect from NOVA Cloud
4153
+ * @param {number} [completionTimeout] The maximum time (**in seconds**) spent waiting until the operation is complete. If the parameter is set, the request will wait for completion until the specified time is up. For POST and PUT requests completion means that all resources are running and usable. For DELETE completion means that the deletion process is completed.
4154
+ * @param {*} [options] Override http request option.
4155
+ * @throws {RequiredError}
4156
+ */
4157
+ disconnectFromNovaCloud(completionTimeout, options) {
4158
+ return NOVACloudApiFp(this.configuration).disconnectFromNovaCloud(completionTimeout, options).then((request) => request(this.axios, this.basePath));
4159
+ }
4160
+ /**
4161
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the current NOVA Cloud connection config for this instance.
4162
+ * @summary Get Connection Config
4163
+ * @param {*} [options] Override http request option.
4164
+ * @throws {RequiredError}
4165
+ */
4166
+ getNovaCloudConfig(options) {
4167
+ return NOVACloudApiFp(this.configuration).getNovaCloudConfig(options).then((request) => request(this.axios, this.basePath));
4168
+ }
4169
+ };
4170
+ /**
3935
4171
  * ProgramApi - axios parameter creator
3936
4172
  */
3937
4173
  const ProgramApiAxiosParamCreator = function(configuration) {
@@ -4105,7 +4341,7 @@ const ProgramApiFactory = function(configuration, basePath, axios) {
4105
4341
  */
4106
4342
  var ProgramApi = class extends BaseAPI {
4107
4343
  /**
4108
- * <!-- theme: danger --> > **Experimental** Get details of a program.
4344
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Get details of a program.
4109
4345
  * @summary Get program
4110
4346
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4111
4347
  * @param {string} program
@@ -4116,7 +4352,7 @@ var ProgramApi = class extends BaseAPI {
4116
4352
  return ProgramApiFp(this.configuration).getProgram(cell, program, options).then((request) => request(this.axios, this.basePath));
4117
4353
  }
4118
4354
  /**
4119
- * <!-- theme: danger --> > **Experimental** List details of all existing programs.
4355
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** List details of all existing programs.
4120
4356
  * @summary List programs
4121
4357
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4122
4358
  * @param {*} [options] Override http request option.
@@ -4126,7 +4362,7 @@ var ProgramApi = class extends BaseAPI {
4126
4362
  return ProgramApiFp(this.configuration).listPrograms(cell, options).then((request) => request(this.axios, this.basePath));
4127
4363
  }
4128
4364
  /**
4129
- * <!-- theme: danger --> > **Experimental** This endpoint starts a new program execution. The program will be executed asynchronously.
4365
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** This endpoint starts a new program execution. The program will be executed asynchronously.
4130
4366
  * @summary Start the program
4131
4367
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4132
4368
  * @param {string} program
@@ -4138,7 +4374,7 @@ var ProgramApi = class extends BaseAPI {
4138
4374
  return ProgramApiFp(this.configuration).startProgram(cell, program, programStartRequest, options).then((request) => request(this.axios, this.basePath));
4139
4375
  }
4140
4376
  /**
4141
- * <!-- theme: danger --> > **Experimental** Stop a specific program run.
4377
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Stop a specific program run.
4142
4378
  * @summary Stop program run
4143
4379
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4144
4380
  * @param {string} program
@@ -4246,7 +4482,7 @@ const RobotConfigurationsApiFactory = function(configuration, basePath, axios) {
4246
4482
  */
4247
4483
  var RobotConfigurationsApi = class extends BaseAPI {
4248
4484
  /**
4249
- * Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
4485
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
4250
4486
  * @summary Robot Controller Configurations
4251
4487
  * @param {RobotControllerConfigurationRequest} robotControllerConfigurationRequest
4252
4488
  * @param {*} [options] Override http request option.
@@ -4256,7 +4492,7 @@ var RobotConfigurationsApi = class extends BaseAPI {
4256
4492
  return RobotConfigurationsApiFp(this.configuration).getControllerConfigFromArpScan(robotControllerConfigurationRequest, options).then((request) => request(this.axios, this.basePath));
4257
4493
  }
4258
4494
  /**
4259
- * Returns the identifiers of available robot configurations. A robot configuration represents a robot controller with one or more attached motion groups.
4495
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the identifiers of available robot configurations. A robot configuration represents a robot controller with one or more attached motion groups.
4260
4496
  * @summary List Robot Configurations
4261
4497
  * @param {*} [options] Override http request option.
4262
4498
  * @throws {RequiredError}
@@ -4836,7 +5072,7 @@ const StoreCollisionComponentsApiFactory = function(configuration, basePath, axi
4836
5072
  */
4837
5073
  var StoreCollisionComponentsApi = class extends BaseAPI {
4838
5074
  /**
4839
- * Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
5075
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
4840
5076
  * @summary Delete Collider
4841
5077
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4842
5078
  * @param {string} collider Unique identifier addressing a collider.
@@ -4847,7 +5083,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4847
5083
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
4848
5084
  }
4849
5085
  /**
4850
- * Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
5086
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
4851
5087
  * @summary Delete Link Chain
4852
5088
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4853
5089
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4858,7 +5094,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4858
5094
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
4859
5095
  }
4860
5096
  /**
4861
- * Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
5097
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
4862
5098
  * @summary Delete Tool
4863
5099
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4864
5100
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -4869,7 +5105,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4869
5105
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
4870
5106
  }
4871
5107
  /**
4872
- * Returns the collider.
5108
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collider.
4873
5109
  * @summary Get Collider
4874
5110
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4875
5111
  * @param {string} collider Unique identifier addressing a collider.
@@ -4880,7 +5116,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4880
5116
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
4881
5117
  }
4882
5118
  /**
4883
- * Returns the collision link chain.
5119
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collision link chain.
4884
5120
  * @summary Get Link Chain
4885
5121
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4886
5122
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4891,7 +5127,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4891
5127
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
4892
5128
  }
4893
5129
  /**
4894
- * Returns the stored tool.
5130
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored tool.
4895
5131
  * @summary Get Tool
4896
5132
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4897
5133
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -4902,7 +5138,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4902
5138
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
4903
5139
  }
4904
5140
  /**
4905
- * Returns the stored link chains.
5141
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored link chains.
4906
5142
  * @summary List Link Chains
4907
5143
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4908
5144
  * @param {*} [options] Override http request option.
@@ -4912,7 +5148,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4912
5148
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChains(cell, options).then((request) => request(this.axios, this.basePath));
4913
5149
  }
4914
5150
  /**
4915
- * Returns a list of keys for stored link chains.
5151
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored link chains.
4916
5152
  * @summary List Link Chain Keys
4917
5153
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4918
5154
  * @param {*} [options] Override http request option.
@@ -4922,7 +5158,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4922
5158
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChainsKeys(cell, options).then((request) => request(this.axios, this.basePath));
4923
5159
  }
4924
5160
  /**
4925
- * Returns all stored colliders.
5161
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns all stored colliders.
4926
5162
  * @summary List Colliders
4927
5163
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4928
5164
  * @param {*} [options] Override http request option.
@@ -4932,7 +5168,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4932
5168
  return StoreCollisionComponentsApiFp(this.configuration).listStoredColliders(cell, options).then((request) => request(this.axios, this.basePath));
4933
5169
  }
4934
5170
  /**
4935
- * Returns a list of keys for stored colliders.
5171
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored colliders.
4936
5172
  * @summary List Collider Keys
4937
5173
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4938
5174
  * @param {*} [options] Override http request option.
@@ -4942,7 +5178,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4942
5178
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollidersKeys(cell, options).then((request) => request(this.axios, this.basePath));
4943
5179
  }
4944
5180
  /**
4945
- * Returns the list of stored tools.
5181
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the list of stored tools.
4946
5182
  * @summary List Tools
4947
5183
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4948
5184
  * @param {*} [options] Override http request option.
@@ -4952,7 +5188,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4952
5188
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionTools(cell, options).then((request) => request(this.axios, this.basePath));
4953
5189
  }
4954
5190
  /**
4955
- * Returns a list of keys for stored tools.
5191
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored tools.
4956
5192
  * @summary List Tool Keys
4957
5193
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4958
5194
  * @param {*} [options] Override http request option.
@@ -4962,7 +5198,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4962
5198
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionToolsKeys(cell, options).then((request) => request(this.axios, this.basePath));
4963
5199
  }
4964
5200
  /**
4965
- * Stores collider. - If the collider does not exist, it will be created. - If the collider exists, it will be updated.
5201
+ * **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.
4966
5202
  * @summary Store Collider
4967
5203
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4968
5204
  * @param {string} collider Unique identifier addressing a collider.
@@ -4974,7 +5210,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4974
5210
  return StoreCollisionComponentsApiFp(this.configuration).storeCollider(cell, collider, collider2, options).then((request) => request(this.axios, this.basePath));
4975
5211
  }
4976
5212
  /**
4977
- * Stores link chain. - If the link chain does not exist, it will be created. - If the link chain exists, it will be updated.
5213
+ * **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.
4978
5214
  * @summary Store Link Chain
4979
5215
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4980
5216
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4986,7 +5222,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4986
5222
  return StoreCollisionComponentsApiFp(this.configuration).storeCollisionLinkChain(cell, linkChain, collider, options).then((request) => request(this.axios, this.basePath));
4987
5223
  }
4988
5224
  /**
4989
- * Stores the tool. - If the tool does not exist, it will be created. - If the tool exists, it will be updated.
5225
+ * **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.
4990
5226
  * @summary Store Tool
4991
5227
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4992
5228
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -5207,7 +5443,7 @@ const StoreCollisionSetupsApiFactory = function(configuration, basePath, axios)
5207
5443
  */
5208
5444
  var StoreCollisionSetupsApi = class extends BaseAPI {
5209
5445
  /**
5210
- * Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
5446
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
5211
5447
  * @summary Delete Collision Setup
5212
5448
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5213
5449
  * @param {string} setup Identifier of the collision setup
@@ -5218,7 +5454,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5218
5454
  return StoreCollisionSetupsApiFp(this.configuration).deleteStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
5219
5455
  }
5220
5456
  /**
5221
- * Returns the stored collision setup.
5457
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored collision setup.
5222
5458
  * @summary Get Collision Setup
5223
5459
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5224
5460
  * @param {string} setup Identifier of the collision setup
@@ -5229,7 +5465,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5229
5465
  return StoreCollisionSetupsApiFp(this.configuration).getStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
5230
5466
  }
5231
5467
  /**
5232
- * Returns a list of stored collision setups.
5468
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of stored collision setups.
5233
5469
  * @summary List Collision Setups
5234
5470
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5235
5471
  * @param {*} [options] Override http request option.
@@ -5239,7 +5475,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5239
5475
  return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetups(cell, options).then((request) => request(this.axios, this.basePath));
5240
5476
  }
5241
5477
  /**
5242
- * Returns a list of keys for stored collision setups.
5478
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored collision setups.
5243
5479
  * @summary List Collision Setup Keys
5244
5480
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5245
5481
  * @param {*} [options] Override http request option.
@@ -5249,7 +5485,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5249
5485
  return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetupsKeys(cell, options).then((request) => request(this.axios, this.basePath));
5250
5486
  }
5251
5487
  /**
5252
- * Stores collision setup. - If the collision setup does not exist, it will be created. - If the collision setup exists, it will be updated.
5488
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores collision setup. - If the collision setup does not exist, it will be created. - If the collision setup exists, it will be updated.
5253
5489
  * @summary Store Collision Setup
5254
5490
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5255
5491
  * @param {string} setup Identifier of the collision setup
@@ -5508,7 +5744,7 @@ const StoreObjectApiFactory = function(configuration, basePath, axios) {
5508
5744
  */
5509
5745
  var StoreObjectApi = class extends BaseAPI {
5510
5746
  /**
5511
- * Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
5747
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
5512
5748
  * @summary Clear all Objects
5513
5749
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5514
5750
  * @param {*} [options] Override http request option.
@@ -5518,7 +5754,7 @@ var StoreObjectApi = class extends BaseAPI {
5518
5754
  return StoreObjectApiFp(this.configuration).clearAllObjects(cell, options).then((request) => request(this.axios, this.basePath));
5519
5755
  }
5520
5756
  /**
5521
- * Delete an object <!-- theme: danger --> > This will delete persistently stored data.
5757
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete an object <!-- theme: danger --> > This will delete persistently stored data.
5522
5758
  * @summary Delete Object
5523
5759
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5524
5760
  * @param {string} key
@@ -5529,7 +5765,7 @@ var StoreObjectApi = class extends BaseAPI {
5529
5765
  return StoreObjectApiFp(this.configuration).deleteObject(cell, key, options).then((request) => request(this.axios, this.basePath));
5530
5766
  }
5531
5767
  /**
5532
- * Returns content and metadata of a stored object.
5768
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Returns content and metadata of a stored object.
5533
5769
  * @summary Get Object
5534
5770
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5535
5771
  * @param {string} key
@@ -5540,7 +5776,7 @@ var StoreObjectApi = class extends BaseAPI {
5540
5776
  return StoreObjectApiFp(this.configuration).getObject(cell, key, options).then((request) => request(this.axios, this.basePath));
5541
5777
  }
5542
5778
  /**
5543
- * Returns metadata. Object content is not returned.
5779
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Returns metadata. Object content is not returned.
5544
5780
  * @summary Get Object Metadata
5545
5781
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5546
5782
  * @param {string} key
@@ -5551,7 +5787,7 @@ var StoreObjectApi = class extends BaseAPI {
5551
5787
  return StoreObjectApiFp(this.configuration).getObjectMetadata(cell, key, options).then((request) => request(this.axios, this.basePath));
5552
5788
  }
5553
5789
  /**
5554
- * List the keys for all objects.
5790
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ List the keys for all objects.
5555
5791
  * @summary List all Object Keys
5556
5792
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5557
5793
  * @param {*} [options] Override http request option.
@@ -5561,7 +5797,7 @@ var StoreObjectApi = class extends BaseAPI {
5561
5797
  return StoreObjectApiFp(this.configuration).listAllObjectKeys(cell, options).then((request) => request(this.axios, this.basePath));
5562
5798
  }
5563
5799
  /**
5564
- * 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.
5800
+ * **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.
5565
5801
  * @summary Store Object
5566
5802
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5567
5803
  * @param {string} key
@@ -6014,7 +6250,7 @@ const SystemApiFactory = function(configuration, basePath, axios) {
6014
6250
  */
6015
6251
  var SystemApi = class extends BaseAPI {
6016
6252
  /**
6017
- * Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
6253
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
6018
6254
  * @summary Retrieve Configuration Backup
6019
6255
  * @param {Array<string>} [resources] List of resource identifiers to include in the retrieval.
6020
6256
  * @param {{ [key: string]: string; }} [metadata] Additional metadata to add to the backup
@@ -6025,7 +6261,7 @@ var SystemApi = class extends BaseAPI {
6025
6261
  return SystemApiFp(this.configuration).backupConfiguration(resources, metadata, options).then((request) => request(this.axios, this.basePath));
6026
6262
  }
6027
6263
  /**
6028
- * Check if a more recent Wandelbots NOVA Version is available.
6264
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Check if a more recent Wandelbots NOVA Version is available.
6029
6265
  * @summary Check update
6030
6266
  * @param {ReleaseChannel} channel
6031
6267
  * @param {*} [options] Override http request option.
@@ -6035,7 +6271,7 @@ var SystemApi = class extends BaseAPI {
6035
6271
  return SystemApiFp(this.configuration).checkNovaVersionUpdate(channel, options).then((request) => request(this.axios, this.basePath));
6036
6272
  }
6037
6273
  /**
6038
- * <!-- theme: danger --> > **Experimental** Performs an address resolution protocol (ARP) scan on the specified interface/classless inter-domain routing (CIDR) and returns all discovered devices on the network by CIDR notation.
6274
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Performs an address resolution protocol (ARP) scan on the specified interface/classless inter-domain routing (CIDR) and returns all discovered devices on the network by CIDR notation.
6039
6275
  * @summary Get ARP-Scan
6040
6276
  * @param {string} [_interface]
6041
6277
  * @param {string} [cidr]
@@ -6047,7 +6283,7 @@ var SystemApi = class extends BaseAPI {
6047
6283
  return SystemApiFp(this.configuration).getArpScan(_interface, cidr, timeout, options).then((request) => request(this.axios, this.basePath));
6048
6284
  }
6049
6285
  /**
6050
- * Retrieves the status of a configuration backup. The status can only be requested for 5 minutes after backup creation. After 5 minutes, 404 is returned.
6286
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves the status of a configuration backup. The status can only be requested for 5 minutes after backup creation. After 5 minutes, 404 is returned.
6051
6287
  * @summary Retrieve Backup Status
6052
6288
  * @param {string} operationId
6053
6289
  * @param {*} [options] Override http request option.
@@ -6057,7 +6293,7 @@ var SystemApi = class extends BaseAPI {
6057
6293
  return SystemApiFp(this.configuration).getConfigurationBackupStatus(operationId, options).then((request) => request(this.axios, this.basePath));
6058
6294
  }
6059
6295
  /**
6060
- * 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.
6296
+ * **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.
6061
6297
  * @summary Download Diagnosis Package
6062
6298
  * @param {*} [options] Override http request option.
6063
6299
  * @throws {RequiredError}
@@ -6066,7 +6302,7 @@ var SystemApi = class extends BaseAPI {
6066
6302
  return SystemApiFp(this.configuration).getDiagnosePackage(options).then((request) => request(this.axios, this.basePath));
6067
6303
  }
6068
6304
  /**
6069
- * <!-- theme: danger --> > **Experimental** Get the network interfaces of the system.
6305
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the network interfaces of the system.
6070
6306
  * @summary Network Interfaces
6071
6307
  * @param {*} [options] Override http request option.
6072
6308
  * @throws {RequiredError}
@@ -6075,7 +6311,7 @@ var SystemApi = class extends BaseAPI {
6075
6311
  return SystemApiFp(this.configuration).getNetworkInterfaces(options).then((request) => request(this.axios, this.basePath));
6076
6312
  }
6077
6313
  /**
6078
- * <!-- theme: danger --> > **Experimental** Get the current state of the network.
6314
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the current state of the network.
6079
6315
  * @summary Network State
6080
6316
  * @param {*} [options] Override http request option.
6081
6317
  * @throws {RequiredError}
@@ -6084,7 +6320,7 @@ var SystemApi = class extends BaseAPI {
6084
6320
  return SystemApiFp(this.configuration).getNetworkState(options).then((request) => request(this.axios, this.basePath));
6085
6321
  }
6086
6322
  /**
6087
- * Get the status of all system services.
6323
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the status of all system services.
6088
6324
  * @summary Wandelbots NOVA status
6089
6325
  * @param {*} [options] Override http request option.
6090
6326
  * @throws {RequiredError}
@@ -6093,7 +6329,7 @@ var SystemApi = class extends BaseAPI {
6093
6329
  return SystemApiFp(this.configuration).getSystemStatus(options).then((request) => request(this.axios, this.basePath));
6094
6330
  }
6095
6331
  /**
6096
- * Get the current Wandelbots NOVA version.
6332
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the current Wandelbots NOVA version.
6097
6333
  * @summary Wandelbots NOVA Version
6098
6334
  * @param {*} [options] Override http request option.
6099
6335
  * @throws {RequiredError}
@@ -6102,7 +6338,7 @@ var SystemApi = class extends BaseAPI {
6102
6338
  return SystemApiFp(this.configuration).getSystemVersion(options).then((request) => request(this.axios, this.basePath));
6103
6339
  }
6104
6340
  /**
6105
- * Retrieves a list of all available configuration resources for backup purposes.
6341
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves a list of all available configuration resources for backup purposes.
6106
6342
  * @summary List Configuration Resources
6107
6343
  * @param {*} [options] Override http request option.
6108
6344
  * @throws {RequiredError}
@@ -6111,7 +6347,7 @@ var SystemApi = class extends BaseAPI {
6111
6347
  return SystemApiFp(this.configuration).listConfigurationResources(options).then((request) => request(this.axios, this.basePath));
6112
6348
  }
6113
6349
  /**
6114
- * Restores a previously backed up configuration. If an empty array of resources is provided, all resources from the backup will be restored.
6350
+ * **Required permissions:** `can_restore_system` - Restore system backups ___ Restores a previously backed up configuration. If an empty array of resources is provided, all resources from the backup will be restored.
6115
6351
  * @summary Restore Configuration Backup
6116
6352
  * @param {File} body Backup file stream containing the configuration to restore.
6117
6353
  * @param {Array<string>} [resources] List of resource identifiers to restore. If empty, all resources from the backup will be restored.
@@ -6122,7 +6358,7 @@ var SystemApi = class extends BaseAPI {
6122
6358
  return SystemApiFp(this.configuration).restoreConfiguration(body, resources, options).then((request) => request(this.axios, this.basePath));
6123
6359
  }
6124
6360
  /**
6125
- * 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 the update fails, the previous Wandelbots NOVA version is restored. System updates only apply to cells without an explicit chart version. Pinned versions are always preserved; setting `update_cells=false` pins unversioned cells to the current system version before updating.
6361
+ * **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 the update fails, the previous Wandelbots NOVA version is restored. System updates only apply to cells without an explicit chart version. Pinned versions are always preserved; setting `update_cells=false` pins unversioned cells to the current system version before updating.
6126
6362
  * @summary Update Wandelbots NOVA version
6127
6363
  * @param {UpdateNovaVersionRequest} updateNovaVersionRequest
6128
6364
  * @param {*} [options] Override http request option.
@@ -6345,7 +6581,7 @@ const TrajectoryCachingApiFactory = function(configuration, basePath, axios) {
6345
6581
  */
6346
6582
  var TrajectoryCachingApi = class extends BaseAPI {
6347
6583
  /**
6348
- * Loads and validates the data of a trajectory into the execution cache, rendering the trajectory executable. <!-- theme: info --> > #### NOTE > > Using the trajectory cache is an optional performance optimization. It is not necessary to use the cache to execute trajectories. The response contains the result of the validation of the trajectory. Validation can lead to three different results: - Fully valid: The whole trajectory can be executed from start to end. The response will contain an unique identifier which is used to move the robot. - Partially valid: Only parts of the trajectory can be executed. The response will contain an unique identifier to move the robot and information about the failure for the part that is not executable. - Invalid: The trajectory can not be executed. The response will tell you the reason of failure. If the trajectory is at least partially valid, the parts of the trajectory that are valid can be executed using the [executeTrajectory](#/operations/executeTrajectory) endpoint. The workflow is as follows: - Generate a trajectory with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the trajectory to this endpoint to validate it and get a unique identifier for it, - The unique identifier will appear in the list of available trajectories, see [listTrajectories](#/operations/listTrajectories) endpoint, if it is at least partially executable. - Execute your trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint.
6584
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Loads and validates the data of a trajectory into the execution cache, rendering the trajectory executable. <!-- theme: info --> > #### NOTE > > Using the trajectory cache is an optional performance optimization. It is not necessary to use the cache to execute trajectories. The response contains the result of the validation of the trajectory. Validation can lead to three different results: - Fully valid: The whole trajectory can be executed from start to end. The response will contain an unique identifier which is used to move the robot. - Partially valid: Only parts of the trajectory can be executed. The response will contain an unique identifier to move the robot and information about the failure for the part that is not executable. - Invalid: The trajectory can not be executed. The response will tell you the reason of failure. If the trajectory is at least partially valid, the parts of the trajectory that are valid can be executed using the [executeTrajectory](#/operations/executeTrajectory) endpoint. The workflow is as follows: - Generate a trajectory with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the trajectory to this endpoint to validate it and get a unique identifier for it, - The unique identifier will appear in the list of available trajectories, see [listTrajectories](#/operations/listTrajectories) endpoint, if it is at least partially executable. - Execute your trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint.
6349
6585
  * @summary Add Trajectory
6350
6586
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6351
6587
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6357,7 +6593,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6357
6593
  return TrajectoryCachingApiFp(this.configuration).addTrajectory(cell, controller, addTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
6358
6594
  }
6359
6595
  /**
6360
- * Clear the trajectory cache.
6596
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Clear the trajectory cache.
6361
6597
  * @summary Clear Trajectories
6362
6598
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6363
6599
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6368,7 +6604,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6368
6604
  return TrajectoryCachingApiFp(this.configuration).clearTrajectories(cell, controller, options).then((request) => request(this.axios, this.basePath));
6369
6605
  }
6370
6606
  /**
6371
- * Delete a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories. Trajectories are removed automatically if the motion group or the corresponding controller is disconnected.
6607
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Delete a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories. Trajectories are removed automatically if the motion group or the corresponding controller is disconnected.
6372
6608
  * @summary Delete Trajectory
6373
6609
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6374
6610
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6380,7 +6616,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6380
6616
  return TrajectoryCachingApiFp(this.configuration).deleteTrajectory(cell, controller, trajectory, options).then((request) => request(this.axios, this.basePath));
6381
6617
  }
6382
6618
  /**
6383
- * Get a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories.
6619
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories.
6384
6620
  * @summary Get Trajectory
6385
6621
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6386
6622
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6392,7 +6628,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6392
6628
  return TrajectoryCachingApiFp(this.configuration).getTrajectory(cell, controller, trajectory, options).then((request) => request(this.axios, this.basePath));
6393
6629
  }
6394
6630
  /**
6395
- * List currently cached trajectories. Use [addTrajectory](#/operations/addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them. Trajectories are removed if the corresponding motion group or controller disconnects.
6631
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List currently cached trajectories. Use [addTrajectory](#/operations/addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them. Trajectories are removed if the corresponding motion group or controller disconnects.
6396
6632
  * @summary List Trajectories
6397
6633
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6398
6634
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6464,7 +6700,7 @@ const TrajectoryExecutionApiFactory = function(configuration, basePath, axios) {
6464
6700
  */
6465
6701
  var TrajectoryExecutionApi = class extends BaseAPI {
6466
6702
  /**
6467
- * <!-- theme: success --> > Websocket endpoint Provides execution control over a previously [planned trajectory](#/operations/planTrajectory). Enables the caller to attach input/output actions to the trajectory. ### Movement behavior | Virtual controller | Physical controller | |------------------|-------------------| | Desired joint configurations are commanded to each motion group and **applied immediately** | Move to desired **actual joint configuration**, **if possible** | ### 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 [planTrajectory](#/operations/planTrajectory). - 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 are at start location specified with `InitializeMovementRequest`. - Use [executeToTrajectory](#/operations/executeToTrajectory) to move the robot to the start location. ### 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. Pausing the current movement enables you to send another `InitializeMovementRequest` to execute another trajectory on the same connection. #### 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 To monitor the state of the movement, listen to the [state stream](#/operations/streamMotionGroupState). The state is published via nats as well. Field `execute` in the `MotionGroupState` indicates whether a movement is ongoing and carries execution details. Each request has a corresponding acknowledgment response. They signal success or failure of the request. Especially for `PauseMovementResponse`, it does not signal the end of the movement. Additionally, `MovementError` messages can be sent in case of unexpected errors during the execution, 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.
6703
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Provides execution control over a previously [planned trajectory](#/operations/planTrajectory). Enables the caller to attach input/output actions to the trajectory. ### Movement behavior | Virtual controller | Physical controller | |------------------|-------------------| | Desired joint configurations are commanded to each motion group and **applied immediately** | Move to desired **actual joint configuration**, **if possible** | ### 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 [planTrajectory](#/operations/planTrajectory). - 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 are at start location specified with `InitializeMovementRequest`. - Use [executeToTrajectory](#/operations/executeToTrajectory) to move the robot to the start location. ### 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. Pausing the current movement enables you to send another `InitializeMovementRequest` to execute another trajectory on the same connection. #### 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 To monitor the state of the movement, listen to the [state stream](#/operations/streamMotionGroupState). The state is published via nats as well. Field `execute` in the `MotionGroupState` indicates whether a movement is ongoing and carries execution details. Each request has a corresponding acknowledgment response. They signal success or failure of the request. Especially for `PauseMovementResponse`, it does not signal the end of the movement. Additionally, `MovementError` messages can be sent in case of unexpected errors during the execution, 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.
6468
6704
  * @summary Execute Trajectory
6469
6705
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6470
6706
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6567,6 +6803,35 @@ const TrajectoryPlanningApiAxiosParamCreator = function(configuration) {
6567
6803
  url: toPathString(localVarUrlObj),
6568
6804
  options: localVarRequestOptions
6569
6805
  };
6806
+ },
6807
+ searchCollisionFreeMultiMotionGroup: async (cell, multiSearchCollisionFreeRequest, options = {}) => {
6808
+ assertParamExists("searchCollisionFreeMultiMotionGroup", "cell", cell);
6809
+ assertParamExists("searchCollisionFreeMultiMotionGroup", "multiSearchCollisionFreeRequest", multiSearchCollisionFreeRequest);
6810
+ const localVarPath = `/experimental/cells/{cell}/trajectory-planning/search-collision-free-multi-motion-group`.replace(`{cell}`, encodeURIComponent(String(cell)));
6811
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
6812
+ let baseOptions;
6813
+ if (configuration) baseOptions = configuration.baseOptions;
6814
+ const localVarRequestOptions = {
6815
+ method: "POST",
6816
+ ...baseOptions,
6817
+ ...options
6818
+ };
6819
+ const localVarHeaderParameter = {};
6820
+ const localVarQueryParameter = {};
6821
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
6822
+ localVarHeaderParameter["Content-Type"] = "application/json";
6823
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
6824
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6825
+ localVarRequestOptions.headers = {
6826
+ ...localVarHeaderParameter,
6827
+ ...headersFromBaseOptions,
6828
+ ...options.headers
6829
+ };
6830
+ localVarRequestOptions.data = serializeDataIfNeeded(multiSearchCollisionFreeRequest, localVarRequestOptions, configuration);
6831
+ return {
6832
+ url: toPathString(localVarUrlObj),
6833
+ options: localVarRequestOptions
6834
+ };
6570
6835
  }
6571
6836
  };
6572
6837
  };
@@ -6593,6 +6858,12 @@ const TrajectoryPlanningApiFp = function(configuration) {
6593
6858
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6594
6859
  const localVarOperationServerBasePath = operationServerMap["TrajectoryPlanningApi.planTrajectory"]?.[localVarOperationServerIndex]?.url;
6595
6860
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
6861
+ },
6862
+ async searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6863
+ const localVarAxiosArgs = await localVarAxiosParamCreator.searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options);
6864
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6865
+ const localVarOperationServerBasePath = operationServerMap["TrajectoryPlanningApi.searchCollisionFreeMultiMotionGroup"]?.[localVarOperationServerIndex]?.url;
6866
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
6596
6867
  }
6597
6868
  };
6598
6869
  };
@@ -6610,6 +6881,9 @@ const TrajectoryPlanningApiFactory = function(configuration, basePath, axios) {
6610
6881
  },
6611
6882
  planTrajectory(cell, planTrajectoryRequest, options) {
6612
6883
  return localVarFp.planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(axios, basePath));
6884
+ },
6885
+ searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6886
+ return localVarFp.searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options).then((request) => request(axios, basePath));
6613
6887
  }
6614
6888
  };
6615
6889
  };
@@ -6618,7 +6892,7 @@ const TrajectoryPlanningApiFactory = function(configuration, basePath, axios) {
6618
6892
  */
6619
6893
  var TrajectoryPlanningApi = class extends BaseAPI {
6620
6894
  /**
6621
- * <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
6895
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
6622
6896
  * @summary Merge Trajectories
6623
6897
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6624
6898
  * @param {MergeTrajectoriesRequest} mergeTrajectoriesRequest
@@ -6629,7 +6903,7 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6629
6903
  return TrajectoryPlanningApiFp(this.configuration).mergeTrajectories(cell, mergeTrajectoriesRequest, options).then((request) => request(this.axios, this.basePath));
6630
6904
  }
6631
6905
  /**
6632
- * Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
6906
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
6633
6907
  * @summary Plan Collision-Free Trajectory
6634
6908
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6635
6909
  * @param {PlanCollisionFreeRequest} planCollisionFreeRequest
@@ -6640,7 +6914,7 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6640
6914
  return TrajectoryPlanningApiFp(this.configuration).planCollisionFree(cell, planCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
6641
6915
  }
6642
6916
  /**
6643
- * 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. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory is not executable, the response will contain the joint trajectory up until the error, e.g., all samples until a collision occurs. <!-- theme: info --> > #### 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.
6917
+ * **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. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory is not executable, the response will contain the joint trajectory up until the error, e.g., all samples until a collision occurs. <!-- theme: info --> > #### 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.
6644
6918
  * @summary Plan Trajectory
6645
6919
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6646
6920
  * @param {PlanTrajectoryRequest} planTrajectoryRequest
@@ -6650,6 +6924,17 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6650
6924
  planTrajectory(cell, planTrajectoryRequest, options) {
6651
6925
  return TrajectoryPlanningApiFp(this.configuration).planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
6652
6926
  }
6927
+ /**
6928
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Searches collision-free trajectories for multiple motion groups simultaneously within a cell. This is the multi-robot variant of collision-free path search — it coordinates paths so that several motion groups, e.g., multiple robot arms, can move from start to target positions without colliding with each other or with the environment. The caller provides per-motion-group setups (robot model, cycle time, mounting, TCP offset, limits, payload, collision geometry), per-motion-group point-to-point path definitions (start and target joint positions), optional cross-group collision setups defining which link-chain/tool colliders to consider between groups plus static environment colliders, and optional RRT-Connect algorithm settings (max iterations, step size, smoothing, blending). On success the response contains a time-synchronized trajectory with joint positions per motion group at shared timestamps so their motions are temporally coordinated. On failure it returns feedback indicating why planning failed, e.g., max iterations exceeded.
6929
+ * @summary Search Collision-Free Trajectories for Multiple Motion Groups
6930
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
6931
+ * @param {MultiSearchCollisionFreeRequest} multiSearchCollisionFreeRequest
6932
+ * @param {*} [options] Override http request option.
6933
+ * @throws {RequiredError}
6934
+ */
6935
+ searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6936
+ return TrajectoryPlanningApiFp(this.configuration).searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
6937
+ }
6653
6938
  };
6654
6939
  /**
6655
6940
  * VersionApi - axios parameter creator
@@ -6706,7 +6991,7 @@ const VersionApiFactory = function(configuration, basePath, axios) {
6706
6991
  */
6707
6992
  var VersionApi = class extends BaseAPI {
6708
6993
  /**
6709
- * Retrieves the version of the NOVA API.
6994
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Retrieves the version of the NOVA API.
6710
6995
  * @summary API Version
6711
6996
  * @param {*} [options] Override http request option.
6712
6997
  * @throws {RequiredError}
@@ -6781,6 +7066,36 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
6781
7066
  options: localVarRequestOptions
6782
7067
  };
6783
7068
  },
7069
+ addVirtualControllerSafetyZone: async (cell, controller, safetyZone, options = {}) => {
7070
+ assertParamExists("addVirtualControllerSafetyZone", "cell", cell);
7071
+ assertParamExists("addVirtualControllerSafetyZone", "controller", controller);
7072
+ assertParamExists("addVirtualControllerSafetyZone", "safetyZone", safetyZone);
7073
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller)));
7074
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7075
+ let baseOptions;
7076
+ if (configuration) baseOptions = configuration.baseOptions;
7077
+ const localVarRequestOptions = {
7078
+ method: "POST",
7079
+ ...baseOptions,
7080
+ ...options
7081
+ };
7082
+ const localVarHeaderParameter = {};
7083
+ const localVarQueryParameter = {};
7084
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7085
+ localVarHeaderParameter["Content-Type"] = "application/json";
7086
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7087
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7088
+ localVarRequestOptions.headers = {
7089
+ ...localVarHeaderParameter,
7090
+ ...headersFromBaseOptions,
7091
+ ...options.headers
7092
+ };
7093
+ localVarRequestOptions.data = serializeDataIfNeeded(safetyZone, localVarRequestOptions, configuration);
7094
+ return {
7095
+ url: toPathString(localVarUrlObj),
7096
+ options: localVarRequestOptions
7097
+ };
7098
+ },
6784
7099
  addVirtualControllerTcp: async (cell, controller, motionGroup, tcp, robotTcpData, options = {}) => {
6785
7100
  assertParamExists("addVirtualControllerTcp", "cell", cell);
6786
7101
  assertParamExists("addVirtualControllerTcp", "controller", controller);
@@ -6870,6 +7185,34 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
6870
7185
  options: localVarRequestOptions
6871
7186
  };
6872
7187
  },
7188
+ deleteVirtualControllerSafetyZone: async (cell, controller, id, options = {}) => {
7189
+ assertParamExists("deleteVirtualControllerSafetyZone", "cell", cell);
7190
+ assertParamExists("deleteVirtualControllerSafetyZone", "controller", controller);
7191
+ assertParamExists("deleteVirtualControllerSafetyZone", "id", id);
7192
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones/{id}`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller))).replace(`{id}`, encodeURIComponent(String(id)));
7193
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7194
+ let baseOptions;
7195
+ if (configuration) baseOptions = configuration.baseOptions;
7196
+ const localVarRequestOptions = {
7197
+ method: "DELETE",
7198
+ ...baseOptions,
7199
+ ...options
7200
+ };
7201
+ const localVarHeaderParameter = {};
7202
+ const localVarQueryParameter = {};
7203
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7204
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7205
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7206
+ localVarRequestOptions.headers = {
7207
+ ...localVarHeaderParameter,
7208
+ ...headersFromBaseOptions,
7209
+ ...options.headers
7210
+ };
7211
+ return {
7212
+ url: toPathString(localVarUrlObj),
7213
+ options: localVarRequestOptions
7214
+ };
7215
+ },
6873
7216
  deleteVirtualControllerTcp: async (cell, controller, motionGroup, tcp, options = {}) => {
6874
7217
  assertParamExists("deleteVirtualControllerTcp", "cell", cell);
6875
7218
  assertParamExists("deleteVirtualControllerTcp", "controller", controller);
@@ -7036,6 +7379,33 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
7036
7379
  options: localVarRequestOptions
7037
7380
  };
7038
7381
  },
7382
+ getVirtualControllerSafetyZones: async (cell, controller, options = {}) => {
7383
+ assertParamExists("getVirtualControllerSafetyZones", "cell", cell);
7384
+ assertParamExists("getVirtualControllerSafetyZones", "controller", controller);
7385
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller)));
7386
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7387
+ let baseOptions;
7388
+ if (configuration) baseOptions = configuration.baseOptions;
7389
+ const localVarRequestOptions = {
7390
+ method: "GET",
7391
+ ...baseOptions,
7392
+ ...options
7393
+ };
7394
+ const localVarHeaderParameter = {};
7395
+ const localVarQueryParameter = {};
7396
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7397
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7398
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7399
+ localVarRequestOptions.headers = {
7400
+ ...localVarHeaderParameter,
7401
+ ...headersFromBaseOptions,
7402
+ ...options.headers
7403
+ };
7404
+ return {
7405
+ url: toPathString(localVarUrlObj),
7406
+ options: localVarRequestOptions
7407
+ };
7408
+ },
7039
7409
  listVirtualControllerCoordinateSystems: async (cell, controller, options = {}) => {
7040
7410
  assertParamExists("listVirtualControllerCoordinateSystems", "cell", cell);
7041
7411
  assertParamExists("listVirtualControllerCoordinateSystems", "controller", controller);
@@ -7230,6 +7600,12 @@ const VirtualControllerApiFp = function(configuration) {
7230
7600
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.addVirtualControllerMotionGroup"]?.[localVarOperationServerIndex]?.url;
7231
7601
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7232
7602
  },
7603
+ async addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7604
+ const localVarAxiosArgs = await localVarAxiosParamCreator.addVirtualControllerSafetyZone(cell, controller, safetyZone, options);
7605
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7606
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.addVirtualControllerSafetyZone"]?.[localVarOperationServerIndex]?.url;
7607
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7608
+ },
7233
7609
  async addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options) {
7234
7610
  const localVarAxiosArgs = await localVarAxiosParamCreator.addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options);
7235
7611
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7248,6 +7624,12 @@ const VirtualControllerApiFp = function(configuration) {
7248
7624
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.deleteVirtualControllerMotionGroup"]?.[localVarOperationServerIndex]?.url;
7249
7625
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7250
7626
  },
7627
+ async deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7628
+ const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVirtualControllerSafetyZone(cell, controller, id, options);
7629
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7630
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.deleteVirtualControllerSafetyZone"]?.[localVarOperationServerIndex]?.url;
7631
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7632
+ },
7251
7633
  async deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options) {
7252
7634
  const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options);
7253
7635
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7284,6 +7666,12 @@ const VirtualControllerApiFp = function(configuration) {
7284
7666
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.getVirtualControllerMounting"]?.[localVarOperationServerIndex]?.url;
7285
7667
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7286
7668
  },
7669
+ async getVirtualControllerSafetyZones(cell, controller, options) {
7670
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getVirtualControllerSafetyZones(cell, controller, options);
7671
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7672
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.getVirtualControllerSafetyZones"]?.[localVarOperationServerIndex]?.url;
7673
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7674
+ },
7287
7675
  async listVirtualControllerCoordinateSystems(cell, controller, options) {
7288
7676
  const localVarAxiosArgs = await localVarAxiosParamCreator.listVirtualControllerCoordinateSystems(cell, controller, options);
7289
7677
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7334,6 +7722,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios) {
7334
7722
  addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options) {
7335
7723
  return localVarFp.addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options).then((request) => request(axios, basePath));
7336
7724
  },
7725
+ addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7726
+ return localVarFp.addVirtualControllerSafetyZone(cell, controller, safetyZone, options).then((request) => request(axios, basePath));
7727
+ },
7337
7728
  addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options) {
7338
7729
  return localVarFp.addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options).then((request) => request(axios, basePath));
7339
7730
  },
@@ -7343,6 +7734,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios) {
7343
7734
  deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options) {
7344
7735
  return localVarFp.deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options).then((request) => request(axios, basePath));
7345
7736
  },
7737
+ deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7738
+ return localVarFp.deleteVirtualControllerSafetyZone(cell, controller, id, options).then((request) => request(axios, basePath));
7739
+ },
7346
7740
  deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options) {
7347
7741
  return localVarFp.deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options).then((request) => request(axios, basePath));
7348
7742
  },
@@ -7361,6 +7755,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios) {
7361
7755
  getVirtualControllerMounting(cell, controller, motionGroup, options) {
7362
7756
  return localVarFp.getVirtualControllerMounting(cell, controller, motionGroup, options).then((request) => request(axios, basePath));
7363
7757
  },
7758
+ getVirtualControllerSafetyZones(cell, controller, options) {
7759
+ return localVarFp.getVirtualControllerSafetyZones(cell, controller, options).then((request) => request(axios, basePath));
7760
+ },
7364
7761
  listVirtualControllerCoordinateSystems(cell, controller, options) {
7365
7762
  return localVarFp.listVirtualControllerCoordinateSystems(cell, controller, options).then((request) => request(axios, basePath));
7366
7763
  },
@@ -7386,7 +7783,7 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios) {
7386
7783
  */
7387
7784
  var VirtualControllerApi = class extends BaseAPI {
7388
7785
  /**
7389
- * Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to 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 available for visualization or program execution.
7786
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to 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 available for visualization or program execution.
7390
7787
  * @summary Add Coordinate Systems
7391
7788
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7392
7789
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7399,7 +7796,7 @@ var VirtualControllerApi = class extends BaseAPI {
7399
7796
  return VirtualControllerApiFp(this.configuration).addVirtualControllerCoordinateSystem(cell, controller, coordinateSystem, coordinateSystemData, options).then((request) => request(this.axios, this.basePath));
7400
7797
  }
7401
7798
  /**
7402
- * Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller\'s configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to 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 motion group may not yet be available for use.
7799
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller\'s configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to 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 motion group may not yet be available for use.
7403
7800
  * @summary Add Motion Group
7404
7801
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7405
7802
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7411,7 +7808,19 @@ var VirtualControllerApi = class extends BaseAPI {
7411
7808
  return VirtualControllerApiFp(this.configuration).addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options).then((request) => request(this.axios, this.basePath));
7412
7809
  }
7413
7810
  /**
7414
- * Adds a new 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. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
7811
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a new safety zone to the virtual robot controller. Safety zones define geometric boundaries that restrict or permit robot motion in 3D space. Each zone has a `geometry` that defines its shape, and two flags that control its behavior: - **`restricted: true`** the robot is not allowed to enter this zone. - **`inverted: true`** the zone applies to the **outside** of the shape, meaning the shape defines the *allowed* region; everything outside is the zone. Combined with `restricted: true`, the robot must stay **inside** the shape. Common combinations: | `restricted` | `inverted` | Effect | |---|---|---| | `true` | `false` | Keep-out zone, the robot cannot enter the shape, e.g., obstacle, table, wall | | `true` | `true` | Keep-in zone, the robot must stay inside the shape, e.g., workspace envelope / cell boundary | The `mg_uid` field specifies which motion group the safety zone is enforced for and must match an existing motion group UID on the controller. The `uid_ref_cs` field defines the coordinate system in which the geometry coordinates are expressed. The coordinate system must be defined on the controller beforehand. If empty (`\"\"`), the World coordinate system is used. Using an incorrect coordinate system places the safety zone in a different physical location. --- ## Geometry Shape Reference All coordinates are in **millimetres (mm)**. Choose the shape that best fits the physical boundary. --- ### Box A rectangular cuboid (box) defined by its **center point** and **three face centers** (`neighbour`). Each face center is the center of one of the three principal faces of the box and encodes both the size and orientation of the box. The distance from the center to each face center equals half the edge length along that axis. This format is used directly by robot controllers (FANUC, KUKA, etc.) and supports arbitrary orientations, including left-handed coordinate systems that parametric (size + quaternion) formats cannot represent. **When to use:** Cell workspace envelope, machine enclosure, table, rectangular obstacle, pallet zone. **How to define:** ``` center → geometric center of the box [x, y, z] neighbour = [ x1, y1, z1, ← center of the face along the first axis x2, y2, z2, ← center of the face along the second axis x3, y3, z3 ← center of the face along the third axis ] edge_length_i = 2 × ||neighbour_i − center|| ``` For an axis-aligned box with `center = [cx, cy, cz]` and half-sizes `[hx, hy, hz]`: ``` neighbour = [cx+hx, cy, cz, cx, cy+hy, cz, cx, cy, cz+hz] ``` --- ### Prism An extruded polygon is a 2D closed polygon (defined in the XY plane) extruded vertically between `bottom` and `top` Z coordinates. The polygon can be convex or concave. **When to use:** Irregular floor-plan areas (aisles, loading bays, L-shaped zones), conveyor corridors, or any zone with a non-rectangular footprint. **How to define:** ``` point = [x1, y1, x2, y2, x3, y3, ...] ← 2D vertices (XY), flattened, ≥ 3 points top = upper Z bound [mm] bottom = lower Z bound [mm] ``` Points must form a closed polygon; the last point implicitly connects to the first. --- ### Sphere A perfect sphere defined by its **center point** and **radius**. **When to use:** Protection zones around sensors, cameras, workpieces, point-like obstacles, singularity avoidance zones around the robot base. **How to define:** ``` center = [x, y, z] ← center of the sphere [mm] radius ← radius [mm] ``` --- ### Capsule A cylinder with hemispherical caps at each end, defined by two axis endpoints (`top`, `bottom`) and a **radius**. The axis can have any orientation. **When to use:** Pipes, cable trays, vertical columns, horizontal beams, or tube-shaped obstacles. **How to define:** ``` top = [x, y, z] ← center of the top hemisphere [mm] bottom = [x, y, z] ← center of the bottom hemisphere [mm] radius ← cylinder + hemisphere radius [mm] ``` The total length of the capsule is `||top − bottom|| + 2 × radius`. --- ### Lozenge A rounded rectangle (stadium/discorectangle shape) in a plane, defined by a **center pose**, two **dimensions**, and a **corner radius**. The plane orientation is defined by the quaternion in `center`. **When to use:** Conveyor belt surfaces, worktables with rounded edges, or flat rectangular zones in arbitrary orientations. **How to define:** ``` center.x/y/z ← position of the center [mm] center.qx/qy/qz/qw ← orientation as unit quaternion (identity = XY plane) x_dimension ← total length along local X axis [mm] y_dimension ← total width along local Y axis [mm] radius ← corner rounding radius [mm] ``` For a horizontal lozenge, use identity quaternion `(qx=0, qy=0, qz=0, qw=1)`. --- ### Plane A mathematical half-space plane defined by its **3D vertices**. All vertices must be coplanar. The plane is unbounded (infinite extent in all directions parallel to the surface). The points define the plane\'s orientation and position only. **When to use:** Floor boundaries, virtual walls, tilted surfaces, e.g., ramps, inclined conveyors, or flat custom barriers. **How to define:** ``` point = [x1, y1, z1, x2, y2, z2, x3, y3, z3, ...] ← 3D vertices, flattened, ≥ 3 points ``` Points must be coplanar and form a closed polygon. --- <!-- theme: info --> > #### NOTE > > When a safety zone is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - All connections to the virtual robot are closed and re-established, introducing a short delay before the system is fully operational again. > - The safety checksum is automatically updated to reflect the configuration change. > > The API call **does not wait until the restart and re-synchronization are complete**.
7812
+ * @summary Add Safety Zone
7813
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7814
+ * @param {string} controller Unique identifier to address a controller in the cell.
7815
+ * @param {SafetyZone} safetyZone
7816
+ * @param {*} [options] Override http request option.
7817
+ * @throws {RequiredError}
7818
+ */
7819
+ addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7820
+ return VirtualControllerApiFp(this.configuration).addVirtualControllerSafetyZone(cell, controller, safetyZone, options).then((request) => request(this.axios, this.basePath));
7821
+ }
7822
+ /**
7823
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a new 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. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
7415
7824
  * @summary Add TCP
7416
7825
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7417
7826
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7425,7 +7834,7 @@ var VirtualControllerApi = class extends BaseAPI {
7425
7834
  return VirtualControllerApiFp(this.configuration).addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options).then((request) => request(this.axios, this.basePath));
7426
7835
  }
7427
7836
  /**
7428
- * 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 that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to 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 available for visualization or program execution.
7837
+ * **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 that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to 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 available for visualization or program execution.
7429
7838
  * @summary Delete Coordinate System
7430
7839
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7431
7840
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7438,7 +7847,7 @@ var VirtualControllerApi = class extends BaseAPI {
7438
7847
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerCoordinateSystem(cell, controller, coordinateSystem, deleteDependent, options).then((request) => request(this.axios, this.basePath));
7439
7848
  }
7440
7849
  /**
7441
- * Removes a motion group configuration from the virtual controller. <!-- theme: info --> > #### NOTE > > When a motion group is removed, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to 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**.
7850
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Removes a motion group configuration from the virtual controller. <!-- theme: info --> > #### NOTE > > When a motion group is removed, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to 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**.
7442
7851
  * @summary Delete Motion Group
7443
7852
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7444
7853
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7450,7 +7859,19 @@ var VirtualControllerApi = class extends BaseAPI {
7450
7859
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7451
7860
  }
7452
7861
  /**
7453
- * Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to 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**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
7862
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Removes a safety zone from the virtual robot controller. <!-- theme: info --> > #### NOTE > > When a safety zone is removed, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - All connections to the virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > - The safety checksum is automatically updated to reflect the configuration change. > > The API call itself **does not wait until the restart and re-synchronization are complete**.
7863
+ * @summary Delete Safety Zone
7864
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7865
+ * @param {string} controller Unique identifier to address a controller in the cell.
7866
+ * @param {number} id The unique identifier of the safety zone to delete.
7867
+ * @param {*} [options] Override http request option.
7868
+ * @throws {RequiredError}
7869
+ */
7870
+ deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7871
+ return VirtualControllerApiFp(this.configuration).deleteVirtualControllerSafetyZone(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
7872
+ }
7873
+ /**
7874
+ * **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. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to 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**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
7454
7875
  * @summary Remove TCP
7455
7876
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7456
7877
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7463,7 +7884,7 @@ var VirtualControllerApi = class extends BaseAPI {
7463
7884
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options).then((request) => request(this.axios, this.basePath));
7464
7885
  }
7465
7886
  /**
7466
- * Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
7887
+ * **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 with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
7467
7888
  * @summary Get Emergency Stop State
7468
7889
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7469
7890
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7474,7 +7895,7 @@ var VirtualControllerApi = class extends BaseAPI {
7474
7895
  return VirtualControllerApiFp(this.configuration).getEmergencyStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
7475
7896
  }
7476
7897
  /**
7477
- * Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
7898
+ * **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.
7478
7899
  * @summary Get Motion Group State
7479
7900
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7480
7901
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7486,7 +7907,7 @@ var VirtualControllerApi = class extends BaseAPI {
7486
7907
  return VirtualControllerApiFp(this.configuration).getMotionGroupState(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7487
7908
  }
7488
7909
  /**
7489
- * Gets information on the motion group.
7910
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets information on the motion group.
7490
7911
  * @summary Motion Group Description
7491
7912
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7492
7913
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7497,7 +7918,7 @@ var VirtualControllerApi = class extends BaseAPI {
7497
7918
  return VirtualControllerApiFp(this.configuration).getMotionGroups(cell, controller, options).then((request) => request(this.axios, this.basePath));
7498
7919
  }
7499
7920
  /**
7500
- * 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 operation mode can only be changed via API when using virtual robot controllers.
7921
+ * **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 operation mode can only be changed via API when using virtual robot controllers.
7501
7922
  * @summary Get Operation Mode
7502
7923
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7503
7924
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7508,7 +7929,7 @@ var VirtualControllerApi = class extends BaseAPI {
7508
7929
  return VirtualControllerApiFp(this.configuration).getOperationMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
7509
7930
  }
7510
7931
  /**
7511
- * Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
7932
+ * **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.
7512
7933
  * @summary Get Mounting
7513
7934
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7514
7935
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7520,7 +7941,18 @@ var VirtualControllerApi = class extends BaseAPI {
7520
7941
  return VirtualControllerApiFp(this.configuration).getVirtualControllerMounting(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7521
7942
  }
7522
7943
  /**
7523
- * Lists all coordinate systems on the robot controller.
7944
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets all safety zones configured in the virtual robot controller. Safety zones define geometric boundaries that restrict robot motion or define protected areas in the workspace.
7945
+ * @summary List Safety Zones
7946
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7947
+ * @param {string} controller Unique identifier to address a controller in the cell.
7948
+ * @param {*} [options] Override http request option.
7949
+ * @throws {RequiredError}
7950
+ */
7951
+ getVirtualControllerSafetyZones(cell, controller, options) {
7952
+ return VirtualControllerApiFp(this.configuration).getVirtualControllerSafetyZones(cell, controller, options).then((request) => request(this.axios, this.basePath));
7953
+ }
7954
+ /**
7955
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists all coordinate systems on the robot controller.
7524
7956
  * @summary List Coordinate Systems
7525
7957
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7526
7958
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7531,7 +7963,7 @@ var VirtualControllerApi = class extends BaseAPI {
7531
7963
  return VirtualControllerApiFp(this.configuration).listVirtualControllerCoordinateSystems(cell, controller, options).then((request) => request(this.axios, this.basePath));
7532
7964
  }
7533
7965
  /**
7534
- * Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
7966
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
7535
7967
  * @summary List TCPs
7536
7968
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7537
7969
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7543,7 +7975,7 @@ var VirtualControllerApi = class extends BaseAPI {
7543
7975
  return VirtualControllerApiFp(this.configuration).listVirtualControllerTcps(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7544
7976
  }
7545
7977
  /**
7546
- * Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
7978
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
7547
7979
  * @summary Push or Release Emergency Stop
7548
7980
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7549
7981
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7555,7 +7987,7 @@ var VirtualControllerApi = class extends BaseAPI {
7555
7987
  return VirtualControllerApiFp(this.configuration).setEmergencyStop(cell, controller, active, options).then((request) => request(this.axios, this.basePath));
7556
7988
  }
7557
7989
  /**
7558
- * 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. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
7990
+ * **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. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
7559
7991
  * @summary Set Motion Group State
7560
7992
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7561
7993
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7568,7 +8000,7 @@ var VirtualControllerApi = class extends BaseAPI {
7568
8000
  return VirtualControllerApiFp(this.configuration).setMotionGroupState(cell, controller, motionGroup, motionGroupJoints, options).then((request) => request(this.axios, this.basePath));
7569
8001
  }
7570
8002
  /**
7571
- * 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 operation mode can only be changed via API when using virtual robot controllers.
8003
+ * **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 operation mode can only be changed via API when using virtual robot controllers.
7572
8004
  * @summary Set Operation Mode
7573
8005
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7574
8006
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7580,7 +8012,7 @@ var VirtualControllerApi = class extends BaseAPI {
7580
8012
  return VirtualControllerApiFp(this.configuration).setOperationMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
7581
8013
  }
7582
8014
  /**
7583
- * 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 user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to 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**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
8015
+ * **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 user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to 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**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
7584
8016
  * @summary Set Mounting
7585
8017
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7586
8018
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7769,7 +8201,7 @@ const VirtualControllerBehaviorApiFactory = function(configuration, basePath, ax
7769
8201
  */
7770
8202
  var VirtualControllerBehaviorApi = class extends BaseAPI {
7771
8203
  /**
7772
- * <!-- theme: success --> > Websocket endpoint Sends the **commanded** state, e.g., joint positions, velocities, accelerations, torques, for each motion group of the virtual controller and sets the joint configuration. Use [planTrajectory](#/operations/planTrajectory) and [executeTrajectory](#/operations/executeTrajectory) to move motion groups on virtual controllers. Learn more about the [movement behavior of virtual controllers in comparison to physical controllers](#/operations/executeTrajectory#movement-behavior). > **NOTE** > > Incoming joint configurations are not visualized and their velocity limits are not checked. #### Use cases 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 groups.\\ 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.
8204
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ <!-- theme: success --> > Websocket endpoint Sends the **commanded** state, e.g., joint positions, velocities, accelerations, torques, for each motion group of the virtual controller and sets the joint configuration. Use [planTrajectory](#/operations/planTrajectory) and [executeTrajectory](#/operations/executeTrajectory) to move motion groups on virtual controllers. Learn more about the [movement behavior of virtual controllers in comparison to physical controllers](#/operations/executeTrajectory#movement-behavior). > **NOTE** > > Incoming joint configurations are not visualized and their velocity limits are not checked. #### Use cases 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 groups.\\ 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.
7773
8205
  * @summary Stream Joint Configuration
7774
8206
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7775
8207
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7781,7 +8213,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7781
8213
  return VirtualControllerBehaviorApiFp(this.configuration).externalJointsStream(cell, controller, externalJointStreamRequest, options).then((request) => request(this.axios, this.basePath));
7782
8214
  }
7783
8215
  /**
7784
- * Get the cycle time of controller communication in [ms].
8216
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the cycle time of controller communication in [ms].
7785
8217
  * @summary Get Cycle Time
7786
8218
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7787
8219
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7792,7 +8224,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7792
8224
  return VirtualControllerBehaviorApiFp(this.configuration).getCycleTime(cell, controller, options).then((request) => request(this.axios, this.basePath));
7793
8225
  }
7794
8226
  /**
7795
- * Get the current virtual controller behavior. See [setVirtualControllerBehavior](#/operations/setVirtualControllerBehavior) and the body for details.
8227
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the current virtual controller behavior. See [setVirtualControllerBehavior](#/operations/setVirtualControllerBehavior) and the body for details.
7796
8228
  * @summary Get Behavior
7797
8229
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7798
8230
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7803,7 +8235,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7803
8235
  return VirtualControllerBehaviorApiFp(this.configuration).getVirtualControllerBehavior(cell, controller, options).then((request) => request(this.axios, this.basePath));
7804
8236
  }
7805
8237
  /**
7806
- * Set virtual controller behavior. See query parameters for details.
8238
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Set virtual controller behavior. See query parameters for details.
7807
8239
  * @summary Set Behavior
7808
8240
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7809
8241
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7960,7 +8392,7 @@ const VirtualControllerInputsOutputsApiFactory = function(configuration, basePat
7960
8392
  */
7961
8393
  var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7962
8394
  /**
7963
- * Retrieves the current values of inputs/outputs of the virtual controller. The identifiers of inputs/outputs must be provided in the request. Request all available input/output identifiers via [listVirtualControllerIODescriptions](#/operations/listVirtualControllerIODescriptions).
8395
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Retrieves the current values of inputs/outputs of the virtual controller. The identifiers of inputs/outputs must be provided in the request. Request all available input/output identifiers via [listVirtualControllerIODescriptions](#/operations/listVirtualControllerIODescriptions).
7964
8396
  * @summary Get Input/Output Values
7965
8397
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7966
8398
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7972,7 +8404,7 @@ var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7972
8404
  return VirtualControllerInputsOutputsApiFp(this.configuration).listIOs(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
7973
8405
  }
7974
8406
  /**
7975
- * Lists the input/output descriptions of the virtual robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the virtual robot controller.\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
8407
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists the input/output descriptions of the virtual robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the virtual robot controller.\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
7976
8408
  * @summary List Descriptions
7977
8409
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7978
8410
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7987,7 +8419,7 @@ var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7987
8419
  return VirtualControllerInputsOutputsApiFp(this.configuration).listVirtualControllerIODescriptions(cell, controller, ios, direction, valueType, group, options).then((request) => request(this.axios, this.basePath));
7988
8420
  }
7989
8421
  /**
7990
- * Sets a list of values of a virtual controller inputs/outputs.
8422
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets a list of values of a virtual controller inputs/outputs.
7991
8423
  * @summary Set Input/Ouput Values
7992
8424
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7993
8425
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -8119,4 +8551,4 @@ var Configuration = class {
8119
8551
  };
8120
8552
 
8121
8553
  //#endregion
8122
- export { AbbControllerKindEnum, ApplicationApi, ApplicationApiAxiosParamCreator, ApplicationApiFactory, ApplicationApiFp, BASE_PATH, BUSInputsOutputsApi, BUSInputsOutputsApiAxiosParamCreator, BUSInputsOutputsApiFactory, BUSInputsOutputsApiFp, BaseAPI, Behavior, BlendingAutoBlendingNameEnum, BlendingPositionBlendingNameEnum, BlendingSpace, BooleanValueValueTypeEnum, BoxBoxTypeEnum, BoxShapeTypeEnum, BusIOModbusClientBusTypeEnum, BusIOModbusServerBusTypeEnum, BusIOModbusTCPClientNetworkTypeEnum, BusIOModbusTCPServerNetworkTypeEnum, BusIOModbusVirtualBusTypeEnum, BusIOProfinetBusTypeEnum, BusIOProfinetVirtualBusTypeEnum, BusIOsStateEnum, COLLECTION_FORMATS, CapsuleShapeTypeEnum, CellApi, CellApiAxiosParamCreator, CellApiFactory, CellApiFp, CollisionErrorKindEnum, Comparator, Configuration, ConfigurationArchiveStatusCreatingStatusEnum, ConfigurationArchiveStatusErrorStatusEnum, ConfigurationArchiveStatusSuccessStatusEnum, ControllerApi, ControllerApiAxiosParamCreator, ControllerApiFactory, ControllerApiFp, ControllerInputsOutputsApi, ControllerInputsOutputsApiAxiosParamCreator, ControllerInputsOutputsApiFactory, ControllerInputsOutputsApiFp, ConvexHullShapeTypeEnum, CylinderShapeTypeEnum, Direction, ErrorInvalidJointCountErrorFeedbackNameEnum, ErrorJointLimitExceededErrorFeedbackNameEnum, ErrorJointPositionCollisionErrorFeedbackNameEnum, ErrorMaxIterationsExceededErrorFeedbackNameEnum, FanucControllerKindEnum, FeedbackCollisionErrorFeedbackNameEnum, FeedbackJointLimitExceededErrorFeedbackNameEnum, FeedbackOutOfWorkspaceErrorFeedbackNameEnum, FeedbackSingularityErrorFeedbackNameEnum, FloatValueValueTypeEnum, IOBooleanValueValueTypeEnum, IODirection, IOFloatValueValueTypeEnum, IOIntegerValueValueTypeEnum, IOOrigin, IOValueType, InconsistentTrajectorySizeErrorKindEnum, InitializeJoggingRequestMessageTypeEnum, InitializeJoggingResponseKindEnum, InitializeMovementRequestMessageTypeEnum, InitializeMovementResponseKindEnum, IntegerValueValueTypeEnum, InvalidDofErrorKindEnum, JoggingApi, JoggingApiAxiosParamCreator, JoggingApiFactory, JoggingApiFp, JoggingDetailsKindEnum, JoggingPausedByUserKindEnum, JoggingPausedNearCollisionKindEnum, JoggingPausedNearJointLimitKindEnum, JoggingPausedOnIOKindEnum, JoggingRunningKindEnum, JointLimitExceededErrorKindEnum, JointTypeEnum, JointVelocityRequestMessageTypeEnum, JointVelocityResponseKindEnum, KinematicsApi, KinematicsApiAxiosParamCreator, KinematicsApiFactory, KinematicsApiFp, KukaControllerKindEnum, LicenseApi, LicenseApiAxiosParamCreator, LicenseApiFactory, LicenseApiFp, LicenseStatusEnum, Manufacturer, MidpointInsertionAlgorithmAlgorithmNameEnum, ModbusIOArea, ModbusIOByteOrder, ModbusIOTypeEnum, MotionGroupApi, MotionGroupApiAxiosParamCreator, MotionGroupApiFactory, MotionGroupApiFp, MotionGroupModelsApi, MotionGroupModelsApiAxiosParamCreator, MotionGroupModelsApiFactory, MotionGroupModelsApiFp, MovementErrorResponseKindEnum, NanValueErrorKindEnum, NetworkStateConnectionTypeEnum, OperatingState, OperationMode, OrientationType, PathCartesianPTPPathDefinitionNameEnum, PathCirclePathDefinitionNameEnum, PathCubicSplinePathDefinitionNameEnum, PathJointPTPPathDefinitionNameEnum, PathLinePathDefinitionNameEnum, PauseJoggingRequestMessageTypeEnum, PauseJoggingResponseKindEnum, PauseMovementRequestMessageTypeEnum, PauseMovementResponseKindEnum, PlaneShapeTypeEnum, PlaybackSpeedRequestMessageTypeEnum, PlaybackSpeedResponseKindEnum, ProfinetIODirection, ProfinetIOTypeEnum, ProgramApi, ProgramApiAxiosParamCreator, ProgramApiFactory, ProgramApiFp, ProgramRunState, RRTConnectAlgorithmAlgorithmNameEnum, RectangleShapeTypeEnum, RectangularCapsuleShapeTypeEnum, ReleaseChannel, RequiredError, RobotConfigurationsApi, RobotConfigurationsApiAxiosParamCreator, RobotConfigurationsApiFactory, RobotConfigurationsApiFp, RobotSystemMode, SafetyStateType, ServiceGroup, ServiceStatusPhase, ServiceStatusSeverity, SettableRobotSystemMode, SingularityTypeEnum, SphereShapeTypeEnum, StartMovementRequestMessageTypeEnum, StartMovementResponseKindEnum, StoreCollisionComponentsApi, StoreCollisionComponentsApiAxiosParamCreator, StoreCollisionComponentsApiFactory, StoreCollisionComponentsApiFp, StoreCollisionSetupsApi, StoreCollisionSetupsApiAxiosParamCreator, StoreCollisionSetupsApiFactory, StoreCollisionSetupsApiFp, StoreObjectApi, StoreObjectApiAxiosParamCreator, StoreObjectApiFactory, StoreObjectApiFp, SystemApi, SystemApiAxiosParamCreator, SystemApiFactory, SystemApiFp, TcpRequiredErrorKindEnum, TcpVelocityRequestMessageTypeEnum, TcpVelocityResponseKindEnum, TorqueExceededErrorKindEnum, TrajectoryCachingApi, TrajectoryCachingApiAxiosParamCreator, TrajectoryCachingApiFactory, TrajectoryCachingApiFp, TrajectoryDataMessageTypeEnum, TrajectoryDetailsKindEnum, TrajectoryEndedKindEnum, TrajectoryExecutionApi, TrajectoryExecutionApiAxiosParamCreator, TrajectoryExecutionApiFactory, TrajectoryExecutionApiFp, TrajectoryIdMessageTypeEnum, TrajectoryPausedByUserKindEnum, TrajectoryPausedOnIOKindEnum, TrajectoryPlanningApi, TrajectoryPlanningApiAxiosParamCreator, TrajectoryPlanningApiFactory, TrajectoryPlanningApiFp, TrajectoryRunningKindEnum, TrajectoryWaitForIOKindEnum, UnitType, UniversalrobotsControllerKindEnum, VersionApi, VersionApiAxiosParamCreator, VersionApiFactory, VersionApiFp, VirtualControllerApi, VirtualControllerApiAxiosParamCreator, VirtualControllerApiFactory, VirtualControllerApiFp, VirtualControllerBehaviorApi, VirtualControllerBehaviorApiAxiosParamCreator, VirtualControllerBehaviorApiFactory, VirtualControllerBehaviorApiFp, VirtualControllerInputsOutputsApi, VirtualControllerInputsOutputsApiAxiosParamCreator, VirtualControllerInputsOutputsApiFactory, VirtualControllerInputsOutputsApiFp, VirtualControllerKindEnum, YaskawaControllerKindEnum, operationServerMap };
8554
+ export { AbbControllerKindEnum, ApplicationApi, ApplicationApiAxiosParamCreator, ApplicationApiFactory, ApplicationApiFp, BASE_PATH, BUSInputsOutputsApi, BUSInputsOutputsApiAxiosParamCreator, BUSInputsOutputsApiFactory, BUSInputsOutputsApiFp, BaseAPI, Behavior, BlendingAutoBlendingNameEnum, BlendingPositionBlendingNameEnum, BlendingSpace, BooleanValueValueTypeEnum, BoxBoxTypeEnum, BoxShapeTypeEnum, BusIOModbusClientBusTypeEnum, BusIOModbusServerBusTypeEnum, BusIOModbusTCPClientNetworkTypeEnum, BusIOModbusTCPServerNetworkTypeEnum, BusIOModbusVirtualBusTypeEnum, BusIOProfinetBusTypeEnum, BusIOProfinetVirtualBusTypeEnum, BusIOsStateEnum, COLLECTION_FORMATS, CapsuleShapeTypeEnum, CellApi, CellApiAxiosParamCreator, CellApiFactory, CellApiFp, CloudConfigStatusConfiguredStatusEnum, CloudConfigStatusNotConfiguredStatusEnum, CloudConnectionErrorInvalidTokenCodeEnum, CloudConnectionErrorLeafnodeConnectionErrorCodeEnum, CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum, CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum, CloudConnectionErrorNatsFailedCodeEnum, CloudConnectionErrorUnexpectedResponseCodeEnum, CloudDisconnectionStatusDisconnectedStatusEnum, CloudDisconnectionStatusDisconnectingStatusEnum, CollisionErrorKindEnum, Comparator, Configuration, ConfigurationArchiveStatusCreatingStatusEnum, ConfigurationArchiveStatusErrorStatusEnum, ConfigurationArchiveStatusSuccessStatusEnum, ControllerApi, ControllerApiAxiosParamCreator, ControllerApiFactory, ControllerApiFp, ControllerInputsOutputsApi, ControllerInputsOutputsApiAxiosParamCreator, ControllerInputsOutputsApiFactory, ControllerInputsOutputsApiFp, ConvexHullShapeTypeEnum, CylinderShapeTypeEnum, Direction, DirectionConstraintConstraintNameEnum, ErrorDirectionConstraintNotMetErrorFeedbackNameEnum, ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum, ErrorInvalidJointCountErrorFeedbackNameEnum, ErrorJointLimitExceededErrorFeedbackNameEnum, ErrorJointPositionCollisionErrorFeedbackNameEnum, ErrorMaxIterationsExceededErrorFeedbackNameEnum, ErrorUnsupportedOperationErrorFeedbackNameEnum, FanucControllerKindEnum, FeedbackCollisionErrorFeedbackNameEnum, FeedbackCommandsMissingErrorFeedbackNameEnum, FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum, FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum, FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum, FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum, FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum, FeedbackInvalidDofErrorFeedbackNameEnum, FeedbackInvalidNanValueErrorFeedbackNameEnum, FeedbackInvalidSamplingTimeErrorFeedbackNameEnum, FeedbackJointLimitExceededErrorFeedbackNameEnum, FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum, FeedbackOutOfWorkspaceErrorFeedbackNameEnum, FeedbackSingularityErrorFeedbackNameEnum, FeedbackStartJointsMissingErrorFeedbackNameEnum, FeedbackTorqueExceededErrorFeedbackNameEnum, FloatValueValueTypeEnum, IOBooleanValueValueTypeEnum, IODirection, IOFloatValueValueTypeEnum, IOIntegerValueValueTypeEnum, IOOrigin, IOValueType, InconsistentTrajectorySizeErrorKindEnum, InitializeJoggingRequestMessageTypeEnum, InitializeJoggingResponseKindEnum, InitializeMovementRequestMessageTypeEnum, InitializeMovementResponseKindEnum, IntegerValueValueTypeEnum, InvalidDofErrorKindEnum, JoggingApi, JoggingApiAxiosParamCreator, JoggingApiFactory, JoggingApiFp, JoggingDetailsKindEnum, JoggingPausedByUserKindEnum, JoggingPausedNearCollisionKindEnum, JoggingPausedNearJointLimitKindEnum, JoggingPausedNearSingularityKindEnum, JoggingPausedOnIOKindEnum, JoggingRunningKindEnum, JointLimitExceededErrorKindEnum, JointTypeEnum, JointVelocityRequestMessageTypeEnum, JointVelocityResponseKindEnum, KinematicsApi, KinematicsApiAxiosParamCreator, KinematicsApiFactory, KinematicsApiFp, KukaControllerKindEnum, LicenseApi, LicenseApiAxiosParamCreator, LicenseApiFactory, LicenseApiFp, LicenseStatusEnum, Manufacturer, MidpointInsertionAlgorithmAlgorithmNameEnum, ModbusIOArea, ModbusIOByteOrder, ModbusIOTypeEnum, MotionGroupApi, MotionGroupApiAxiosParamCreator, MotionGroupApiFactory, MotionGroupApiFp, MotionGroupModelsApi, MotionGroupModelsApiAxiosParamCreator, MotionGroupModelsApiFactory, MotionGroupModelsApiFp, MovementErrorResponseKindEnum, NOVACloudApi, NOVACloudApiAxiosParamCreator, NOVACloudApiFactory, NOVACloudApiFp, NanValueErrorKindEnum, NetworkStateConnectionTypeEnum, OperatingState, OperationMode, OrientationType, PathCartesianPTPPathDefinitionNameEnum, PathCirclePathDefinitionNameEnum, PathCubicSplinePathDefinitionNameEnum, PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum, PathDirectionConstrainedJointPTPPathDefinitionNameEnum, PathJointPTPPathDefinitionNameEnum, PathLinePathDefinitionNameEnum, PauseJoggingRequestMessageTypeEnum, PauseJoggingResponseKindEnum, PauseMovementRequestMessageTypeEnum, PauseMovementResponseKindEnum, PlaneShapeTypeEnum, PlaybackSpeedRequestMessageTypeEnum, PlaybackSpeedResponseKindEnum, ProfinetIODirection, ProfinetIOTypeEnum, ProgramApi, ProgramApiAxiosParamCreator, ProgramApiFactory, ProgramApiFp, ProgramRunState, RRTConnectAlgorithmAlgorithmNameEnum, RectangleShapeTypeEnum, RectangularCapsuleShapeTypeEnum, ReleaseChannel, RequiredError, RobotConfigurationsApi, RobotConfigurationsApiAxiosParamCreator, RobotConfigurationsApiFactory, RobotConfigurationsApiFp, RobotSystemMode, SafetyStateType, ServiceGroup, ServiceStatusPhase, ServiceStatusSeverity, SettableRobotSystemMode, SingularityTypeEnum, SphereShapeTypeEnum, StartMovementRequestMessageTypeEnum, StartMovementResponseKindEnum, StoreCollisionComponentsApi, StoreCollisionComponentsApiAxiosParamCreator, StoreCollisionComponentsApiFactory, StoreCollisionComponentsApiFp, StoreCollisionSetupsApi, StoreCollisionSetupsApiAxiosParamCreator, StoreCollisionSetupsApiFactory, StoreCollisionSetupsApiFp, StoreObjectApi, StoreObjectApiAxiosParamCreator, StoreObjectApiFactory, StoreObjectApiFp, SystemApi, SystemApiAxiosParamCreator, SystemApiFactory, SystemApiFp, TcpRequiredErrorKindEnum, TcpVelocityRequestMessageTypeEnum, TcpVelocityResponseKindEnum, TorqueExceededErrorKindEnum, TrajectoryCachingApi, TrajectoryCachingApiAxiosParamCreator, TrajectoryCachingApiFactory, TrajectoryCachingApiFp, TrajectoryDataMessageTypeEnum, TrajectoryDetailsKindEnum, TrajectoryEndedKindEnum, TrajectoryExecutionApi, TrajectoryExecutionApiAxiosParamCreator, TrajectoryExecutionApiFactory, TrajectoryExecutionApiFp, TrajectoryIdMessageTypeEnum, TrajectoryPausedByUserKindEnum, TrajectoryPausedOnIOKindEnum, TrajectoryPlanningApi, TrajectoryPlanningApiAxiosParamCreator, TrajectoryPlanningApiFactory, TrajectoryPlanningApiFp, TrajectoryRunningKindEnum, TrajectoryWaitForIOKindEnum, UnitType, UniversalrobotsControllerKindEnum, VersionApi, VersionApiAxiosParamCreator, VersionApiFactory, VersionApiFp, VirtualControllerApi, VirtualControllerApiAxiosParamCreator, VirtualControllerApiFactory, VirtualControllerApiFp, VirtualControllerBehaviorApi, VirtualControllerBehaviorApiAxiosParamCreator, VirtualControllerBehaviorApiFactory, VirtualControllerBehaviorApiFp, VirtualControllerInputsOutputsApi, VirtualControllerInputsOutputsApiAxiosParamCreator, VirtualControllerInputsOutputsApiFactory, VirtualControllerInputsOutputsApiFp, VirtualControllerKindEnum, YaskawaControllerKindEnum, ZodValidationErrorErrorCodeEnum, operationServerMap };