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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/v2/index.js CHANGED
@@ -114,6 +114,16 @@ const BusIOsStateEnum = {
114
114
  BusIosStateDisconnected: "BUS_IOS_STATE_DISCONNECTED"
115
115
  };
116
116
  const CapsuleShapeTypeEnum = { Capsule: "capsule" };
117
+ const CloudConfigStatusConfiguredStatusEnum = { Configured: "configured" };
118
+ const CloudConfigStatusNotConfiguredStatusEnum = { NotConfigured: "not_configured" };
119
+ const CloudConnectionErrorInvalidTokenCodeEnum = { InvalidCloudToken: "invalid_cloud_token" };
120
+ const CloudConnectionErrorLeafnodeConnectionErrorCodeEnum = { LeafnodeConnectionError: "leafnode_connection_error" };
121
+ const CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum = { LeafnodeConnectionTimeout: "leafnode_connection_timeout" };
122
+ const CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum = { LeafnodeRestartTimeout: "leafnode_restart_timeout" };
123
+ const CloudConnectionErrorNatsFailedCodeEnum = { NatsConnectionFailed: "nats_connection_failed" };
124
+ const CloudConnectionErrorUnexpectedResponseCodeEnum = { UnexpectedCloudResponse: "unexpected_cloud_response" };
125
+ const CloudDisconnectionStatusDisconnectedStatusEnum = { Disconnected: "disconnected" };
126
+ const CloudDisconnectionStatusDisconnectingStatusEnum = { Disconnecting: "disconnecting" };
117
127
  const CollisionErrorKindEnum = { CollisionError: "CollisionError" };
118
128
  /**
119
129
  * Comparator for the comparison of two values. The comparator is used to compare two values and return a boolean result. The default comparator is unknown.
@@ -138,15 +148,31 @@ const Direction = {
138
148
  DirectionForward: "DIRECTION_FORWARD",
139
149
  DirectionBackward: "DIRECTION_BACKWARD"
140
150
  };
151
+ const DirectionConstraintConstraintNameEnum = { DirectionConstraint: "DirectionConstraint" };
152
+ const ErrorDirectionConstraintNotMetErrorFeedbackNameEnum = { ErrorDirectionConstraintNotMet: "ErrorDirectionConstraintNotMet" };
153
+ const ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { ErrorDirectionConstraintNotNormalized: "ErrorDirectionConstraintNotNormalized" };
141
154
  const ErrorInvalidJointCountErrorFeedbackNameEnum = { ErrorInvalidJointCount: "ErrorInvalidJointCount" };
142
155
  const ErrorJointLimitExceededErrorFeedbackNameEnum = { ErrorJointLimitExceeded: "ErrorJointLimitExceeded" };
143
156
  const ErrorJointPositionCollisionErrorFeedbackNameEnum = { ErrorJointPositionCollision: "ErrorJointPositionCollision" };
144
157
  const ErrorMaxIterationsExceededErrorFeedbackNameEnum = { ErrorMaxIterationsExceeded: "ErrorMaxIterationsExceeded" };
158
+ const ErrorUnsupportedOperationErrorFeedbackNameEnum = { ErrorUnsupportedOperation: "ErrorUnsupportedOperation" };
145
159
  const FanucControllerKindEnum = { FanucController: "FanucController" };
146
160
  const FeedbackCollisionErrorFeedbackNameEnum = { FeedbackCollision: "FeedbackCollision" };
161
+ const FeedbackCommandsMissingErrorFeedbackNameEnum = { FeedbackCommandsMissing: "FeedbackCommandsMissing" };
162
+ const FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum = { FeedbackCubicSplineIsNotIncreasing: "FeedbackCubicSplineIsNotIncreasing" };
163
+ const FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum = { FeedbackCubicSplineNotAtStartPose: "FeedbackCubicSplineNotAtStartPose" };
164
+ const FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum = { FeedbackDirectionConstraintNoSolutionExists: "FeedbackDirectionConstraintNoSolutionExists" };
165
+ const FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotMet: "FeedbackDirectionConstraintNotMet" };
166
+ const FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotNormalized: "FeedbackDirectionConstraintNotNormalized" };
167
+ const FeedbackInvalidDofErrorFeedbackNameEnum = { FeedbackInvalidDof: "FeedbackInvalidDof" };
168
+ const FeedbackInvalidNanValueErrorFeedbackNameEnum = { FeedbackInvalidNanValue: "FeedbackInvalidNanValue" };
169
+ const FeedbackInvalidSamplingTimeErrorFeedbackNameEnum = { FeedbackInvalidSamplingTime: "FeedbackInvalidSamplingTime" };
147
170
  const FeedbackJointLimitExceededErrorFeedbackNameEnum = { FeedbackJointLimitExceeded: "FeedbackJointLimitExceeded" };
171
+ const FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum = { FeedbackNoSolutionInCurrentConfiguration: "FeedbackNoSolutionInCurrentConfiguration" };
148
172
  const FeedbackOutOfWorkspaceErrorFeedbackNameEnum = { FeedbackOutOfWorkspace: "FeedbackOutOfWorkspace" };
149
173
  const FeedbackSingularityErrorFeedbackNameEnum = { FeedbackSingularity: "FeedbackSingularity" };
174
+ const FeedbackStartJointsMissingErrorFeedbackNameEnum = { FeedbackStartJointsMissing: "FeedbackStartJointsMissing" };
175
+ const FeedbackTorqueExceededErrorFeedbackNameEnum = { FeedbackTorqueExceeded: "FeedbackTorqueExceeded" };
150
176
  const FloatValueValueTypeEnum = { Float: "float" };
151
177
  const IOBooleanValueValueTypeEnum = { Boolean: "boolean" };
152
178
  /**
@@ -184,6 +210,7 @@ const JoggingDetailsKindEnum = { Jogging: "JOGGING" };
184
210
  const JoggingPausedByUserKindEnum = { PausedByUser: "PAUSED_BY_USER" };
185
211
  const JoggingPausedNearCollisionKindEnum = { PausedNearCollision: "PAUSED_NEAR_COLLISION" };
186
212
  const JoggingPausedNearJointLimitKindEnum = { PausedNearJointLimit: "PAUSED_NEAR_JOINT_LIMIT" };
213
+ const JoggingPausedNearSingularityKindEnum = { PausedNearSingularity: "PAUSED_NEAR_SINGULARITY" };
187
214
  const JoggingPausedOnIOKindEnum = { PausedOnIo: "PAUSED_ON_IO" };
188
215
  const JoggingRunningKindEnum = { Running: "RUNNING" };
189
216
  const JointLimitExceededErrorKindEnum = { JointLimitExceededError: "JointLimitExceededError" };
@@ -303,6 +330,8 @@ const OrientationType = {
303
330
  const PathCartesianPTPPathDefinitionNameEnum = { PathCartesianPtp: "PathCartesianPTP" };
304
331
  const PathCirclePathDefinitionNameEnum = { PathCircle: "PathCircle" };
305
332
  const PathCubicSplinePathDefinitionNameEnum = { PathCubicSpline: "PathCubicSpline" };
333
+ const PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum = { DirectionConstrainedCartesianPtp: "DirectionConstrainedCartesianPTP" };
334
+ const PathDirectionConstrainedJointPTPPathDefinitionNameEnum = { DirectionConstrainedJointPtp: "DirectionConstrainedJointPTP" };
306
335
  const PathJointPTPPathDefinitionNameEnum = { PathJointPtp: "PathJointPTP" };
307
336
  const PathLinePathDefinitionNameEnum = { PathLine: "PathLine" };
308
337
  const PauseJoggingRequestMessageTypeEnum = { PauseJoggingRequest: "PauseJoggingRequest" };
@@ -460,6 +489,7 @@ const UnitType = {
460
489
  const UniversalrobotsControllerKindEnum = { UniversalrobotsController: "UniversalrobotsController" };
461
490
  const VirtualControllerKindEnum = { VirtualController: "VirtualController" };
462
491
  const YaskawaControllerKindEnum = { YaskawaController: "YaskawaController" };
492
+ const ZodValidationErrorErrorCodeEnum = { ValidationError: "validation_error" };
463
493
  /**
464
494
  * ApplicationApi - axios parameter creator
465
495
  */
