@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.cjs CHANGED
@@ -116,6 +116,16 @@ const BusIOsStateEnum = {
116
116
  BusIosStateDisconnected: "BUS_IOS_STATE_DISCONNECTED"
117
117
  };
118
118
  const CapsuleShapeTypeEnum = { Capsule: "capsule" };
119
+ const CloudConfigStatusConfiguredStatusEnum = { Configured: "configured" };
120
+ const CloudConfigStatusNotConfiguredStatusEnum = { NotConfigured: "not_configured" };
121
+ const CloudConnectionErrorInvalidTokenCodeEnum = { InvalidCloudToken: "invalid_cloud_token" };
122
+ const CloudConnectionErrorLeafnodeConnectionErrorCodeEnum = { LeafnodeConnectionError: "leafnode_connection_error" };
123
+ const CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum = { LeafnodeConnectionTimeout: "leafnode_connection_timeout" };
124
+ const CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum = { LeafnodeRestartTimeout: "leafnode_restart_timeout" };
125
+ const CloudConnectionErrorNatsFailedCodeEnum = { NatsConnectionFailed: "nats_connection_failed" };
126
+ const CloudConnectionErrorUnexpectedResponseCodeEnum = { UnexpectedCloudResponse: "unexpected_cloud_response" };
127
+ const CloudDisconnectionStatusDisconnectedStatusEnum = { Disconnected: "disconnected" };
128
+ const CloudDisconnectionStatusDisconnectingStatusEnum = { Disconnecting: "disconnecting" };
119
129
  const CollisionErrorKindEnum = { CollisionError: "CollisionError" };
120
130
  /**
121
131
  * 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.
@@ -140,15 +150,31 @@ const Direction = {
140
150
  DirectionForward: "DIRECTION_FORWARD",
141
151
  DirectionBackward: "DIRECTION_BACKWARD"
142
152
  };
153
+ const DirectionConstraintConstraintNameEnum = { DirectionConstraint: "DirectionConstraint" };
154
+ const ErrorDirectionConstraintNotMetErrorFeedbackNameEnum = { ErrorDirectionConstraintNotMet: "ErrorDirectionConstraintNotMet" };
155
+ const ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { ErrorDirectionConstraintNotNormalized: "ErrorDirectionConstraintNotNormalized" };
143
156
  const ErrorInvalidJointCountErrorFeedbackNameEnum = { ErrorInvalidJointCount: "ErrorInvalidJointCount" };
144
157
  const ErrorJointLimitExceededErrorFeedbackNameEnum = { ErrorJointLimitExceeded: "ErrorJointLimitExceeded" };
145
158
  const ErrorJointPositionCollisionErrorFeedbackNameEnum = { ErrorJointPositionCollision: "ErrorJointPositionCollision" };
146
159
  const ErrorMaxIterationsExceededErrorFeedbackNameEnum = { ErrorMaxIterationsExceeded: "ErrorMaxIterationsExceeded" };
160
+ const ErrorUnsupportedOperationErrorFeedbackNameEnum = { ErrorUnsupportedOperation: "ErrorUnsupportedOperation" };
147
161
  const FanucControllerKindEnum = { FanucController: "FanucController" };
148
162
  const FeedbackCollisionErrorFeedbackNameEnum = { FeedbackCollision: "FeedbackCollision" };
163
+ const FeedbackCommandsMissingErrorFeedbackNameEnum = { FeedbackCommandsMissing: "FeedbackCommandsMissing" };
164
+ const FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum = { FeedbackCubicSplineIsNotIncreasing: "FeedbackCubicSplineIsNotIncreasing" };
165
+ const FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum = { FeedbackCubicSplineNotAtStartPose: "FeedbackCubicSplineNotAtStartPose" };
166
+ const FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum = { FeedbackDirectionConstraintNoSolutionExists: "FeedbackDirectionConstraintNoSolutionExists" };
167
+ const FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotMet: "FeedbackDirectionConstraintNotMet" };
168
+ const FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotNormalized: "FeedbackDirectionConstraintNotNormalized" };
169
+ const FeedbackInvalidDofErrorFeedbackNameEnum = { FeedbackInvalidDof: "FeedbackInvalidDof" };
170
+ const FeedbackInvalidNanValueErrorFeedbackNameEnum = { FeedbackInvalidNanValue: "FeedbackInvalidNanValue" };
171
+ const FeedbackInvalidSamplingTimeErrorFeedbackNameEnum = { FeedbackInvalidSamplingTime: "FeedbackInvalidSamplingTime" };
149
172
  const FeedbackJointLimitExceededErrorFeedbackNameEnum = { FeedbackJointLimitExceeded: "FeedbackJointLimitExceeded" };
173
+ const FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum = { FeedbackNoSolutionInCurrentConfiguration: "FeedbackNoSolutionInCurrentConfiguration" };
150
174
  const FeedbackOutOfWorkspaceErrorFeedbackNameEnum = { FeedbackOutOfWorkspace: "FeedbackOutOfWorkspace" };
151
175
  const FeedbackSingularityErrorFeedbackNameEnum = { FeedbackSingularity: "FeedbackSingularity" };
176
+ const FeedbackStartJointsMissingErrorFeedbackNameEnum = { FeedbackStartJointsMissing: "FeedbackStartJointsMissing" };
177
+ const FeedbackTorqueExceededErrorFeedbackNameEnum = { FeedbackTorqueExceeded: "FeedbackTorqueExceeded" };
152
178
  const FloatValueValueTypeEnum = { Float: "float" };
153
179
  const IOBooleanValueValueTypeEnum = { Boolean: "boolean" };
154
180
  /**
@@ -186,6 +212,7 @@ const JoggingDetailsKindEnum = { Jogging: "JOGGING" };
186
212
  const JoggingPausedByUserKindEnum = { PausedByUser: "PAUSED_BY_USER" };
187
213
  const JoggingPausedNearCollisionKindEnum = { PausedNearCollision: "PAUSED_NEAR_COLLISION" };
188
214
  const JoggingPausedNearJointLimitKindEnum = { PausedNearJointLimit: "PAUSED_NEAR_JOINT_LIMIT" };
215
+ const JoggingPausedNearSingularityKindEnum = { PausedNearSingularity: "PAUSED_NEAR_SINGULARITY" };
189
216
  const JoggingPausedOnIOKindEnum = { PausedOnIo: "PAUSED_ON_IO" };
190
217
  const JoggingRunningKindEnum = { Running: "RUNNING" };
191
218
  const JointLimitExceededErrorKindEnum = { JointLimitExceededError: "JointLimitExceededError" };
@@ -305,6 +332,8 @@ const OrientationType = {
305
332
  const PathCartesianPTPPathDefinitionNameEnum = { PathCartesianPtp: "PathCartesianPTP" };
306
333
  const PathCirclePathDefinitionNameEnum = { PathCircle: "PathCircle" };
307
334
  const PathCubicSplinePathDefinitionNameEnum = { PathCubicSpline: "PathCubicSpline" };
335
+ const PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum = { DirectionConstrainedCartesianPtp: "DirectionConstrainedCartesianPTP" };
336
+ const PathDirectionConstrainedJointPTPPathDefinitionNameEnum = { DirectionConstrainedJointPtp: "DirectionConstrainedJointPTP" };
308
337
  const PathJointPTPPathDefinitionNameEnum = { PathJointPtp: "PathJointPTP" };
309
338
  const PathLinePathDefinitionNameEnum = { PathLine: "PathLine" };
310
339
  const PauseJoggingRequestMessageTypeEnum = { PauseJoggingRequest: "PauseJoggingRequest" };
@@ -462,6 +491,7 @@ const UnitType = {
462
491
  const UniversalrobotsControllerKindEnum = { UniversalrobotsController: "UniversalrobotsController" };
463
492
  const VirtualControllerKindEnum = { VirtualController: "VirtualController" };
464
493
  const YaskawaControllerKindEnum = { YaskawaController: "YaskawaController" };
494
+ const ZodValidationErrorErrorCodeEnum = { ValidationError: "validation_error" };
465
495
  /**
466
496
  * ApplicationApi - axios parameter creator
467
497
  */