@@ -711,7 +741,7 @@ const ApplicationApiFactory = function(configuration, basePath, axios) {
711
741
  */
712
742
  var ApplicationApi = class extends BaseAPI {
713
743
  /**
714
- * Install a basic, containerized web application to the cell to control robots with a customized frontend. #### Prerequisites - A Docker hub account or similar container registry account, with valid credentials. #### Workflow After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](https://docs.wandelbots.io/latest/developing-introduction) for more information. #### Predefined environment variables <!-- theme: NOTE --> > **NOTE** > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
744
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Install a basic, containerized web application to the cell to control robots with a customized frontend. #### Prerequisites - A Docker hub account or similar container registry account, with valid credentials. #### Workflow After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](https://docs.wandelbots.io/latest/developing-introduction) for more information. #### Predefined environment variables <!-- theme: NOTE --> > **NOTE** > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
715
745
  * @summary Add Application
716
746
  * @param {string} cell Unique identifier addressing a cell in all API calls.
717
747
  * @param {App} app
@@ -723,7 +753,7 @@ var ApplicationApi = class extends BaseAPI {
723
753
  return ApplicationApiFp(this.configuration).addApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
724
754
  }
725
755
  /**
726
- * Delete all GUI applications from the cell.
756
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete all GUI applications from the cell.
727
757
  * @summary Clear Applications
728
758
  * @param {string} cell Unique identifier addressing a cell in all API calls.
729
759
  * @param {number} [completionTimeout]
@@ -734,7 +764,7 @@ var ApplicationApi = class extends BaseAPI {
734
764
  return ApplicationApiFp(this.configuration).clearApps(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
735
765
  }
736
766
  /**
737
- * Delete a GUI application from the cell.
767
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete a GUI application from the cell.
738
768
  * @summary Delete Application
739
769
  * @param {string} cell Unique identifier addressing a cell in all API calls.
740
770
  * @param {string} app
@@ -746,7 +776,7 @@ var ApplicationApi = class extends BaseAPI {
746
776
  return ApplicationApiFp(this.configuration).deleteApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
747
777
  }
748
778
  /**
749
- * Get the configuration for an active GUI application in the cell. To update the configuration of a GUI application in the cell, use this configuration with [updateApp](#/operations/updateApp).
779
+ * **Required permissions:** `can_access_apps` - View application configurations ___ Get the configuration for an active GUI application in the cell. To update the configuration of a GUI application in the cell, use this configuration with [updateApp](#/operations/updateApp).
750
780
  * @summary Configuration
751
781
  * @param {string} cell Unique identifier addressing a cell in all API calls.
752
782
  * @param {string} app
@@ -757,7 +787,7 @@ var ApplicationApi = class extends BaseAPI {
757
787
  return ApplicationApiFp(this.configuration).getApp(cell, app, options).then((request) => request(this.axios, this.basePath));
758
788
  }
759
789
  /**
760
- * List all GUI applications that have been added to a cell with [addApp](#/operations/addApp). If the cell does not contain GUI applications, the list is returned empty.
790
+ * **Required permissions:** `can_access_apps` - View application configurations ___ List all GUI applications that have been added to a cell with [addApp](#/operations/addApp). If the cell does not contain GUI applications, the list is returned empty.
761
791
  * @summary List Applications
762
792
  * @param {string} cell Unique identifier addressing a cell in all API calls.
763
793
  * @param {*} [options] Override http request option.
@@ -767,7 +797,7 @@ var ApplicationApi = class extends BaseAPI {
767
797
  return ApplicationApiFp(this.configuration).listApps(cell, options).then((request) => request(this.axios, this.basePath));
768
798
  }
769
799
  /**
770
- * Update the configuration of a GUI application in the cell.
800
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Update the configuration of a GUI application in the cell.
771
801
  * @summary Update Configuration
772
802
  * @param {string} cell Unique identifier addressing a cell in all API calls.
773
803
  * @param {string} app
@@ -1113,6 +1143,32 @@ const BUSInputsOutputsApiAxiosParamCreator = function(configuration) {
1113
1143
  options: localVarRequestOptions
1114
1144
  };
1115
1145
  },
1146
+ getProfinetGSDML: async (cell, options = {}) => {
1147
+ assertParamExists("getProfinetGSDML", "cell", cell);
1148
+ const localVarPath = `/cells/{cell}/bus-ios/profinet/gsdml`.replace(`{cell}`, encodeURIComponent(String(cell)));
1149
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1150
+ let baseOptions;
1151
+ if (configuration) baseOptions = configuration.baseOptions;
1152
+ const localVarRequestOptions = {
1153
+ method: "GET",
1154
+ ...baseOptions,
1155
+ ...options
1156
+ };
1157
+ const localVarHeaderParameter = {};
1158
+ const localVarQueryParameter = {};
1159
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
1160
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1161
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1162
+ localVarRequestOptions.headers = {
1163
+ ...localVarHeaderParameter,
1164
+ ...headersFromBaseOptions,
1165
+ ...options.headers
1166
+ };
1167
+ return {
1168
+ url: toPathString(localVarUrlObj),
1169
+ options: localVarRequestOptions
1170
+ };
1171
+ },
1116
1172
  getProfinetIOsFromFile: async (cell, inputOffset, outputOffset, options = {}) => {
1117
1173
  assertParamExists("getProfinetIOsFromFile", "cell", cell);
1118
1174
  const localVarPath = `/cells/{cell}/bus-ios/profinet/iofile`.replace(`{cell}`, encodeURIComponent(String(cell)));
@@ -1357,6 +1413,12 @@ const BUSInputsOutputsApiFp = function(configuration) {
1357
1413
  const localVarOperationServerBasePath = operationServerMap["BUSInputsOutputsApi.getProfinetDescription"]?.[localVarOperationServerIndex]?.url;
1358
1414
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1359
1415
  },
1416
+ async getProfinetGSDML(cell, options) {
1417
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getProfinetGSDML(cell, options);
1418
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1419
+ const localVarOperationServerBasePath = operationServerMap["BUSInputsOutputsApi.getProfinetGSDML"]?.[localVarOperationServerIndex]?.url;
1420
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1421
+ },
1360
1422
  async getProfinetIOsFromFile(cell, inputOffset, outputOffset, options) {
1361
1423
  const localVarAxiosArgs = await localVarAxiosParamCreator.getProfinetIOsFromFile(cell, inputOffset, outputOffset, options);
1362
1424
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -1437,6 +1499,9 @@ const BUSInputsOutputsApiFactory = function(configuration, basePath, axios) {
1437
1499
  getProfinetDescription(cell, options) {
1438
1500
  return localVarFp.getProfinetDescription(cell, options).then((request) => request(axios, basePath));
1439
1501
  },
1502
+ getProfinetGSDML(cell, options) {
1503
+ return localVarFp.getProfinetGSDML(cell, options).then((request) => request(axios, basePath));
1504
+ },
1440
1505
  getProfinetIOsFromFile(cell, inputOffset, outputOffset, options) {
1441
1506
  return localVarFp.getProfinetIOsFromFile(cell, inputOffset, outputOffset, options).then((request) => request(axios, basePath));
1442
1507
  },
@@ -1462,7 +1527,7 @@ const BUSInputsOutputsApiFactory = function(configuration, basePath, axios) {
1462
1527
  */
1463
1528
  var BUSInputsOutputsApi = class extends BaseAPI {
1464
1529
  /**
1465
- * Add the BUS inputs/outputs service to the cell. Starts a containerized service that enables BUS connections via the specified ethernet port.
1530
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Add the BUS inputs/outputs service to the cell. Starts a containerized service that enables BUS connections via the specified ethernet port.
1466
1531
  * @summary Add Service
1467
1532
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1468
1533
  * @param {BusIOType} busIOType
@@ -1474,7 +1539,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1474
1539
  return BUSInputsOutputsApiFp(this.configuration).addBusIOService(cell, busIOType, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1475
1540
  }
1476
1541
  /**
1477
- * Adds an input/output variable to or updates an input/output variable on the MODBUS device, e.g., NOVA\'s MODBUS service. The inputs/outputs map variables to specific memory addresses in the process image. The NOVA\'s MODBUS service\'s configuration can be viewed via [listModbusIOs](#/operations/listModbusIOs).
1542
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Adds an input/output variable to or updates an input/output variable on the MODBUS device, e.g., NOVA\'s MODBUS service. The inputs/outputs map variables to specific memory addresses in the process image. The NOVA\'s MODBUS service\'s configuration can be viewed via [listModbusIOs](#/operations/listModbusIOs).
1478
1543
  * @summary Add MODBUS Input/Output
1479
1544
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1480
1545
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1486,7 +1551,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1486
1551
  return BUSInputsOutputsApiFp(this.configuration).addModbusIO(cell, io, modbusIOData, options).then((request) => request(this.axios, this.basePath));
1487
1552
  }
1488
1553
  /**
1489
- * Adds an input/output variable to or updates an input/output variable on the PROFINET device, e.g., NOVA\'s PROFINET service. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller as well as NOVA\'s PROFINET service use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal).
1554
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Adds an input/output variable to or updates an input/output variable on the PROFINET device, e.g., NOVA\'s PROFINET service. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller as well as NOVA\'s PROFINET service use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal).
1490
1555
  * @summary Add PROFINET Input/Output
1491
1556
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1492
1557
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1498,7 +1563,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1498
1563
  return BUSInputsOutputsApiFp(this.configuration).addProfinetIO(cell, io, profinetIOData, options).then((request) => request(this.axios, this.basePath));
1499
1564
  }
1500
1565
  /**
1501
- * Remove the BUS inputs/outputs service from the cell.
1566
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Remove the BUS inputs/outputs service from the cell.
1502
1567
  * @summary Clear Service
1503
1568
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1504
1569
  * @param {number} [completionTimeout]
@@ -1509,7 +1574,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1509
1574
  return BUSInputsOutputsApiFp(this.configuration).clearBusIOService(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1510
1575
  }
1511
1576
  /**
1512
- * Removes all input/output variable configurations from the MODBUS device, e.g., NOVA\'s MODBUS service.
1577
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes all input/output variable configurations from the MODBUS device, e.g., NOVA\'s MODBUS service.
1513
1578
  * @summary Remove all MODBUS Input/Outputs
1514
1579
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1515
1580
  * @param {*} [options] Override http request option.
@@ -1519,7 +1584,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1519
1584
  return BUSInputsOutputsApiFp(this.configuration).deleteAllModbusIOs(cell, options).then((request) => request(this.axios, this.basePath));
1520
1585
  }
1521
1586
  /**
1522
- * Removes all input/output variable configurations from the PROFINET device, e.g., NOVA\'s PROFINET service.
1587
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes all input/output variable configurations from the PROFINET device, e.g., NOVA\'s PROFINET service.
1523
1588
  * @summary Remove all PROFINET Input/Outputs
1524
1589
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1525
1590
  * @param {*} [options] Override http request option.
@@ -1529,7 +1594,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1529
1594
  return BUSInputsOutputsApiFp(this.configuration).deleteAllProfinetIOs(cell, options).then((request) => request(this.axios, this.basePath));
1530
1595
  }
1531
1596
  /**
1532
- * Removes an input/output variable configuration from the MODBUS device, e.g., NOVA\'s MODBUS service.
1597
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes an input/output variable configuration from the MODBUS device, e.g., NOVA\'s MODBUS service.
1533
1598
  * @summary Remove MODBUS Input/Output
1534
1599
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1535
1600
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1540,7 +1605,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1540
1605
  return BUSInputsOutputsApiFp(this.configuration).deleteModbusIO(cell, io, options).then((request) => request(this.axios, this.basePath));
1541
1606
  }
1542
1607
  /**
1543
- * Removes an input/output variable configuration from the PROFINET device, e.g., NOVA\'s PROFINET service.
1608
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes an input/output variable configuration from the PROFINET device, e.g., NOVA\'s PROFINET service.
1544
1609
  * @summary Remove PROFINET Input/Ouptut
1545
1610
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1546
1611
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1551,7 +1616,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1551
1616
  return BUSInputsOutputsApiFp(this.configuration).deleteProfinetIO(cell, io, options).then((request) => request(this.axios, this.basePath));
1552
1617
  }
1553
1618
  /**
1554
- * Get deployed BUS inputs/outputs service.
1619
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get deployed BUS inputs/outputs service.
1555
1620
  * @summary Get Service
1556
1621
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1557
1622
  * @param {*} [options] Override http request option.
@@ -1561,7 +1626,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1561
1626
  return BUSInputsOutputsApiFp(this.configuration).getBusIOService(cell, options).then((request) => request(this.axios, this.basePath));
1562
1627
  }
1563
1628
  /**
1564
- * Get the current state of the BUS Inputs/Outputs service.
1629
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get the current state of the BUS Inputs/Outputs service.
1565
1630
  * @summary State
1566
1631
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1567
1632
  * @param {*} [options] Override http request option.
@@ -1571,7 +1636,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1571
1636
  return BUSInputsOutputsApiFp(this.configuration).getBusIOState(cell, options).then((request) => request(this.axios, this.basePath));
1572
1637
  }
1573
1638
  /**
1574
- * Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listBusIODescriptions](#/operations/listBusIODescriptions).
1639
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listBusIODescriptions](#/operations/listBusIODescriptions).
1575
1640
  * @summary Get Input/Output Values
1576
1641
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1577
1642
  * @param {Array<string>} [ios]
@@ -1582,7 +1647,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1582
1647
  return BUSInputsOutputsApiFp(this.configuration).getBusIOValues(cell, ios, options).then((request) => request(this.axios, this.basePath));
1583
1648
  }
1584
1649
  /**
1585
- * Get description of NOVA as a PROFINET device.
1650
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get description of NOVA as a PROFINET device.
1586
1651
  * @summary Get PROFINET Description
1587
1652
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1588
1653
  * @param {*} [options] Override http request option.
@@ -1592,7 +1657,17 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1592
1657
  return BUSInputsOutputsApiFp(this.configuration).getProfinetDescription(cell, options).then((request) => request(this.axios, this.basePath));
1593
1658
  }
1594
1659
  /**
1595
- * Get input/output variable configuration of the PROFINET device, e.g., NOVA\'s PROFINET service as file. You can specify byte offsets for the input and output variable addresses to get an XML tagmap that is ready to paste to the third party software, e.g., TIA portal.
1660
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Returns the Generic Station Description Markup Language (GSDML) file for the PROFINET device. The GSDML file describes the PROFINET device configuration and capabilities, and can be imported into PROFINET engineering tools, e.g., TIA Portal, or other PLC programming environments. The returned GSDML file matches the current slot configuration of the PROFINET device.
1661
+ * @summary Get PROFINET GSDML File
1662
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
1663
+ * @param {*} [options] Override http request option.
1664
+ * @throws {RequiredError}
1665
+ */
1666
+ getProfinetGSDML(cell, options) {
1667
+ return BUSInputsOutputsApiFp(this.configuration).getProfinetGSDML(cell, options).then((request) => request(this.axios, this.basePath));
1668
+ }
1669
+ /**
1670
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA\'s PROFINET service as file. You can specify byte offsets for the input and output variable addresses to get an XML tagmap that is ready to paste to the third party software, e.g., TIA portal.
1596
1671
  * @summary PROFINET Inputs/Outputs to File
1597
1672
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1598
1673
  * @param {number} [inputOffset]
@@ -1604,7 +1679,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1604
1679
  return BUSInputsOutputsApiFp(this.configuration).getProfinetIOsFromFile(cell, inputOffset, outputOffset, options).then((request) => request(this.axios, this.basePath));
1605
1680
  }
1606
1681
  /**
1607
- * List all input/output descriptions for configured BUS services. The input/output descriptions contain information like name, type and unit. The input/output direction is given in perspective of the BUS service.
1682
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List all input/output descriptions for configured BUS services. The input/output descriptions contain information like name, type and unit. The input/output direction is given in perspective of the BUS service.
1608
1683
  * @summary List Descriptions
1609
1684
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1610
1685
  * @param {*} [options] Override http request option.
@@ -1614,7 +1689,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1614
1689
  return BUSInputsOutputsApiFp(this.configuration).listBusIODescriptions(cell, options).then((request) => request(this.axios, this.basePath));
1615
1690
  }
1616
1691
  /**
1617
- * List descriptions for all configured input/output variables of the MODBUS service. The input/output descriptions contain information like name, type, and address. The input/output direction is given in perspective of the active MODBUS type (service or client). - The byte and bit addresses are the locations in the MODBUS input/output process image the variable points to. - The MODBUS controller, as well as NOVA\'s MODBUS service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA MODBUS service\'s configuration is modified via [addModbusIO](#/operations/addModbusIO).
1692
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List descriptions for all configured input/output variables of the MODBUS service. The input/output descriptions contain information like name, type, and address. The input/output direction is given in perspective of the active MODBUS type (service or client). - The byte and bit addresses are the locations in the MODBUS input/output process image the variable points to. - The MODBUS controller, as well as NOVA\'s MODBUS service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA MODBUS service\'s configuration is modified via [addModbusIO](#/operations/addModbusIO).
1618
1693
  * @summary List MODBUS Input/Output Configuration
1619
1694
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1620
1695
  * @param {*} [options] Override http request option.
@@ -1624,7 +1699,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1624
1699
  return BUSInputsOutputsApiFp(this.configuration).listModbusIOs(cell, options).then((request) => request(this.axios, this.basePath));
1625
1700
  }
1626
1701
  /**
1627
- * List descriptions for all configured input/output variables of the PROFINET service. The input/output descriptions contain information like name, type, and unit. The input/output direction is given in perspective of the PROFINET device, e.g., the configured PROFINET service. - The byte and bit addresses are the locations in the PROFINET input/output process image the variable points to. - The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA PROFINET service\'s configuration is modified via [addProfinetIO](#/operations/addProfinetIO) and [setProfinetIOsFromFile](#/operations/setProfinetIOsFromFile). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal.
1702
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List descriptions for all configured input/output variables of the PROFINET service. The input/output descriptions contain information like name, type, and unit. The input/output direction is given in perspective of the PROFINET device, e.g., the configured PROFINET service. - The byte and bit addresses are the locations in the PROFINET input/output process image the variable points to. - The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA PROFINET service\'s configuration is modified via [addProfinetIO](#/operations/addProfinetIO) and [setProfinetIOsFromFile](#/operations/setProfinetIOsFromFile). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal.
1628
1703
  * @summary List PROFINET Input/Output Configuration
1629
1704
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1630
1705
  * @param {*} [options] Override http request option.
@@ -1634,7 +1709,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1634
1709
  return BUSInputsOutputsApiFp(this.configuration).listProfinetIOs(cell, options).then((request) => request(this.axios, this.basePath));
1635
1710
  }
1636
1711
  /**
1637
- * Set values of outputs. In case of virtual Bus Input/Outputs, also inputs can be set. All available output identifiers can be requested via [listBusIODescriptions](#/operations/listBusIODescriptions). The call will return once the values have been set and accepted by the service.
1712
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Set values of outputs. In case of virtual Bus Input/Outputs, also inputs can be set. All available output identifiers can be requested via [listBusIODescriptions](#/operations/listBusIODescriptions). The call will return once the values have been set and accepted by the service.
1638
1713
  * @summary Set Output Values
1639
1714
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1640
1715
  * @param {Array<IOValue>} iOValue
@@ -1645,7 +1720,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1645
1720
  return BUSInputsOutputsApiFp(this.configuration).setBusIOValues(cell, iOValue, options).then((request) => request(this.axios, this.basePath));
1646
1721
  }
1647
1722
  /**
1648
- * Sets input/output variable configuration on the PROFINET device (i.e. NOVA\'s PROFINET service) from XML file. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding engineering system, e.g., TIA portal. #### Export variables You can export the variable configuration of the PROFINET controller as an XML file from your engineering system, e.g., TIA portal. - The endpoint is built so that the perspective of input and output (PROFINET Device\'s input is PROFINET Controller\'s output) is internally handled (PROFINET device input is PROFINET controller output), meaning that you can paste the exported XML file here without modifying.
1723
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Sets input/output variable configuration on the PROFINET device (i.e. NOVA\'s PROFINET service) from XML file. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding engineering system, e.g., TIA portal. #### Export variables You can export the variable configuration of the PROFINET controller as an XML file from your engineering system, e.g., TIA portal. - The endpoint is built so that the perspective of input and output (PROFINET Device\'s input is PROFINET Controller\'s output) is internally handled (PROFINET device input is PROFINET controller output), meaning that you can paste the exported XML file here without modifying.
1649
1724
  * @summary Set PROFINET Inputs/Outputs from File
1650
1725
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1651
1726
  * @param {ProfinetInputOutputConfig} profinetInputOutputConfig
@@ -2011,7 +2086,7 @@ const CellApiFactory = function(configuration, basePath, axios) {
2011
2086
  */
2012
2087
  var CellApi = class extends BaseAPI {
2013
2088
  /**
2014
- * Check if a more recent Wandelbots NOVA version is available for the cell. Updates greater than the system version are ignored.
2089
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Check if a more recent Wandelbots NOVA version is available for the cell. Updates greater than the system version are ignored.
2015
2090
  * @summary Check Cell Update
2016
2091
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2017
2092
  * @param {ReleaseChannel} channel
@@ -2022,7 +2097,7 @@ var CellApi = class extends BaseAPI {
2022
2097
  return CellApiFp(this.configuration).checkCellVersionUpdate(cell, channel, options).then((request) => request(this.axios, this.basePath));
2023
2098
  }
2024
2099
  /**
2025
- * Delete an entire cell.
2100
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Delete an entire cell.
2026
2101
  * @summary Delete Cell
2027
2102
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2028
2103
  * @param {number} [completionTimeout]
@@ -2033,7 +2108,7 @@ var CellApi = class extends BaseAPI {
2033
2108
  return CellApiFp(this.configuration).deleteCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2034
2109
  }
2035
2110
  /**
2036
- * Deploy an entire cell with all its resources. A cell can be used to deploy a robot controller, one or more robots, as well as custom applications. Refer to the [Wandelbots NOVA documentation](https://docs.wandelbots.io/latest/setup-cell) for more information.
2111
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Deploy an entire cell with all its resources. A cell can be used to deploy a robot controller, one or more robots, as well as custom applications. Refer to the [Wandelbots NOVA documentation](https://docs.wandelbots.io/latest/setup-cell) for more information.
2037
2112
  * @summary Add Cell
2038
2113
  * @param {Cell} cell
2039
2114
  * @param {number} [completionTimeout]
@@ -2044,7 +2119,7 @@ var CellApi = class extends BaseAPI {
2044
2119
  return CellApiFp(this.configuration).deployCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2045
2120
  }
2046
2121
  /**
2047
- * List all cell resources.
2122
+ * **Required permissions:** `can_access_cells` - View cell configurations and resources ___ List all cell resources.
2048
2123
  * @summary Configuration
2049
2124
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2050
2125
  * @param {*} [options] Override http request option.
@@ -2054,7 +2129,7 @@ var CellApi = class extends BaseAPI {
2054
2129
  return CellApiFp(this.configuration).getCell(cell, options).then((request) => request(this.axios, this.basePath));
2055
2130
  }
2056
2131
  /**
2057
- * List the status of all cell resources.
2132
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ List the status of all cell resources.
2058
2133
  * @summary Service Status
2059
2134
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2060
2135
  * @param {*} [options] Override http request option.
@@ -2064,7 +2139,7 @@ var CellApi = class extends BaseAPI {
2064
2139
  return CellApiFp(this.configuration).getCellStatus(cell, options).then((request) => request(this.axios, this.basePath));
2065
2140
  }
2066
2141
  /**
2067
- * List all deployed cell names. If no cells are deployed, an empty list is returned.
2142
+ * **Required permissions:** `can_access_cells` - View cell configurations and resources ___ List all deployed cell names. If no cells are deployed, an empty list is returned.
2068
2143
  * @summary List Cells
2069
2144
  * @param {*} [options] Override http request option.
2070
2145
  * @throws {RequiredError}
@@ -2073,7 +2148,7 @@ var CellApi = class extends BaseAPI {
2073
2148
  return CellApiFp(this.configuration).listCells(options).then((request) => request(this.axios, this.basePath));
2074
2149
  }
2075
2150
  /**
2076
- * Deactivate or activate the services of a cell.
2151
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Deactivate or activate the services of a cell.
2077
2152
  * @summary Operating State
2078
2153
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2079
2154
  * @param {OperatingState} operatingState Set state of the cell. Active or inactive.
@@ -2084,7 +2159,7 @@ var CellApi = class extends BaseAPI {
2084
2159
  return CellApiFp(this.configuration).setCellStatus(cell, operatingState, options).then((request) => request(this.axios, this.basePath));
2085
2160
  }
2086
2161
  /**
2087
- * Update the definition of the entire Cell.
2162
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Update the definition of the entire cell. <!-- theme: info --> > **NOTE** > > This endpoint replaces the full cell configuration and is not a partial update. > To change only one field: > 1. Get the current configuration via [Cell > Configuration](#/operations/getCell). > 2. Send the full configuration with your intended changes via [Cell > Update Configuration](#/operations/updateCell). Omitting existing sections may reset or remove their current configuration.
2088
2163
  * @summary Update Configuration
2089
2164
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2090
2165
  * @param {Cell} cell2
@@ -2096,7 +2171,7 @@ var CellApi = class extends BaseAPI {
2096
2171
  return CellApiFp(this.configuration).updateCell(cell, cell2, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2097
2172
  }
2098
2173
  /**
2099
- * Update the Foundation chart version for a single cell based on a release channel. The resulting version is capped at the current system version.
2174
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Update the Foundation chart version for a single cell based on a release channel. The resulting version is capped at the current system version.
2100
2175
  * @summary Update Cell Version
2101
2176
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2102
2177
  * @param {UpdateCellVersionRequest} updateCellVersionRequest
@@ -2654,7 +2729,7 @@ const ControllerApiFactory = function(configuration, basePath, axios) {
2654
2729
  */
2655
2730
  var ControllerApi = class extends BaseAPI {
2656
2731
  /**
2657
- * Add a robot controller to the cell.
2732
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Add a robot controller to the cell.
2658
2733
  * @summary Add Robot Controller
2659
2734
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2660
2735
  * @param {RobotController} robotController
@@ -2666,7 +2741,7 @@ var ControllerApi = class extends BaseAPI {
2666
2741
  return ControllerApiFp(this.configuration).addRobotController(cell, robotController, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2667
2742
  }
2668
2743
  /**
2669
- * Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](#/operations/addRobotController).
2744
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](#/operations/addRobotController).
2670
2745
  * @summary Clear Robot Controllers
2671
2746
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2672
2747
  * @param {number} [completionTimeout]
@@ -2677,7 +2752,7 @@ var ControllerApi = class extends BaseAPI {
2677
2752
  return ControllerApiFp(this.configuration).clearRobotControllers(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2678
2753
  }
2679
2754
  /**
2680
- * Delete a robot controller from the cell.
2755
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Delete a robot controller from the cell.
2681
2756
  * @summary Delete Robot Controller
2682
2757
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2683
2758
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2689,7 +2764,7 @@ var ControllerApi = class extends BaseAPI {
2689
2764
  return ControllerApiFp(this.configuration).deleteRobotController(cell, controller, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2690
2765
  }
2691
2766
  /**
2692
- * Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](#/operations/getMotionGroupDescription) to get more information about the motion group.
2767
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](#/operations/getMotionGroupDescription) to get more information about the motion group.
2693
2768
  * @summary Description
2694
2769
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2695
2770
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2700,7 +2775,7 @@ var ControllerApi = class extends BaseAPI {
2700
2775
  return ControllerApiFp(this.configuration).getControllerDescription(cell, controller, options).then((request) => request(this.axios, this.basePath));
2701
2776
  }
2702
2777
  /**
2703
- * Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2778
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2704
2779
  * @summary Coordinate System
2705
2780
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2706
2781
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2713,7 +2788,7 @@ var ControllerApi = class extends BaseAPI {
2713
2788
  return ControllerApiFp(this.configuration).getCoordinateSystem(cell, controller, coordinateSystem, orientationType, options).then((request) => request(this.axios, this.basePath));
2714
2789
  }
2715
2790
  /**
2716
- * Get the current state of a robot controller.
2791
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the current state of a robot controller.
2717
2792
  * @summary State
2718
2793
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2719
2794
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2724,7 +2799,7 @@ var ControllerApi = class extends BaseAPI {
2724
2799
  return ControllerApiFp(this.configuration).getCurrentRobotControllerState(cell, controller, options).then((request) => request(this.axios, this.basePath));
2725
2800
  }
2726
2801
  /**
2727
- * Get the configuration for a robot controller.
2802
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the configuration for a robot controller.
2728
2803
  * @summary Robot Controller
2729
2804
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2730
2805
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2735,7 +2810,7 @@ var ControllerApi = class extends BaseAPI {
2735
2810
  return ControllerApiFp(this.configuration).getRobotController(cell, controller, options).then((request) => request(this.axios, this.basePath));
2736
2811
  }
2737
2812
  /**
2738
- * Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the Virtual configuration variant of [addRobotController](#/operations/addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration, which is not required when providing a complete configuration.
2813
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the Virtual configuration variant of [addRobotController](#/operations/addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration, which is not required when providing a complete configuration.
2739
2814
  * @summary Virtual Controller Configuration
2740
2815
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2741
2816
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2746,7 +2821,7 @@ var ControllerApi = class extends BaseAPI {
2746
2821
  return ControllerApiFp(this.configuration).getVirtualControllerConfiguration(cell, controller, options).then((request) => request(this.axios, this.basePath));
2747
2822
  }
2748
2823
  /**
2749
- * Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2824
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2750
2825
  * @summary List Coordinate Systems
2751
2826
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2752
2827
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2758,7 +2833,7 @@ var ControllerApi = class extends BaseAPI {
2758
2833
  return ControllerApiFp(this.configuration).listCoordinateSystems(cell, controller, orientationType, options).then((request) => request(this.axios, this.basePath));
2759
2834
  }
2760
2835
  /**
2761
- * List the names of all deployed robot controllers.
2836
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List the names of all deployed robot controllers.
2762
2837
  * @summary List Robot Controllers
2763
2838
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2764
2839
  * @param {*} [options] Override http request option.
@@ -2768,7 +2843,7 @@ var ControllerApi = class extends BaseAPI {
2768
2843
  return ControllerApiFp(this.configuration).listRobotControllers(cell, options).then((request) => request(this.axios, this.basePath));
2769
2844
  }
2770
2845
  /**
2771
- * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state `normal` or `reduced`. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](#/operations/getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
2846
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state `normal` or `reduced`. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](#/operations/getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
2772
2847
  * @summary Set Default Mode
2773
2848
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2774
2849
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2780,7 +2855,7 @@ var ControllerApi = class extends BaseAPI {
2780
2855
  return ControllerApiFp(this.configuration).setDefaultMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
2781
2856
  }
2782
2857
  /**
2783
- * <!-- theme: success --> > Websocket endpoint Sets the robot controller into freedrive mode and stays in freedrive until the websocket connection is closed by the client. In freedrive mode, it is possible to move the attached motion groups by hand. This is a blocking call. As long as the websocket connection is open, no other endpoint can control or move the robot. <!-- theme: danger --> > **DANGER** > > Danger caused by robot. Improper assessment by the integrator of the application-specific hazards can result in people being > crushed, drawn in or caught due to the robot\'s complex movement sequences. Before opening the websocket, ensure that > > - The robot is in a safe state, > - The right payload is set, > - No humans or object are within the robot\'s reach or within the cell. As long as the websocket connection is open you will get the current state of the robot system in the response in the specified `response_rate`. If the activation failed, the returned status will return possible reasons for the failure. Free drive mode is only available for robot controllers that support it, in particular cobots. Use [listRobotControllers](#/operations/listRobotControllers) to check if the robot controller supports free drive mode.
2858
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Sets the robot controller into freedrive mode and stays in freedrive until the websocket connection is closed by the client. In freedrive mode, it is possible to move the attached motion groups by hand. This is a blocking call. As long as the websocket connection is open, no other endpoint can control or move the robot. <!-- theme: danger --> > **DANGER** > > Danger caused by robot. Improper assessment by the integrator of the application-specific hazards can result in people being > crushed, drawn in or caught due to the robot\'s complex movement sequences. Before opening the websocket, ensure that > > - The robot is in a safe state, > - The right payload is set, > - No humans or object are within the robot\'s reach or within the cell. As long as the websocket connection is open you will get the current state of the robot system in the response in the specified `response_rate`. If the activation failed, the returned status will return possible reasons for the failure. Free drive mode is only available for robot controllers that support it, in particular cobots. Use [listRobotControllers](#/operations/listRobotControllers) to check if the robot controller supports free drive mode.
2784
2859
  * @summary Stream Free Drive
2785
2860
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2786
2861
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2792,7 +2867,7 @@ var ControllerApi = class extends BaseAPI {
2792
2867
  return ControllerApiFp(this.configuration).streamFreeDrive(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
2793
2868
  }
2794
2869
  /**
2795
- * <!-- theme: success --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](#/operations/addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
2870
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](#/operations/addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
2796
2871
  * @summary Stream State
2797
2872
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2798
2873
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2805,7 +2880,7 @@ var ControllerApi = class extends BaseAPI {
2805
2880
  return ControllerApiFp(this.configuration).streamRobotControllerState(cell, controller, responseRate, addControllerTimeout, options).then((request) => request(this.axios, this.basePath));
2806
2881
  }
2807
2882
  /**
2808
- * Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](#/operations/getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](#/operations/deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](#/operations/addRobotController).
2883
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](#/operations/getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](#/operations/deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](#/operations/addRobotController).
2809
2884
  * @summary Update Robot Controller
2810
2885
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2811
2886
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3038,7 +3113,7 @@ const ControllerInputsOutputsApiFactory = function(configuration, basePath, axio
3038
3113
  */
3039
3114
  var ControllerInputsOutputsApi = class extends BaseAPI {
3040
3115
  /**
3041
- * Lists the input/output descriptions of the robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the robot controller\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
3116
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists the input/output descriptions of the robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the robot controller\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
3042
3117
  * @summary List Descriptions
3043
3118
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3044
3119
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3053,7 +3128,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3053
3128
  return ControllerInputsOutputsApiFp(this.configuration).listIODescriptions(cell, controller, ios, direction, valueType, group, options).then((request) => request(this.axios, this.basePath));
3054
3129
  }
3055
3130
  /**
3056
- * Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listIODescriptions](#/operations/listIODescriptions).
3131
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listIODescriptions](#/operations/listIODescriptions).
3057
3132
  * @summary Get Input/Output Values
3058
3133
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3059
3134
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3065,7 +3140,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3065
3140
  return ControllerInputsOutputsApiFp(this.configuration).listIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
3066
3141
  }
3067
3142
  /**
3068
- * Set the values of outputs. All available output identifiers and possible value ranges can be requested via [listIODescriptions](#/operations/listIODescriptions). The call will return once the values have been set on and accepted by the robot. This can take up to 200 milliseconds. > **NOTE** > > Do not call this endpoint while another request is still in progress. The second call will fail.
3143
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Set the values of outputs. All available output identifiers and possible value ranges can be requested via [listIODescriptions](#/operations/listIODescriptions). The call will return once the values have been set on and accepted by the robot. This can take up to 200 milliseconds. > **NOTE** > > Do not call this endpoint while another request is still in progress. The second call will fail.
3069
3144
  * @summary Set Output Values
3070
3145
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3071
3146
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3077,7 +3152,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3077
3152
  return ControllerInputsOutputsApiFp(this.configuration).setOutputValues(cell, controller, iOValue, options).then((request) => request(this.axios, this.basePath));
3078
3153
  }
3079
3154
  /**
3080
- * <!-- theme: success --> > Websocket endpoint Continuously receive updates of input/output values via websocket. Updates are sent in the update rate of the controller. > **NOTE** > > If you request many values simultaneously, the request is likely to fail. The amount of values that can be streamed simultaneously depends on the specific robot controller. > **NOTE** > > The inputs and outputs are sent in the update rate of the controller to prevent losing any values. This can lead to a high amount of data transmitted.
3155
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Continuously receive updates of input/output values via websocket. Updates are sent in the update rate of the controller. > **NOTE** > > If you request many values simultaneously, the request is likely to fail. The amount of values that can be streamed simultaneously depends on the specific robot controller. > **NOTE** > > The inputs and outputs are sent in the update rate of the controller to prevent losing any values. This can lead to a high amount of data transmitted.
3081
3156
  * @summary Stream Input/Output Values
3082
3157
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3083
3158
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3089,7 +3164,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3089
3164
  return ControllerInputsOutputsApiFp(this.configuration).streamIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
3090
3165
  }
3091
3166
  /**
3092
- * Wait until an input/output reaches a certain value. This call returns as soon as the condition is met or the request fails. The `comparison_type` value is used to define how the current value of the input/output is compared with given value. Only set the value that corresponds to the `value_type` of the input/output. See [listIODescriptions](#/operations/listIODescriptions) for more information. **Examples** 1. Wait until analog input `AI_1` < 10: ``` io: \"AI_1\" comparison_type: \"COMPARISON_LESS\" value: 10 ``` 2. Wait until analog input `AI_2` > 5.0: ``` io: \"AI_2\" comparison_type: \"COMPARISON_GREATER\" value: 5.0 ``` 3. Wait until digital input `DI_3` is true: ``` io: \"DI_3\" comparison_type: \"COMPARISON_EQUAL\" value: true ```
3167
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Wait until an input/output reaches a certain value. This call returns as soon as the condition is met or the request fails. The `comparison_type` value is used to define how the current value of the input/output is compared with given value. Only set the value that corresponds to the `value_type` of the input/output. See [listIODescriptions](#/operations/listIODescriptions) for more information. **Examples** 1. Wait until analog input `AI_1` < 10: ``` io: \"AI_1\" comparison_type: \"COMPARISON_LESS\" value: 10 ``` 2. Wait until analog input `AI_2` > 5.0: ``` io: \"AI_2\" comparison_type: \"COMPARISON_GREATER\" value: 5.0 ``` 3. Wait until digital input `DI_3` is true: ``` io: \"DI_3\" comparison_type: \"COMPARISON_EQUAL\" value: true ```
3093
3168
  * @summary Wait For
3094
3169
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3095
3170
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3162,7 +3237,7 @@ const JoggingApiFactory = function(configuration, basePath, axios) {
3162
3237
  */
3163
3238
  var JoggingApi = class extends BaseAPI {
3164
3239
  /**
3165
- * <!-- theme: success --> > Websocket endpoint Provides execution control over a dynamically adaptable jogging motion for a motion group. Jogging describes controlling a motion group by sending real-time commands to move either its joints or the TCP. The commands contain target velocities that may change at any time during execution, so the resulting motion cannot be computed upfront. ### Preconditions The motion group is not moved by any other endpoint. ### Requests #### 1. Send `InitializeJoggingRequest` to configure the jogging. - Sets the robot controller mode to control mode. - Claims the motion group for jogging. For robotic arms, TCP is required to ensure that limits, including TCP limits, are respected. #### 2. Send `JointVelocityRequest` or `TcpVelocityRequest` to start the jogging motion. - Commands can only be processed in the cycle rate of the controller - Sending commands faster will not increase the responsiveness of the jogging motion, it will lead to dropped commands - It is recommended to couple sending commands with the [state stream](#/operations/streamMotionGroupState), which can be subscribed to via nats as well. #### 3. Change or stop the jogging motion - Change the jogging direction and/or velocity during the jogging motion with `JointVelocityRequest` or `TcpVelocityRequest`. - To stop the jogging motion, send zero velocities via either request or `PauseJoggingRequest`. ### Responses - Each request is acknowledged with a corresponding response: - `InitializeJoggingResponse` after `InitializeJoggingRequest` - `JointVelocityResponse` after `JointVelocityRequest` - `TcpVelocityResponse` after `TcpVelocityRequest` - `PauseJoggingResponse` after `PauseJoggingRequest` The responses confirm that the requests were received. They do not signal that the operation was successful; check the [motion group state](#/operations/streamMotionGroupState) for that. - `MovementErrorResponse` with error details is sent in case of an unexpected error, e.g., controller disconnects during jogging. ### Tips and Tricks - Ensure that the websocket connection remains open until the jogging motion is stopped to avoid unexpected stops.
3240
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Provides execution control over a dynamically adaptable jogging motion for a motion group. Jogging describes controlling a motion group by sending real-time commands to move either its joints or the TCP. The commands contain target velocities that may change at any time during execution, so the resulting motion cannot be computed upfront. ### Preconditions The motion group is not moved by any other endpoint. ### Requests #### 1. Send `InitializeJoggingRequest` to configure the jogging. - Sets the robot controller mode to control mode. - Claims the motion group for jogging. For robotic arms, TCP is required to ensure that limits, including TCP limits, are respected. #### 2. Send `JointVelocityRequest` or `TcpVelocityRequest` to start the jogging motion. - Commands can only be processed in the cycle rate of the controller - Sending commands faster will not increase the responsiveness of the jogging motion, it will lead to dropped commands - It is recommended to couple sending commands with the [state stream](#/operations/streamMotionGroupState), which can be subscribed to via nats as well. #### 3. Change or stop the jogging motion - Change the jogging direction and/or velocity during the jogging motion with `JointVelocityRequest` or `TcpVelocityRequest`. - To stop the jogging motion, send zero velocities via either request or `PauseJoggingRequest`. ### Responses - Each request is acknowledged with a corresponding response: - `InitializeJoggingResponse` after `InitializeJoggingRequest` - `JointVelocityResponse` after `JointVelocityRequest` - `TcpVelocityResponse` after `TcpVelocityRequest` - `PauseJoggingResponse` after `PauseJoggingRequest` The responses confirm that the requests were received. They do not signal that the operation was successful; check the [motion group state](#/operations/streamMotionGroupState) for that. - `MovementErrorResponse` with error details is sent in case of an unexpected error, e.g., controller disconnects during jogging. ### Tips and Tricks - Ensure that the websocket connection remains open until the jogging motion is stopped to avoid unexpected stops.
3166
3241
  * @summary Execute Jogging
3167
3242
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3168
3243
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3236,6 +3311,35 @@ const KinematicsApiAxiosParamCreator = function(configuration) {
3236
3311
  url: toPathString(localVarUrlObj),
3237
3312
  options: localVarRequestOptions
3238
3313
  };
3314
+ },
3315
+ projectJointPositionDirectionConstraint: async (cell, projectJointPositionDirectionConstraintRequest, options = {}) => {
3316
+ assertParamExists("projectJointPositionDirectionConstraint", "cell", cell);
3317
+ assertParamExists("projectJointPositionDirectionConstraint", "projectJointPositionDirectionConstraintRequest", projectJointPositionDirectionConstraintRequest);
3318
+ const localVarPath = `/experimental/cells/{cell}/kinematic/project-joint-position-direction-constraint`.replace(`{cell}`, encodeURIComponent(String(cell)));
3319
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3320
+ let baseOptions;
3321
+ if (configuration) baseOptions = configuration.baseOptions;
3322
+ const localVarRequestOptions = {
3323
+ method: "POST",
3324
+ ...baseOptions,
3325
+ ...options
3326
+ };
3327
+ const localVarHeaderParameter = {};
3328
+ const localVarQueryParameter = {};
3329
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
3330
+ localVarHeaderParameter["Content-Type"] = "application/json";
3331
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3332
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3333
+ localVarRequestOptions.headers = {
3334
+ ...localVarHeaderParameter,
3335
+ ...headersFromBaseOptions,
3336
+ ...options.headers
3337
+ };
3338
+ localVarRequestOptions.data = serializeDataIfNeeded(projectJointPositionDirectionConstraintRequest, localVarRequestOptions, configuration);
3339
+ return {
3340
+ url: toPathString(localVarUrlObj),
3341
+ options: localVarRequestOptions
3342
+ };
3239
3343
  }
3240
3344
  };
3241
3345
  };
@@ -3256,6 +3360,12 @@ const KinematicsApiFp = function(configuration) {
3256
3360
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
3257
3361
  const localVarOperationServerBasePath = operationServerMap["KinematicsApi.inverseKinematics"]?.[localVarOperationServerIndex]?.url;
3258
3362
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3363
+ },
3364
+ async projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options) {
3365
+ const localVarAxiosArgs = await localVarAxiosParamCreator.projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options);
3366
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
3367
+ const localVarOperationServerBasePath = operationServerMap["KinematicsApi.projectJointPositionDirectionConstraint"]?.[localVarOperationServerIndex]?.url;
3368
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
3259
3369
  }
3260
3370
  };
3261
3371
  };
@@ -3270,6 +3380,9 @@ const KinematicsApiFactory = function(configuration, basePath, axios) {
3270
3380
  },
3271
3381
  inverseKinematics(cell, inverseKinematicsRequest, options) {
3272
3382
  return localVarFp.inverseKinematics(cell, inverseKinematicsRequest, options).then((request) => request(axios, basePath));
3383
+ },
3384
+ projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options) {
3385
+ return localVarFp.projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options).then((request) => request(axios, basePath));
3273
3386
  }
3274
3387
  };
3275
3388
  };
@@ -3278,7 +3391,7 @@ const KinematicsApiFactory = function(configuration, basePath, axios) {
3278
3391
  */
3279
3392
  var KinematicsApi = class extends BaseAPI {
3280
3393
  /**
3281
- * Returns the TCP poses for a list of given joint positions.
3394
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns the TCP poses for a list of given joint positions.
3282
3395
  * @summary Forward kinematics
3283
3396
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3284
3397
  * @param {ForwardKinematicsRequest} forwardKinematicsRequest
@@ -3289,7 +3402,7 @@ var KinematicsApi = class extends BaseAPI {
3289
3402
  return KinematicsApiFp(this.configuration).forwardKinematics(cell, forwardKinematicsRequest, options).then((request) => request(this.axios, this.basePath));
3290
3403
  }
3291
3404
  /**
3292
- * Returns the reachable joint positions for a list of given poses.
3405
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns the reachable joint positions for a list of given poses.
3293
3406
  * @summary Inverse kinematics
3294
3407
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3295
3408
  * @param {InverseKinematicsRequest} inverseKinematicsRequest
@@ -3299,6 +3412,17 @@ var KinematicsApi = class extends BaseAPI {
3299
3412
  inverseKinematics(cell, inverseKinematicsRequest, options) {
3300
3413
  return KinematicsApiFp(this.configuration).inverseKinematics(cell, inverseKinematicsRequest, options).then((request) => request(this.axios, this.basePath));
3301
3414
  }
3415
+ /**
3416
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Returns the projected joint position that satisfies the direction constraint for a given target joint position. This may alter the TCP pose. To project the cartesian pose instead, use the following code snippet: ```python import numpy as np from scipy.spatial.transform import Rotation as R def project_cartesian_pose_direction_constraint(T_world_tcp: models.Pose, constraint: models.DirectionConstraint) -> models.Pose: constraint_tcp = np.array(constraint.tcp) target_constraint_world = np.array(constraint.world) R_world_tcp = R.from_rotvec(T_world_tcp.orientation.root) current_constraint_world = R_world_tcp.apply(constraint_tcp) R_corr, _ = R.align_vectors([target_constraint_world], [current_constraint_world]) R_world_tcp_new = R_corr * R_world_tcp return models.Pose(position=T_world_tcp.position, orientation=R_world_tcp_new.as_rotvec()) ```
3417
+ * @summary Project joint position to direction constraint
3418
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
3419
+ * @param {ProjectJointPositionDirectionConstraintRequest} projectJointPositionDirectionConstraintRequest
3420
+ * @param {*} [options] Override http request option.
3421
+ * @throws {RequiredError}
3422
+ */
3423
+ projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options) {
3424
+ return KinematicsApiFp(this.configuration).projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options).then((request) => request(this.axios, this.basePath));
3425
+ }
3302
3426
  };
3303
3427
  /**
3304
3428
  * LicenseApi - axios parameter creator
@@ -3463,7 +3587,7 @@ const LicenseApiFactory = function(configuration, basePath, axios) {
3463
3587
  */
3464
3588
  var LicenseApi = class extends BaseAPI {
3465
3589
  /**
3466
- * Activates a license using the provided license owner authentication token. The refresh token is used to enable communication with the license provider without requiring user interaction.
3590
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Activates a license using the provided license owner authentication token. The refresh token is used to enable communication with the license provider without requiring user interaction.
3467
3591
  * @summary Activate license
3468
3592
  * @param {ActivateLicenseRequest} activateLicenseRequest
3469
3593
  * @param {*} [options] Override http request option.
@@ -3473,7 +3597,7 @@ var LicenseApi = class extends BaseAPI {
3473
3597
  return LicenseApiFp(this.configuration).activateLicense(activateLicenseRequest, options).then((request) => request(this.axios, this.basePath));
3474
3598
  }
3475
3599
  /**
3476
- * Deactivates active license.
3600
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Deactivates active license.
3477
3601
  * @summary Deactivate license
3478
3602
  * @param {*} [options] Override http request option.
3479
3603
  * @throws {RequiredError}
@@ -3482,7 +3606,7 @@ var LicenseApi = class extends BaseAPI {
3482
3606
  return LicenseApiFp(this.configuration).deactivateLicense(options).then((request) => request(this.axios, this.basePath));
3483
3607
  }
3484
3608
  /**
3485
- * Get information on the license used with the Wandelbots NOVA instance, e.g., licensed product, expiration date, license status.
3609
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Get information on the license used with the Wandelbots NOVA instance, e.g., licensed product, expiration date, license status.
3486
3610
  * @summary Get license
3487
3611
  * @param {*} [options] Override http request option.
3488
3612
  * @throws {RequiredError}
@@ -3491,7 +3615,7 @@ var LicenseApi = class extends BaseAPI {
3491
3615
  return LicenseApiFp(this.configuration).getLicense(options).then((request) => request(this.axios, this.basePath));
3492
3616
  }
3493
3617
  /**
3494
- * Get the license status. - If `valid`, Wandelbots NOVA can be used. - If `expired`, the license has to be renewed in order to use Wandelbots NOVA.
3618
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the license status. - If `valid`, Wandelbots NOVA can be used. - If `expired`, the license has to be renewed in order to use Wandelbots NOVA.
3495
3619
  * @summary Get license status
3496
3620
  * @param {*} [options] Override http request option.
3497
3621
  * @throws {RequiredError}
@@ -3642,7 +3766,7 @@ const MotionGroupApiFactory = function(configuration, basePath, axios) {
3642
3766
  */
3643
3767
  var MotionGroupApi = class extends BaseAPI {
3644
3768
  /**
3645
- * Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
3769
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
3646
3770
  * @summary State
3647
3771
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3648
3772
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3655,7 +3779,7 @@ var MotionGroupApi = class extends BaseAPI {
3655
3779
  return MotionGroupApiFp(this.configuration).getCurrentMotionGroupState(cell, controller, motionGroup, responseCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
3656
3780
  }
3657
3781
  /**
3658
- * Get the set of parameters that describe the motion group and its configuration including safety zones, limits, etc. This data can change upon connection to the robot.
3782
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the set of parameters that describe the motion group and its configuration including safety zones, limits, etc. This data can change upon connection to the robot.
3659
3783
  * @summary Description
3660
3784
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3661
3785
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3667,7 +3791,7 @@ var MotionGroupApi = class extends BaseAPI {
3667
3791
  return MotionGroupApiFp(this.configuration).getMotionGroupDescription(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
3668
3792
  }
3669
3793
  /**
3670
- * <!-- theme: success --> > Websocket endpoint Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
3794
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
3671
3795
  * @summary Stream State
3672
3796
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3673
3797
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3882,7 +4006,7 @@ const MotionGroupModelsApiFactory = function(configuration, basePath, axios) {
3882
4006
  */
3883
4007
  var MotionGroupModelsApi = class extends BaseAPI {
3884
4008
  /**
3885
- * Returns the default collision link chain for a given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models. The default link chain is derived from 3D models and optimized for collision detection within NOVA. The default link chain includes link shapes only. It does not include any attached components like wire feeders or sensors. Attach additional shapes to the link reference frames by extending the link dictionaries before further use. Additional shapes may overlap each other per link and may also overlap the respective link\'s default shape.
4009
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the default collision link chain for a given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models. The default link chain is derived from 3D models and optimized for collision detection within NOVA. The default link chain includes link shapes only. It does not include any attached components like wire feeders or sensors. Attach additional shapes to the link reference frames by extending the link dictionaries before further use. Additional shapes may overlap each other per link and may also overlap the respective link\'s default shape.
3886
4010
  * @summary Get Collision Model
3887
4011
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3888
4012
  * @param {*} [options] Override http request option.
@@ -3892,7 +4016,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3892
4016
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupCollisionModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3893
4017
  }
3894
4018
  /**
3895
- * Returns the GLB asset for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
4019
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the GLB asset for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3896
4020
  * @summary Download GLB Model
3897
4021
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3898
4022
  * @param {*} [options] Override http request option.
@@ -3902,7 +4026,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3902
4026
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupGlbModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3903
4027
  }
3904
4028
  /**
3905
- * Returns the kinematics model (DH parameters) for the given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models.
4029
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the kinematics model (DH parameters) for the given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models.
3906
4030
  * @summary Get Kinematics
3907
4031
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3908
4032
  * @param {*} [options] Override http request option.
@@ -3912,7 +4036,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3912
4036
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupKinematicModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3913
4037
  }
3914
4038
  /**
3915
- * Returns the list of supported motion group models.
4039
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the list of supported motion group models.
3916
4040
  * @summary Motion Group Models
3917
4041
  * @param {*} [options] Override http request option.
3918
4042
  * @throws {RequiredError}
@@ -3921,7 +4045,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3921
4045
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupModels(options).then((request) => request(this.axios, this.basePath));
3922
4046
  }
3923
4047
  /**
3924
- * Returns the USD scene model for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
4048
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the USD scene model for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3925
4049
  * @summary Download USD Model
3926
4050
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3927
4051
  * @param {*} [options] Override http request option.
@@ -3932,6 +4056,167 @@ var MotionGroupModelsApi = class extends BaseAPI {
3932
4056
  }
3933
4057
  };
3934
4058
  /**
4059
+ * NOVACloudApi - axios parameter creator
4060
+ */
4061
+ const NOVACloudApiAxiosParamCreator = function(configuration) {
4062
+ return {
4063
+ connectToNovaCloud: async (completionTimeout, cloudConnectionRequest, options = {}) => {
4064
+ const localVarUrlObj = new URL(`/experimental/cloud/connect`, DUMMY_BASE_URL);
4065
+ let baseOptions;
4066
+ if (configuration) baseOptions = configuration.baseOptions;
4067
+ const localVarRequestOptions = {
4068
+ method: "POST",
4069
+ ...baseOptions,
4070
+ ...options
4071
+ };
4072
+ const localVarHeaderParameter = {};
4073
+ const localVarQueryParameter = {};
4074
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4075
+ if (completionTimeout !== void 0) localVarQueryParameter["completion_timeout"] = completionTimeout;
4076
+ localVarHeaderParameter["Content-Type"] = "application/json";
4077
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4078
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4079
+ localVarRequestOptions.headers = {
4080
+ ...localVarHeaderParameter,
4081
+ ...headersFromBaseOptions,
4082
+ ...options.headers
4083
+ };
4084
+ localVarRequestOptions.data = serializeDataIfNeeded(cloudConnectionRequest, localVarRequestOptions, configuration);
4085
+ return {
4086
+ url: toPathString(localVarUrlObj),
4087
+ options: localVarRequestOptions
4088
+ };
4089
+ },
4090
+ disconnectFromNovaCloud: async (completionTimeout, options = {}) => {
4091
+ const localVarUrlObj = new URL(`/experimental/cloud/config`, DUMMY_BASE_URL);
4092
+ let baseOptions;
4093
+ if (configuration) baseOptions = configuration.baseOptions;
4094
+ const localVarRequestOptions = {
4095
+ method: "DELETE",
4096
+ ...baseOptions,
4097
+ ...options
4098
+ };
4099
+ const localVarHeaderParameter = {};
4100
+ const localVarQueryParameter = {};
4101
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4102
+ if (completionTimeout !== void 0) localVarQueryParameter["completion_timeout"] = completionTimeout;
4103
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4104
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4105
+ localVarRequestOptions.headers = {
4106
+ ...localVarHeaderParameter,
4107
+ ...headersFromBaseOptions,
4108
+ ...options.headers
4109
+ };
4110
+ return {
4111
+ url: toPathString(localVarUrlObj),
4112
+ options: localVarRequestOptions
4113
+ };
4114
+ },
4115
+ getNovaCloudConfig: async (options = {}) => {
4116
+ const localVarUrlObj = new URL(`/experimental/cloud/config`, DUMMY_BASE_URL);
4117
+ let baseOptions;
4118
+ if (configuration) baseOptions = configuration.baseOptions;
4119
+ const localVarRequestOptions = {
4120
+ method: "GET",
4121
+ ...baseOptions,
4122
+ ...options
4123
+ };
4124
+ const localVarHeaderParameter = {};
4125
+ const localVarQueryParameter = {};
4126
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4127
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4128
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4129
+ localVarRequestOptions.headers = {
4130
+ ...localVarHeaderParameter,
4131
+ ...headersFromBaseOptions,
4132
+ ...options.headers
4133
+ };
4134
+ return {
4135
+ url: toPathString(localVarUrlObj),
4136
+ options: localVarRequestOptions
4137
+ };
4138
+ }
4139
+ };
4140
+ };
4141
+ /**
4142
+ * NOVACloudApi - functional programming interface
4143
+ */
4144
+ const NOVACloudApiFp = function(configuration) {
4145
+ const localVarAxiosParamCreator = NOVACloudApiAxiosParamCreator(configuration);
4146
+ return {
4147
+ async connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4148
+ const localVarAxiosArgs = await localVarAxiosParamCreator.connectToNovaCloud(completionTimeout, cloudConnectionRequest, options);
4149
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4150
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.connectToNovaCloud"]?.[localVarOperationServerIndex]?.url;
4151
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4152
+ },
4153
+ async disconnectFromNovaCloud(completionTimeout, options) {
4154
+ const localVarAxiosArgs = await localVarAxiosParamCreator.disconnectFromNovaCloud(completionTimeout, options);
4155
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4156
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.disconnectFromNovaCloud"]?.[localVarOperationServerIndex]?.url;
4157
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4158
+ },
4159
+ async getNovaCloudConfig(options) {
4160
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getNovaCloudConfig(options);
4161
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4162
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.getNovaCloudConfig"]?.[localVarOperationServerIndex]?.url;
4163
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
4164
+ }
4165
+ };
4166
+ };
4167
+ /**
4168
+ * NOVACloudApi - factory interface
4169
+ */
4170
+ const NOVACloudApiFactory = function(configuration, basePath, axios) {
4171
+ const localVarFp = NOVACloudApiFp(configuration);
4172
+ return {
4173
+ connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4174
+ return localVarFp.connectToNovaCloud(completionTimeout, cloudConnectionRequest, options).then((request) => request(axios, basePath));
4175
+ },
4176
+ disconnectFromNovaCloud(completionTimeout, options) {
4177
+ return localVarFp.disconnectFromNovaCloud(completionTimeout, options).then((request) => request(axios, basePath));
4178
+ },
4179
+ getNovaCloudConfig(options) {
4180
+ return localVarFp.getNovaCloudConfig(options).then((request) => request(axios, basePath));
4181
+ }
4182
+ };
4183
+ };
4184
+ /**
4185
+ * NOVACloudApi - object-oriented interface
4186
+ */
4187
+ var NOVACloudApi = class extends BaseAPI {
4188
+ /**
4189
+ * **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.
4190
+ * @summary Connect to NOVA Cloud
4191
+ * @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.
4192
+ * @param {CloudConnectionRequest} [cloudConnectionRequest]
4193
+ * @param {*} [options] Override http request option.
4194
+ * @throws {RequiredError}
4195
+ */
4196
+ connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4197
+ return NOVACloudApiFp(this.configuration).connectToNovaCloud(completionTimeout, cloudConnectionRequest, options).then((request) => request(this.axios, this.basePath));
4198
+ }
4199
+ /**
4200
+ * **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.
4201
+ * @summary Disconnect from NOVA Cloud
4202
+ * @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.
4203
+ * @param {*} [options] Override http request option.
4204
+ * @throws {RequiredError}
4205
+ */
4206
+ disconnectFromNovaCloud(completionTimeout, options) {
4207
+ return NOVACloudApiFp(this.configuration).disconnectFromNovaCloud(completionTimeout, options).then((request) => request(this.axios, this.basePath));
4208
+ }
4209
+ /**
4210
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the current NOVA Cloud connection config for this instance.
4211
+ * @summary Get Connection Config
4212
+ * @param {*} [options] Override http request option.
4213
+ * @throws {RequiredError}
4214
+ */
4215
+ getNovaCloudConfig(options) {
4216
+ return NOVACloudApiFp(this.configuration).getNovaCloudConfig(options).then((request) => request(this.axios, this.basePath));
4217
+ }
4218
+ };
4219
+ /**
3935
4220
  * ProgramApi - axios parameter creator
3936
4221
  */
3937
4222
  const ProgramApiAxiosParamCreator = function(configuration) {
@@ -4105,7 +4390,7 @@ const ProgramApiFactory = function(configuration, basePath, axios) {
4105
4390
  */
4106
4391
  var ProgramApi = class extends BaseAPI {
4107
4392
  /**
4108
- * <!-- theme: danger --> > **Experimental** Get details of a program.
4393
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Get details of a program.
4109
4394
  * @summary Get program
4110
4395
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4111
4396
  * @param {string} program
@@ -4116,7 +4401,7 @@ var ProgramApi = class extends BaseAPI {
4116
4401
  return ProgramApiFp(this.configuration).getProgram(cell, program, options).then((request) => request(this.axios, this.basePath));
4117
4402
  }
4118
4403
  /**
4119
- * <!-- theme: danger --> > **Experimental** List details of all existing programs.
4404
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** List details of all existing programs.
4120
4405
  * @summary List programs
4121
4406
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4122
4407
  * @param {*} [options] Override http request option.
@@ -4126,7 +4411,7 @@ var ProgramApi = class extends BaseAPI {
4126
4411
  return ProgramApiFp(this.configuration).listPrograms(cell, options).then((request) => request(this.axios, this.basePath));
4127
4412
  }
4128
4413
  /**
4129
- * <!-- theme: danger --> > **Experimental** This endpoint starts a new program execution. The program will be executed asynchronously.
4414
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** This endpoint starts a new program execution. The program will be executed asynchronously.
4130
4415
  * @summary Start the program
4131
4416
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4132
4417
  * @param {string} program
@@ -4138,7 +4423,7 @@ var ProgramApi = class extends BaseAPI {
4138
4423
  return ProgramApiFp(this.configuration).startProgram(cell, program, programStartRequest, options).then((request) => request(this.axios, this.basePath));
4139
4424
  }
4140
4425
  /**
4141
- * <!-- theme: danger --> > **Experimental** Stop a specific program run.
4426
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Stop a specific program run.
4142
4427
  * @summary Stop program run
4143
4428
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4144
4429
  * @param {string} program
@@ -4246,7 +4531,7 @@ const RobotConfigurationsApiFactory = function(configuration, basePath, axios) {
4246
4531
  */
4247
4532
  var RobotConfigurationsApi = class extends BaseAPI {
4248
4533
  /**
4249
- * Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
4534
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
4250
4535
  * @summary Robot Controller Configurations
4251
4536
  * @param {RobotControllerConfigurationRequest} robotControllerConfigurationRequest
4252
4537
  * @param {*} [options] Override http request option.
@@ -4256,7 +4541,7 @@ var RobotConfigurationsApi = class extends BaseAPI {
4256
4541
  return RobotConfigurationsApiFp(this.configuration).getControllerConfigFromArpScan(robotControllerConfigurationRequest, options).then((request) => request(this.axios, this.basePath));
4257
4542
  }
4258
4543
  /**
4259
- * Returns the identifiers of available robot configurations. A robot configuration represents a robot controller with one or more attached motion groups.
4544
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the identifiers of available robot configurations. A robot configuration represents a robot controller with one or more attached motion groups.
4260
4545
  * @summary List Robot Configurations
4261
4546
  * @param {*} [options] Override http request option.
4262
4547
  * @throws {RequiredError}
@@ -4836,7 +5121,7 @@ const StoreCollisionComponentsApiFactory = function(configuration, basePath, axi
4836
5121
  */
4837
5122
  var StoreCollisionComponentsApi = class extends BaseAPI {
4838
5123
  /**
4839
- * Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
5124
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
4840
5125
  * @summary Delete Collider
4841
5126
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4842
5127
  * @param {string} collider Unique identifier addressing a collider.
@@ -4847,7 +5132,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4847
5132
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
4848
5133
  }
4849
5134
  /**
4850
- * Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
5135
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
4851
5136
  * @summary Delete Link Chain
4852
5137
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4853
5138
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4858,7 +5143,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4858
5143
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
4859
5144
  }
4860
5145
  /**
4861
- * Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
5146
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
4862
5147
  * @summary Delete Tool
4863
5148
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4864
5149
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -4869,7 +5154,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4869
5154
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
4870
5155
  }
4871
5156
  /**
4872
- * Returns the collider.
5157
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collider.
4873
5158
  * @summary Get Collider
4874
5159
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4875
5160
  * @param {string} collider Unique identifier addressing a collider.
@@ -4880,7 +5165,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4880
5165
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
4881
5166
  }
4882
5167
  /**
4883
- * Returns the collision link chain.
5168
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collision link chain.
4884
5169
  * @summary Get Link Chain
4885
5170
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4886
5171
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4891,7 +5176,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4891
5176
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
4892
5177
  }
4893
5178
  /**
4894
- * Returns the stored tool.
5179
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored tool.
4895
5180
  * @summary Get Tool
4896
5181
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4897
5182
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -4902,7 +5187,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4902
5187
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
4903
5188
  }
4904
5189
  /**
4905
- * Returns the stored link chains.
5190
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored link chains.
4906
5191
  * @summary List Link Chains
4907
5192
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4908
5193
  * @param {*} [options] Override http request option.
@@ -4912,7 +5197,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4912
5197
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChains(cell, options).then((request) => request(this.axios, this.basePath));
4913
5198
  }
4914
5199
  /**
4915
- * Returns a list of keys for stored link chains.
5200
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored link chains.
4916
5201
  * @summary List Link Chain Keys
4917
5202
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4918
5203
  * @param {*} [options] Override http request option.
@@ -4922,7 +5207,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4922
5207
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChainsKeys(cell, options).then((request) => request(this.axios, this.basePath));
4923
5208
  }
4924
5209
  /**
4925
- * Returns all stored colliders.
5210
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns all stored colliders.
4926
5211
  * @summary List Colliders
4927
5212
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4928
5213
  * @param {*} [options] Override http request option.
@@ -4932,7 +5217,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4932
5217
  return StoreCollisionComponentsApiFp(this.configuration).listStoredColliders(cell, options).then((request) => request(this.axios, this.basePath));
4933
5218
  }
4934
5219
  /**
4935
- * Returns a list of keys for stored colliders.
5220
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored colliders.
4936
5221
  * @summary List Collider Keys
4937
5222
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4938
5223
  * @param {*} [options] Override http request option.
@@ -4942,7 +5227,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4942
5227
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollidersKeys(cell, options).then((request) => request(this.axios, this.basePath));
4943
5228
  }
4944
5229
  /**
4945
- * Returns the list of stored tools.
5230
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the list of stored tools.
4946
5231
  * @summary List Tools
4947
5232
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4948
5233
  * @param {*} [options] Override http request option.
@@ -4952,7 +5237,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4952
5237
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionTools(cell, options).then((request) => request(this.axios, this.basePath));
4953
5238
  }
4954
5239
  /**
4955
- * Returns a list of keys for stored tools.
5240
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored tools.
4956
5241
  * @summary List Tool Keys
4957
5242
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4958
5243
  * @param {*} [options] Override http request option.
@@ -4962,7 +5247,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4962
5247
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionToolsKeys(cell, options).then((request) => request(this.axios, this.basePath));
4963
5248
  }
4964
5249
  /**
4965
- * Stores collider. - If the collider does not exist, it will be created. - If the collider exists, it will be updated.
5250
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores collider. - If the collider does not exist, it will be created. - If the collider exists, it will be updated.
4966
5251
  * @summary Store Collider
4967
5252
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4968
5253
  * @param {string} collider Unique identifier addressing a collider.
@@ -4974,7 +5259,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4974
5259
  return StoreCollisionComponentsApiFp(this.configuration).storeCollider(cell, collider, collider2, options).then((request) => request(this.axios, this.basePath));
4975
5260
  }
4976
5261
  /**
4977
- * Stores link chain. - If the link chain does not exist, it will be created. - If the link chain exists, it will be updated.
5262
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores link chain. - If the link chain does not exist, it will be created. - If the link chain exists, it will be updated.
4978
5263
  * @summary Store Link Chain
4979
5264
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4980
5265
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4986,7 +5271,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4986
5271
  return StoreCollisionComponentsApiFp(this.configuration).storeCollisionLinkChain(cell, linkChain, collider, options).then((request) => request(this.axios, this.basePath));
4987
5272
  }
4988
5273
  /**
4989
- * Stores the tool. - If the tool does not exist, it will be created. - If the tool exists, it will be updated.
5274
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores the tool. - If the tool does not exist, it will be created. - If the tool exists, it will be updated.
4990
5275
  * @summary Store Tool
4991
5276
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4992
5277
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -5207,7 +5492,7 @@ const StoreCollisionSetupsApiFactory = function(configuration, basePath, axios)
5207
5492
  */
5208
5493
  var StoreCollisionSetupsApi = class extends BaseAPI {
5209
5494
  /**
5210
- * Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
5495
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
5211
5496
  * @summary Delete Collision Setup
5212
5497
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5213
5498
  * @param {string} setup Identifier of the collision setup
@@ -5218,7 +5503,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5218
5503
  return StoreCollisionSetupsApiFp(this.configuration).deleteStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
5219
5504
  }
5220
5505
  /**
5221
- * Returns the stored collision setup.
5506
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored collision setup.
5222
5507
  * @summary Get Collision Setup
5223
5508
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5224
5509
  * @param {string} setup Identifier of the collision setup
@@ -5229,7 +5514,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5229
5514
  return StoreCollisionSetupsApiFp(this.configuration).getStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
5230
5515
  }
5231
5516
  /**
5232
- * Returns a list of stored collision setups.
5517
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of stored collision setups.
5233
5518
  * @summary List Collision Setups
5234
5519
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5235
5520
  * @param {*} [options] Override http request option.
@@ -5239,7 +5524,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5239
5524
  return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetups(cell, options).then((request) => request(this.axios, this.basePath));
5240
5525
  }
5241
5526
  /**
5242
- * Returns a list of keys for stored collision setups.
5527
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored collision setups.
5243
5528
  * @summary List Collision Setup Keys
5244
5529
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5245
5530
  * @param {*} [options] Override http request option.
@@ -5249,7 +5534,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5249
5534
  return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetupsKeys(cell, options).then((request) => request(this.axios, this.basePath));
5250
5535
  }
5251
5536
  /**
5252
- * Stores collision setup. - If the collision setup does not exist, it will be created. - If the collision setup exists, it will be updated.
5537
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores collision setup. - If the collision setup does not exist, it will be created. - If the collision setup exists, it will be updated.
5253
5538
  * @summary Store Collision Setup
5254
5539
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5255
5540
  * @param {string} setup Identifier of the collision setup
@@ -5508,7 +5793,7 @@ const StoreObjectApiFactory = function(configuration, basePath, axios) {
5508
5793
  */
5509
5794
  var StoreObjectApi = class extends BaseAPI {
5510
5795
  /**
5511
- * Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
5796
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
5512
5797
  * @summary Clear all Objects
5513
5798
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5514
5799
  * @param {*} [options] Override http request option.
@@ -5518,7 +5803,7 @@ var StoreObjectApi = class extends BaseAPI {
5518
5803
  return StoreObjectApiFp(this.configuration).clearAllObjects(cell, options).then((request) => request(this.axios, this.basePath));
5519
5804
  }
5520
5805
  /**
5521
- * Delete an object <!-- theme: danger --> > This will delete persistently stored data.
5806
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete an object <!-- theme: danger --> > This will delete persistently stored data.
5522
5807
  * @summary Delete Object
5523
5808
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5524
5809
  * @param {string} key
@@ -5529,7 +5814,7 @@ var StoreObjectApi = class extends BaseAPI {
5529
5814
  return StoreObjectApiFp(this.configuration).deleteObject(cell, key, options).then((request) => request(this.axios, this.basePath));
5530
5815
  }
5531
5816
  /**
5532
- * Returns content and metadata of a stored object.
5817
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Returns content and metadata of a stored object.
5533
5818
  * @summary Get Object
5534
5819
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5535
5820
  * @param {string} key
@@ -5540,7 +5825,7 @@ var StoreObjectApi = class extends BaseAPI {
5540
5825
  return StoreObjectApiFp(this.configuration).getObject(cell, key, options).then((request) => request(this.axios, this.basePath));
5541
5826
  }
5542
5827
  /**
5543
- * Returns metadata. Object content is not returned.
5828
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Returns metadata. Object content is not returned.
5544
5829
  * @summary Get Object Metadata
5545
5830
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5546
5831
  * @param {string} key
@@ -5551,7 +5836,7 @@ var StoreObjectApi = class extends BaseAPI {
5551
5836
  return StoreObjectApiFp(this.configuration).getObjectMetadata(cell, key, options).then((request) => request(this.axios, this.basePath));
5552
5837
  }
5553
5838
  /**
5554
- * List the keys for all objects.
5839
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ List the keys for all objects.
5555
5840
  * @summary List all Object Keys
5556
5841
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5557
5842
  * @param {*} [options] Override http request option.
@@ -5561,7 +5846,7 @@ var StoreObjectApi = class extends BaseAPI {
5561
5846
  return StoreObjectApiFp(this.configuration).listAllObjectKeys(cell, options).then((request) => request(this.axios, this.basePath));
5562
5847
  }
5563
5848
  /**
5564
- * Store any data as an object. Using a key which already contains an object will override the previously stored object. Use [getObjectMetadata](#/operations/getObjectMetadata) to verify that the key does not contain objects. #### Optional Specify metadata as a dictionary with names and values.
5849
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Store any data as an object. Using a key which already contains an object will override the previously stored object. Use [getObjectMetadata](#/operations/getObjectMetadata) to verify that the key does not contain objects. #### Optional Specify metadata as a dictionary with names and values.
5565
5850
  * @summary Store Object
5566
5851
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5567
5852
  * @param {string} key
@@ -6014,7 +6299,7 @@ const SystemApiFactory = function(configuration, basePath, axios) {
6014
6299
  */
6015
6300
  var SystemApi = class extends BaseAPI {
6016
6301
  /**
6017
- * Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
6302
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
6018
6303
  * @summary Retrieve Configuration Backup
6019
6304
  * @param {Array<string>} [resources] List of resource identifiers to include in the retrieval.
6020
6305
  * @param {{ [key: string]: string; }} [metadata] Additional metadata to add to the backup
@@ -6025,7 +6310,7 @@ var SystemApi = class extends BaseAPI {
6025
6310
  return SystemApiFp(this.configuration).backupConfiguration(resources, metadata, options).then((request) => request(this.axios, this.basePath));
6026
6311
  }
6027
6312
  /**
6028
- * Check if a more recent Wandelbots NOVA Version is available.
6313
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Check if a more recent Wandelbots NOVA Version is available.
6029
6314
  * @summary Check update
6030
6315
  * @param {ReleaseChannel} channel
6031
6316
  * @param {*} [options] Override http request option.
@@ -6035,7 +6320,7 @@ var SystemApi = class extends BaseAPI {
6035
6320
  return SystemApiFp(this.configuration).checkNovaVersionUpdate(channel, options).then((request) => request(this.axios, this.basePath));
6036
6321
  }
6037
6322
  /**
6038
- * <!-- theme: danger --> > **Experimental** Performs an address resolution protocol (ARP) scan on the specified interface/classless inter-domain routing (CIDR) and returns all discovered devices on the network by CIDR notation.
6323
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Performs an address resolution protocol (ARP) scan on the specified interface/classless inter-domain routing (CIDR) and returns all discovered devices on the network by CIDR notation.
6039
6324
  * @summary Get ARP-Scan
6040
6325
  * @param {string} [_interface]
6041
6326
  * @param {string} [cidr]
@@ -6047,7 +6332,7 @@ var SystemApi = class extends BaseAPI {
6047
6332
  return SystemApiFp(this.configuration).getArpScan(_interface, cidr, timeout, options).then((request) => request(this.axios, this.basePath));
6048
6333
  }
6049
6334
  /**
6050
- * Retrieves the status of a configuration backup. The status can only be requested for 5 minutes after backup creation. After 5 minutes, 404 is returned.
6335
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves the status of a configuration backup. The status can only be requested for 5 minutes after backup creation. After 5 minutes, 404 is returned.
6051
6336
  * @summary Retrieve Backup Status
6052
6337
  * @param {string} operationId
6053
6338
  * @param {*} [options] Override http request option.
@@ -6057,7 +6342,7 @@ var SystemApi = class extends BaseAPI {
6057
6342
  return SystemApiFp(this.configuration).getConfigurationBackupStatus(operationId, options).then((request) => request(this.axios, this.basePath));
6058
6343
  }
6059
6344
  /**
6060
- * Collects information on the current status of all NOVA services and exports them as a .zip file. Includes information on all cells on the instance such as the service logs and virtual robot controllers. From each cell the logs of all services are included, as well as the configuration of each connected controller to start virtual robots.
6345
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Collects information on the current status of all NOVA services and exports them as a .zip file. Includes information on all cells on the instance such as the service logs and virtual robot controllers. From each cell the logs of all services are included, as well as the configuration of each connected controller to start virtual robots.
6061
6346
  * @summary Download Diagnosis Package
6062
6347
  * @param {*} [options] Override http request option.
6063
6348
  * @throws {RequiredError}
@@ -6066,7 +6351,7 @@ var SystemApi = class extends BaseAPI {
6066
6351
  return SystemApiFp(this.configuration).getDiagnosePackage(options).then((request) => request(this.axios, this.basePath));
6067
6352
  }
6068
6353
  /**
6069
- * <!-- theme: danger --> > **Experimental** Get the network interfaces of the system.
6354
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the network interfaces of the system.
6070
6355
  * @summary Network Interfaces
6071
6356
  * @param {*} [options] Override http request option.
6072
6357
  * @throws {RequiredError}
@@ -6075,7 +6360,7 @@ var SystemApi = class extends BaseAPI {
6075
6360
  return SystemApiFp(this.configuration).getNetworkInterfaces(options).then((request) => request(this.axios, this.basePath));
6076
6361
  }
6077
6362
  /**
6078
- * <!-- theme: danger --> > **Experimental** Get the current state of the network.
6363
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the current state of the network.
6079
6364
  * @summary Network State
6080
6365
  * @param {*} [options] Override http request option.
6081
6366
  * @throws {RequiredError}
@@ -6084,7 +6369,7 @@ var SystemApi = class extends BaseAPI {
6084
6369
  return SystemApiFp(this.configuration).getNetworkState(options).then((request) => request(this.axios, this.basePath));
6085
6370
  }
6086
6371
  /**
6087
- * Get the status of all system services.
6372
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the status of all system services.
6088
6373
  * @summary Wandelbots NOVA status
6089
6374
  * @param {*} [options] Override http request option.
6090
6375
  * @throws {RequiredError}
@@ -6093,7 +6378,7 @@ var SystemApi = class extends BaseAPI {
6093
6378
  return SystemApiFp(this.configuration).getSystemStatus(options).then((request) => request(this.axios, this.basePath));
6094
6379
  }
6095
6380
  /**
6096
- * Get the current Wandelbots NOVA version.
6381
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the current Wandelbots NOVA version.
6097
6382
  * @summary Wandelbots NOVA Version
6098
6383
  * @param {*} [options] Override http request option.
6099
6384
  * @throws {RequiredError}
@@ -6102,7 +6387,7 @@ var SystemApi = class extends BaseAPI {
6102
6387
  return SystemApiFp(this.configuration).getSystemVersion(options).then((request) => request(this.axios, this.basePath));
6103
6388
  }
6104
6389
  /**
6105
- * Retrieves a list of all available configuration resources for backup purposes.
6390
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves a list of all available configuration resources for backup purposes.
6106
6391
  * @summary List Configuration Resources
6107
6392
  * @param {*} [options] Override http request option.
6108
6393
  * @throws {RequiredError}
@@ -6111,7 +6396,7 @@ var SystemApi = class extends BaseAPI {
6111
6396
  return SystemApiFp(this.configuration).listConfigurationResources(options).then((request) => request(this.axios, this.basePath));
6112
6397
  }
6113
6398
  /**
6114
- * Restores a previously backed up configuration. If an empty array of resources is provided, all resources from the backup will be restored.
6399
+ * **Required permissions:** `can_restore_system` - Restore system backups ___ Restores a previously backed up configuration. If an empty array of resources is provided, all resources from the backup will be restored.
6115
6400
  * @summary Restore Configuration Backup
6116
6401
  * @param {File} body Backup file stream containing the configuration to restore.
6117
6402
  * @param {Array<string>} [resources] List of resource identifiers to restore. If empty, all resources from the backup will be restored.
@@ -6122,7 +6407,7 @@ var SystemApi = class extends BaseAPI {
6122
6407
  return SystemApiFp(this.configuration).restoreConfiguration(body, resources, options).then((request) => request(this.axios, this.basePath));
6123
6408
  }
6124
6409
  /**
6125
- * Update the Wandelbots NOVA version and all attached services. Sending this API Request will trigger an update of all NOVA services that are part of a cell. Previous cells and cell configurations will remain on the instance. If the update fails, the previous Wandelbots NOVA version is restored. System updates only apply to cells without an explicit chart version. Pinned versions are always preserved; setting `update_cells=false` pins unversioned cells to the current system version before updating.
6410
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Update the Wandelbots NOVA version and all attached services. Sending this API Request will trigger an update of all NOVA services that are part of a cell. Previous cells and cell configurations will remain on the instance. If the update fails, the previous Wandelbots NOVA version is restored. System updates only apply to cells without an explicit chart version. Pinned versions are always preserved; setting `update_cells=false` pins unversioned cells to the current system version before updating.
6126
6411
  * @summary Update Wandelbots NOVA version
6127
6412
  * @param {UpdateNovaVersionRequest} updateNovaVersionRequest
6128
6413
  * @param {*} [options] Override http request option.
@@ -6345,7 +6630,7 @@ const TrajectoryCachingApiFactory = function(configuration, basePath, axios) {
6345
6630
  */
6346
6631
  var TrajectoryCachingApi = class extends BaseAPI {
6347
6632
  /**
6348
- * Loads and validates the data of a trajectory into the execution cache, rendering the trajectory executable. <!-- theme: info --> > #### NOTE > > Using the trajectory cache is an optional performance optimization. It is not necessary to use the cache to execute trajectories. The response contains the result of the validation of the trajectory. Validation can lead to three different results: - Fully valid: The whole trajectory can be executed from start to end. The response will contain an unique identifier which is used to move the robot. - Partially valid: Only parts of the trajectory can be executed. The response will contain an unique identifier to move the robot and information about the failure for the part that is not executable. - Invalid: The trajectory can not be executed. The response will tell you the reason of failure. If the trajectory is at least partially valid, the parts of the trajectory that are valid can be executed using the [executeTrajectory](#/operations/executeTrajectory) endpoint. The workflow is as follows: - Generate a trajectory with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the trajectory to this endpoint to validate it and get a unique identifier for it, - The unique identifier will appear in the list of available trajectories, see [listTrajectories](#/operations/listTrajectories) endpoint, if it is at least partially executable. - Execute your trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint.
6633
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Loads and validates the data of a trajectory into the execution cache, rendering the trajectory executable. <!-- theme: info --> > #### NOTE > > Using the trajectory cache is an optional performance optimization. It is not necessary to use the cache to execute trajectories. The response contains the result of the validation of the trajectory. Validation can lead to three different results: - Fully valid: The whole trajectory can be executed from start to end. The response will contain an unique identifier which is used to move the robot. - Partially valid: Only parts of the trajectory can be executed. The response will contain an unique identifier to move the robot and information about the failure for the part that is not executable. - Invalid: The trajectory can not be executed. The response will tell you the reason of failure. If the trajectory is at least partially valid, the parts of the trajectory that are valid can be executed using the [executeTrajectory](#/operations/executeTrajectory) endpoint. The workflow is as follows: - Generate a trajectory with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the trajectory to this endpoint to validate it and get a unique identifier for it, - The unique identifier will appear in the list of available trajectories, see [listTrajectories](#/operations/listTrajectories) endpoint, if it is at least partially executable. - Execute your trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint.
6349
6634
  * @summary Add Trajectory
6350
6635
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6351
6636
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6357,7 +6642,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6357
6642
  return TrajectoryCachingApiFp(this.configuration).addTrajectory(cell, controller, addTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
6358
6643
  }
6359
6644
  /**
6360
- * Clear the trajectory cache.
6645
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Clear the trajectory cache.
6361
6646
  * @summary Clear Trajectories
6362
6647
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6363
6648
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6368,7 +6653,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6368
6653
  return TrajectoryCachingApiFp(this.configuration).clearTrajectories(cell, controller, options).then((request) => request(this.axios, this.basePath));
6369
6654
  }
6370
6655
  /**
6371
- * Delete a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories. Trajectories are removed automatically if the motion group or the corresponding controller is disconnected.
6656
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Delete a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories. Trajectories are removed automatically if the motion group or the corresponding controller is disconnected.
6372
6657
  * @summary Delete Trajectory
6373
6658
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6374
6659
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6380,7 +6665,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6380
6665
  return TrajectoryCachingApiFp(this.configuration).deleteTrajectory(cell, controller, trajectory, options).then((request) => request(this.axios, this.basePath));
6381
6666
  }
6382
6667
  /**
6383
- * Get a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories.
6668
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories.
6384
6669
  * @summary Get Trajectory
6385
6670
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6386
6671
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6392,7 +6677,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6392
6677
  return TrajectoryCachingApiFp(this.configuration).getTrajectory(cell, controller, trajectory, options).then((request) => request(this.axios, this.basePath));
6393
6678
  }
6394
6679
  /**
6395
- * List currently cached trajectories. Use [addTrajectory](#/operations/addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them. Trajectories are removed if the corresponding motion group or controller disconnects.
6680
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List currently cached trajectories. Use [addTrajectory](#/operations/addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them. Trajectories are removed if the corresponding motion group or controller disconnects.
6396
6681
  * @summary List Trajectories
6397
6682
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6398
6683
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6464,7 +6749,7 @@ const TrajectoryExecutionApiFactory = function(configuration, basePath, axios) {
6464
6749
  */
6465
6750
  var TrajectoryExecutionApi = class extends BaseAPI {
6466
6751
  /**
6467
- * <!-- theme: success --> > Websocket endpoint Provides execution control over a previously [planned trajectory](#/operations/planTrajectory). Enables the caller to attach input/output actions to the trajectory. ### Movement behavior | Virtual controller | Physical controller | |------------------|-------------------| | Desired joint configurations are commanded to each motion group and **applied immediately** | Move to desired **actual joint configuration**, **if possible** | ### Concept of location - The location or path parameter specifies the exact position along a trajectory. - The location is a scalar value that ranges from 0 to `n`, where `n` denotes the number of motion commands, or trajectory segments, e.g., line, p2p, etc. See [planTrajectory](#/operations/planTrajectory). - Each integer value of the location corresponds to one motion command, e.g., 3.0 to 3.999 could be a line. ### Preconditions - The motion group\'s control mode is not claimed by any other endpoint. - The motion group\'s joint position are at start location specified with `InitializeMovementRequest`. - Use [executeToTrajectory](#/operations/executeToTrajectory) to move the robot to the start location. ### Requests #### 1. Send `InitializeMovementRequest` to lock the trajectory to this connection The following actions are executed: - Sets robot controller mode to control mode, - Sets start location of the execution Keep in mind that only a single trajectory can be locked to a websocket connection at a time. Pausing the current movement enables you to send another `InitializeMovementRequest` to execute another trajectory on the same connection. #### 2. Send `StartMovementRequest` to start the movement Sets direction of movement, default is forward. #### **Optional** - To pause, send `PauseMovementRequest` before the movement has reached its end location. - Change the movement\'s velocity with `PlaybackSpeedRequest` after initializing the movement with `InitializeMovementRequest`. ### Responses To monitor the state of the movement, listen to the [state stream](#/operations/streamMotionGroupState). The state is published via nats as well. Field `execute` in the `MotionGroupState` indicates whether a movement is ongoing and carries execution details. Each request has a corresponding acknowledgment response. They signal success or failure of the request. Especially for `PauseMovementResponse`, it does not signal the end of the movement. Additionally, `MovementError` messages can be sent in case of unexpected errors during the execution, e.g., controller disconnects during movement. ### Tips and Tricks - A movement can be paused and resumed by sending `PauseMovementRequest` and `StartMovementRequest`. - Send `PlaybackSpeedRequest` before `StartMovementRequest` to reduce the velocity of the movement before it starts. - Send `PlaybackSpeedRequest` repeatedly to implement a slider. The velocity of the motion group can be adjusted with each controller step. Therefore, if your app needs a slider-like UI to alter the velocity of a currently running movement, you can send `PlaybackSpeedRequest` with different speed values repeatedly during the movement. - A closed trajectory (end and start joint position are equal) can be repeated by sending `StartMovementRequest` after the movement has finished.
6752
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Provides execution control over a previously [planned trajectory](#/operations/planTrajectory). Enables the caller to attach input/output actions to the trajectory. ### Movement behavior | Virtual controller | Physical controller | |------------------|-------------------| | Desired joint configurations are commanded to each motion group and **applied immediately** | Move to desired **actual joint configuration**, **if possible** | ### Concept of location - The location or path parameter specifies the exact position along a trajectory. - The location is a scalar value that ranges from 0 to `n`, where `n` denotes the number of motion commands, or trajectory segments, e.g., line, p2p, etc. See [planTrajectory](#/operations/planTrajectory). - Each integer value of the location corresponds to one motion command, e.g., 3.0 to 3.999 could be a line. ### Preconditions - The motion group\'s control mode is not claimed by any other endpoint. - The motion group\'s joint position are at start location specified with `InitializeMovementRequest`. - Use [executeToTrajectory](#/operations/executeToTrajectory) to move the robot to the start location. ### Requests #### 1. Send `InitializeMovementRequest` to lock the trajectory to this connection The following actions are executed: - Sets robot controller mode to control mode, - Sets start location of the execution Keep in mind that only a single trajectory can be locked to a websocket connection at a time. Pausing the current movement enables you to send another `InitializeMovementRequest` to execute another trajectory on the same connection. #### 2. Send `StartMovementRequest` to start the movement Sets direction of movement, default is forward. #### **Optional** - To pause, send `PauseMovementRequest` before the movement has reached its end location. - Change the movement\'s velocity with `PlaybackSpeedRequest` after initializing the movement with `InitializeMovementRequest`. ### Responses To monitor the state of the movement, listen to the [state stream](#/operations/streamMotionGroupState). The state is published via nats as well. Field `execute` in the `MotionGroupState` indicates whether a movement is ongoing and carries execution details. Each request has a corresponding acknowledgment response. They signal success or failure of the request. Especially for `PauseMovementResponse`, it does not signal the end of the movement. Additionally, `MovementError` messages can be sent in case of unexpected errors during the execution, e.g., controller disconnects during movement. ### Tips and Tricks - A movement can be paused and resumed by sending `PauseMovementRequest` and `StartMovementRequest`. - Send `PlaybackSpeedRequest` before `StartMovementRequest` to reduce the velocity of the movement before it starts. - Send `PlaybackSpeedRequest` repeatedly to implement a slider. The velocity of the motion group can be adjusted with each controller step. Therefore, if your app needs a slider-like UI to alter the velocity of a currently running movement, you can send `PlaybackSpeedRequest` with different speed values repeatedly during the movement. - A closed trajectory (end and start joint position are equal) can be repeated by sending `StartMovementRequest` after the movement has finished.
6468
6753
  * @summary Execute Trajectory
6469
6754
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6470
6755
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6567,6 +6852,35 @@ const TrajectoryPlanningApiAxiosParamCreator = function(configuration) {
6567
6852
  url: toPathString(localVarUrlObj),
6568
6853
  options: localVarRequestOptions
6569
6854
  };
6855
+ },
6856
+ searchCollisionFreeMultiMotionGroup: async (cell, multiSearchCollisionFreeRequest, options = {}) => {
6857
+ assertParamExists("searchCollisionFreeMultiMotionGroup", "cell", cell);
6858
+ assertParamExists("searchCollisionFreeMultiMotionGroup", "multiSearchCollisionFreeRequest", multiSearchCollisionFreeRequest);
6859
+ const localVarPath = `/experimental/cells/{cell}/trajectory-planning/search-collision-free-multi-motion-group`.replace(`{cell}`, encodeURIComponent(String(cell)));
6860
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
6861
+ let baseOptions;
6862
+ if (configuration) baseOptions = configuration.baseOptions;
6863
+ const localVarRequestOptions = {
6864
+ method: "POST",
6865
+ ...baseOptions,
6866
+ ...options
6867
+ };
6868
+ const localVarHeaderParameter = {};
6869
+ const localVarQueryParameter = {};
6870
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
6871
+ localVarHeaderParameter["Content-Type"] = "application/json";
6872
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
6873
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6874
+ localVarRequestOptions.headers = {
6875
+ ...localVarHeaderParameter,
6876
+ ...headersFromBaseOptions,
6877
+ ...options.headers
6878
+ };
6879
+ localVarRequestOptions.data = serializeDataIfNeeded(multiSearchCollisionFreeRequest, localVarRequestOptions, configuration);
6880
+ return {
6881
+ url: toPathString(localVarUrlObj),
6882
+ options: localVarRequestOptions
6883
+ };
6570
6884
  }
6571
6885
  };
6572
6886
  };
@@ -6593,6 +6907,12 @@ const TrajectoryPlanningApiFp = function(configuration) {
6593
6907
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6594
6908
  const localVarOperationServerBasePath = operationServerMap["TrajectoryPlanningApi.planTrajectory"]?.[localVarOperationServerIndex]?.url;
6595
6909
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
6910
+ },
6911
+ async searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6912
+ const localVarAxiosArgs = await localVarAxiosParamCreator.searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options);
6913
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6914
+ const localVarOperationServerBasePath = operationServerMap["TrajectoryPlanningApi.searchCollisionFreeMultiMotionGroup"]?.[localVarOperationServerIndex]?.url;
6915
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
6596
6916
  }
6597
6917
  };
6598
6918
  };
@@ -6610,6 +6930,9 @@ const TrajectoryPlanningApiFactory = function(configuration, basePath, axios) {
6610
6930
  },
6611
6931
  planTrajectory(cell, planTrajectoryRequest, options) {
6612
6932
  return localVarFp.planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(axios, basePath));
6933
+ },
6934
+ searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6935
+ return localVarFp.searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options).then((request) => request(axios, basePath));
6613
6936
  }
6614
6937
  };
6615
6938
  };
@@ -6618,7 +6941,7 @@ const TrajectoryPlanningApiFactory = function(configuration, basePath, axios) {
6618
6941
  */
6619
6942
  var TrajectoryPlanningApi = class extends BaseAPI {
6620
6943
  /**
6621
- * <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
6944
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
6622
6945
  * @summary Merge Trajectories
6623
6946
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6624
6947
  * @param {MergeTrajectoriesRequest} mergeTrajectoriesRequest
@@ -6629,7 +6952,7 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6629
6952
  return TrajectoryPlanningApiFp(this.configuration).mergeTrajectories(cell, mergeTrajectoriesRequest, options).then((request) => request(this.axios, this.basePath));
6630
6953
  }
6631
6954
  /**
6632
- * Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
6955
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
6633
6956
  * @summary Plan Collision-Free Trajectory
6634
6957
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6635
6958
  * @param {PlanCollisionFreeRequest} planCollisionFreeRequest
@@ -6640,7 +6963,7 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6640
6963
  return TrajectoryPlanningApiFp(this.configuration).planCollisionFree(cell, planCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
6641
6964
  }
6642
6965
  /**
6643
- * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory is not executable, the response will contain the joint trajectory up until the error, e.g., all samples until a collision occurs. <!-- theme: info --> > #### Exception > > If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
6966
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory is not executable, the response will contain the joint trajectory up until the error, e.g., all samples until a collision occurs. <!-- theme: info --> > #### Exception > > If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
6644
6967
  * @summary Plan Trajectory
6645
6968
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6646
6969
  * @param {PlanTrajectoryRequest} planTrajectoryRequest
@@ -6650,6 +6973,17 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6650
6973
  planTrajectory(cell, planTrajectoryRequest, options) {
6651
6974
  return TrajectoryPlanningApiFp(this.configuration).planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
6652
6975
  }
6976
+ /**
6977
+ * **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.
6978
+ * @summary Search Collision-Free Trajectories for Multiple Motion Groups
6979
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
6980
+ * @param {MultiSearchCollisionFreeRequest} multiSearchCollisionFreeRequest
6981
+ * @param {*} [options] Override http request option.
6982
+ * @throws {RequiredError}
6983
+ */
6984
+ searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6985
+ return TrajectoryPlanningApiFp(this.configuration).searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
6986
+ }
6653
6987
  };
6654
6988
  /**
6655
6989
  * VersionApi - axios parameter creator
@@ -6706,7 +7040,7 @@ const VersionApiFactory = function(configuration, basePath, axios) {
6706
7040
  */
6707
7041
  var VersionApi = class extends BaseAPI {
6708
7042
  /**
6709
- * Retrieves the version of the NOVA API.
7043
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Retrieves the version of the NOVA API.
6710
7044
  * @summary API Version
6711
7045
  * @param {*} [options] Override http request option.
6712
7046
  * @throws {RequiredError}
@@ -6781,6 +7115,36 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
6781
7115
  options: localVarRequestOptions
6782
7116
  };
6783
7117
  },
7118
+ addVirtualControllerSafetyZone: async (cell, controller, safetyZone, options = {}) => {
7119
+ assertParamExists("addVirtualControllerSafetyZone", "cell", cell);
7120
+ assertParamExists("addVirtualControllerSafetyZone", "controller", controller);
7121
+ assertParamExists("addVirtualControllerSafetyZone", "safetyZone", safetyZone);
7122
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller)));
7123
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7124
+ let baseOptions;
7125
+ if (configuration) baseOptions = configuration.baseOptions;
7126
+ const localVarRequestOptions = {
7127
+ method: "POST",
7128
+ ...baseOptions,
7129
+ ...options
7130
+ };
7131
+ const localVarHeaderParameter = {};
7132
+ const localVarQueryParameter = {};
7133
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7134
+ localVarHeaderParameter["Content-Type"] = "application/json";
7135
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7136
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7137
+ localVarRequestOptions.headers = {
7138
+ ...localVarHeaderParameter,
7139
+ ...headersFromBaseOptions,
7140
+ ...options.headers
7141
+ };
7142
+ localVarRequestOptions.data = serializeDataIfNeeded(safetyZone, localVarRequestOptions, configuration);
7143
+ return {
7144
+ url: toPathString(localVarUrlObj),
7145
+ options: localVarRequestOptions
7146
+ };
7147
+ },
6784
7148
  addVirtualControllerTcp: async (cell, controller, motionGroup, tcp, robotTcpData, options = {}) => {
6785
7149
  assertParamExists("addVirtualControllerTcp", "cell", cell);
6786
7150
  assertParamExists("addVirtualControllerTcp", "controller", controller);
@@ -6870,6 +7234,34 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
6870
7234
  options: localVarRequestOptions
6871
7235
  };
6872
7236
  },
7237
+ deleteVirtualControllerSafetyZone: async (cell, controller, id, options = {}) => {
7238
+ assertParamExists("deleteVirtualControllerSafetyZone", "cell", cell);
7239
+ assertParamExists("deleteVirtualControllerSafetyZone", "controller", controller);
7240
+ assertParamExists("deleteVirtualControllerSafetyZone", "id", id);
7241
+ 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)));
7242
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7243
+ let baseOptions;
7244
+ if (configuration) baseOptions = configuration.baseOptions;
7245
+ const localVarRequestOptions = {
7246
+ method: "DELETE",
7247
+ ...baseOptions,
7248
+ ...options
7249
+ };
7250
+ const localVarHeaderParameter = {};
7251
+ const localVarQueryParameter = {};
7252
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7253
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7254
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7255
+ localVarRequestOptions.headers = {
7256
+ ...localVarHeaderParameter,
7257
+ ...headersFromBaseOptions,
7258
+ ...options.headers
7259
+ };
7260
+ return {
7261
+ url: toPathString(localVarUrlObj),
7262
+ options: localVarRequestOptions
7263
+ };
7264
+ },
6873
7265
  deleteVirtualControllerTcp: async (cell, controller, motionGroup, tcp, options = {}) => {
6874
7266
  assertParamExists("deleteVirtualControllerTcp", "cell", cell);
6875
7267
  assertParamExists("deleteVirtualControllerTcp", "controller", controller);
@@ -7036,6 +7428,33 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
7036
7428
  options: localVarRequestOptions
7037
7429
  };
7038
7430
  },
7431
+ getVirtualControllerSafetyZones: async (cell, controller, options = {}) => {
7432
+ assertParamExists("getVirtualControllerSafetyZones", "cell", cell);
7433
+ assertParamExists("getVirtualControllerSafetyZones", "controller", controller);
7434
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller)));
7435
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7436
+ let baseOptions;
7437
+ if (configuration) baseOptions = configuration.baseOptions;
7438
+ const localVarRequestOptions = {
7439
+ method: "GET",
7440
+ ...baseOptions,
7441
+ ...options
7442
+ };
7443
+ const localVarHeaderParameter = {};
7444
+ const localVarQueryParameter = {};
7445
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7446
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7447
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7448
+ localVarRequestOptions.headers = {
7449
+ ...localVarHeaderParameter,
7450
+ ...headersFromBaseOptions,
7451
+ ...options.headers
7452
+ };
7453
+ return {
7454
+ url: toPathString(localVarUrlObj),
7455
+ options: localVarRequestOptions
7456
+ };
7457
+ },
7039
7458
  listVirtualControllerCoordinateSystems: async (cell, controller, options = {}) => {
7040
7459
  assertParamExists("listVirtualControllerCoordinateSystems", "cell", cell);
7041
7460
  assertParamExists("listVirtualControllerCoordinateSystems", "controller", controller);
@@ -7230,6 +7649,12 @@ const VirtualControllerApiFp = function(configuration) {
7230
7649
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.addVirtualControllerMotionGroup"]?.[localVarOperationServerIndex]?.url;
7231
7650
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7232
7651
  },
7652
+ async addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7653
+ const localVarAxiosArgs = await localVarAxiosParamCreator.addVirtualControllerSafetyZone(cell, controller, safetyZone, options);
7654
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7655
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.addVirtualControllerSafetyZone"]?.[localVarOperationServerIndex]?.url;
7656
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7657
+ },
7233
7658
  async addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options) {
7234
7659
  const localVarAxiosArgs = await localVarAxiosParamCreator.addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options);
7235
7660
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7248,6 +7673,12 @@ const VirtualControllerApiFp = function(configuration) {
7248
7673
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.deleteVirtualControllerMotionGroup"]?.[localVarOperationServerIndex]?.url;
7249
7674
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7250
7675
  },
7676
+ async deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7677
+ const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVirtualControllerSafetyZone(cell, controller, id, options);
7678
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7679
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.deleteVirtualControllerSafetyZone"]?.[localVarOperationServerIndex]?.url;
7680
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7681
+ },
7251
7682
  async deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options) {
7252
7683
  const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options);
7253
7684
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7284,6 +7715,12 @@ const VirtualControllerApiFp = function(configuration) {
7284
7715
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.getVirtualControllerMounting"]?.[localVarOperationServerIndex]?.url;
7285
7716
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7286
7717
  },
7718
+ async getVirtualControllerSafetyZones(cell, controller, options) {
7719
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getVirtualControllerSafetyZones(cell, controller, options);
7720
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7721
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.getVirtualControllerSafetyZones"]?.[localVarOperationServerIndex]?.url;
7722
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
7723
+ },
7287
7724
  async listVirtualControllerCoordinateSystems(cell, controller, options) {
7288
7725
  const localVarAxiosArgs = await localVarAxiosParamCreator.listVirtualControllerCoordinateSystems(cell, controller, options);
7289
7726
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7334,6 +7771,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios) {
7334
7771
  addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options) {
7335
7772
  return localVarFp.addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options).then((request) => request(axios, basePath));
7336
7773
  },
7774
+ addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7775
+ return localVarFp.addVirtualControllerSafetyZone(cell, controller, safetyZone, options).then((request) => request(axios, basePath));
7776
+ },
7337
7777
  addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options) {
7338
7778
  return localVarFp.addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options).then((request) => request(axios, basePath));
7339
7779
  },
@@ -7343,6 +7783,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios) {
7343
7783
  deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options) {
7344
7784
  return localVarFp.deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options).then((request) => request(axios, basePath));
7345
7785
  },
7786
+ deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7787
+ return localVarFp.deleteVirtualControllerSafetyZone(cell, controller, id, options).then((request) => request(axios, basePath));
7788
+ },
7346
7789
  deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options) {
7347
7790
  return localVarFp.deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options).then((request) => request(axios, basePath));
7348
7791
  },
@@ -7361,6 +7804,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios) {
7361
7804
  getVirtualControllerMounting(cell, controller, motionGroup, options) {
7362
7805
  return localVarFp.getVirtualControllerMounting(cell, controller, motionGroup, options).then((request) => request(axios, basePath));
7363
7806
  },
7807
+ getVirtualControllerSafetyZones(cell, controller, options) {
7808
+ return localVarFp.getVirtualControllerSafetyZones(cell, controller, options).then((request) => request(axios, basePath));
7809
+ },
7364
7810
  listVirtualControllerCoordinateSystems(cell, controller, options) {
7365
7811
  return localVarFp.listVirtualControllerCoordinateSystems(cell, controller, options).then((request) => request(axios, basePath));
7366
7812
  },
@@ -7386,7 +7832,7 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios) {
7386
7832
  */
7387
7833
  var VirtualControllerApi = class extends BaseAPI {
7388
7834
  /**
7389
- * Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
7835
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
7390
7836
  * @summary Add Coordinate Systems
7391
7837
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7392
7838
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7399,7 +7845,7 @@ var VirtualControllerApi = class extends BaseAPI {
7399
7845
  return VirtualControllerApiFp(this.configuration).addVirtualControllerCoordinateSystem(cell, controller, coordinateSystem, coordinateSystemData, options).then((request) => request(this.axios, this.basePath));
7400
7846
  }
7401
7847
  /**
7402
- * Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller\'s configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
7848
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller\'s configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
7403
7849
  * @summary Add Motion Group
7404
7850
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7405
7851
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7411,7 +7857,19 @@ var VirtualControllerApi = class extends BaseAPI {
7411
7857
  return VirtualControllerApiFp(this.configuration).addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options).then((request) => request(this.axios, this.basePath));
7412
7858
  }
7413
7859
  /**
7414
- * Adds a new TCP or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange\'s coordinate system. > **NOTE** > > Ensure the TCP\'s position is within the robot\'s reach. Refer to the robot\'s documentation or data sheet for details like joint limits or reach. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
7860
+ * **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**.
7861
+ * @summary Add Safety Zone
7862
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7863
+ * @param {string} controller Unique identifier to address a controller in the cell.
7864
+ * @param {SafetyZone} safetyZone
7865
+ * @param {*} [options] Override http request option.
7866
+ * @throws {RequiredError}
7867
+ */
7868
+ addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7869
+ return VirtualControllerApiFp(this.configuration).addVirtualControllerSafetyZone(cell, controller, safetyZone, options).then((request) => request(this.axios, this.basePath));
7870
+ }
7871
+ /**
7872
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a new TCP or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange\'s coordinate system. > **NOTE** > > Ensure the TCP\'s position is within the robot\'s reach. Refer to the robot\'s documentation or data sheet for details like joint limits or reach. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
7415
7873
  * @summary Add TCP
7416
7874
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7417
7875
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7425,7 +7883,7 @@ var VirtualControllerApi = class extends BaseAPI {
7425
7883
  return VirtualControllerApiFp(this.configuration).addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options).then((request) => request(this.axios, this.basePath));
7426
7884
  }
7427
7885
  /**
7428
- * Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
7886
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
7429
7887
  * @summary Delete Coordinate System
7430
7888
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7431
7889
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7438,7 +7896,7 @@ var VirtualControllerApi = class extends BaseAPI {
7438
7896
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerCoordinateSystem(cell, controller, coordinateSystem, deleteDependent, options).then((request) => request(this.axios, this.basePath));
7439
7897
  }
7440
7898
  /**
7441
- * Removes a motion group configuration from the virtual controller. <!-- theme: info --> > #### NOTE > > When a motion group is removed, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**.
7899
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Removes a motion group configuration from the virtual controller. <!-- theme: info --> > #### NOTE > > When a motion group is removed, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**.
7442
7900
  * @summary Delete Motion Group
7443
7901
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7444
7902
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7450,7 +7908,19 @@ var VirtualControllerApi = class extends BaseAPI {
7450
7908
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7451
7909
  }
7452
7910
  /**
7453
- * Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
7911
+ * **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**.
7912
+ * @summary Delete Safety Zone
7913
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7914
+ * @param {string} controller Unique identifier to address a controller in the cell.
7915
+ * @param {number} id The unique identifier of the safety zone to delete.
7916
+ * @param {*} [options] Override http request option.
7917
+ * @throws {RequiredError}
7918
+ */
7919
+ deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7920
+ return VirtualControllerApiFp(this.configuration).deleteVirtualControllerSafetyZone(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
7921
+ }
7922
+ /**
7923
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
7454
7924
  * @summary Remove TCP
7455
7925
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7456
7926
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7463,7 +7933,7 @@ var VirtualControllerApi = class extends BaseAPI {
7463
7933
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options).then((request) => request(this.axios, this.basePath));
7464
7934
  }
7465
7935
  /**
7466
- * Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
7936
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
7467
7937
  * @summary Get Emergency Stop State
7468
7938
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7469
7939
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7474,7 +7944,7 @@ var VirtualControllerApi = class extends BaseAPI {
7474
7944
  return VirtualControllerApiFp(this.configuration).getEmergencyStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
7475
7945
  }
7476
7946
  /**
7477
- * Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
7947
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
7478
7948
  * @summary Get Motion Group State
7479
7949
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7480
7950
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7486,7 +7956,7 @@ var VirtualControllerApi = class extends BaseAPI {
7486
7956
  return VirtualControllerApiFp(this.configuration).getMotionGroupState(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7487
7957
  }
7488
7958
  /**
7489
- * Gets information on the motion group.
7959
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets information on the motion group.
7490
7960
  * @summary Motion Group Description
7491
7961
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7492
7962
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7497,7 +7967,7 @@ var VirtualControllerApi = class extends BaseAPI {
7497
7967
  return VirtualControllerApiFp(this.configuration).getMotionGroups(cell, controller, options).then((request) => request(this.axios, this.basePath));
7498
7968
  }
7499
7969
  /**
7500
- * Requests the operation mode of the virtual robot controller. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
7970
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Requests the operation mode of the virtual robot controller. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
7501
7971
  * @summary Get Operation Mode
7502
7972
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7503
7973
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7508,7 +7978,7 @@ var VirtualControllerApi = class extends BaseAPI {
7508
7978
  return VirtualControllerApiFp(this.configuration).getOperationMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
7509
7979
  }
7510
7980
  /**
7511
- * Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
7981
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
7512
7982
  * @summary Get Mounting
7513
7983
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7514
7984
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7520,7 +7990,18 @@ var VirtualControllerApi = class extends BaseAPI {
7520
7990
  return VirtualControllerApiFp(this.configuration).getVirtualControllerMounting(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7521
7991
  }
7522
7992
  /**
7523
- * Lists all coordinate systems on the robot controller.
7993
+ * **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.
7994
+ * @summary List Safety Zones
7995
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7996
+ * @param {string} controller Unique identifier to address a controller in the cell.
7997
+ * @param {*} [options] Override http request option.
7998
+ * @throws {RequiredError}
7999
+ */
8000
+ getVirtualControllerSafetyZones(cell, controller, options) {
8001
+ return VirtualControllerApiFp(this.configuration).getVirtualControllerSafetyZones(cell, controller, options).then((request) => request(this.axios, this.basePath));
8002
+ }
8003
+ /**
8004
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists all coordinate systems on the robot controller.
7524
8005
  * @summary List Coordinate Systems
7525
8006
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7526
8007
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7531,7 +8012,7 @@ var VirtualControllerApi = class extends BaseAPI {
7531
8012
  return VirtualControllerApiFp(this.configuration).listVirtualControllerCoordinateSystems(cell, controller, options).then((request) => request(this.axios, this.basePath));
7532
8013
  }
7533
8014
  /**
7534
- * Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
8015
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
7535
8016
  * @summary List TCPs
7536
8017
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7537
8018
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7543,7 +8024,7 @@ var VirtualControllerApi = class extends BaseAPI {
7543
8024
  return VirtualControllerApiFp(this.configuration).listVirtualControllerTcps(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7544
8025
  }
7545
8026
  /**
7546
- * Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
8027
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
7547
8028
  * @summary Push or Release Emergency Stop
7548
8029
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7549
8030
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7555,7 +8036,7 @@ var VirtualControllerApi = class extends BaseAPI {
7555
8036
  return VirtualControllerApiFp(this.configuration).setEmergencyStop(cell, controller, active, options).then((request) => request(this.axios, this.basePath));
7556
8037
  }
7557
8038
  /**
7558
- * Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
8039
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
7559
8040
  * @summary Set Motion Group State
7560
8041
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7561
8042
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7568,7 +8049,7 @@ var VirtualControllerApi = class extends BaseAPI {
7568
8049
  return VirtualControllerApiFp(this.configuration).setMotionGroupState(cell, controller, motionGroup, motionGroupJoints, options).then((request) => request(this.axios, this.basePath));
7569
8050
  }
7570
8051
  /**
7571
- * Changes the operation mode of the virtual robot controller to the specified value. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
8052
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Changes the operation mode of the virtual robot controller to the specified value. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
7572
8053
  * @summary Set Operation Mode
7573
8054
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7574
8055
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7580,7 +8061,7 @@ var VirtualControllerApi = class extends BaseAPI {
7580
8061
  return VirtualControllerApiFp(this.configuration).setOperationMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
7581
8062
  }
7582
8063
  /**
7583
- * Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system\'s origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
8064
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system\'s origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
7584
8065
  * @summary Set Mounting
7585
8066
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7586
8067
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7769,7 +8250,7 @@ const VirtualControllerBehaviorApiFactory = function(configuration, basePath, ax
7769
8250
  */
7770
8251
  var VirtualControllerBehaviorApi = class extends BaseAPI {
7771
8252
  /**
7772
- * <!-- theme: success --> > Websocket endpoint Sends the **commanded** state, e.g., joint positions, velocities, accelerations, torques, for each motion group of the virtual controller and sets the joint configuration. Use [planTrajectory](#/operations/planTrajectory) and [executeTrajectory](#/operations/executeTrajectory) to move motion groups on virtual controllers. Learn more about the [movement behavior of virtual controllers in comparison to physical controllers](#/operations/executeTrajectory#movement-behavior). > **NOTE** > > Incoming joint configurations are not visualized and their velocity limits are not checked. #### Use cases 1. Creating a robotic application that dynamically adapts to the configured joints on the robot controller, using this stream to feed new joint configurations back to the motion groups.\\ The stream only sends data to the robot controller if a motion is executed.\\ If the robot controller\'s joint configuration differs too much from the incoming joint configuration, a following error occurs. Joint configurations that result in following errors are executed only for motions with a low velocity. 2. Mimic freedrive motions. <!-- theme: danger --> > **DANGER** > > If the incoming joint configuration is set to maximum velocity, the movement to reach this incoming joint configuration > will be executed with maximum speed regardless of safety zones and mechanical limits.
8253
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ <!-- theme: success --> > Websocket endpoint Sends the **commanded** state, e.g., joint positions, velocities, accelerations, torques, for each motion group of the virtual controller and sets the joint configuration. Use [planTrajectory](#/operations/planTrajectory) and [executeTrajectory](#/operations/executeTrajectory) to move motion groups on virtual controllers. Learn more about the [movement behavior of virtual controllers in comparison to physical controllers](#/operations/executeTrajectory#movement-behavior). > **NOTE** > > Incoming joint configurations are not visualized and their velocity limits are not checked. #### Use cases 1. Creating a robotic application that dynamically adapts to the configured joints on the robot controller, using this stream to feed new joint configurations back to the motion groups.\\ The stream only sends data to the robot controller if a motion is executed.\\ If the robot controller\'s joint configuration differs too much from the incoming joint configuration, a following error occurs. Joint configurations that result in following errors are executed only for motions with a low velocity. 2. Mimic freedrive motions. <!-- theme: danger --> > **DANGER** > > If the incoming joint configuration is set to maximum velocity, the movement to reach this incoming joint configuration > will be executed with maximum speed regardless of safety zones and mechanical limits.
7773
8254
  * @summary Stream Joint Configuration
7774
8255
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7775
8256
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7781,7 +8262,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7781
8262
  return VirtualControllerBehaviorApiFp(this.configuration).externalJointsStream(cell, controller, externalJointStreamRequest, options).then((request) => request(this.axios, this.basePath));
7782
8263
  }
7783
8264
  /**
7784
- * Get the cycle time of controller communication in [ms].
8265
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the cycle time of controller communication in [ms].
7785
8266
  * @summary Get Cycle Time
7786
8267
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7787
8268
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7792,7 +8273,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7792
8273
  return VirtualControllerBehaviorApiFp(this.configuration).getCycleTime(cell, controller, options).then((request) => request(this.axios, this.basePath));
7793
8274
  }
7794
8275
  /**
7795
- * Get the current virtual controller behavior. See [setVirtualControllerBehavior](#/operations/setVirtualControllerBehavior) and the body for details.
8276
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the current virtual controller behavior. See [setVirtualControllerBehavior](#/operations/setVirtualControllerBehavior) and the body for details.
7796
8277
  * @summary Get Behavior
7797
8278
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7798
8279
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7803,7 +8284,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7803
8284
  return VirtualControllerBehaviorApiFp(this.configuration).getVirtualControllerBehavior(cell, controller, options).then((request) => request(this.axios, this.basePath));
7804
8285
  }
7805
8286
  /**
7806
- * Set virtual controller behavior. See query parameters for details.
8287
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Set virtual controller behavior. See query parameters for details.
7807
8288
  * @summary Set Behavior
7808
8289
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7809
8290
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7960,7 +8441,7 @@ const VirtualControllerInputsOutputsApiFactory = function(configuration, basePat
7960
8441
  */
7961
8442
  var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7962
8443
  /**
7963
- * Retrieves the current values of inputs/outputs of the virtual controller. The identifiers of inputs/outputs must be provided in the request. Request all available input/output identifiers via [listVirtualControllerIODescriptions](#/operations/listVirtualControllerIODescriptions).
8444
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Retrieves the current values of inputs/outputs of the virtual controller. The identifiers of inputs/outputs must be provided in the request. Request all available input/output identifiers via [listVirtualControllerIODescriptions](#/operations/listVirtualControllerIODescriptions).
7964
8445
  * @summary Get Input/Output Values
7965
8446
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7966
8447
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7972,7 +8453,7 @@ var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7972
8453
  return VirtualControllerInputsOutputsApiFp(this.configuration).listIOs(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
7973
8454
  }
7974
8455
  /**
7975
- * Lists the input/output descriptions of the virtual robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the virtual robot controller.\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
8456
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists the input/output descriptions of the virtual robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the virtual robot controller.\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
7976
8457
  * @summary List Descriptions
7977
8458
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7978
8459
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7987,7 +8468,7 @@ var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7987
8468
  return VirtualControllerInputsOutputsApiFp(this.configuration).listVirtualControllerIODescriptions(cell, controller, ios, direction, valueType, group, options).then((request) => request(this.axios, this.basePath));
7988
8469
  }
7989
8470
  /**
7990
- * Sets a list of values of a virtual controller inputs/outputs.
8471
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets a list of values of a virtual controller inputs/outputs.
7991
8472
  * @summary Set Input/Ouput Values
7992
8473
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7993
8474
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -8119,4 +8600,4 @@ var Configuration = class {
8119
8600
  };
8120
8601
 
8121
8602
  //#endregion
8122
- export { AbbControllerKindEnum, ApplicationApi, ApplicationApiAxiosParamCreator, ApplicationApiFactory, ApplicationApiFp, BASE_PATH, BUSInputsOutputsApi, BUSInputsOutputsApiAxiosParamCreator, BUSInputsOutputsApiFactory, BUSInputsOutputsApiFp, BaseAPI, Behavior, BlendingAutoBlendingNameEnum, BlendingPositionBlendingNameEnum, BlendingSpace, BooleanValueValueTypeEnum, BoxBoxTypeEnum, BoxShapeTypeEnum, BusIOModbusClientBusTypeEnum, BusIOModbusServerBusTypeEnum, BusIOModbusTCPClientNetworkTypeEnum, BusIOModbusTCPServerNetworkTypeEnum, BusIOModbusVirtualBusTypeEnum, BusIOProfinetBusTypeEnum, BusIOProfinetVirtualBusTypeEnum, BusIOsStateEnum, COLLECTION_FORMATS, CapsuleShapeTypeEnum, CellApi, CellApiAxiosParamCreator, CellApiFactory, CellApiFp, CollisionErrorKindEnum, Comparator, Configuration, ConfigurationArchiveStatusCreatingStatusEnum, ConfigurationArchiveStatusErrorStatusEnum, ConfigurationArchiveStatusSuccessStatusEnum, ControllerApi, ControllerApiAxiosParamCreator, ControllerApiFactory, ControllerApiFp, ControllerInputsOutputsApi, ControllerInputsOutputsApiAxiosParamCreator, ControllerInputsOutputsApiFactory, ControllerInputsOutputsApiFp, ConvexHullShapeTypeEnum, CylinderShapeTypeEnum, Direction, ErrorInvalidJointCountErrorFeedbackNameEnum, ErrorJointLimitExceededErrorFeedbackNameEnum, ErrorJointPositionCollisionErrorFeedbackNameEnum, ErrorMaxIterationsExceededErrorFeedbackNameEnum, FanucControllerKindEnum, FeedbackCollisionErrorFeedbackNameEnum, FeedbackJointLimitExceededErrorFeedbackNameEnum, FeedbackOutOfWorkspaceErrorFeedbackNameEnum, FeedbackSingularityErrorFeedbackNameEnum, FloatValueValueTypeEnum, IOBooleanValueValueTypeEnum, IODirection, IOFloatValueValueTypeEnum, IOIntegerValueValueTypeEnum, IOOrigin, IOValueType, InconsistentTrajectorySizeErrorKindEnum, InitializeJoggingRequestMessageTypeEnum, InitializeJoggingResponseKindEnum, InitializeMovementRequestMessageTypeEnum, InitializeMovementResponseKindEnum, IntegerValueValueTypeEnum, InvalidDofErrorKindEnum, JoggingApi, JoggingApiAxiosParamCreator, JoggingApiFactory, JoggingApiFp, JoggingDetailsKindEnum, JoggingPausedByUserKindEnum, JoggingPausedNearCollisionKindEnum, JoggingPausedNearJointLimitKindEnum, JoggingPausedOnIOKindEnum, JoggingRunningKindEnum, JointLimitExceededErrorKindEnum, JointTypeEnum, JointVelocityRequestMessageTypeEnum, JointVelocityResponseKindEnum, KinematicsApi, KinematicsApiAxiosParamCreator, KinematicsApiFactory, KinematicsApiFp, KukaControllerKindEnum, LicenseApi, LicenseApiAxiosParamCreator, LicenseApiFactory, LicenseApiFp, LicenseStatusEnum, Manufacturer, MidpointInsertionAlgorithmAlgorithmNameEnum, ModbusIOArea, ModbusIOByteOrder, ModbusIOTypeEnum, MotionGroupApi, MotionGroupApiAxiosParamCreator, MotionGroupApiFactory, MotionGroupApiFp, MotionGroupModelsApi, MotionGroupModelsApiAxiosParamCreator, MotionGroupModelsApiFactory, MotionGroupModelsApiFp, MovementErrorResponseKindEnum, NanValueErrorKindEnum, NetworkStateConnectionTypeEnum, OperatingState, OperationMode, OrientationType, PathCartesianPTPPathDefinitionNameEnum, PathCirclePathDefinitionNameEnum, PathCubicSplinePathDefinitionNameEnum, PathJointPTPPathDefinitionNameEnum, PathLinePathDefinitionNameEnum, PauseJoggingRequestMessageTypeEnum, PauseJoggingResponseKindEnum, PauseMovementRequestMessageTypeEnum, PauseMovementResponseKindEnum, PlaneShapeTypeEnum, PlaybackSpeedRequestMessageTypeEnum, PlaybackSpeedResponseKindEnum, ProfinetIODirection, ProfinetIOTypeEnum, ProgramApi, ProgramApiAxiosParamCreator, ProgramApiFactory, ProgramApiFp, ProgramRunState, RRTConnectAlgorithmAlgorithmNameEnum, RectangleShapeTypeEnum, RectangularCapsuleShapeTypeEnum, ReleaseChannel, RequiredError, RobotConfigurationsApi, RobotConfigurationsApiAxiosParamCreator, RobotConfigurationsApiFactory, RobotConfigurationsApiFp, RobotSystemMode, SafetyStateType, ServiceGroup, ServiceStatusPhase, ServiceStatusSeverity, SettableRobotSystemMode, SingularityTypeEnum, SphereShapeTypeEnum, StartMovementRequestMessageTypeEnum, StartMovementResponseKindEnum, StoreCollisionComponentsApi, StoreCollisionComponentsApiAxiosParamCreator, StoreCollisionComponentsApiFactory, StoreCollisionComponentsApiFp, StoreCollisionSetupsApi, StoreCollisionSetupsApiAxiosParamCreator, StoreCollisionSetupsApiFactory, StoreCollisionSetupsApiFp, StoreObjectApi, StoreObjectApiAxiosParamCreator, StoreObjectApiFactory, StoreObjectApiFp, SystemApi, SystemApiAxiosParamCreator, SystemApiFactory, SystemApiFp, TcpRequiredErrorKindEnum, TcpVelocityRequestMessageTypeEnum, TcpVelocityResponseKindEnum, TorqueExceededErrorKindEnum, TrajectoryCachingApi, TrajectoryCachingApiAxiosParamCreator, TrajectoryCachingApiFactory, TrajectoryCachingApiFp, TrajectoryDataMessageTypeEnum, TrajectoryDetailsKindEnum, TrajectoryEndedKindEnum, TrajectoryExecutionApi, TrajectoryExecutionApiAxiosParamCreator, TrajectoryExecutionApiFactory, TrajectoryExecutionApiFp, TrajectoryIdMessageTypeEnum, TrajectoryPausedByUserKindEnum, TrajectoryPausedOnIOKindEnum, TrajectoryPlanningApi, TrajectoryPlanningApiAxiosParamCreator, TrajectoryPlanningApiFactory, TrajectoryPlanningApiFp, TrajectoryRunningKindEnum, TrajectoryWaitForIOKindEnum, UnitType, UniversalrobotsControllerKindEnum, VersionApi, VersionApiAxiosParamCreator, VersionApiFactory, VersionApiFp, VirtualControllerApi, VirtualControllerApiAxiosParamCreator, VirtualControllerApiFactory, VirtualControllerApiFp, VirtualControllerBehaviorApi, VirtualControllerBehaviorApiAxiosParamCreator, VirtualControllerBehaviorApiFactory, VirtualControllerBehaviorApiFp, VirtualControllerInputsOutputsApi, VirtualControllerInputsOutputsApiAxiosParamCreator, VirtualControllerInputsOutputsApiFactory, VirtualControllerInputsOutputsApiFp, VirtualControllerKindEnum, YaskawaControllerKindEnum, operationServerMap };
8603
+ export { AbbControllerKindEnum, ApplicationApi, ApplicationApiAxiosParamCreator, ApplicationApiFactory, ApplicationApiFp, BASE_PATH, BUSInputsOutputsApi, BUSInputsOutputsApiAxiosParamCreator, BUSInputsOutputsApiFactory, BUSInputsOutputsApiFp, BaseAPI, Behavior, BlendingAutoBlendingNameEnum, BlendingPositionBlendingNameEnum, BlendingSpace, BooleanValueValueTypeEnum, BoxBoxTypeEnum, BoxShapeTypeEnum, BusIOModbusClientBusTypeEnum, BusIOModbusServerBusTypeEnum, BusIOModbusTCPClientNetworkTypeEnum, BusIOModbusTCPServerNetworkTypeEnum, BusIOModbusVirtualBusTypeEnum, BusIOProfinetBusTypeEnum, BusIOProfinetVirtualBusTypeEnum, BusIOsStateEnum, COLLECTION_FORMATS, CapsuleShapeTypeEnum, CellApi, CellApiAxiosParamCreator, CellApiFactory, CellApiFp, CloudConfigStatusConfiguredStatusEnum, CloudConfigStatusNotConfiguredStatusEnum, CloudConnectionErrorInvalidTokenCodeEnum, CloudConnectionErrorLeafnodeConnectionErrorCodeEnum, CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum, CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum, CloudConnectionErrorNatsFailedCodeEnum, CloudConnectionErrorUnexpectedResponseCodeEnum, CloudDisconnectionStatusDisconnectedStatusEnum, CloudDisconnectionStatusDisconnectingStatusEnum, CollisionErrorKindEnum, Comparator, Configuration, ConfigurationArchiveStatusCreatingStatusEnum, ConfigurationArchiveStatusErrorStatusEnum, ConfigurationArchiveStatusSuccessStatusEnum, ControllerApi, ControllerApiAxiosParamCreator, ControllerApiFactory, ControllerApiFp, ControllerInputsOutputsApi, ControllerInputsOutputsApiAxiosParamCreator, ControllerInputsOutputsApiFactory, ControllerInputsOutputsApiFp, ConvexHullShapeTypeEnum, CylinderShapeTypeEnum, Direction, DirectionConstraintConstraintNameEnum, ErrorDirectionConstraintNotMetErrorFeedbackNameEnum, ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum, ErrorInvalidJointCountErrorFeedbackNameEnum, ErrorJointLimitExceededErrorFeedbackNameEnum, ErrorJointPositionCollisionErrorFeedbackNameEnum, ErrorMaxIterationsExceededErrorFeedbackNameEnum, ErrorUnsupportedOperationErrorFeedbackNameEnum, FanucControllerKindEnum, FeedbackCollisionErrorFeedbackNameEnum, FeedbackCommandsMissingErrorFeedbackNameEnum, FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum, FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum, FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum, FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum, FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum, FeedbackInvalidDofErrorFeedbackNameEnum, FeedbackInvalidNanValueErrorFeedbackNameEnum, FeedbackInvalidSamplingTimeErrorFeedbackNameEnum, FeedbackJointLimitExceededErrorFeedbackNameEnum, FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum, FeedbackOutOfWorkspaceErrorFeedbackNameEnum, FeedbackSingularityErrorFeedbackNameEnum, FeedbackStartJointsMissingErrorFeedbackNameEnum, FeedbackTorqueExceededErrorFeedbackNameEnum, FloatValueValueTypeEnum, IOBooleanValueValueTypeEnum, IODirection, IOFloatValueValueTypeEnum, IOIntegerValueValueTypeEnum, IOOrigin, IOValueType, InconsistentTrajectorySizeErrorKindEnum, InitializeJoggingRequestMessageTypeEnum, InitializeJoggingResponseKindEnum, InitializeMovementRequestMessageTypeEnum, InitializeMovementResponseKindEnum, IntegerValueValueTypeEnum, InvalidDofErrorKindEnum, JoggingApi, JoggingApiAxiosParamCreator, JoggingApiFactory, JoggingApiFp, JoggingDetailsKindEnum, JoggingPausedByUserKindEnum, JoggingPausedNearCollisionKindEnum, JoggingPausedNearJointLimitKindEnum, JoggingPausedNearSingularityKindEnum, JoggingPausedOnIOKindEnum, JoggingRunningKindEnum, JointLimitExceededErrorKindEnum, JointTypeEnum, JointVelocityRequestMessageTypeEnum, JointVelocityResponseKindEnum, KinematicsApi, KinematicsApiAxiosParamCreator, KinematicsApiFactory, KinematicsApiFp, KukaControllerKindEnum, LicenseApi, LicenseApiAxiosParamCreator, LicenseApiFactory, LicenseApiFp, LicenseStatusEnum, Manufacturer, MidpointInsertionAlgorithmAlgorithmNameEnum, ModbusIOArea, ModbusIOByteOrder, ModbusIOTypeEnum, MotionGroupApi, MotionGroupApiAxiosParamCreator, MotionGroupApiFactory, MotionGroupApiFp, MotionGroupModelsApi, MotionGroupModelsApiAxiosParamCreator, MotionGroupModelsApiFactory, MotionGroupModelsApiFp, MovementErrorResponseKindEnum, NOVACloudApi, NOVACloudApiAxiosParamCreator, NOVACloudApiFactory, NOVACloudApiFp, NanValueErrorKindEnum, NetworkStateConnectionTypeEnum, OperatingState, OperationMode, OrientationType, PathCartesianPTPPathDefinitionNameEnum, PathCirclePathDefinitionNameEnum, PathCubicSplinePathDefinitionNameEnum, PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum, PathDirectionConstrainedJointPTPPathDefinitionNameEnum, PathJointPTPPathDefinitionNameEnum, PathLinePathDefinitionNameEnum, PauseJoggingRequestMessageTypeEnum, PauseJoggingResponseKindEnum, PauseMovementRequestMessageTypeEnum, PauseMovementResponseKindEnum, PlaneShapeTypeEnum, PlaybackSpeedRequestMessageTypeEnum, PlaybackSpeedResponseKindEnum, ProfinetIODirection, ProfinetIOTypeEnum, ProgramApi, ProgramApiAxiosParamCreator, ProgramApiFactory, ProgramApiFp, ProgramRunState, RRTConnectAlgorithmAlgorithmNameEnum, RectangleShapeTypeEnum, RectangularCapsuleShapeTypeEnum, ReleaseChannel, RequiredError, RobotConfigurationsApi, RobotConfigurationsApiAxiosParamCreator, RobotConfigurationsApiFactory, RobotConfigurationsApiFp, RobotSystemMode, SafetyStateType, ServiceGroup, ServiceStatusPhase, ServiceStatusSeverity, SettableRobotSystemMode, SingularityTypeEnum, SphereShapeTypeEnum, StartMovementRequestMessageTypeEnum, StartMovementResponseKindEnum, StoreCollisionComponentsApi, StoreCollisionComponentsApiAxiosParamCreator, StoreCollisionComponentsApiFactory, StoreCollisionComponentsApiFp, StoreCollisionSetupsApi, StoreCollisionSetupsApiAxiosParamCreator, StoreCollisionSetupsApiFactory, StoreCollisionSetupsApiFp, StoreObjectApi, StoreObjectApiAxiosParamCreator, StoreObjectApiFactory, StoreObjectApiFp, SystemApi, SystemApiAxiosParamCreator, SystemApiFactory, SystemApiFp, TcpRequiredErrorKindEnum, TcpVelocityRequestMessageTypeEnum, TcpVelocityResponseKindEnum, TorqueExceededErrorKindEnum, TrajectoryCachingApi, TrajectoryCachingApiAxiosParamCreator, TrajectoryCachingApiFactory, TrajectoryCachingApiFp, TrajectoryDataMessageTypeEnum, TrajectoryDetailsKindEnum, TrajectoryEndedKindEnum, TrajectoryExecutionApi, TrajectoryExecutionApiAxiosParamCreator, TrajectoryExecutionApiFactory, TrajectoryExecutionApiFp, TrajectoryIdMessageTypeEnum, TrajectoryPausedByUserKindEnum, TrajectoryPausedOnIOKindEnum, TrajectoryPlanningApi, TrajectoryPlanningApiAxiosParamCreator, TrajectoryPlanningApiFactory, TrajectoryPlanningApiFp, TrajectoryRunningKindEnum, TrajectoryWaitForIOKindEnum, UnitType, UniversalrobotsControllerKindEnum, VersionApi, VersionApiAxiosParamCreator, VersionApiFactory, VersionApiFp, VirtualControllerApi, VirtualControllerApiAxiosParamCreator, VirtualControllerApiFactory, VirtualControllerApiFp, VirtualControllerBehaviorApi, VirtualControllerBehaviorApiAxiosParamCreator, VirtualControllerBehaviorApiFactory, VirtualControllerBehaviorApiFp, VirtualControllerInputsOutputsApi, VirtualControllerInputsOutputsApiAxiosParamCreator, VirtualControllerInputsOutputsApiFactory, VirtualControllerInputsOutputsApiFp, VirtualControllerKindEnum, YaskawaControllerKindEnum, ZodValidationErrorErrorCodeEnum, operationServerMap };