@@ -713,7 +743,7 @@ const ApplicationApiFactory = function(configuration, basePath, axios$1) {
713
743
  */
714
744
  var ApplicationApi = class extends BaseAPI {
715
745
  /**
716
- * 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.
746
+ * **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.
717
747
  * @summary Add Application
718
748
  * @param {string} cell Unique identifier addressing a cell in all API calls.
719
749
  * @param {App} app
@@ -725,7 +755,7 @@ var ApplicationApi = class extends BaseAPI {
725
755
  return ApplicationApiFp(this.configuration).addApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
726
756
  }
727
757
  /**
728
- * Delete all GUI applications from the cell.
758
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete all GUI applications from the cell.
729
759
  * @summary Clear Applications
730
760
  * @param {string} cell Unique identifier addressing a cell in all API calls.
731
761
  * @param {number} [completionTimeout]
@@ -736,7 +766,7 @@ var ApplicationApi = class extends BaseAPI {
736
766
  return ApplicationApiFp(this.configuration).clearApps(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
737
767
  }
738
768
  /**
739
- * Delete a GUI application from the cell.
769
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete a GUI application from the cell.
740
770
  * @summary Delete Application
741
771
  * @param {string} cell Unique identifier addressing a cell in all API calls.
742
772
  * @param {string} app
@@ -748,7 +778,7 @@ var ApplicationApi = class extends BaseAPI {
748
778
  return ApplicationApiFp(this.configuration).deleteApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
749
779
  }
750
780
  /**
751
- * 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).
781
+ * **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).
752
782
  * @summary Configuration
753
783
  * @param {string} cell Unique identifier addressing a cell in all API calls.
754
784
  * @param {string} app
@@ -759,7 +789,7 @@ var ApplicationApi = class extends BaseAPI {
759
789
  return ApplicationApiFp(this.configuration).getApp(cell, app, options).then((request) => request(this.axios, this.basePath));
760
790
  }
761
791
  /**
762
- * 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.
792
+ * **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.
763
793
  * @summary List Applications
764
794
  * @param {string} cell Unique identifier addressing a cell in all API calls.
765
795
  * @param {*} [options] Override http request option.
@@ -769,7 +799,7 @@ var ApplicationApi = class extends BaseAPI {
769
799
  return ApplicationApiFp(this.configuration).listApps(cell, options).then((request) => request(this.axios, this.basePath));
770
800
  }
771
801
  /**
772
- * Update the configuration of a GUI application in the cell.
802
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Update the configuration of a GUI application in the cell.
773
803
  * @summary Update Configuration
774
804
  * @param {string} cell Unique identifier addressing a cell in all API calls.
775
805
  * @param {string} app
@@ -1115,6 +1145,32 @@ const BUSInputsOutputsApiAxiosParamCreator = function(configuration) {
1115
1145
  options: localVarRequestOptions
1116
1146
  };
1117
1147
  },
1148
+ getProfinetGSDML: async (cell, options = {}) => {
1149
+ assertParamExists("getProfinetGSDML", "cell", cell);
1150
+ const localVarPath = `/cells/{cell}/bus-ios/profinet/gsdml`.replace(`{cell}`, encodeURIComponent(String(cell)));
1151
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1152
+ let baseOptions;
1153
+ if (configuration) baseOptions = configuration.baseOptions;
1154
+ const localVarRequestOptions = {
1155
+ method: "GET",
1156
+ ...baseOptions,
1157
+ ...options
1158
+ };
1159
+ const localVarHeaderParameter = {};
1160
+ const localVarQueryParameter = {};
1161
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
1162
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1163
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1164
+ localVarRequestOptions.headers = {
1165
+ ...localVarHeaderParameter,
1166
+ ...headersFromBaseOptions,
1167
+ ...options.headers
1168
+ };
1169
+ return {
1170
+ url: toPathString(localVarUrlObj),
1171
+ options: localVarRequestOptions
1172
+ };
1173
+ },
1118
1174
  getProfinetIOsFromFile: async (cell, inputOffset, outputOffset, options = {}) => {
1119
1175
  assertParamExists("getProfinetIOsFromFile", "cell", cell);
1120
1176
  const localVarPath = `/cells/{cell}/bus-ios/profinet/iofile`.replace(`{cell}`, encodeURIComponent(String(cell)));
@@ -1359,6 +1415,12 @@ const BUSInputsOutputsApiFp = function(configuration) {
1359
1415
  const localVarOperationServerBasePath = operationServerMap["BUSInputsOutputsApi.getProfinetDescription"]?.[localVarOperationServerIndex]?.url;
1360
1416
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
1361
1417
  },
1418
+ async getProfinetGSDML(cell, options) {
1419
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getProfinetGSDML(cell, options);
1420
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1421
+ const localVarOperationServerBasePath = operationServerMap["BUSInputsOutputsApi.getProfinetGSDML"]?.[localVarOperationServerIndex]?.url;
1422
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
1423
+ },
1362
1424
  async getProfinetIOsFromFile(cell, inputOffset, outputOffset, options) {
1363
1425
  const localVarAxiosArgs = await localVarAxiosParamCreator.getProfinetIOsFromFile(cell, inputOffset, outputOffset, options);
1364
1426
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -1439,6 +1501,9 @@ const BUSInputsOutputsApiFactory = function(configuration, basePath, axios$1) {
1439
1501
  getProfinetDescription(cell, options) {
1440
1502
  return localVarFp.getProfinetDescription(cell, options).then((request) => request(axios$1, basePath));
1441
1503
  },
1504
+ getProfinetGSDML(cell, options) {
1505
+ return localVarFp.getProfinetGSDML(cell, options).then((request) => request(axios$1, basePath));
1506
+ },
1442
1507
  getProfinetIOsFromFile(cell, inputOffset, outputOffset, options) {
1443
1508
  return localVarFp.getProfinetIOsFromFile(cell, inputOffset, outputOffset, options).then((request) => request(axios$1, basePath));
1444
1509
  },
@@ -1464,7 +1529,7 @@ const BUSInputsOutputsApiFactory = function(configuration, basePath, axios$1) {
1464
1529
  */
1465
1530
  var BUSInputsOutputsApi = class extends BaseAPI {
1466
1531
  /**
1467
- * Add the BUS inputs/outputs service to the cell. Starts a containerized service that enables BUS connections via the specified ethernet port.
1532
+ * **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.
1468
1533
  * @summary Add Service
1469
1534
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1470
1535
  * @param {BusIOType} busIOType
@@ -1476,7 +1541,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1476
1541
  return BUSInputsOutputsApiFp(this.configuration).addBusIOService(cell, busIOType, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1477
1542
  }
1478
1543
  /**
1479
- * 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).
1544
+ * **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).
1480
1545
  * @summary Add MODBUS Input/Output
1481
1546
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1482
1547
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1488,7 +1553,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1488
1553
  return BUSInputsOutputsApiFp(this.configuration).addModbusIO(cell, io, modbusIOData, options).then((request) => request(this.axios, this.basePath));
1489
1554
  }
1490
1555
  /**
1491
- * 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).
1556
+ * **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).
1492
1557
  * @summary Add PROFINET Input/Output
1493
1558
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1494
1559
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1500,7 +1565,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1500
1565
  return BUSInputsOutputsApiFp(this.configuration).addProfinetIO(cell, io, profinetIOData, options).then((request) => request(this.axios, this.basePath));
1501
1566
  }
1502
1567
  /**
1503
- * Remove the BUS inputs/outputs service from the cell.
1568
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Remove the BUS inputs/outputs service from the cell.
1504
1569
  * @summary Clear Service
1505
1570
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1506
1571
  * @param {number} [completionTimeout]
@@ -1511,7 +1576,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1511
1576
  return BUSInputsOutputsApiFp(this.configuration).clearBusIOService(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1512
1577
  }
1513
1578
  /**
1514
- * Removes all input/output variable configurations from the MODBUS device, e.g., NOVA\'s MODBUS service.
1579
+ * **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.
1515
1580
  * @summary Remove all MODBUS Input/Outputs
1516
1581
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1517
1582
  * @param {*} [options] Override http request option.
@@ -1521,7 +1586,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1521
1586
  return BUSInputsOutputsApiFp(this.configuration).deleteAllModbusIOs(cell, options).then((request) => request(this.axios, this.basePath));
1522
1587
  }
1523
1588
  /**
1524
- * Removes all input/output variable configurations from the PROFINET device, e.g., NOVA\'s PROFINET service.
1589
+ * **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.
1525
1590
  * @summary Remove all PROFINET Input/Outputs
1526
1591
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1527
1592
  * @param {*} [options] Override http request option.
@@ -1531,7 +1596,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1531
1596
  return BUSInputsOutputsApiFp(this.configuration).deleteAllProfinetIOs(cell, options).then((request) => request(this.axios, this.basePath));
1532
1597
  }
1533
1598
  /**
1534
- * Removes an input/output variable configuration from the MODBUS device, e.g., NOVA\'s MODBUS service.
1599
+ * **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.
1535
1600
  * @summary Remove MODBUS Input/Output
1536
1601
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1537
1602
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1542,7 +1607,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1542
1607
  return BUSInputsOutputsApiFp(this.configuration).deleteModbusIO(cell, io, options).then((request) => request(this.axios, this.basePath));
1543
1608
  }
1544
1609
  /**
1545
- * Removes an input/output variable configuration from the PROFINET device, e.g., NOVA\'s PROFINET service.
1610
+ * **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.
1546
1611
  * @summary Remove PROFINET Input/Ouptut
1547
1612
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1548
1613
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1553,7 +1618,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1553
1618
  return BUSInputsOutputsApiFp(this.configuration).deleteProfinetIO(cell, io, options).then((request) => request(this.axios, this.basePath));
1554
1619
  }
1555
1620
  /**
1556
- * Get deployed BUS inputs/outputs service.
1621
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get deployed BUS inputs/outputs service.
1557
1622
  * @summary Get Service
1558
1623
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1559
1624
  * @param {*} [options] Override http request option.
@@ -1563,7 +1628,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1563
1628
  return BUSInputsOutputsApiFp(this.configuration).getBusIOService(cell, options).then((request) => request(this.axios, this.basePath));
1564
1629
  }
1565
1630
  /**
1566
- * Get the current state of the BUS Inputs/Outputs service.
1631
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get the current state of the BUS Inputs/Outputs service.
1567
1632
  * @summary State
1568
1633
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1569
1634
  * @param {*} [options] Override http request option.
@@ -1573,7 +1638,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1573
1638
  return BUSInputsOutputsApiFp(this.configuration).getBusIOState(cell, options).then((request) => request(this.axios, this.basePath));
1574
1639
  }
1575
1640
  /**
1576
- * 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).
1641
+ * **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).
1577
1642
  * @summary Get Input/Output Values
1578
1643
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1579
1644
  * @param {Array<string>} [ios]
@@ -1584,7 +1649,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1584
1649
  return BUSInputsOutputsApiFp(this.configuration).getBusIOValues(cell, ios, options).then((request) => request(this.axios, this.basePath));
1585
1650
  }
1586
1651
  /**
1587
- * Get description of NOVA as a PROFINET device.
1652
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get description of NOVA as a PROFINET device.
1588
1653
  * @summary Get PROFINET Description
1589
1654
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1590
1655
  * @param {*} [options] Override http request option.
@@ -1594,7 +1659,17 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1594
1659
  return BUSInputsOutputsApiFp(this.configuration).getProfinetDescription(cell, options).then((request) => request(this.axios, this.basePath));
1595
1660
  }
1596
1661
  /**
1597
- * 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.
1662
+ * **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.
1663
+ * @summary Get PROFINET GSDML File
1664
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
1665
+ * @param {*} [options] Override http request option.
1666
+ * @throws {RequiredError}
1667
+ */
1668
+ getProfinetGSDML(cell, options) {
1669
+ return BUSInputsOutputsApiFp(this.configuration).getProfinetGSDML(cell, options).then((request) => request(this.axios, this.basePath));
1670
+ }
1671
+ /**
1672
+ * **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.
1598
1673
  * @summary PROFINET Inputs/Outputs to File
1599
1674
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1600
1675
  * @param {number} [inputOffset]
@@ -1606,7 +1681,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1606
1681
  return BUSInputsOutputsApiFp(this.configuration).getProfinetIOsFromFile(cell, inputOffset, outputOffset, options).then((request) => request(this.axios, this.basePath));
1607
1682
  }
1608
1683
  /**
1609
- * 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.
1684
+ * **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.
1610
1685
  * @summary List Descriptions
1611
1686
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1612
1687
  * @param {*} [options] Override http request option.
@@ -1616,7 +1691,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1616
1691
  return BUSInputsOutputsApiFp(this.configuration).listBusIODescriptions(cell, options).then((request) => request(this.axios, this.basePath));
1617
1692
  }
1618
1693
  /**
1619
- * 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).
1694
+ * **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).
1620
1695
  * @summary List MODBUS Input/Output Configuration
1621
1696
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1622
1697
  * @param {*} [options] Override http request option.
@@ -1626,7 +1701,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1626
1701
  return BUSInputsOutputsApiFp(this.configuration).listModbusIOs(cell, options).then((request) => request(this.axios, this.basePath));
1627
1702
  }
1628
1703
  /**
1629
- * 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.
1704
+ * **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.
1630
1705
  * @summary List PROFINET Input/Output Configuration
1631
1706
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1632
1707
  * @param {*} [options] Override http request option.
@@ -1636,7 +1711,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1636
1711
  return BUSInputsOutputsApiFp(this.configuration).listProfinetIOs(cell, options).then((request) => request(this.axios, this.basePath));
1637
1712
  }
1638
1713
  /**
1639
- * 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.
1714
+ * **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.
1640
1715
  * @summary Set Output Values
1641
1716
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1642
1717
  * @param {Array<IOValue>} iOValue
@@ -1647,7 +1722,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1647
1722
  return BUSInputsOutputsApiFp(this.configuration).setBusIOValues(cell, iOValue, options).then((request) => request(this.axios, this.basePath));
1648
1723
  }
1649
1724
  /**
1650
- * 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.
1725
+ * **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.
1651
1726
  * @summary Set PROFINET Inputs/Outputs from File
1652
1727
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1653
1728
  * @param {ProfinetInputOutputConfig} profinetInputOutputConfig
@@ -2013,7 +2088,7 @@ const CellApiFactory = function(configuration, basePath, axios$1) {
2013
2088
  */
2014
2089
  var CellApi = class extends BaseAPI {
2015
2090
  /**
2016
- * Check if a more recent Wandelbots NOVA version is available for the cell. Updates greater than the system version are ignored.
2091
+ * **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.
2017
2092
  * @summary Check Cell Update
2018
2093
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2019
2094
  * @param {ReleaseChannel} channel
@@ -2024,7 +2099,7 @@ var CellApi = class extends BaseAPI {
2024
2099
  return CellApiFp(this.configuration).checkCellVersionUpdate(cell, channel, options).then((request) => request(this.axios, this.basePath));
2025
2100
  }
2026
2101
  /**
2027
- * Delete an entire cell.
2102
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Delete an entire cell.
2028
2103
  * @summary Delete Cell
2029
2104
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2030
2105
  * @param {number} [completionTimeout]
@@ -2035,7 +2110,7 @@ var CellApi = class extends BaseAPI {
2035
2110
  return CellApiFp(this.configuration).deleteCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2036
2111
  }
2037
2112
  /**
2038
- * 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.
2113
+ * **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.
2039
2114
  * @summary Add Cell
2040
2115
  * @param {Cell} cell
2041
2116
  * @param {number} [completionTimeout]
@@ -2046,7 +2121,7 @@ var CellApi = class extends BaseAPI {
2046
2121
  return CellApiFp(this.configuration).deployCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2047
2122
  }
2048
2123
  /**
2049
- * List all cell resources.
2124
+ * **Required permissions:** `can_access_cells` - View cell configurations and resources ___ List all cell resources.
2050
2125
  * @summary Configuration
2051
2126
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2052
2127
  * @param {*} [options] Override http request option.
@@ -2056,7 +2131,7 @@ var CellApi = class extends BaseAPI {
2056
2131
  return CellApiFp(this.configuration).getCell(cell, options).then((request) => request(this.axios, this.basePath));
2057
2132
  }
2058
2133
  /**
2059
- * List the status of all cell resources.
2134
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ List the status of all cell resources.
2060
2135
  * @summary Service Status
2061
2136
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2062
2137
  * @param {*} [options] Override http request option.
@@ -2066,7 +2141,7 @@ var CellApi = class extends BaseAPI {
2066
2141
  return CellApiFp(this.configuration).getCellStatus(cell, options).then((request) => request(this.axios, this.basePath));
2067
2142
  }
2068
2143
  /**
2069
- * List all deployed cell names. If no cells are deployed, an empty list is returned.
2144
+ * **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.
2070
2145
  * @summary List Cells
2071
2146
  * @param {*} [options] Override http request option.
2072
2147
  * @throws {RequiredError}
@@ -2075,7 +2150,7 @@ var CellApi = class extends BaseAPI {
2075
2150
  return CellApiFp(this.configuration).listCells(options).then((request) => request(this.axios, this.basePath));
2076
2151
  }
2077
2152
  /**
2078
- * Deactivate or activate the services of a cell.
2153
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Deactivate or activate the services of a cell.
2079
2154
  * @summary Operating State
2080
2155
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2081
2156
  * @param {OperatingState} operatingState Set state of the cell. Active or inactive.
@@ -2086,7 +2161,7 @@ var CellApi = class extends BaseAPI {
2086
2161
  return CellApiFp(this.configuration).setCellStatus(cell, operatingState, options).then((request) => request(this.axios, this.basePath));
2087
2162
  }
2088
2163
  /**
2089
- * Update the definition of the entire Cell.
2164
+ * **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.
2090
2165
  * @summary Update Configuration
2091
2166
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2092
2167
  * @param {Cell} cell2
@@ -2098,7 +2173,7 @@ var CellApi = class extends BaseAPI {
2098
2173
  return CellApiFp(this.configuration).updateCell(cell, cell2, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2099
2174
  }
2100
2175
  /**
2101
- * Update the Foundation chart version for a single cell based on a release channel. The resulting version is capped at the current system version.
2176
+ * **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.
2102
2177
  * @summary Update Cell Version
2103
2178
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2104
2179
  * @param {UpdateCellVersionRequest} updateCellVersionRequest
@@ -2656,7 +2731,7 @@ const ControllerApiFactory = function(configuration, basePath, axios$1) {
2656
2731
  */
2657
2732
  var ControllerApi = class extends BaseAPI {
2658
2733
  /**
2659
- * Add a robot controller to the cell.
2734
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Add a robot controller to the cell.
2660
2735
  * @summary Add Robot Controller
2661
2736
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2662
2737
  * @param {RobotController} robotController
@@ -2668,7 +2743,7 @@ var ControllerApi = class extends BaseAPI {
2668
2743
  return ControllerApiFp(this.configuration).addRobotController(cell, robotController, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2669
2744
  }
2670
2745
  /**
2671
- * Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](#/operations/addRobotController).
2746
+ * **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).
2672
2747
  * @summary Clear Robot Controllers
2673
2748
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2674
2749
  * @param {number} [completionTimeout]
@@ -2679,7 +2754,7 @@ var ControllerApi = class extends BaseAPI {
2679
2754
  return ControllerApiFp(this.configuration).clearRobotControllers(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2680
2755
  }
2681
2756
  /**
2682
- * Delete a robot controller from the cell.
2757
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Delete a robot controller from the cell.
2683
2758
  * @summary Delete Robot Controller
2684
2759
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2685
2760
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2691,7 +2766,7 @@ var ControllerApi = class extends BaseAPI {
2691
2766
  return ControllerApiFp(this.configuration).deleteRobotController(cell, controller, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2692
2767
  }
2693
2768
  /**
2694
- * 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.
2769
+ * **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.
2695
2770
  * @summary Description
2696
2771
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2697
2772
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2702,7 +2777,7 @@ var ControllerApi = class extends BaseAPI {
2702
2777
  return ControllerApiFp(this.configuration).getControllerDescription(cell, controller, options).then((request) => request(this.axios, this.basePath));
2703
2778
  }
2704
2779
  /**
2705
- * 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.
2780
+ * **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.
2706
2781
  * @summary Coordinate System
2707
2782
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2708
2783
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2715,7 +2790,7 @@ var ControllerApi = class extends BaseAPI {
2715
2790
  return ControllerApiFp(this.configuration).getCoordinateSystem(cell, controller, coordinateSystem, orientationType, options).then((request) => request(this.axios, this.basePath));
2716
2791
  }
2717
2792
  /**
2718
- * Get the current state of a robot controller.
2793
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the current state of a robot controller.
2719
2794
  * @summary State
2720
2795
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2721
2796
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2726,7 +2801,7 @@ var ControllerApi = class extends BaseAPI {
2726
2801
  return ControllerApiFp(this.configuration).getCurrentRobotControllerState(cell, controller, options).then((request) => request(this.axios, this.basePath));
2727
2802
  }
2728
2803
  /**
2729
- * Get the configuration for a robot controller.
2804
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the configuration for a robot controller.
2730
2805
  * @summary Robot Controller
2731
2806
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2732
2807
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2737,7 +2812,7 @@ var ControllerApi = class extends BaseAPI {
2737
2812
  return ControllerApiFp(this.configuration).getRobotController(cell, controller, options).then((request) => request(this.axios, this.basePath));
2738
2813
  }
2739
2814
  /**
2740
- * 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.
2815
+ * **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.
2741
2816
  * @summary Virtual Controller Configuration
2742
2817
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2743
2818
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2748,7 +2823,7 @@ var ControllerApi = class extends BaseAPI {
2748
2823
  return ControllerApiFp(this.configuration).getVirtualControllerConfiguration(cell, controller, options).then((request) => request(this.axios, this.basePath));
2749
2824
  }
2750
2825
  /**
2751
- * 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.
2826
+ * **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.
2752
2827
  * @summary List Coordinate Systems
2753
2828
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2754
2829
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2760,7 +2835,7 @@ var ControllerApi = class extends BaseAPI {
2760
2835
  return ControllerApiFp(this.configuration).listCoordinateSystems(cell, controller, orientationType, options).then((request) => request(this.axios, this.basePath));
2761
2836
  }
2762
2837
  /**
2763
- * List the names of all deployed robot controllers.
2838
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List the names of all deployed robot controllers.
2764
2839
  * @summary List Robot Controllers
2765
2840
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2766
2841
  * @param {*} [options] Override http request option.
@@ -2770,7 +2845,7 @@ var ControllerApi = class extends BaseAPI {
2770
2845
  return ControllerApiFp(this.configuration).listRobotControllers(cell, options).then((request) => request(this.axios, this.basePath));
2771
2846
  }
2772
2847
  /**
2773
- * 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.
2848
+ * **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.
2774
2849
  * @summary Set Default Mode
2775
2850
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2776
2851
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2782,7 +2857,7 @@ var ControllerApi = class extends BaseAPI {
2782
2857
  return ControllerApiFp(this.configuration).setDefaultMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
2783
2858
  }
2784
2859
  /**
2785
- * <!-- 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.
2860
+ * **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.
2786
2861
  * @summary Stream Free Drive
2787
2862
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2788
2863
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2794,7 +2869,7 @@ var ControllerApi = class extends BaseAPI {
2794
2869
  return ControllerApiFp(this.configuration).streamFreeDrive(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
2795
2870
  }
2796
2871
  /**
2797
- * <!-- 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.
2872
+ * **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.
2798
2873
  * @summary Stream State
2799
2874
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2800
2875
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2807,7 +2882,7 @@ var ControllerApi = class extends BaseAPI {
2807
2882
  return ControllerApiFp(this.configuration).streamRobotControllerState(cell, controller, responseRate, addControllerTimeout, options).then((request) => request(this.axios, this.basePath));
2808
2883
  }
2809
2884
  /**
2810
- * 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).
2885
+ * **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).
2811
2886
  * @summary Update Robot Controller
2812
2887
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2813
2888
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3040,7 +3115,7 @@ const ControllerInputsOutputsApiFactory = function(configuration, basePath, axio
3040
3115
  */
3041
3116
  var ControllerInputsOutputsApi = class extends BaseAPI {
3042
3117
  /**
3043
- * 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.
3118
+ * **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.
3044
3119
  * @summary List Descriptions
3045
3120
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3046
3121
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3055,7 +3130,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3055
3130
  return ControllerInputsOutputsApiFp(this.configuration).listIODescriptions(cell, controller, ios, direction, valueType, group, options).then((request) => request(this.axios, this.basePath));
3056
3131
  }
3057
3132
  /**
3058
- * 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).
3133
+ * **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).
3059
3134
  * @summary Get Input/Output Values
3060
3135
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3061
3136
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3067,7 +3142,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3067
3142
  return ControllerInputsOutputsApiFp(this.configuration).listIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
3068
3143
  }
3069
3144
  /**
3070
- * 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.
3145
+ * **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.
3071
3146
  * @summary Set Output Values
3072
3147
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3073
3148
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3079,7 +3154,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3079
3154
  return ControllerInputsOutputsApiFp(this.configuration).setOutputValues(cell, controller, iOValue, options).then((request) => request(this.axios, this.basePath));
3080
3155
  }
3081
3156
  /**
3082
- * <!-- 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.
3157
+ * **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.
3083
3158
  * @summary Stream Input/Output Values
3084
3159
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3085
3160
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3091,7 +3166,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3091
3166
  return ControllerInputsOutputsApiFp(this.configuration).streamIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
3092
3167
  }
3093
3168
  /**
3094
- * 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 ```
3169
+ * **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 ```
3095
3170
  * @summary Wait For
3096
3171
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3097
3172
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3164,7 +3239,7 @@ const JoggingApiFactory = function(configuration, basePath, axios$1) {
3164
3239
  */
3165
3240
  var JoggingApi = class extends BaseAPI {
3166
3241
  /**
3167
- * <!-- 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.
3242
+ * **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.
3168
3243
  * @summary Execute Jogging
3169
3244
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3170
3245
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3280,7 +3355,7 @@ const KinematicsApiFactory = function(configuration, basePath, axios$1) {
3280
3355
  */
3281
3356
  var KinematicsApi = class extends BaseAPI {
3282
3357
  /**
3283
- * Returns the TCP poses for a list of given joint positions.
3358
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns the TCP poses for a list of given joint positions.
3284
3359
  * @summary Forward kinematics
3285
3360
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3286
3361
  * @param {ForwardKinematicsRequest} forwardKinematicsRequest
@@ -3291,7 +3366,7 @@ var KinematicsApi = class extends BaseAPI {
3291
3366
  return KinematicsApiFp(this.configuration).forwardKinematics(cell, forwardKinematicsRequest, options).then((request) => request(this.axios, this.basePath));
3292
3367
  }
3293
3368
  /**
3294
- * Returns the reachable joint positions for a list of given poses.
3369
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns the reachable joint positions for a list of given poses.
3295
3370
  * @summary Inverse kinematics
3296
3371
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3297
3372
  * @param {InverseKinematicsRequest} inverseKinematicsRequest
@@ -3465,7 +3540,7 @@ const LicenseApiFactory = function(configuration, basePath, axios$1) {
3465
3540
  */
3466
3541
  var LicenseApi = class extends BaseAPI {
3467
3542
  /**
3468
- * 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.
3543
+ * **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.
3469
3544
  * @summary Activate license
3470
3545
  * @param {ActivateLicenseRequest} activateLicenseRequest
3471
3546
  * @param {*} [options] Override http request option.
@@ -3475,7 +3550,7 @@ var LicenseApi = class extends BaseAPI {
3475
3550
  return LicenseApiFp(this.configuration).activateLicense(activateLicenseRequest, options).then((request) => request(this.axios, this.basePath));
3476
3551
  }
3477
3552
  /**
3478
- * Deactivates active license.
3553
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Deactivates active license.
3479
3554
  * @summary Deactivate license
3480
3555
  * @param {*} [options] Override http request option.
3481
3556
  * @throws {RequiredError}
@@ -3484,7 +3559,7 @@ var LicenseApi = class extends BaseAPI {
3484
3559
  return LicenseApiFp(this.configuration).deactivateLicense(options).then((request) => request(this.axios, this.basePath));
3485
3560
  }
3486
3561
  /**
3487
- * Get information on the license used with the Wandelbots NOVA instance, e.g., licensed product, expiration date, license status.
3562
+ * **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.
3488
3563
  * @summary Get license
3489
3564
  * @param {*} [options] Override http request option.
3490
3565
  * @throws {RequiredError}
@@ -3493,7 +3568,7 @@ var LicenseApi = class extends BaseAPI {
3493
3568
  return LicenseApiFp(this.configuration).getLicense(options).then((request) => request(this.axios, this.basePath));
3494
3569
  }
3495
3570
  /**
3496
- * 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.
3571
+ * **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.
3497
3572
  * @summary Get license status
3498
3573
  * @param {*} [options] Override http request option.
3499
3574
  * @throws {RequiredError}
@@ -3644,7 +3719,7 @@ const MotionGroupApiFactory = function(configuration, basePath, axios$1) {
3644
3719
  */
3645
3720
  var MotionGroupApi = class extends BaseAPI {
3646
3721
  /**
3647
- * Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
3722
+ * **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.
3648
3723
  * @summary State
3649
3724
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3650
3725
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3657,7 +3732,7 @@ var MotionGroupApi = class extends BaseAPI {
3657
3732
  return MotionGroupApiFp(this.configuration).getCurrentMotionGroupState(cell, controller, motionGroup, responseCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
3658
3733
  }
3659
3734
  /**
3660
- * 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.
3735
+ * **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.
3661
3736
  * @summary Description
3662
3737
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3663
3738
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3669,7 +3744,7 @@ var MotionGroupApi = class extends BaseAPI {
3669
3744
  return MotionGroupApiFp(this.configuration).getMotionGroupDescription(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
3670
3745
  }
3671
3746
  /**
3672
- * <!-- theme: success --> > Websocket endpoint Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
3747
+ * **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.
3673
3748
  * @summary Stream State
3674
3749
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3675
3750
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3884,7 +3959,7 @@ const MotionGroupModelsApiFactory = function(configuration, basePath, axios$1) {
3884
3959
  */
3885
3960
  var MotionGroupModelsApi = class extends BaseAPI {
3886
3961
  /**
3887
- * 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.
3962
+ * **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.
3888
3963
  * @summary Get Collision Model
3889
3964
  * @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).
3890
3965
  * @param {*} [options] Override http request option.
@@ -3894,7 +3969,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3894
3969
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupCollisionModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3895
3970
  }
3896
3971
  /**
3897
- * Returns the GLB asset for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3972
+ * **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.
3898
3973
  * @summary Download GLB Model
3899
3974
  * @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).
3900
3975
  * @param {*} [options] Override http request option.
@@ -3904,7 +3979,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3904
3979
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupGlbModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3905
3980
  }
3906
3981
  /**
3907
- * Returns the kinematics model (DH parameters) for the given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models.
3982
+ * **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.
3908
3983
  * @summary Get Kinematics
3909
3984
  * @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).
3910
3985
  * @param {*} [options] Override http request option.
@@ -3914,7 +3989,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3914
3989
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupKinematicModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3915
3990
  }
3916
3991
  /**
3917
- * Returns the list of supported motion group models.
3992
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the list of supported motion group models.
3918
3993
  * @summary Motion Group Models
3919
3994
  * @param {*} [options] Override http request option.
3920
3995
  * @throws {RequiredError}
@@ -3923,7 +3998,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3923
3998
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupModels(options).then((request) => request(this.axios, this.basePath));
3924
3999
  }
3925
4000
  /**
3926
- * Returns the USD scene model for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
4001
+ * **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.
3927
4002
  * @summary Download USD Model
3928
4003
  * @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).
3929
4004
  * @param {*} [options] Override http request option.
@@ -3934,6 +4009,167 @@ var MotionGroupModelsApi = class extends BaseAPI {
3934
4009
  }
3935
4010
  };
3936
4011
  /**
4012
+ * NOVACloudApi - axios parameter creator
4013
+ */
4014
+ const NOVACloudApiAxiosParamCreator = function(configuration) {
4015
+ return {
4016
+ connectToNovaCloud: async (completionTimeout, cloudConnectionRequest, options = {}) => {
4017
+ const localVarUrlObj = new URL(`/experimental/cloud/connect`, DUMMY_BASE_URL);
4018
+ let baseOptions;
4019
+ if (configuration) baseOptions = configuration.baseOptions;
4020
+ const localVarRequestOptions = {
4021
+ method: "POST",
4022
+ ...baseOptions,
4023
+ ...options
4024
+ };
4025
+ const localVarHeaderParameter = {};
4026
+ const localVarQueryParameter = {};
4027
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4028
+ if (completionTimeout !== void 0) localVarQueryParameter["completion_timeout"] = completionTimeout;
4029
+ localVarHeaderParameter["Content-Type"] = "application/json";
4030
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4031
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4032
+ localVarRequestOptions.headers = {
4033
+ ...localVarHeaderParameter,
4034
+ ...headersFromBaseOptions,
4035
+ ...options.headers
4036
+ };
4037
+ localVarRequestOptions.data = serializeDataIfNeeded(cloudConnectionRequest, localVarRequestOptions, configuration);
4038
+ return {
4039
+ url: toPathString(localVarUrlObj),
4040
+ options: localVarRequestOptions
4041
+ };
4042
+ },
4043
+ disconnectFromNovaCloud: async (completionTimeout, options = {}) => {
4044
+ const localVarUrlObj = new URL(`/experimental/cloud/config`, DUMMY_BASE_URL);
4045
+ let baseOptions;
4046
+ if (configuration) baseOptions = configuration.baseOptions;
4047
+ const localVarRequestOptions = {
4048
+ method: "DELETE",
4049
+ ...baseOptions,
4050
+ ...options
4051
+ };
4052
+ const localVarHeaderParameter = {};
4053
+ const localVarQueryParameter = {};
4054
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4055
+ if (completionTimeout !== void 0) localVarQueryParameter["completion_timeout"] = completionTimeout;
4056
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4057
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4058
+ localVarRequestOptions.headers = {
4059
+ ...localVarHeaderParameter,
4060
+ ...headersFromBaseOptions,
4061
+ ...options.headers
4062
+ };
4063
+ return {
4064
+ url: toPathString(localVarUrlObj),
4065
+ options: localVarRequestOptions
4066
+ };
4067
+ },
4068
+ getNovaCloudConfig: async (options = {}) => {
4069
+ const localVarUrlObj = new URL(`/experimental/cloud/config`, DUMMY_BASE_URL);
4070
+ let baseOptions;
4071
+ if (configuration) baseOptions = configuration.baseOptions;
4072
+ const localVarRequestOptions = {
4073
+ method: "GET",
4074
+ ...baseOptions,
4075
+ ...options
4076
+ };
4077
+ const localVarHeaderParameter = {};
4078
+ const localVarQueryParameter = {};
4079
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4080
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4081
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4082
+ localVarRequestOptions.headers = {
4083
+ ...localVarHeaderParameter,
4084
+ ...headersFromBaseOptions,
4085
+ ...options.headers
4086
+ };
4087
+ return {
4088
+ url: toPathString(localVarUrlObj),
4089
+ options: localVarRequestOptions
4090
+ };
4091
+ }
4092
+ };
4093
+ };
4094
+ /**
4095
+ * NOVACloudApi - functional programming interface
4096
+ */
4097
+ const NOVACloudApiFp = function(configuration) {
4098
+ const localVarAxiosParamCreator = NOVACloudApiAxiosParamCreator(configuration);
4099
+ return {
4100
+ async connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4101
+ const localVarAxiosArgs = await localVarAxiosParamCreator.connectToNovaCloud(completionTimeout, cloudConnectionRequest, options);
4102
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4103
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.connectToNovaCloud"]?.[localVarOperationServerIndex]?.url;
4104
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
4105
+ },
4106
+ async disconnectFromNovaCloud(completionTimeout, options) {
4107
+ const localVarAxiosArgs = await localVarAxiosParamCreator.disconnectFromNovaCloud(completionTimeout, options);
4108
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4109
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.disconnectFromNovaCloud"]?.[localVarOperationServerIndex]?.url;
4110
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
4111
+ },
4112
+ async getNovaCloudConfig(options) {
4113
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getNovaCloudConfig(options);
4114
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4115
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.getNovaCloudConfig"]?.[localVarOperationServerIndex]?.url;
4116
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
4117
+ }
4118
+ };
4119
+ };
4120
+ /**
4121
+ * NOVACloudApi - factory interface
4122
+ */
4123
+ const NOVACloudApiFactory = function(configuration, basePath, axios$1) {
4124
+ const localVarFp = NOVACloudApiFp(configuration);
4125
+ return {
4126
+ connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4127
+ return localVarFp.connectToNovaCloud(completionTimeout, cloudConnectionRequest, options).then((request) => request(axios$1, basePath));
4128
+ },
4129
+ disconnectFromNovaCloud(completionTimeout, options) {
4130
+ return localVarFp.disconnectFromNovaCloud(completionTimeout, options).then((request) => request(axios$1, basePath));
4131
+ },
4132
+ getNovaCloudConfig(options) {
4133
+ return localVarFp.getNovaCloudConfig(options).then((request) => request(axios$1, basePath));
4134
+ }
4135
+ };
4136
+ };
4137
+ /**
4138
+ * NOVACloudApi - object-oriented interface
4139
+ */
4140
+ var NOVACloudApi = class extends BaseAPI {
4141
+ /**
4142
+ * **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.
4143
+ * @summary Connect to NOVA Cloud
4144
+ * @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.
4145
+ * @param {CloudConnectionRequest} [cloudConnectionRequest]
4146
+ * @param {*} [options] Override http request option.
4147
+ * @throws {RequiredError}
4148
+ */
4149
+ connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4150
+ return NOVACloudApiFp(this.configuration).connectToNovaCloud(completionTimeout, cloudConnectionRequest, options).then((request) => request(this.axios, this.basePath));
4151
+ }
4152
+ /**
4153
+ * **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.
4154
+ * @summary Disconnect from NOVA Cloud
4155
+ * @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.
4156
+ * @param {*} [options] Override http request option.
4157
+ * @throws {RequiredError}
4158
+ */
4159
+ disconnectFromNovaCloud(completionTimeout, options) {
4160
+ return NOVACloudApiFp(this.configuration).disconnectFromNovaCloud(completionTimeout, options).then((request) => request(this.axios, this.basePath));
4161
+ }
4162
+ /**
4163
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the current NOVA Cloud connection config for this instance.
4164
+ * @summary Get Connection Config
4165
+ * @param {*} [options] Override http request option.
4166
+ * @throws {RequiredError}
4167
+ */
4168
+ getNovaCloudConfig(options) {
4169
+ return NOVACloudApiFp(this.configuration).getNovaCloudConfig(options).then((request) => request(this.axios, this.basePath));
4170
+ }
4171
+ };
4172
+ /**
3937
4173
  * ProgramApi - axios parameter creator
3938
4174
  */
3939
4175
  const ProgramApiAxiosParamCreator = function(configuration) {
@@ -4107,7 +4343,7 @@ const ProgramApiFactory = function(configuration, basePath, axios$1) {
4107
4343
  */
4108
4344
  var ProgramApi = class extends BaseAPI {
4109
4345
  /**
4110
- * <!-- theme: danger --> > **Experimental** Get details of a program.
4346
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Get details of a program.
4111
4347
  * @summary Get program
4112
4348
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4113
4349
  * @param {string} program
@@ -4118,7 +4354,7 @@ var ProgramApi = class extends BaseAPI {
4118
4354
  return ProgramApiFp(this.configuration).getProgram(cell, program, options).then((request) => request(this.axios, this.basePath));
4119
4355
  }
4120
4356
  /**
4121
- * <!-- theme: danger --> > **Experimental** List details of all existing programs.
4357
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** List details of all existing programs.
4122
4358
  * @summary List programs
4123
4359
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4124
4360
  * @param {*} [options] Override http request option.
@@ -4128,7 +4364,7 @@ var ProgramApi = class extends BaseAPI {
4128
4364
  return ProgramApiFp(this.configuration).listPrograms(cell, options).then((request) => request(this.axios, this.basePath));
4129
4365
  }
4130
4366
  /**
4131
- * <!-- theme: danger --> > **Experimental** This endpoint starts a new program execution. The program will be executed asynchronously.
4367
+ * **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.
4132
4368
  * @summary Start the program
4133
4369
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4134
4370
  * @param {string} program
@@ -4140,7 +4376,7 @@ var ProgramApi = class extends BaseAPI {
4140
4376
  return ProgramApiFp(this.configuration).startProgram(cell, program, programStartRequest, options).then((request) => request(this.axios, this.basePath));
4141
4377
  }
4142
4378
  /**
4143
- * <!-- theme: danger --> > **Experimental** Stop a specific program run.
4379
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Stop a specific program run.
4144
4380
  * @summary Stop program run
4145
4381
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4146
4382
  * @param {string} program
@@ -4248,7 +4484,7 @@ const RobotConfigurationsApiFactory = function(configuration, basePath, axios$1)
4248
4484
  */
4249
4485
  var RobotConfigurationsApi = class extends BaseAPI {
4250
4486
  /**
4251
- * Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
4487
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
4252
4488
  * @summary Robot Controller Configurations
4253
4489
  * @param {RobotControllerConfigurationRequest} robotControllerConfigurationRequest
4254
4490
  * @param {*} [options] Override http request option.
@@ -4258,7 +4494,7 @@ var RobotConfigurationsApi = class extends BaseAPI {
4258
4494
  return RobotConfigurationsApiFp(this.configuration).getControllerConfigFromArpScan(robotControllerConfigurationRequest, options).then((request) => request(this.axios, this.basePath));
4259
4495
  }
4260
4496
  /**
4261
- * Returns the identifiers of available robot configurations. A robot configuration represents a robot controller with one or more attached motion groups.
4497
+ * **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.
4262
4498
  * @summary List Robot Configurations
4263
4499
  * @param {*} [options] Override http request option.
4264
4500
  * @throws {RequiredError}
@@ -4838,7 +5074,7 @@ const StoreCollisionComponentsApiFactory = function(configuration, basePath, axi
4838
5074
  */
4839
5075
  var StoreCollisionComponentsApi = class extends BaseAPI {
4840
5076
  /**
4841
- * Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
5077
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
4842
5078
  * @summary Delete Collider
4843
5079
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4844
5080
  * @param {string} collider Unique identifier addressing a collider.
@@ -4849,7 +5085,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4849
5085
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
4850
5086
  }
4851
5087
  /**
4852
- * Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
5088
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
4853
5089
  * @summary Delete Link Chain
4854
5090
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4855
5091
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4860,7 +5096,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4860
5096
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
4861
5097
  }
4862
5098
  /**
4863
- * Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
5099
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
4864
5100
  * @summary Delete Tool
4865
5101
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4866
5102
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -4871,7 +5107,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4871
5107
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
4872
5108
  }
4873
5109
  /**
4874
- * Returns the collider.
5110
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collider.
4875
5111
  * @summary Get Collider
4876
5112
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4877
5113
  * @param {string} collider Unique identifier addressing a collider.
@@ -4882,7 +5118,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4882
5118
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
4883
5119
  }
4884
5120
  /**
4885
- * Returns the collision link chain.
5121
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collision link chain.
4886
5122
  * @summary Get Link Chain
4887
5123
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4888
5124
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4893,7 +5129,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4893
5129
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
4894
5130
  }
4895
5131
  /**
4896
- * Returns the stored tool.
5132
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored tool.
4897
5133
  * @summary Get Tool
4898
5134
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4899
5135
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -4904,7 +5140,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4904
5140
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
4905
5141
  }
4906
5142
  /**
4907
- * Returns the stored link chains.
5143
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored link chains.
4908
5144
  * @summary List Link Chains
4909
5145
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4910
5146
  * @param {*} [options] Override http request option.
@@ -4914,7 +5150,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4914
5150
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChains(cell, options).then((request) => request(this.axios, this.basePath));
4915
5151
  }
4916
5152
  /**
4917
- * Returns a list of keys for stored link chains.
5153
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored link chains.
4918
5154
  * @summary List Link Chain Keys
4919
5155
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4920
5156
  * @param {*} [options] Override http request option.
@@ -4924,7 +5160,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4924
5160
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChainsKeys(cell, options).then((request) => request(this.axios, this.basePath));
4925
5161
  }
4926
5162
  /**
4927
- * Returns all stored colliders.
5163
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns all stored colliders.
4928
5164
  * @summary List Colliders
4929
5165
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4930
5166
  * @param {*} [options] Override http request option.
@@ -4934,7 +5170,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4934
5170
  return StoreCollisionComponentsApiFp(this.configuration).listStoredColliders(cell, options).then((request) => request(this.axios, this.basePath));
4935
5171
  }
4936
5172
  /**
4937
- * Returns a list of keys for stored colliders.
5173
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored colliders.
4938
5174
  * @summary List Collider Keys
4939
5175
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4940
5176
  * @param {*} [options] Override http request option.
@@ -4944,7 +5180,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4944
5180
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollidersKeys(cell, options).then((request) => request(this.axios, this.basePath));
4945
5181
  }
4946
5182
  /**
4947
- * Returns the list of stored tools.
5183
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the list of stored tools.
4948
5184
  * @summary List Tools
4949
5185
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4950
5186
  * @param {*} [options] Override http request option.
@@ -4954,7 +5190,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4954
5190
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionTools(cell, options).then((request) => request(this.axios, this.basePath));
4955
5191
  }
4956
5192
  /**
4957
- * Returns a list of keys for stored tools.
5193
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored tools.
4958
5194
  * @summary List Tool Keys
4959
5195
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4960
5196
  * @param {*} [options] Override http request option.
@@ -4964,7 +5200,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4964
5200
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionToolsKeys(cell, options).then((request) => request(this.axios, this.basePath));
4965
5201
  }
4966
5202
  /**
4967
- * Stores collider. - If the collider does not exist, it will be created. - If the collider exists, it will be updated.
5203
+ * **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.
4968
5204
  * @summary Store Collider
4969
5205
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4970
5206
  * @param {string} collider Unique identifier addressing a collider.
@@ -4976,7 +5212,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4976
5212
  return StoreCollisionComponentsApiFp(this.configuration).storeCollider(cell, collider, collider2, options).then((request) => request(this.axios, this.basePath));
4977
5213
  }
4978
5214
  /**
4979
- * Stores link chain. - If the link chain does not exist, it will be created. - If the link chain exists, it will be updated.
5215
+ * **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.
4980
5216
  * @summary Store Link Chain
4981
5217
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4982
5218
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4988,7 +5224,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4988
5224
  return StoreCollisionComponentsApiFp(this.configuration).storeCollisionLinkChain(cell, linkChain, collider, options).then((request) => request(this.axios, this.basePath));
4989
5225
  }
4990
5226
  /**
4991
- * Stores the tool. - If the tool does not exist, it will be created. - If the tool exists, it will be updated.
5227
+ * **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.
4992
5228
  * @summary Store Tool
4993
5229
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4994
5230
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -5209,7 +5445,7 @@ const StoreCollisionSetupsApiFactory = function(configuration, basePath, axios$1
5209
5445
  */
5210
5446
  var StoreCollisionSetupsApi = class extends BaseAPI {
5211
5447
  /**
5212
- * Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
5448
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
5213
5449
  * @summary Delete Collision Setup
5214
5450
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5215
5451
  * @param {string} setup Identifier of the collision setup
@@ -5220,7 +5456,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5220
5456
  return StoreCollisionSetupsApiFp(this.configuration).deleteStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
5221
5457
  }
5222
5458
  /**
5223
- * Returns the stored collision setup.
5459
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored collision setup.
5224
5460
  * @summary Get Collision Setup
5225
5461
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5226
5462
  * @param {string} setup Identifier of the collision setup
@@ -5231,7 +5467,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5231
5467
  return StoreCollisionSetupsApiFp(this.configuration).getStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
5232
5468
  }
5233
5469
  /**
5234
- * Returns a list of stored collision setups.
5470
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of stored collision setups.
5235
5471
  * @summary List Collision Setups
5236
5472
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5237
5473
  * @param {*} [options] Override http request option.
@@ -5241,7 +5477,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5241
5477
  return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetups(cell, options).then((request) => request(this.axios, this.basePath));
5242
5478
  }
5243
5479
  /**
5244
- * Returns a list of keys for stored collision setups.
5480
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored collision setups.
5245
5481
  * @summary List Collision Setup Keys
5246
5482
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5247
5483
  * @param {*} [options] Override http request option.
@@ -5251,7 +5487,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5251
5487
  return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetupsKeys(cell, options).then((request) => request(this.axios, this.basePath));
5252
5488
  }
5253
5489
  /**
5254
- * Stores collision setup. - If the collision setup does not exist, it will be created. - If the collision setup exists, it will be updated.
5490
+ * **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.
5255
5491
  * @summary Store Collision Setup
5256
5492
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5257
5493
  * @param {string} setup Identifier of the collision setup
@@ -5510,7 +5746,7 @@ const StoreObjectApiFactory = function(configuration, basePath, axios$1) {
5510
5746
  */
5511
5747
  var StoreObjectApi = class extends BaseAPI {
5512
5748
  /**
5513
- * Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
5749
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
5514
5750
  * @summary Clear all Objects
5515
5751
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5516
5752
  * @param {*} [options] Override http request option.
@@ -5520,7 +5756,7 @@ var StoreObjectApi = class extends BaseAPI {
5520
5756
  return StoreObjectApiFp(this.configuration).clearAllObjects(cell, options).then((request) => request(this.axios, this.basePath));
5521
5757
  }
5522
5758
  /**
5523
- * Delete an object <!-- theme: danger --> > This will delete persistently stored data.
5759
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete an object <!-- theme: danger --> > This will delete persistently stored data.
5524
5760
  * @summary Delete Object
5525
5761
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5526
5762
  * @param {string} key
@@ -5531,7 +5767,7 @@ var StoreObjectApi = class extends BaseAPI {
5531
5767
  return StoreObjectApiFp(this.configuration).deleteObject(cell, key, options).then((request) => request(this.axios, this.basePath));
5532
5768
  }
5533
5769
  /**
5534
- * Returns content and metadata of a stored object.
5770
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Returns content and metadata of a stored object.
5535
5771
  * @summary Get Object
5536
5772
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5537
5773
  * @param {string} key
@@ -5542,7 +5778,7 @@ var StoreObjectApi = class extends BaseAPI {
5542
5778
  return StoreObjectApiFp(this.configuration).getObject(cell, key, options).then((request) => request(this.axios, this.basePath));
5543
5779
  }
5544
5780
  /**
5545
- * Returns metadata. Object content is not returned.
5781
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Returns metadata. Object content is not returned.
5546
5782
  * @summary Get Object Metadata
5547
5783
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5548
5784
  * @param {string} key
@@ -5553,7 +5789,7 @@ var StoreObjectApi = class extends BaseAPI {
5553
5789
  return StoreObjectApiFp(this.configuration).getObjectMetadata(cell, key, options).then((request) => request(this.axios, this.basePath));
5554
5790
  }
5555
5791
  /**
5556
- * List the keys for all objects.
5792
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ List the keys for all objects.
5557
5793
  * @summary List all Object Keys
5558
5794
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5559
5795
  * @param {*} [options] Override http request option.
@@ -5563,7 +5799,7 @@ var StoreObjectApi = class extends BaseAPI {
5563
5799
  return StoreObjectApiFp(this.configuration).listAllObjectKeys(cell, options).then((request) => request(this.axios, this.basePath));
5564
5800
  }
5565
5801
  /**
5566
- * 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.
5802
+ * **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.
5567
5803
  * @summary Store Object
5568
5804
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5569
5805
  * @param {string} key
@@ -6016,7 +6252,7 @@ const SystemApiFactory = function(configuration, basePath, axios$1) {
6016
6252
  */
6017
6253
  var SystemApi = class extends BaseAPI {
6018
6254
  /**
6019
- * 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.
6255
+ * **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.
6020
6256
  * @summary Retrieve Configuration Backup
6021
6257
  * @param {Array<string>} [resources] List of resource identifiers to include in the retrieval.
6022
6258
  * @param {{ [key: string]: string; }} [metadata] Additional metadata to add to the backup
@@ -6027,7 +6263,7 @@ var SystemApi = class extends BaseAPI {
6027
6263
  return SystemApiFp(this.configuration).backupConfiguration(resources, metadata, options).then((request) => request(this.axios, this.basePath));
6028
6264
  }
6029
6265
  /**
6030
- * Check if a more recent Wandelbots NOVA Version is available.
6266
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Check if a more recent Wandelbots NOVA Version is available.
6031
6267
  * @summary Check update
6032
6268
  * @param {ReleaseChannel} channel
6033
6269
  * @param {*} [options] Override http request option.
@@ -6037,7 +6273,7 @@ var SystemApi = class extends BaseAPI {
6037
6273
  return SystemApiFp(this.configuration).checkNovaVersionUpdate(channel, options).then((request) => request(this.axios, this.basePath));
6038
6274
  }
6039
6275
  /**
6040
- * <!-- 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.
6276
+ * **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.
6041
6277
  * @summary Get ARP-Scan
6042
6278
  * @param {string} [_interface]
6043
6279
  * @param {string} [cidr]
@@ -6049,7 +6285,7 @@ var SystemApi = class extends BaseAPI {
6049
6285
  return SystemApiFp(this.configuration).getArpScan(_interface, cidr, timeout, options).then((request) => request(this.axios, this.basePath));
6050
6286
  }
6051
6287
  /**
6052
- * 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.
6288
+ * **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.
6053
6289
  * @summary Retrieve Backup Status
6054
6290
  * @param {string} operationId
6055
6291
  * @param {*} [options] Override http request option.
@@ -6059,7 +6295,7 @@ var SystemApi = class extends BaseAPI {
6059
6295
  return SystemApiFp(this.configuration).getConfigurationBackupStatus(operationId, options).then((request) => request(this.axios, this.basePath));
6060
6296
  }
6061
6297
  /**
6062
- * 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.
6298
+ * **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.
6063
6299
  * @summary Download Diagnosis Package
6064
6300
  * @param {*} [options] Override http request option.
6065
6301
  * @throws {RequiredError}
@@ -6068,7 +6304,7 @@ var SystemApi = class extends BaseAPI {
6068
6304
  return SystemApiFp(this.configuration).getDiagnosePackage(options).then((request) => request(this.axios, this.basePath));
6069
6305
  }
6070
6306
  /**
6071
- * <!-- theme: danger --> > **Experimental** Get the network interfaces of the system.
6307
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the network interfaces of the system.
6072
6308
  * @summary Network Interfaces
6073
6309
  * @param {*} [options] Override http request option.
6074
6310
  * @throws {RequiredError}
@@ -6077,7 +6313,7 @@ var SystemApi = class extends BaseAPI {
6077
6313
  return SystemApiFp(this.configuration).getNetworkInterfaces(options).then((request) => request(this.axios, this.basePath));
6078
6314
  }
6079
6315
  /**
6080
- * <!-- theme: danger --> > **Experimental** Get the current state of the network.
6316
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the current state of the network.
6081
6317
  * @summary Network State
6082
6318
  * @param {*} [options] Override http request option.
6083
6319
  * @throws {RequiredError}
@@ -6086,7 +6322,7 @@ var SystemApi = class extends BaseAPI {
6086
6322
  return SystemApiFp(this.configuration).getNetworkState(options).then((request) => request(this.axios, this.basePath));
6087
6323
  }
6088
6324
  /**
6089
- * Get the status of all system services.
6325
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the status of all system services.
6090
6326
  * @summary Wandelbots NOVA status
6091
6327
  * @param {*} [options] Override http request option.
6092
6328
  * @throws {RequiredError}
@@ -6095,7 +6331,7 @@ var SystemApi = class extends BaseAPI {
6095
6331
  return SystemApiFp(this.configuration).getSystemStatus(options).then((request) => request(this.axios, this.basePath));
6096
6332
  }
6097
6333
  /**
6098
- * Get the current Wandelbots NOVA version.
6334
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the current Wandelbots NOVA version.
6099
6335
  * @summary Wandelbots NOVA Version
6100
6336
  * @param {*} [options] Override http request option.
6101
6337
  * @throws {RequiredError}
@@ -6104,7 +6340,7 @@ var SystemApi = class extends BaseAPI {
6104
6340
  return SystemApiFp(this.configuration).getSystemVersion(options).then((request) => request(this.axios, this.basePath));
6105
6341
  }
6106
6342
  /**
6107
- * Retrieves a list of all available configuration resources for backup purposes.
6343
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves a list of all available configuration resources for backup purposes.
6108
6344
  * @summary List Configuration Resources
6109
6345
  * @param {*} [options] Override http request option.
6110
6346
  * @throws {RequiredError}
@@ -6113,7 +6349,7 @@ var SystemApi = class extends BaseAPI {
6113
6349
  return SystemApiFp(this.configuration).listConfigurationResources(options).then((request) => request(this.axios, this.basePath));
6114
6350
  }
6115
6351
  /**
6116
- * Restores a previously backed up configuration. If an empty array of resources is provided, all resources from the backup will be restored.
6352
+ * **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.
6117
6353
  * @summary Restore Configuration Backup
6118
6354
  * @param {File} body Backup file stream containing the configuration to restore.
6119
6355
  * @param {Array<string>} [resources] List of resource identifiers to restore. If empty, all resources from the backup will be restored.
@@ -6124,7 +6360,7 @@ var SystemApi = class extends BaseAPI {
6124
6360
  return SystemApiFp(this.configuration).restoreConfiguration(body, resources, options).then((request) => request(this.axios, this.basePath));
6125
6361
  }
6126
6362
  /**
6127
- * 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.
6363
+ * **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.
6128
6364
  * @summary Update Wandelbots NOVA version
6129
6365
  * @param {UpdateNovaVersionRequest} updateNovaVersionRequest
6130
6366
  * @param {*} [options] Override http request option.
@@ -6347,7 +6583,7 @@ const TrajectoryCachingApiFactory = function(configuration, basePath, axios$1) {
6347
6583
  */
6348
6584
  var TrajectoryCachingApi = class extends BaseAPI {
6349
6585
  /**
6350
- * 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.
6586
+ * **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.
6351
6587
  * @summary Add Trajectory
6352
6588
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6353
6589
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6359,7 +6595,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6359
6595
  return TrajectoryCachingApiFp(this.configuration).addTrajectory(cell, controller, addTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
6360
6596
  }
6361
6597
  /**
6362
- * Clear the trajectory cache.
6598
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Clear the trajectory cache.
6363
6599
  * @summary Clear Trajectories
6364
6600
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6365
6601
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6370,7 +6606,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6370
6606
  return TrajectoryCachingApiFp(this.configuration).clearTrajectories(cell, controller, options).then((request) => request(this.axios, this.basePath));
6371
6607
  }
6372
6608
  /**
6373
- * 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.
6609
+ * **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.
6374
6610
  * @summary Delete Trajectory
6375
6611
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6376
6612
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6382,7 +6618,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6382
6618
  return TrajectoryCachingApiFp(this.configuration).deleteTrajectory(cell, controller, trajectory, options).then((request) => request(this.axios, this.basePath));
6383
6619
  }
6384
6620
  /**
6385
- * Get a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories.
6621
+ * **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.
6386
6622
  * @summary Get Trajectory
6387
6623
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6388
6624
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6394,7 +6630,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6394
6630
  return TrajectoryCachingApiFp(this.configuration).getTrajectory(cell, controller, trajectory, options).then((request) => request(this.axios, this.basePath));
6395
6631
  }
6396
6632
  /**
6397
- * 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.
6633
+ * **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.
6398
6634
  * @summary List Trajectories
6399
6635
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6400
6636
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6466,7 +6702,7 @@ const TrajectoryExecutionApiFactory = function(configuration, basePath, axios$1)
6466
6702
  */
6467
6703
  var TrajectoryExecutionApi = class extends BaseAPI {
6468
6704
  /**
6469
- * <!-- 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.
6705
+ * **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.
6470
6706
  * @summary Execute Trajectory
6471
6707
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6472
6708
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6569,6 +6805,35 @@ const TrajectoryPlanningApiAxiosParamCreator = function(configuration) {
6569
6805
  url: toPathString(localVarUrlObj),
6570
6806
  options: localVarRequestOptions
6571
6807
  };
6808
+ },
6809
+ searchCollisionFreeMultiMotionGroup: async (cell, multiSearchCollisionFreeRequest, options = {}) => {
6810
+ assertParamExists("searchCollisionFreeMultiMotionGroup", "cell", cell);
6811
+ assertParamExists("searchCollisionFreeMultiMotionGroup", "multiSearchCollisionFreeRequest", multiSearchCollisionFreeRequest);
6812
+ const localVarPath = `/experimental/cells/{cell}/trajectory-planning/search-collision-free-multi-motion-group`.replace(`{cell}`, encodeURIComponent(String(cell)));
6813
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
6814
+ let baseOptions;
6815
+ if (configuration) baseOptions = configuration.baseOptions;
6816
+ const localVarRequestOptions = {
6817
+ method: "POST",
6818
+ ...baseOptions,
6819
+ ...options
6820
+ };
6821
+ const localVarHeaderParameter = {};
6822
+ const localVarQueryParameter = {};
6823
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
6824
+ localVarHeaderParameter["Content-Type"] = "application/json";
6825
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
6826
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6827
+ localVarRequestOptions.headers = {
6828
+ ...localVarHeaderParameter,
6829
+ ...headersFromBaseOptions,
6830
+ ...options.headers
6831
+ };
6832
+ localVarRequestOptions.data = serializeDataIfNeeded(multiSearchCollisionFreeRequest, localVarRequestOptions, configuration);
6833
+ return {
6834
+ url: toPathString(localVarUrlObj),
6835
+ options: localVarRequestOptions
6836
+ };
6572
6837
  }
6573
6838
  };
6574
6839
  };
@@ -6595,6 +6860,12 @@ const TrajectoryPlanningApiFp = function(configuration) {
6595
6860
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6596
6861
  const localVarOperationServerBasePath = operationServerMap["TrajectoryPlanningApi.planTrajectory"]?.[localVarOperationServerIndex]?.url;
6597
6862
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
6863
+ },
6864
+ async searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6865
+ const localVarAxiosArgs = await localVarAxiosParamCreator.searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options);
6866
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6867
+ const localVarOperationServerBasePath = operationServerMap["TrajectoryPlanningApi.searchCollisionFreeMultiMotionGroup"]?.[localVarOperationServerIndex]?.url;
6868
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
6598
6869
  }
6599
6870
  };
6600
6871
  };
@@ -6612,6 +6883,9 @@ const TrajectoryPlanningApiFactory = function(configuration, basePath, axios$1)
6612
6883
  },
6613
6884
  planTrajectory(cell, planTrajectoryRequest, options) {
6614
6885
  return localVarFp.planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(axios$1, basePath));
6886
+ },
6887
+ searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6888
+ return localVarFp.searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options).then((request) => request(axios$1, basePath));
6615
6889
  }
6616
6890
  };
6617
6891
  };
@@ -6620,7 +6894,7 @@ const TrajectoryPlanningApiFactory = function(configuration, basePath, axios$1)
6620
6894
  */
6621
6895
  var TrajectoryPlanningApi = class extends BaseAPI {
6622
6896
  /**
6623
- * <!-- 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.
6897
+ * **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.
6624
6898
  * @summary Merge Trajectories
6625
6899
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6626
6900
  * @param {MergeTrajectoriesRequest} mergeTrajectoriesRequest
@@ -6631,7 +6905,7 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6631
6905
  return TrajectoryPlanningApiFp(this.configuration).mergeTrajectories(cell, mergeTrajectoriesRequest, options).then((request) => request(this.axios, this.basePath));
6632
6906
  }
6633
6907
  /**
6634
- * 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.
6908
+ * **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.
6635
6909
  * @summary Plan Collision-Free Trajectory
6636
6910
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6637
6911
  * @param {PlanCollisionFreeRequest} planCollisionFreeRequest
@@ -6642,7 +6916,7 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6642
6916
  return TrajectoryPlanningApiFp(this.configuration).planCollisionFree(cell, planCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
6643
6917
  }
6644
6918
  /**
6645
- * 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.
6919
+ * **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.
6646
6920
  * @summary Plan Trajectory
6647
6921
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6648
6922
  * @param {PlanTrajectoryRequest} planTrajectoryRequest
@@ -6652,6 +6926,17 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6652
6926
  planTrajectory(cell, planTrajectoryRequest, options) {
6653
6927
  return TrajectoryPlanningApiFp(this.configuration).planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
6654
6928
  }
6929
+ /**
6930
+ * **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.
6931
+ * @summary Search Collision-Free Trajectories for Multiple Motion Groups
6932
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
6933
+ * @param {MultiSearchCollisionFreeRequest} multiSearchCollisionFreeRequest
6934
+ * @param {*} [options] Override http request option.
6935
+ * @throws {RequiredError}
6936
+ */
6937
+ searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6938
+ return TrajectoryPlanningApiFp(this.configuration).searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
6939
+ }
6655
6940
  };
6656
6941
  /**
6657
6942
  * VersionApi - axios parameter creator
@@ -6708,7 +6993,7 @@ const VersionApiFactory = function(configuration, basePath, axios$1) {
6708
6993
  */
6709
6994
  var VersionApi = class extends BaseAPI {
6710
6995
  /**
6711
- * Retrieves the version of the NOVA API.
6996
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Retrieves the version of the NOVA API.
6712
6997
  * @summary API Version
6713
6998
  * @param {*} [options] Override http request option.
6714
6999
  * @throws {RequiredError}
@@ -6783,6 +7068,36 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
6783
7068
  options: localVarRequestOptions
6784
7069
  };
6785
7070
  },
7071
+ addVirtualControllerSafetyZone: async (cell, controller, safetyZone, options = {}) => {
7072
+ assertParamExists("addVirtualControllerSafetyZone", "cell", cell);
7073
+ assertParamExists("addVirtualControllerSafetyZone", "controller", controller);
7074
+ assertParamExists("addVirtualControllerSafetyZone", "safetyZone", safetyZone);
7075
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller)));
7076
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7077
+ let baseOptions;
7078
+ if (configuration) baseOptions = configuration.baseOptions;
7079
+ const localVarRequestOptions = {
7080
+ method: "POST",
7081
+ ...baseOptions,
7082
+ ...options
7083
+ };
7084
+ const localVarHeaderParameter = {};
7085
+ const localVarQueryParameter = {};
7086
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7087
+ localVarHeaderParameter["Content-Type"] = "application/json";
7088
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7089
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7090
+ localVarRequestOptions.headers = {
7091
+ ...localVarHeaderParameter,
7092
+ ...headersFromBaseOptions,
7093
+ ...options.headers
7094
+ };
7095
+ localVarRequestOptions.data = serializeDataIfNeeded(safetyZone, localVarRequestOptions, configuration);
7096
+ return {
7097
+ url: toPathString(localVarUrlObj),
7098
+ options: localVarRequestOptions
7099
+ };
7100
+ },
6786
7101
  addVirtualControllerTcp: async (cell, controller, motionGroup, tcp, robotTcpData, options = {}) => {
6787
7102
  assertParamExists("addVirtualControllerTcp", "cell", cell);
6788
7103
  assertParamExists("addVirtualControllerTcp", "controller", controller);
@@ -6872,6 +7187,34 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
6872
7187
  options: localVarRequestOptions
6873
7188
  };
6874
7189
  },
7190
+ deleteVirtualControllerSafetyZone: async (cell, controller, id, options = {}) => {
7191
+ assertParamExists("deleteVirtualControllerSafetyZone", "cell", cell);
7192
+ assertParamExists("deleteVirtualControllerSafetyZone", "controller", controller);
7193
+ assertParamExists("deleteVirtualControllerSafetyZone", "id", id);
7194
+ 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)));
7195
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7196
+ let baseOptions;
7197
+ if (configuration) baseOptions = configuration.baseOptions;
7198
+ const localVarRequestOptions = {
7199
+ method: "DELETE",
7200
+ ...baseOptions,
7201
+ ...options
7202
+ };
7203
+ const localVarHeaderParameter = {};
7204
+ const localVarQueryParameter = {};
7205
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7206
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7207
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7208
+ localVarRequestOptions.headers = {
7209
+ ...localVarHeaderParameter,
7210
+ ...headersFromBaseOptions,
7211
+ ...options.headers
7212
+ };
7213
+ return {
7214
+ url: toPathString(localVarUrlObj),
7215
+ options: localVarRequestOptions
7216
+ };
7217
+ },
6875
7218
  deleteVirtualControllerTcp: async (cell, controller, motionGroup, tcp, options = {}) => {
6876
7219
  assertParamExists("deleteVirtualControllerTcp", "cell", cell);
6877
7220
  assertParamExists("deleteVirtualControllerTcp", "controller", controller);
@@ -7038,6 +7381,33 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
7038
7381
  options: localVarRequestOptions
7039
7382
  };
7040
7383
  },
7384
+ getVirtualControllerSafetyZones: async (cell, controller, options = {}) => {
7385
+ assertParamExists("getVirtualControllerSafetyZones", "cell", cell);
7386
+ assertParamExists("getVirtualControllerSafetyZones", "controller", controller);
7387
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller)));
7388
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7389
+ let baseOptions;
7390
+ if (configuration) baseOptions = configuration.baseOptions;
7391
+ const localVarRequestOptions = {
7392
+ method: "GET",
7393
+ ...baseOptions,
7394
+ ...options
7395
+ };
7396
+ const localVarHeaderParameter = {};
7397
+ const localVarQueryParameter = {};
7398
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7399
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7400
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7401
+ localVarRequestOptions.headers = {
7402
+ ...localVarHeaderParameter,
7403
+ ...headersFromBaseOptions,
7404
+ ...options.headers
7405
+ };
7406
+ return {
7407
+ url: toPathString(localVarUrlObj),
7408
+ options: localVarRequestOptions
7409
+ };
7410
+ },
7041
7411
  listVirtualControllerCoordinateSystems: async (cell, controller, options = {}) => {
7042
7412
  assertParamExists("listVirtualControllerCoordinateSystems", "cell", cell);
7043
7413
  assertParamExists("listVirtualControllerCoordinateSystems", "controller", controller);
@@ -7232,6 +7602,12 @@ const VirtualControllerApiFp = function(configuration) {
7232
7602
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.addVirtualControllerMotionGroup"]?.[localVarOperationServerIndex]?.url;
7233
7603
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7234
7604
  },
7605
+ async addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7606
+ const localVarAxiosArgs = await localVarAxiosParamCreator.addVirtualControllerSafetyZone(cell, controller, safetyZone, options);
7607
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7608
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.addVirtualControllerSafetyZone"]?.[localVarOperationServerIndex]?.url;
7609
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7610
+ },
7235
7611
  async addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options) {
7236
7612
  const localVarAxiosArgs = await localVarAxiosParamCreator.addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options);
7237
7613
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7250,6 +7626,12 @@ const VirtualControllerApiFp = function(configuration) {
7250
7626
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.deleteVirtualControllerMotionGroup"]?.[localVarOperationServerIndex]?.url;
7251
7627
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7252
7628
  },
7629
+ async deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7630
+ const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVirtualControllerSafetyZone(cell, controller, id, options);
7631
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7632
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.deleteVirtualControllerSafetyZone"]?.[localVarOperationServerIndex]?.url;
7633
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7634
+ },
7253
7635
  async deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options) {
7254
7636
  const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options);
7255
7637
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7286,6 +7668,12 @@ const VirtualControllerApiFp = function(configuration) {
7286
7668
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.getVirtualControllerMounting"]?.[localVarOperationServerIndex]?.url;
7287
7669
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7288
7670
  },
7671
+ async getVirtualControllerSafetyZones(cell, controller, options) {
7672
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getVirtualControllerSafetyZones(cell, controller, options);
7673
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7674
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.getVirtualControllerSafetyZones"]?.[localVarOperationServerIndex]?.url;
7675
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7676
+ },
7289
7677
  async listVirtualControllerCoordinateSystems(cell, controller, options) {
7290
7678
  const localVarAxiosArgs = await localVarAxiosParamCreator.listVirtualControllerCoordinateSystems(cell, controller, options);
7291
7679
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7336,6 +7724,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios$1) {
7336
7724
  addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options) {
7337
7725
  return localVarFp.addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options).then((request) => request(axios$1, basePath));
7338
7726
  },
7727
+ addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7728
+ return localVarFp.addVirtualControllerSafetyZone(cell, controller, safetyZone, options).then((request) => request(axios$1, basePath));
7729
+ },
7339
7730
  addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options) {
7340
7731
  return localVarFp.addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options).then((request) => request(axios$1, basePath));
7341
7732
  },
@@ -7345,6 +7736,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios$1) {
7345
7736
  deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options) {
7346
7737
  return localVarFp.deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options).then((request) => request(axios$1, basePath));
7347
7738
  },
7739
+ deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7740
+ return localVarFp.deleteVirtualControllerSafetyZone(cell, controller, id, options).then((request) => request(axios$1, basePath));
7741
+ },
7348
7742
  deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options) {
7349
7743
  return localVarFp.deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options).then((request) => request(axios$1, basePath));
7350
7744
  },
@@ -7363,6 +7757,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios$1) {
7363
7757
  getVirtualControllerMounting(cell, controller, motionGroup, options) {
7364
7758
  return localVarFp.getVirtualControllerMounting(cell, controller, motionGroup, options).then((request) => request(axios$1, basePath));
7365
7759
  },
7760
+ getVirtualControllerSafetyZones(cell, controller, options) {
7761
+ return localVarFp.getVirtualControllerSafetyZones(cell, controller, options).then((request) => request(axios$1, basePath));
7762
+ },
7366
7763
  listVirtualControllerCoordinateSystems(cell, controller, options) {
7367
7764
  return localVarFp.listVirtualControllerCoordinateSystems(cell, controller, options).then((request) => request(axios$1, basePath));
7368
7765
  },
@@ -7388,7 +7785,7 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios$1) {
7388
7785
  */
7389
7786
  var VirtualControllerApi = class extends BaseAPI {
7390
7787
  /**
7391
- * 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.
7788
+ * **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.
7392
7789
  * @summary Add Coordinate Systems
7393
7790
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7394
7791
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7401,7 +7798,7 @@ var VirtualControllerApi = class extends BaseAPI {
7401
7798
  return VirtualControllerApiFp(this.configuration).addVirtualControllerCoordinateSystem(cell, controller, coordinateSystem, coordinateSystemData, options).then((request) => request(this.axios, this.basePath));
7402
7799
  }
7403
7800
  /**
7404
- * 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.
7801
+ * **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.
7405
7802
  * @summary Add Motion Group
7406
7803
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7407
7804
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7413,7 +7810,19 @@ var VirtualControllerApi = class extends BaseAPI {
7413
7810
  return VirtualControllerApiFp(this.configuration).addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options).then((request) => request(this.axios, this.basePath));
7414
7811
  }
7415
7812
  /**
7416
- * 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.
7813
+ * **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**.
7814
+ * @summary Add Safety Zone
7815
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7816
+ * @param {string} controller Unique identifier to address a controller in the cell.
7817
+ * @param {SafetyZone} safetyZone
7818
+ * @param {*} [options] Override http request option.
7819
+ * @throws {RequiredError}
7820
+ */
7821
+ addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7822
+ return VirtualControllerApiFp(this.configuration).addVirtualControllerSafetyZone(cell, controller, safetyZone, options).then((request) => request(this.axios, this.basePath));
7823
+ }
7824
+ /**
7825
+ * **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.
7417
7826
  * @summary Add TCP
7418
7827
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7419
7828
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7427,7 +7836,7 @@ var VirtualControllerApi = class extends BaseAPI {
7427
7836
  return VirtualControllerApiFp(this.configuration).addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options).then((request) => request(this.axios, this.basePath));
7428
7837
  }
7429
7838
  /**
7430
- * 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.
7839
+ * **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.
7431
7840
  * @summary Delete Coordinate System
7432
7841
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7433
7842
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7440,7 +7849,7 @@ var VirtualControllerApi = class extends BaseAPI {
7440
7849
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerCoordinateSystem(cell, controller, coordinateSystem, deleteDependent, options).then((request) => request(this.axios, this.basePath));
7441
7850
  }
7442
7851
  /**
7443
- * 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**.
7852
+ * **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**.
7444
7853
  * @summary Delete Motion Group
7445
7854
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7446
7855
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7452,7 +7861,19 @@ var VirtualControllerApi = class extends BaseAPI {
7452
7861
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7453
7862
  }
7454
7863
  /**
7455
- * 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.
7864
+ * **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**.
7865
+ * @summary Delete Safety Zone
7866
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7867
+ * @param {string} controller Unique identifier to address a controller in the cell.
7868
+ * @param {number} id The unique identifier of the safety zone to delete.
7869
+ * @param {*} [options] Override http request option.
7870
+ * @throws {RequiredError}
7871
+ */
7872
+ deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7873
+ return VirtualControllerApiFp(this.configuration).deleteVirtualControllerSafetyZone(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
7874
+ }
7875
+ /**
7876
+ * **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.
7456
7877
  * @summary Remove TCP
7457
7878
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7458
7879
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7465,7 +7886,7 @@ var VirtualControllerApi = class extends BaseAPI {
7465
7886
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options).then((request) => request(this.axios, this.basePath));
7466
7887
  }
7467
7888
  /**
7468
- * 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.
7889
+ * **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.
7469
7890
  * @summary Get Emergency Stop State
7470
7891
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7471
7892
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7476,7 +7897,7 @@ var VirtualControllerApi = class extends BaseAPI {
7476
7897
  return VirtualControllerApiFp(this.configuration).getEmergencyStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
7477
7898
  }
7478
7899
  /**
7479
- * Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
7900
+ * **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.
7480
7901
  * @summary Get Motion Group State
7481
7902
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7482
7903
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7488,7 +7909,7 @@ var VirtualControllerApi = class extends BaseAPI {
7488
7909
  return VirtualControllerApiFp(this.configuration).getMotionGroupState(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7489
7910
  }
7490
7911
  /**
7491
- * Gets information on the motion group.
7912
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets information on the motion group.
7492
7913
  * @summary Motion Group Description
7493
7914
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7494
7915
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7499,7 +7920,7 @@ var VirtualControllerApi = class extends BaseAPI {
7499
7920
  return VirtualControllerApiFp(this.configuration).getMotionGroups(cell, controller, options).then((request) => request(this.axios, this.basePath));
7500
7921
  }
7501
7922
  /**
7502
- * 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.
7923
+ * **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.
7503
7924
  * @summary Get Operation Mode
7504
7925
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7505
7926
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7510,7 +7931,7 @@ var VirtualControllerApi = class extends BaseAPI {
7510
7931
  return VirtualControllerApiFp(this.configuration).getOperationMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
7511
7932
  }
7512
7933
  /**
7513
- * Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
7934
+ * **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.
7514
7935
  * @summary Get Mounting
7515
7936
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7516
7937
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7522,7 +7943,18 @@ var VirtualControllerApi = class extends BaseAPI {
7522
7943
  return VirtualControllerApiFp(this.configuration).getVirtualControllerMounting(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7523
7944
  }
7524
7945
  /**
7525
- * Lists all coordinate systems on the robot controller.
7946
+ * **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.
7947
+ * @summary List Safety Zones
7948
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7949
+ * @param {string} controller Unique identifier to address a controller in the cell.
7950
+ * @param {*} [options] Override http request option.
7951
+ * @throws {RequiredError}
7952
+ */
7953
+ getVirtualControllerSafetyZones(cell, controller, options) {
7954
+ return VirtualControllerApiFp(this.configuration).getVirtualControllerSafetyZones(cell, controller, options).then((request) => request(this.axios, this.basePath));
7955
+ }
7956
+ /**
7957
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists all coordinate systems on the robot controller.
7526
7958
  * @summary List Coordinate Systems
7527
7959
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7528
7960
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7533,7 +7965,7 @@ var VirtualControllerApi = class extends BaseAPI {
7533
7965
  return VirtualControllerApiFp(this.configuration).listVirtualControllerCoordinateSystems(cell, controller, options).then((request) => request(this.axios, this.basePath));
7534
7966
  }
7535
7967
  /**
7536
- * Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
7968
+ * **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.
7537
7969
  * @summary List TCPs
7538
7970
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7539
7971
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7545,7 +7977,7 @@ var VirtualControllerApi = class extends BaseAPI {
7545
7977
  return VirtualControllerApiFp(this.configuration).listVirtualControllerTcps(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7546
7978
  }
7547
7979
  /**
7548
- * 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.
7980
+ * **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.
7549
7981
  * @summary Push or Release Emergency Stop
7550
7982
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7551
7983
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7557,7 +7989,7 @@ var VirtualControllerApi = class extends BaseAPI {
7557
7989
  return VirtualControllerApiFp(this.configuration).setEmergencyStop(cell, controller, active, options).then((request) => request(this.axios, this.basePath));
7558
7990
  }
7559
7991
  /**
7560
- * 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.
7992
+ * **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.
7561
7993
  * @summary Set Motion Group State
7562
7994
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7563
7995
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7570,7 +8002,7 @@ var VirtualControllerApi = class extends BaseAPI {
7570
8002
  return VirtualControllerApiFp(this.configuration).setMotionGroupState(cell, controller, motionGroup, motionGroupJoints, options).then((request) => request(this.axios, this.basePath));
7571
8003
  }
7572
8004
  /**
7573
- * 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.
8005
+ * **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.
7574
8006
  * @summary Set Operation Mode
7575
8007
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7576
8008
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7582,7 +8014,7 @@ var VirtualControllerApi = class extends BaseAPI {
7582
8014
  return VirtualControllerApiFp(this.configuration).setOperationMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
7583
8015
  }
7584
8016
  /**
7585
- * 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.
8017
+ * **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.
7586
8018
  * @summary Set Mounting
7587
8019
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7588
8020
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7771,7 +8203,7 @@ const VirtualControllerBehaviorApiFactory = function(configuration, basePath, ax
7771
8203
  */
7772
8204
  var VirtualControllerBehaviorApi = class extends BaseAPI {
7773
8205
  /**
7774
- * <!-- 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.
8206
+ * **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.
7775
8207
  * @summary Stream Joint Configuration
7776
8208
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7777
8209
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7783,7 +8215,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7783
8215
  return VirtualControllerBehaviorApiFp(this.configuration).externalJointsStream(cell, controller, externalJointStreamRequest, options).then((request) => request(this.axios, this.basePath));
7784
8216
  }
7785
8217
  /**
7786
- * Get the cycle time of controller communication in [ms].
8218
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the cycle time of controller communication in [ms].
7787
8219
  * @summary Get Cycle Time
7788
8220
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7789
8221
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7794,7 +8226,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7794
8226
  return VirtualControllerBehaviorApiFp(this.configuration).getCycleTime(cell, controller, options).then((request) => request(this.axios, this.basePath));
7795
8227
  }
7796
8228
  /**
7797
- * Get the current virtual controller behavior. See [setVirtualControllerBehavior](#/operations/setVirtualControllerBehavior) and the body for details.
8229
+ * **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.
7798
8230
  * @summary Get Behavior
7799
8231
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7800
8232
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7805,7 +8237,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7805
8237
  return VirtualControllerBehaviorApiFp(this.configuration).getVirtualControllerBehavior(cell, controller, options).then((request) => request(this.axios, this.basePath));
7806
8238
  }
7807
8239
  /**
7808
- * Set virtual controller behavior. See query parameters for details.
8240
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Set virtual controller behavior. See query parameters for details.
7809
8241
  * @summary Set Behavior
7810
8242
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7811
8243
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7962,7 +8394,7 @@ const VirtualControllerInputsOutputsApiFactory = function(configuration, basePat
7962
8394
  */
7963
8395
  var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7964
8396
  /**
7965
- * 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).
8397
+ * **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).
7966
8398
  * @summary Get Input/Output Values
7967
8399
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7968
8400
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7974,7 +8406,7 @@ var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7974
8406
  return VirtualControllerInputsOutputsApiFp(this.configuration).listIOs(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
7975
8407
  }
7976
8408
  /**
7977
- * 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.
8409
+ * **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.
7978
8410
  * @summary List Descriptions
7979
8411
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7980
8412
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7989,7 +8421,7 @@ var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7989
8421
  return VirtualControllerInputsOutputsApiFp(this.configuration).listVirtualControllerIODescriptions(cell, controller, ios, direction, valueType, group, options).then((request) => request(this.axios, this.basePath));
7990
8422
  }
7991
8423
  /**
7992
- * Sets a list of values of a virtual controller inputs/outputs.
8424
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets a list of values of a virtual controller inputs/outputs.
7993
8425
  * @summary Set Input/Ouput Values
7994
8426
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7995
8427
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -8154,6 +8586,16 @@ exports.CellApi = CellApi;
8154
8586
  exports.CellApiAxiosParamCreator = CellApiAxiosParamCreator;
8155
8587
  exports.CellApiFactory = CellApiFactory;
8156
8588
  exports.CellApiFp = CellApiFp;
8589
+ exports.CloudConfigStatusConfiguredStatusEnum = CloudConfigStatusConfiguredStatusEnum;
8590
+ exports.CloudConfigStatusNotConfiguredStatusEnum = CloudConfigStatusNotConfiguredStatusEnum;
8591
+ exports.CloudConnectionErrorInvalidTokenCodeEnum = CloudConnectionErrorInvalidTokenCodeEnum;
8592
+ exports.CloudConnectionErrorLeafnodeConnectionErrorCodeEnum = CloudConnectionErrorLeafnodeConnectionErrorCodeEnum;
8593
+ exports.CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum = CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum;
8594
+ exports.CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum = CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum;
8595
+ exports.CloudConnectionErrorNatsFailedCodeEnum = CloudConnectionErrorNatsFailedCodeEnum;
8596
+ exports.CloudConnectionErrorUnexpectedResponseCodeEnum = CloudConnectionErrorUnexpectedResponseCodeEnum;
8597
+ exports.CloudDisconnectionStatusDisconnectedStatusEnum = CloudDisconnectionStatusDisconnectedStatusEnum;
8598
+ exports.CloudDisconnectionStatusDisconnectingStatusEnum = CloudDisconnectionStatusDisconnectingStatusEnum;
8157
8599
  exports.CollisionErrorKindEnum = CollisionErrorKindEnum;
8158
8600
  exports.Comparator = Comparator;
8159
8601
  exports.Configuration = Configuration;
@@ -8171,15 +8613,31 @@ exports.ControllerInputsOutputsApiFp = ControllerInputsOutputsApiFp;
8171
8613
  exports.ConvexHullShapeTypeEnum = ConvexHullShapeTypeEnum;
8172
8614
  exports.CylinderShapeTypeEnum = CylinderShapeTypeEnum;
8173
8615
  exports.Direction = Direction;
8616
+ exports.DirectionConstraintConstraintNameEnum = DirectionConstraintConstraintNameEnum;
8617
+ exports.ErrorDirectionConstraintNotMetErrorFeedbackNameEnum = ErrorDirectionConstraintNotMetErrorFeedbackNameEnum;
8618
+ exports.ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum = ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum;
8174
8619
  exports.ErrorInvalidJointCountErrorFeedbackNameEnum = ErrorInvalidJointCountErrorFeedbackNameEnum;
8175
8620
  exports.ErrorJointLimitExceededErrorFeedbackNameEnum = ErrorJointLimitExceededErrorFeedbackNameEnum;
8176
8621
  exports.ErrorJointPositionCollisionErrorFeedbackNameEnum = ErrorJointPositionCollisionErrorFeedbackNameEnum;
8177
8622
  exports.ErrorMaxIterationsExceededErrorFeedbackNameEnum = ErrorMaxIterationsExceededErrorFeedbackNameEnum;
8623
+ exports.ErrorUnsupportedOperationErrorFeedbackNameEnum = ErrorUnsupportedOperationErrorFeedbackNameEnum;
8178
8624
  exports.FanucControllerKindEnum = FanucControllerKindEnum;
8179
8625
  exports.FeedbackCollisionErrorFeedbackNameEnum = FeedbackCollisionErrorFeedbackNameEnum;
8626
+ exports.FeedbackCommandsMissingErrorFeedbackNameEnum = FeedbackCommandsMissingErrorFeedbackNameEnum;
8627
+ exports.FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum = FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum;
8628
+ exports.FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum = FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum;
8629
+ exports.FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum = FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum;
8630
+ exports.FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum = FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum;
8631
+ exports.FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum = FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum;
8632
+ exports.FeedbackInvalidDofErrorFeedbackNameEnum = FeedbackInvalidDofErrorFeedbackNameEnum;
8633
+ exports.FeedbackInvalidNanValueErrorFeedbackNameEnum = FeedbackInvalidNanValueErrorFeedbackNameEnum;
8634
+ exports.FeedbackInvalidSamplingTimeErrorFeedbackNameEnum = FeedbackInvalidSamplingTimeErrorFeedbackNameEnum;
8180
8635
  exports.FeedbackJointLimitExceededErrorFeedbackNameEnum = FeedbackJointLimitExceededErrorFeedbackNameEnum;
8636
+ exports.FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum = FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum;
8181
8637
  exports.FeedbackOutOfWorkspaceErrorFeedbackNameEnum = FeedbackOutOfWorkspaceErrorFeedbackNameEnum;
8182
8638
  exports.FeedbackSingularityErrorFeedbackNameEnum = FeedbackSingularityErrorFeedbackNameEnum;
8639
+ exports.FeedbackStartJointsMissingErrorFeedbackNameEnum = FeedbackStartJointsMissingErrorFeedbackNameEnum;
8640
+ exports.FeedbackTorqueExceededErrorFeedbackNameEnum = FeedbackTorqueExceededErrorFeedbackNameEnum;
8183
8641
  exports.FloatValueValueTypeEnum = FloatValueValueTypeEnum;
8184
8642
  exports.IOBooleanValueValueTypeEnum = IOBooleanValueValueTypeEnum;
8185
8643
  exports.IODirection = IODirection;
@@ -8202,6 +8660,7 @@ exports.JoggingDetailsKindEnum = JoggingDetailsKindEnum;
8202
8660
  exports.JoggingPausedByUserKindEnum = JoggingPausedByUserKindEnum;
8203
8661
  exports.JoggingPausedNearCollisionKindEnum = JoggingPausedNearCollisionKindEnum;
8204
8662
  exports.JoggingPausedNearJointLimitKindEnum = JoggingPausedNearJointLimitKindEnum;
8663
+ exports.JoggingPausedNearSingularityKindEnum = JoggingPausedNearSingularityKindEnum;
8205
8664
  exports.JoggingPausedOnIOKindEnum = JoggingPausedOnIOKindEnum;
8206
8665
  exports.JoggingRunningKindEnum = JoggingRunningKindEnum;
8207
8666
  exports.JointLimitExceededErrorKindEnum = JointLimitExceededErrorKindEnum;
@@ -8232,6 +8691,10 @@ exports.MotionGroupModelsApiAxiosParamCreator = MotionGroupModelsApiAxiosParamCr
8232
8691
  exports.MotionGroupModelsApiFactory = MotionGroupModelsApiFactory;
8233
8692
  exports.MotionGroupModelsApiFp = MotionGroupModelsApiFp;
8234
8693
  exports.MovementErrorResponseKindEnum = MovementErrorResponseKindEnum;
8694
+ exports.NOVACloudApi = NOVACloudApi;
8695
+ exports.NOVACloudApiAxiosParamCreator = NOVACloudApiAxiosParamCreator;
8696
+ exports.NOVACloudApiFactory = NOVACloudApiFactory;
8697
+ exports.NOVACloudApiFp = NOVACloudApiFp;
8235
8698
  exports.NanValueErrorKindEnum = NanValueErrorKindEnum;
8236
8699
  exports.NetworkStateConnectionTypeEnum = NetworkStateConnectionTypeEnum;
8237
8700
  exports.OperatingState = OperatingState;
@@ -8240,6 +8703,8 @@ exports.OrientationType = OrientationType;
8240
8703
  exports.PathCartesianPTPPathDefinitionNameEnum = PathCartesianPTPPathDefinitionNameEnum;
8241
8704
  exports.PathCirclePathDefinitionNameEnum = PathCirclePathDefinitionNameEnum;
8242
8705
  exports.PathCubicSplinePathDefinitionNameEnum = PathCubicSplinePathDefinitionNameEnum;
8706
+ exports.PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum = PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum;
8707
+ exports.PathDirectionConstrainedJointPTPPathDefinitionNameEnum = PathDirectionConstrainedJointPTPPathDefinitionNameEnum;
8243
8708
  exports.PathJointPTPPathDefinitionNameEnum = PathJointPTPPathDefinitionNameEnum;
8244
8709
  exports.PathLinePathDefinitionNameEnum = PathLinePathDefinitionNameEnum;
8245
8710
  exports.PauseJoggingRequestMessageTypeEnum = PauseJoggingRequestMessageTypeEnum;
@@ -8335,4 +8800,5 @@ exports.VirtualControllerInputsOutputsApiFactory = VirtualControllerInputsOutput
8335
8800
  exports.VirtualControllerInputsOutputsApiFp = VirtualControllerInputsOutputsApiFp;
8336
8801
  exports.VirtualControllerKindEnum = VirtualControllerKindEnum;
8337
8802
  exports.YaskawaControllerKindEnum = YaskawaControllerKindEnum;
8803
+ exports.ZodValidationErrorErrorCodeEnum = ZodValidationErrorErrorCodeEnum;
8338
8804
  exports.operationServerMap = operationServerMap;