@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.cjs CHANGED
@@ -116,6 +116,16 @@ const BusIOsStateEnum = {
116
116
  BusIosStateDisconnected: "BUS_IOS_STATE_DISCONNECTED"
117
117
  };
118
118
  const CapsuleShapeTypeEnum = { Capsule: "capsule" };
119
+ const CloudConfigStatusConfiguredStatusEnum = { Configured: "configured" };
120
+ const CloudConfigStatusNotConfiguredStatusEnum = { NotConfigured: "not_configured" };
121
+ const CloudConnectionErrorInvalidTokenCodeEnum = { InvalidCloudToken: "invalid_cloud_token" };
122
+ const CloudConnectionErrorLeafnodeConnectionErrorCodeEnum = { LeafnodeConnectionError: "leafnode_connection_error" };
123
+ const CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum = { LeafnodeConnectionTimeout: "leafnode_connection_timeout" };
124
+ const CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum = { LeafnodeRestartTimeout: "leafnode_restart_timeout" };
125
+ const CloudConnectionErrorNatsFailedCodeEnum = { NatsConnectionFailed: "nats_connection_failed" };
126
+ const CloudConnectionErrorUnexpectedResponseCodeEnum = { UnexpectedCloudResponse: "unexpected_cloud_response" };
127
+ const CloudDisconnectionStatusDisconnectedStatusEnum = { Disconnected: "disconnected" };
128
+ const CloudDisconnectionStatusDisconnectingStatusEnum = { Disconnecting: "disconnecting" };
119
129
  const CollisionErrorKindEnum = { CollisionError: "CollisionError" };
120
130
  /**
121
131
  * Comparator for the comparison of two values. The comparator is used to compare two values and return a boolean result. The default comparator is unknown.
@@ -140,15 +150,31 @@ const Direction = {
140
150
  DirectionForward: "DIRECTION_FORWARD",
141
151
  DirectionBackward: "DIRECTION_BACKWARD"
142
152
  };
153
+ const DirectionConstraintConstraintNameEnum = { DirectionConstraint: "DirectionConstraint" };
154
+ const ErrorDirectionConstraintNotMetErrorFeedbackNameEnum = { ErrorDirectionConstraintNotMet: "ErrorDirectionConstraintNotMet" };
155
+ const ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { ErrorDirectionConstraintNotNormalized: "ErrorDirectionConstraintNotNormalized" };
143
156
  const ErrorInvalidJointCountErrorFeedbackNameEnum = { ErrorInvalidJointCount: "ErrorInvalidJointCount" };
144
157
  const ErrorJointLimitExceededErrorFeedbackNameEnum = { ErrorJointLimitExceeded: "ErrorJointLimitExceeded" };
145
158
  const ErrorJointPositionCollisionErrorFeedbackNameEnum = { ErrorJointPositionCollision: "ErrorJointPositionCollision" };
146
159
  const ErrorMaxIterationsExceededErrorFeedbackNameEnum = { ErrorMaxIterationsExceeded: "ErrorMaxIterationsExceeded" };
160
+ const ErrorUnsupportedOperationErrorFeedbackNameEnum = { ErrorUnsupportedOperation: "ErrorUnsupportedOperation" };
147
161
  const FanucControllerKindEnum = { FanucController: "FanucController" };
148
162
  const FeedbackCollisionErrorFeedbackNameEnum = { FeedbackCollision: "FeedbackCollision" };
163
+ const FeedbackCommandsMissingErrorFeedbackNameEnum = { FeedbackCommandsMissing: "FeedbackCommandsMissing" };
164
+ const FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum = { FeedbackCubicSplineIsNotIncreasing: "FeedbackCubicSplineIsNotIncreasing" };
165
+ const FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum = { FeedbackCubicSplineNotAtStartPose: "FeedbackCubicSplineNotAtStartPose" };
166
+ const FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum = { FeedbackDirectionConstraintNoSolutionExists: "FeedbackDirectionConstraintNoSolutionExists" };
167
+ const FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotMet: "FeedbackDirectionConstraintNotMet" };
168
+ const FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotNormalized: "FeedbackDirectionConstraintNotNormalized" };
169
+ const FeedbackInvalidDofErrorFeedbackNameEnum = { FeedbackInvalidDof: "FeedbackInvalidDof" };
170
+ const FeedbackInvalidNanValueErrorFeedbackNameEnum = { FeedbackInvalidNanValue: "FeedbackInvalidNanValue" };
171
+ const FeedbackInvalidSamplingTimeErrorFeedbackNameEnum = { FeedbackInvalidSamplingTime: "FeedbackInvalidSamplingTime" };
149
172
  const FeedbackJointLimitExceededErrorFeedbackNameEnum = { FeedbackJointLimitExceeded: "FeedbackJointLimitExceeded" };
173
+ const FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum = { FeedbackNoSolutionInCurrentConfiguration: "FeedbackNoSolutionInCurrentConfiguration" };
150
174
  const FeedbackOutOfWorkspaceErrorFeedbackNameEnum = { FeedbackOutOfWorkspace: "FeedbackOutOfWorkspace" };
151
175
  const FeedbackSingularityErrorFeedbackNameEnum = { FeedbackSingularity: "FeedbackSingularity" };
176
+ const FeedbackStartJointsMissingErrorFeedbackNameEnum = { FeedbackStartJointsMissing: "FeedbackStartJointsMissing" };
177
+ const FeedbackTorqueExceededErrorFeedbackNameEnum = { FeedbackTorqueExceeded: "FeedbackTorqueExceeded" };
152
178
  const FloatValueValueTypeEnum = { Float: "float" };
153
179
  const IOBooleanValueValueTypeEnum = { Boolean: "boolean" };
154
180
  /**
@@ -186,6 +212,7 @@ const JoggingDetailsKindEnum = { Jogging: "JOGGING" };
186
212
  const JoggingPausedByUserKindEnum = { PausedByUser: "PAUSED_BY_USER" };
187
213
  const JoggingPausedNearCollisionKindEnum = { PausedNearCollision: "PAUSED_NEAR_COLLISION" };
188
214
  const JoggingPausedNearJointLimitKindEnum = { PausedNearJointLimit: "PAUSED_NEAR_JOINT_LIMIT" };
215
+ const JoggingPausedNearSingularityKindEnum = { PausedNearSingularity: "PAUSED_NEAR_SINGULARITY" };
189
216
  const JoggingPausedOnIOKindEnum = { PausedOnIo: "PAUSED_ON_IO" };
190
217
  const JoggingRunningKindEnum = { Running: "RUNNING" };
191
218
  const JointLimitExceededErrorKindEnum = { JointLimitExceededError: "JointLimitExceededError" };
@@ -305,6 +332,8 @@ const OrientationType = {
305
332
  const PathCartesianPTPPathDefinitionNameEnum = { PathCartesianPtp: "PathCartesianPTP" };
306
333
  const PathCirclePathDefinitionNameEnum = { PathCircle: "PathCircle" };
307
334
  const PathCubicSplinePathDefinitionNameEnum = { PathCubicSpline: "PathCubicSpline" };
335
+ const PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum = { DirectionConstrainedCartesianPtp: "DirectionConstrainedCartesianPTP" };
336
+ const PathDirectionConstrainedJointPTPPathDefinitionNameEnum = { DirectionConstrainedJointPtp: "DirectionConstrainedJointPTP" };
308
337
  const PathJointPTPPathDefinitionNameEnum = { PathJointPtp: "PathJointPTP" };
309
338
  const PathLinePathDefinitionNameEnum = { PathLine: "PathLine" };
310
339
  const PauseJoggingRequestMessageTypeEnum = { PauseJoggingRequest: "PauseJoggingRequest" };
@@ -462,6 +491,7 @@ const UnitType = {
462
491
  const UniversalrobotsControllerKindEnum = { UniversalrobotsController: "UniversalrobotsController" };
463
492
  const VirtualControllerKindEnum = { VirtualController: "VirtualController" };
464
493
  const YaskawaControllerKindEnum = { YaskawaController: "YaskawaController" };
494
+ const ZodValidationErrorErrorCodeEnum = { ValidationError: "validation_error" };
465
495
  /**
466
496
  * ApplicationApi - axios parameter creator
467
497
  */
@@ -713,7 +743,7 @@ const ApplicationApiFactory = function(configuration, basePath, axios$1) {
713
743
  */
714
744
  var ApplicationApi = class extends BaseAPI {
715
745
  /**
716
- * Install a basic, containerized web application to the cell to control robots with a customized frontend. #### Prerequisites - A Docker hub account or similar container registry account, with valid credentials. #### Workflow After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](https://docs.wandelbots.io/latest/developing-introduction) for more information. #### Predefined environment variables <!-- theme: NOTE --> > **NOTE** > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
746
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Install a basic, containerized web application to the cell to control robots with a customized frontend. #### Prerequisites - A Docker hub account or similar container registry account, with valid credentials. #### Workflow After adding the application to the cell, open the application on the Wandelbots NOVA home screen. Read [build your application](https://docs.wandelbots.io/latest/developing-introduction) for more information. #### Predefined environment variables <!-- theme: NOTE --> > **NOTE** > - `NOVA_API`: The API endpoint accessible from within the application container. > - `NATS_BROKER`: The NATS broker endpoint accessible from within the application container. > - `BASE_PATH`: The application\'s root path, accessible at http://$host/$BASE_PATH > - `CELL_NAME`: The name of the cell hosting the deployed application.
717
747
  * @summary Add Application
718
748
  * @param {string} cell Unique identifier addressing a cell in all API calls.
719
749
  * @param {App} app
@@ -725,7 +755,7 @@ var ApplicationApi = class extends BaseAPI {
725
755
  return ApplicationApiFp(this.configuration).addApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
726
756
  }
727
757
  /**
728
- * Delete all GUI applications from the cell.
758
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete all GUI applications from the cell.
729
759
  * @summary Clear Applications
730
760
  * @param {string} cell Unique identifier addressing a cell in all API calls.
731
761
  * @param {number} [completionTimeout]
@@ -736,7 +766,7 @@ var ApplicationApi = class extends BaseAPI {
736
766
  return ApplicationApiFp(this.configuration).clearApps(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
737
767
  }
738
768
  /**
739
- * Delete a GUI application from the cell.
769
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete a GUI application from the cell.
740
770
  * @summary Delete Application
741
771
  * @param {string} cell Unique identifier addressing a cell in all API calls.
742
772
  * @param {string} app
@@ -748,7 +778,7 @@ var ApplicationApi = class extends BaseAPI {
748
778
  return ApplicationApiFp(this.configuration).deleteApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));
749
779
  }
750
780
  /**
751
- * Get the configuration for an active GUI application in the cell. To update the configuration of a GUI application in the cell, use this configuration with [updateApp](#/operations/updateApp).
781
+ * **Required permissions:** `can_access_apps` - View application configurations ___ Get the configuration for an active GUI application in the cell. To update the configuration of a GUI application in the cell, use this configuration with [updateApp](#/operations/updateApp).
752
782
  * @summary Configuration
753
783
  * @param {string} cell Unique identifier addressing a cell in all API calls.
754
784
  * @param {string} app
@@ -759,7 +789,7 @@ var ApplicationApi = class extends BaseAPI {
759
789
  return ApplicationApiFp(this.configuration).getApp(cell, app, options).then((request) => request(this.axios, this.basePath));
760
790
  }
761
791
  /**
762
- * List all GUI applications that have been added to a cell with [addApp](#/operations/addApp). If the cell does not contain GUI applications, the list is returned empty.
792
+ * **Required permissions:** `can_access_apps` - View application configurations ___ List all GUI applications that have been added to a cell with [addApp](#/operations/addApp). If the cell does not contain GUI applications, the list is returned empty.
763
793
  * @summary List Applications
764
794
  * @param {string} cell Unique identifier addressing a cell in all API calls.
765
795
  * @param {*} [options] Override http request option.
@@ -769,7 +799,7 @@ var ApplicationApi = class extends BaseAPI {
769
799
  return ApplicationApiFp(this.configuration).listApps(cell, options).then((request) => request(this.axios, this.basePath));
770
800
  }
771
801
  /**
772
- * Update the configuration of a GUI application in the cell.
802
+ * **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Update the configuration of a GUI application in the cell.
773
803
  * @summary Update Configuration
774
804
  * @param {string} cell Unique identifier addressing a cell in all API calls.
775
805
  * @param {string} app
@@ -1115,6 +1145,32 @@ const BUSInputsOutputsApiAxiosParamCreator = function(configuration) {
1115
1145
  options: localVarRequestOptions
1116
1146
  };
1117
1147
  },
1148
+ getProfinetGSDML: async (cell, options = {}) => {
1149
+ assertParamExists("getProfinetGSDML", "cell", cell);
1150
+ const localVarPath = `/cells/{cell}/bus-ios/profinet/gsdml`.replace(`{cell}`, encodeURIComponent(String(cell)));
1151
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1152
+ let baseOptions;
1153
+ if (configuration) baseOptions = configuration.baseOptions;
1154
+ const localVarRequestOptions = {
1155
+ method: "GET",
1156
+ ...baseOptions,
1157
+ ...options
1158
+ };
1159
+ const localVarHeaderParameter = {};
1160
+ const localVarQueryParameter = {};
1161
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
1162
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1163
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1164
+ localVarRequestOptions.headers = {
1165
+ ...localVarHeaderParameter,
1166
+ ...headersFromBaseOptions,
1167
+ ...options.headers
1168
+ };
1169
+ return {
1170
+ url: toPathString(localVarUrlObj),
1171
+ options: localVarRequestOptions
1172
+ };
1173
+ },
1118
1174
  getProfinetIOsFromFile: async (cell, inputOffset, outputOffset, options = {}) => {
1119
1175
  assertParamExists("getProfinetIOsFromFile", "cell", cell);
1120
1176
  const localVarPath = `/cells/{cell}/bus-ios/profinet/iofile`.replace(`{cell}`, encodeURIComponent(String(cell)));
@@ -1359,6 +1415,12 @@ const BUSInputsOutputsApiFp = function(configuration) {
1359
1415
  const localVarOperationServerBasePath = operationServerMap["BUSInputsOutputsApi.getProfinetDescription"]?.[localVarOperationServerIndex]?.url;
1360
1416
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
1361
1417
  },
1418
+ async getProfinetGSDML(cell, options) {
1419
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getProfinetGSDML(cell, options);
1420
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1421
+ const localVarOperationServerBasePath = operationServerMap["BUSInputsOutputsApi.getProfinetGSDML"]?.[localVarOperationServerIndex]?.url;
1422
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
1423
+ },
1362
1424
  async getProfinetIOsFromFile(cell, inputOffset, outputOffset, options) {
1363
1425
  const localVarAxiosArgs = await localVarAxiosParamCreator.getProfinetIOsFromFile(cell, inputOffset, outputOffset, options);
1364
1426
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -1439,6 +1501,9 @@ const BUSInputsOutputsApiFactory = function(configuration, basePath, axios$1) {
1439
1501
  getProfinetDescription(cell, options) {
1440
1502
  return localVarFp.getProfinetDescription(cell, options).then((request) => request(axios$1, basePath));
1441
1503
  },
1504
+ getProfinetGSDML(cell, options) {
1505
+ return localVarFp.getProfinetGSDML(cell, options).then((request) => request(axios$1, basePath));
1506
+ },
1442
1507
  getProfinetIOsFromFile(cell, inputOffset, outputOffset, options) {
1443
1508
  return localVarFp.getProfinetIOsFromFile(cell, inputOffset, outputOffset, options).then((request) => request(axios$1, basePath));
1444
1509
  },
@@ -1464,7 +1529,7 @@ const BUSInputsOutputsApiFactory = function(configuration, basePath, axios$1) {
1464
1529
  */
1465
1530
  var BUSInputsOutputsApi = class extends BaseAPI {
1466
1531
  /**
1467
- * Add the BUS inputs/outputs service to the cell. Starts a containerized service that enables BUS connections via the specified ethernet port.
1532
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Add the BUS inputs/outputs service to the cell. Starts a containerized service that enables BUS connections via the specified ethernet port.
1468
1533
  * @summary Add Service
1469
1534
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1470
1535
  * @param {BusIOType} busIOType
@@ -1476,7 +1541,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1476
1541
  return BUSInputsOutputsApiFp(this.configuration).addBusIOService(cell, busIOType, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1477
1542
  }
1478
1543
  /**
1479
- * Adds an input/output variable to or updates an input/output variable on the MODBUS device, e.g., NOVA\'s MODBUS service. The inputs/outputs map variables to specific memory addresses in the process image. The NOVA\'s MODBUS service\'s configuration can be viewed via [listModbusIOs](#/operations/listModbusIOs).
1544
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Adds an input/output variable to or updates an input/output variable on the MODBUS device, e.g., NOVA\'s MODBUS service. The inputs/outputs map variables to specific memory addresses in the process image. The NOVA\'s MODBUS service\'s configuration can be viewed via [listModbusIOs](#/operations/listModbusIOs).
1480
1545
  * @summary Add MODBUS Input/Output
1481
1546
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1482
1547
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1488,7 +1553,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1488
1553
  return BUSInputsOutputsApiFp(this.configuration).addModbusIO(cell, io, modbusIOData, options).then((request) => request(this.axios, this.basePath));
1489
1554
  }
1490
1555
  /**
1491
- * Adds an input/output variable to or updates an input/output variable on the PROFINET device, e.g., NOVA\'s PROFINET service. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller as well as NOVA\'s PROFINET service use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal).
1556
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Adds an input/output variable to or updates an input/output variable on the PROFINET device, e.g., NOVA\'s PROFINET service. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller as well as NOVA\'s PROFINET service use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal).
1492
1557
  * @summary Add PROFINET Input/Output
1493
1558
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1494
1559
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1500,7 +1565,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1500
1565
  return BUSInputsOutputsApiFp(this.configuration).addProfinetIO(cell, io, profinetIOData, options).then((request) => request(this.axios, this.basePath));
1501
1566
  }
1502
1567
  /**
1503
- * Remove the BUS inputs/outputs service from the cell.
1568
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Remove the BUS inputs/outputs service from the cell.
1504
1569
  * @summary Clear Service
1505
1570
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1506
1571
  * @param {number} [completionTimeout]
@@ -1511,7 +1576,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1511
1576
  return BUSInputsOutputsApiFp(this.configuration).clearBusIOService(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
1512
1577
  }
1513
1578
  /**
1514
- * Removes all input/output variable configurations from the MODBUS device, e.g., NOVA\'s MODBUS service.
1579
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes all input/output variable configurations from the MODBUS device, e.g., NOVA\'s MODBUS service.
1515
1580
  * @summary Remove all MODBUS Input/Outputs
1516
1581
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1517
1582
  * @param {*} [options] Override http request option.
@@ -1521,7 +1586,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1521
1586
  return BUSInputsOutputsApiFp(this.configuration).deleteAllModbusIOs(cell, options).then((request) => request(this.axios, this.basePath));
1522
1587
  }
1523
1588
  /**
1524
- * Removes all input/output variable configurations from the PROFINET device, e.g., NOVA\'s PROFINET service.
1589
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes all input/output variable configurations from the PROFINET device, e.g., NOVA\'s PROFINET service.
1525
1590
  * @summary Remove all PROFINET Input/Outputs
1526
1591
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1527
1592
  * @param {*} [options] Override http request option.
@@ -1531,7 +1596,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1531
1596
  return BUSInputsOutputsApiFp(this.configuration).deleteAllProfinetIOs(cell, options).then((request) => request(this.axios, this.basePath));
1532
1597
  }
1533
1598
  /**
1534
- * Removes an input/output variable configuration from the MODBUS device, e.g., NOVA\'s MODBUS service.
1599
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes an input/output variable configuration from the MODBUS device, e.g., NOVA\'s MODBUS service.
1535
1600
  * @summary Remove MODBUS Input/Output
1536
1601
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1537
1602
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1542,7 +1607,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1542
1607
  return BUSInputsOutputsApiFp(this.configuration).deleteModbusIO(cell, io, options).then((request) => request(this.axios, this.basePath));
1543
1608
  }
1544
1609
  /**
1545
- * Removes an input/output variable configuration from the PROFINET device, e.g., NOVA\'s PROFINET service.
1610
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Removes an input/output variable configuration from the PROFINET device, e.g., NOVA\'s PROFINET service.
1546
1611
  * @summary Remove PROFINET Input/Ouptut
1547
1612
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1548
1613
  * @param {string} io Unique identifier to address an Input/Output in the cell.
@@ -1553,7 +1618,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1553
1618
  return BUSInputsOutputsApiFp(this.configuration).deleteProfinetIO(cell, io, options).then((request) => request(this.axios, this.basePath));
1554
1619
  }
1555
1620
  /**
1556
- * Get deployed BUS inputs/outputs service.
1621
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get deployed BUS inputs/outputs service.
1557
1622
  * @summary Get Service
1558
1623
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1559
1624
  * @param {*} [options] Override http request option.
@@ -1563,7 +1628,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1563
1628
  return BUSInputsOutputsApiFp(this.configuration).getBusIOService(cell, options).then((request) => request(this.axios, this.basePath));
1564
1629
  }
1565
1630
  /**
1566
- * Get the current state of the BUS Inputs/Outputs service.
1631
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get the current state of the BUS Inputs/Outputs service.
1567
1632
  * @summary State
1568
1633
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1569
1634
  * @param {*} [options] Override http request option.
@@ -1573,7 +1638,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1573
1638
  return BUSInputsOutputsApiFp(this.configuration).getBusIOState(cell, options).then((request) => request(this.axios, this.basePath));
1574
1639
  }
1575
1640
  /**
1576
- * Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listBusIODescriptions](#/operations/listBusIODescriptions).
1641
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listBusIODescriptions](#/operations/listBusIODescriptions).
1577
1642
  * @summary Get Input/Output Values
1578
1643
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1579
1644
  * @param {Array<string>} [ios]
@@ -1584,7 +1649,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1584
1649
  return BUSInputsOutputsApiFp(this.configuration).getBusIOValues(cell, ios, options).then((request) => request(this.axios, this.basePath));
1585
1650
  }
1586
1651
  /**
1587
- * Get description of NOVA as a PROFINET device.
1652
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get description of NOVA as a PROFINET device.
1588
1653
  * @summary Get PROFINET Description
1589
1654
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1590
1655
  * @param {*} [options] Override http request option.
@@ -1594,7 +1659,17 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1594
1659
  return BUSInputsOutputsApiFp(this.configuration).getProfinetDescription(cell, options).then((request) => request(this.axios, this.basePath));
1595
1660
  }
1596
1661
  /**
1597
- * Get input/output variable configuration of the PROFINET device, e.g., NOVA\'s PROFINET service as file. You can specify byte offsets for the input and output variable addresses to get an XML tagmap that is ready to paste to the third party software, e.g., TIA portal.
1662
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Returns the Generic Station Description Markup Language (GSDML) file for the PROFINET device. The GSDML file describes the PROFINET device configuration and capabilities, and can be imported into PROFINET engineering tools, e.g., TIA Portal, or other PLC programming environments. The returned GSDML file matches the current slot configuration of the PROFINET device.
1663
+ * @summary Get PROFINET GSDML File
1664
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
1665
+ * @param {*} [options] Override http request option.
1666
+ * @throws {RequiredError}
1667
+ */
1668
+ getProfinetGSDML(cell, options) {
1669
+ return BUSInputsOutputsApiFp(this.configuration).getProfinetGSDML(cell, options).then((request) => request(this.axios, this.basePath));
1670
+ }
1671
+ /**
1672
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA\'s PROFINET service as file. You can specify byte offsets for the input and output variable addresses to get an XML tagmap that is ready to paste to the third party software, e.g., TIA portal.
1598
1673
  * @summary PROFINET Inputs/Outputs to File
1599
1674
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1600
1675
  * @param {number} [inputOffset]
@@ -1606,7 +1681,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1606
1681
  return BUSInputsOutputsApiFp(this.configuration).getProfinetIOsFromFile(cell, inputOffset, outputOffset, options).then((request) => request(this.axios, this.basePath));
1607
1682
  }
1608
1683
  /**
1609
- * List all input/output descriptions for configured BUS services. The input/output descriptions contain information like name, type and unit. The input/output direction is given in perspective of the BUS service.
1684
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List all input/output descriptions for configured BUS services. The input/output descriptions contain information like name, type and unit. The input/output direction is given in perspective of the BUS service.
1610
1685
  * @summary List Descriptions
1611
1686
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1612
1687
  * @param {*} [options] Override http request option.
@@ -1616,7 +1691,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1616
1691
  return BUSInputsOutputsApiFp(this.configuration).listBusIODescriptions(cell, options).then((request) => request(this.axios, this.basePath));
1617
1692
  }
1618
1693
  /**
1619
- * List descriptions for all configured input/output variables of the MODBUS service. The input/output descriptions contain information like name, type, and address. The input/output direction is given in perspective of the active MODBUS type (service or client). - The byte and bit addresses are the locations in the MODBUS input/output process image the variable points to. - The MODBUS controller, as well as NOVA\'s MODBUS service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA MODBUS service\'s configuration is modified via [addModbusIO](#/operations/addModbusIO).
1694
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List descriptions for all configured input/output variables of the MODBUS service. The input/output descriptions contain information like name, type, and address. The input/output direction is given in perspective of the active MODBUS type (service or client). - The byte and bit addresses are the locations in the MODBUS input/output process image the variable points to. - The MODBUS controller, as well as NOVA\'s MODBUS service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA MODBUS service\'s configuration is modified via [addModbusIO](#/operations/addModbusIO).
1620
1695
  * @summary List MODBUS Input/Output Configuration
1621
1696
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1622
1697
  * @param {*} [options] Override http request option.
@@ -1626,7 +1701,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1626
1701
  return BUSInputsOutputsApiFp(this.configuration).listModbusIOs(cell, options).then((request) => request(this.axios, this.basePath));
1627
1702
  }
1628
1703
  /**
1629
- * List descriptions for all configured input/output variables of the PROFINET service. The input/output descriptions contain information like name, type, and unit. The input/output direction is given in perspective of the PROFINET device, e.g., the configured PROFINET service. - The byte and bit addresses are the locations in the PROFINET input/output process image the variable points to. - The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA PROFINET service\'s configuration is modified via [addProfinetIO](#/operations/addProfinetIO) and [setProfinetIOsFromFile](#/operations/setProfinetIOsFromFile). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal.
1704
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ List descriptions for all configured input/output variables of the PROFINET service. The input/output descriptions contain information like name, type, and unit. The input/output direction is given in perspective of the PROFINET device, e.g., the configured PROFINET service. - The byte and bit addresses are the locations in the PROFINET input/output process image the variable points to. - The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input and output process image. - The NOVA PROFINET service\'s configuration is modified via [addProfinetIO](#/operations/addProfinetIO) and [setProfinetIOsFromFile](#/operations/setProfinetIOsFromFile). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding third party software, e.g., TIA portal.
1630
1705
  * @summary List PROFINET Input/Output Configuration
1631
1706
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1632
1707
  * @param {*} [options] Override http request option.
@@ -1636,7 +1711,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1636
1711
  return BUSInputsOutputsApiFp(this.configuration).listProfinetIOs(cell, options).then((request) => request(this.axios, this.basePath));
1637
1712
  }
1638
1713
  /**
1639
- * Set values of outputs. In case of virtual Bus Input/Outputs, also inputs can be set. All available output identifiers can be requested via [listBusIODescriptions](#/operations/listBusIODescriptions). The call will return once the values have been set and accepted by the service.
1714
+ * **Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Set values of outputs. In case of virtual Bus Input/Outputs, also inputs can be set. All available output identifiers can be requested via [listBusIODescriptions](#/operations/listBusIODescriptions). The call will return once the values have been set and accepted by the service.
1640
1715
  * @summary Set Output Values
1641
1716
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1642
1717
  * @param {Array<IOValue>} iOValue
@@ -1647,7 +1722,7 @@ var BUSInputsOutputsApi = class extends BaseAPI {
1647
1722
  return BUSInputsOutputsApiFp(this.configuration).setBusIOValues(cell, iOValue, options).then((request) => request(this.axios, this.basePath));
1648
1723
  }
1649
1724
  /**
1650
- * Sets input/output variable configuration on the PROFINET device (i.e. NOVA\'s PROFINET service) from XML file. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding engineering system, e.g., TIA portal. #### Export variables You can export the variable configuration of the PROFINET controller as an XML file from your engineering system, e.g., TIA portal. - The endpoint is built so that the perspective of input and output (PROFINET Device\'s input is PROFINET Controller\'s output) is internally handled (PROFINET device input is PROFINET controller output), meaning that you can paste the exported XML file here without modifying.
1725
+ * **Required permissions:** `can_manage_bus_ios` - Manage BUS IO configuration ___ Sets input/output variable configuration on the PROFINET device (i.e. NOVA\'s PROFINET service) from XML file. The inputs/outputs map variables to specific memory addresses in the process image. The default process image has buffer lengths of 64 bytes for input and output. - The size of the buffer is determined by the `config_file_content` that is passed in [addBusIOService](#/operations/addBusIOService) and has to be in accordance with the GSDML file describing the PROFINET device. The PROFINET controller, as well as NOVA\'s PROFINET service, use an input/output variable configuration to interpret the bits of the input/output process image. - The NOVA\'s PROFINET service\'s configuration can be viewed via [listProfinetIOs](#/operations/listProfinetIOs). For the PROFINET controller, e.g., a connected PLC, refer to the corresponding engineering system, e.g., TIA portal. #### Export variables You can export the variable configuration of the PROFINET controller as an XML file from your engineering system, e.g., TIA portal. - The endpoint is built so that the perspective of input and output (PROFINET Device\'s input is PROFINET Controller\'s output) is internally handled (PROFINET device input is PROFINET controller output), meaning that you can paste the exported XML file here without modifying.
1651
1726
  * @summary Set PROFINET Inputs/Outputs from File
1652
1727
  * @param {string} cell Unique identifier addressing a cell in all API calls.
1653
1728
  * @param {ProfinetInputOutputConfig} profinetInputOutputConfig
@@ -2013,7 +2088,7 @@ const CellApiFactory = function(configuration, basePath, axios$1) {
2013
2088
  */
2014
2089
  var CellApi = class extends BaseAPI {
2015
2090
  /**
2016
- * Check if a more recent Wandelbots NOVA version is available for the cell. Updates greater than the system version are ignored.
2091
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Check if a more recent Wandelbots NOVA version is available for the cell. Updates greater than the system version are ignored.
2017
2092
  * @summary Check Cell Update
2018
2093
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2019
2094
  * @param {ReleaseChannel} channel
@@ -2024,7 +2099,7 @@ var CellApi = class extends BaseAPI {
2024
2099
  return CellApiFp(this.configuration).checkCellVersionUpdate(cell, channel, options).then((request) => request(this.axios, this.basePath));
2025
2100
  }
2026
2101
  /**
2027
- * Delete an entire cell.
2102
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Delete an entire cell.
2028
2103
  * @summary Delete Cell
2029
2104
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2030
2105
  * @param {number} [completionTimeout]
@@ -2035,7 +2110,7 @@ var CellApi = class extends BaseAPI {
2035
2110
  return CellApiFp(this.configuration).deleteCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2036
2111
  }
2037
2112
  /**
2038
- * Deploy an entire cell with all its resources. A cell can be used to deploy a robot controller, one or more robots, as well as custom applications. Refer to the [Wandelbots NOVA documentation](https://docs.wandelbots.io/latest/setup-cell) for more information.
2113
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Deploy an entire cell with all its resources. A cell can be used to deploy a robot controller, one or more robots, as well as custom applications. Refer to the [Wandelbots NOVA documentation](https://docs.wandelbots.io/latest/setup-cell) for more information.
2039
2114
  * @summary Add Cell
2040
2115
  * @param {Cell} cell
2041
2116
  * @param {number} [completionTimeout]
@@ -2046,7 +2121,7 @@ var CellApi = class extends BaseAPI {
2046
2121
  return CellApiFp(this.configuration).deployCell(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2047
2122
  }
2048
2123
  /**
2049
- * List all cell resources.
2124
+ * **Required permissions:** `can_access_cells` - View cell configurations and resources ___ List all cell resources.
2050
2125
  * @summary Configuration
2051
2126
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2052
2127
  * @param {*} [options] Override http request option.
@@ -2056,7 +2131,7 @@ var CellApi = class extends BaseAPI {
2056
2131
  return CellApiFp(this.configuration).getCell(cell, options).then((request) => request(this.axios, this.basePath));
2057
2132
  }
2058
2133
  /**
2059
- * List the status of all cell resources.
2134
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ List the status of all cell resources.
2060
2135
  * @summary Service Status
2061
2136
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2062
2137
  * @param {*} [options] Override http request option.
@@ -2066,7 +2141,7 @@ var CellApi = class extends BaseAPI {
2066
2141
  return CellApiFp(this.configuration).getCellStatus(cell, options).then((request) => request(this.axios, this.basePath));
2067
2142
  }
2068
2143
  /**
2069
- * List all deployed cell names. If no cells are deployed, an empty list is returned.
2144
+ * **Required permissions:** `can_access_cells` - View cell configurations and resources ___ List all deployed cell names. If no cells are deployed, an empty list is returned.
2070
2145
  * @summary List Cells
2071
2146
  * @param {*} [options] Override http request option.
2072
2147
  * @throws {RequiredError}
@@ -2075,7 +2150,7 @@ var CellApi = class extends BaseAPI {
2075
2150
  return CellApiFp(this.configuration).listCells(options).then((request) => request(this.axios, this.basePath));
2076
2151
  }
2077
2152
  /**
2078
- * Deactivate or activate the services of a cell.
2153
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Deactivate or activate the services of a cell.
2079
2154
  * @summary Operating State
2080
2155
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2081
2156
  * @param {OperatingState} operatingState Set state of the cell. Active or inactive.
@@ -2086,7 +2161,7 @@ var CellApi = class extends BaseAPI {
2086
2161
  return CellApiFp(this.configuration).setCellStatus(cell, operatingState, options).then((request) => request(this.axios, this.basePath));
2087
2162
  }
2088
2163
  /**
2089
- * Update the definition of the entire Cell.
2164
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Update the definition of the entire cell. <!-- theme: info --> > **NOTE** > > This endpoint replaces the full cell configuration and is not a partial update. > To change only one field: > 1. Get the current configuration via [Cell > Configuration](#/operations/getCell). > 2. Send the full configuration with your intended changes via [Cell > Update Configuration](#/operations/updateCell). Omitting existing sections may reset or remove their current configuration.
2090
2165
  * @summary Update Configuration
2091
2166
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2092
2167
  * @param {Cell} cell2
@@ -2098,7 +2173,7 @@ var CellApi = class extends BaseAPI {
2098
2173
  return CellApiFp(this.configuration).updateCell(cell, cell2, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2099
2174
  }
2100
2175
  /**
2101
- * Update the Foundation chart version for a single cell based on a release channel. The resulting version is capped at the current system version.
2176
+ * **Required permissions:** `can_manage_cells` - Create, update, or delete cells ___ Update the Foundation chart version for a single cell based on a release channel. The resulting version is capped at the current system version.
2102
2177
  * @summary Update Cell Version
2103
2178
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2104
2179
  * @param {UpdateCellVersionRequest} updateCellVersionRequest
@@ -2656,7 +2731,7 @@ const ControllerApiFactory = function(configuration, basePath, axios$1) {
2656
2731
  */
2657
2732
  var ControllerApi = class extends BaseAPI {
2658
2733
  /**
2659
- * Add a robot controller to the cell.
2734
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Add a robot controller to the cell.
2660
2735
  * @summary Add Robot Controller
2661
2736
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2662
2737
  * @param {RobotController} robotController
@@ -2668,7 +2743,7 @@ var ControllerApi = class extends BaseAPI {
2668
2743
  return ControllerApiFp(this.configuration).addRobotController(cell, robotController, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2669
2744
  }
2670
2745
  /**
2671
- * Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](#/operations/addRobotController).
2746
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](#/operations/addRobotController).
2672
2747
  * @summary Clear Robot Controllers
2673
2748
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2674
2749
  * @param {number} [completionTimeout]
@@ -2679,7 +2754,7 @@ var ControllerApi = class extends BaseAPI {
2679
2754
  return ControllerApiFp(this.configuration).clearRobotControllers(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2680
2755
  }
2681
2756
  /**
2682
- * Delete a robot controller from the cell.
2757
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Delete a robot controller from the cell.
2683
2758
  * @summary Delete Robot Controller
2684
2759
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2685
2760
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2691,7 +2766,7 @@ var ControllerApi = class extends BaseAPI {
2691
2766
  return ControllerApiFp(this.configuration).deleteRobotController(cell, controller, completionTimeout, options).then((request) => request(this.axios, this.basePath));
2692
2767
  }
2693
2768
  /**
2694
- * Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](#/operations/getMotionGroupDescription) to get more information about the motion group.
2769
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](#/operations/getMotionGroupDescription) to get more information about the motion group.
2695
2770
  * @summary Description
2696
2771
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2697
2772
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2702,7 +2777,7 @@ var ControllerApi = class extends BaseAPI {
2702
2777
  return ControllerApiFp(this.configuration).getControllerDescription(cell, controller, options).then((request) => request(this.axios, this.basePath));
2703
2778
  }
2704
2779
  /**
2705
- * Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2780
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2706
2781
  * @summary Coordinate System
2707
2782
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2708
2783
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2715,7 +2790,7 @@ var ControllerApi = class extends BaseAPI {
2715
2790
  return ControllerApiFp(this.configuration).getCoordinateSystem(cell, controller, coordinateSystem, orientationType, options).then((request) => request(this.axios, this.basePath));
2716
2791
  }
2717
2792
  /**
2718
- * Get the current state of a robot controller.
2793
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the current state of a robot controller.
2719
2794
  * @summary State
2720
2795
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2721
2796
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2726,7 +2801,7 @@ var ControllerApi = class extends BaseAPI {
2726
2801
  return ControllerApiFp(this.configuration).getCurrentRobotControllerState(cell, controller, options).then((request) => request(this.axios, this.basePath));
2727
2802
  }
2728
2803
  /**
2729
- * Get the configuration for a robot controller.
2804
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the configuration for a robot controller.
2730
2805
  * @summary Robot Controller
2731
2806
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2732
2807
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2737,7 +2812,7 @@ var ControllerApi = class extends BaseAPI {
2737
2812
  return ControllerApiFp(this.configuration).getRobotController(cell, controller, options).then((request) => request(this.axios, this.basePath));
2738
2813
  }
2739
2814
  /**
2740
- * Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the Virtual configuration variant of [addRobotController](#/operations/addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration, which is not required when providing a complete configuration.
2815
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the Virtual configuration variant of [addRobotController](#/operations/addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration, which is not required when providing a complete configuration.
2741
2816
  * @summary Virtual Controller Configuration
2742
2817
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2743
2818
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2748,7 +2823,7 @@ var ControllerApi = class extends BaseAPI {
2748
2823
  return ControllerApiFp(this.configuration).getVirtualControllerConfiguration(cell, controller, options).then((request) => request(this.axios, this.basePath));
2749
2824
  }
2750
2825
  /**
2751
- * Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2826
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2752
2827
  * @summary List Coordinate Systems
2753
2828
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2754
2829
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2760,7 +2835,7 @@ var ControllerApi = class extends BaseAPI {
2760
2835
  return ControllerApiFp(this.configuration).listCoordinateSystems(cell, controller, orientationType, options).then((request) => request(this.axios, this.basePath));
2761
2836
  }
2762
2837
  /**
2763
- * List the names of all deployed robot controllers.
2838
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List the names of all deployed robot controllers.
2764
2839
  * @summary List Robot Controllers
2765
2840
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2766
2841
  * @param {*} [options] Override http request option.
@@ -2770,7 +2845,7 @@ var ControllerApi = class extends BaseAPI {
2770
2845
  return ControllerApiFp(this.configuration).listRobotControllers(cell, options).then((request) => request(this.axios, this.basePath));
2771
2846
  }
2772
2847
  /**
2773
- * Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state `normal` or `reduced`. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](#/operations/getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
2848
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state `normal` or `reduced`. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can\'t be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](#/operations/getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
2774
2849
  * @summary Set Default Mode
2775
2850
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2776
2851
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2782,7 +2857,7 @@ var ControllerApi = class extends BaseAPI {
2782
2857
  return ControllerApiFp(this.configuration).setDefaultMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
2783
2858
  }
2784
2859
  /**
2785
- * <!-- theme: success --> > Websocket endpoint Sets the robot controller into freedrive mode and stays in freedrive until the websocket connection is closed by the client. In freedrive mode, it is possible to move the attached motion groups by hand. This is a blocking call. As long as the websocket connection is open, no other endpoint can control or move the robot. <!-- theme: danger --> > **DANGER** > > Danger caused by robot. Improper assessment by the integrator of the application-specific hazards can result in people being > crushed, drawn in or caught due to the robot\'s complex movement sequences. Before opening the websocket, ensure that > > - The robot is in a safe state, > - The right payload is set, > - No humans or object are within the robot\'s reach or within the cell. As long as the websocket connection is open you will get the current state of the robot system in the response in the specified `response_rate`. If the activation failed, the returned status will return possible reasons for the failure. Free drive mode is only available for robot controllers that support it, in particular cobots. Use [listRobotControllers](#/operations/listRobotControllers) to check if the robot controller supports free drive mode.
2860
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Sets the robot controller into freedrive mode and stays in freedrive until the websocket connection is closed by the client. In freedrive mode, it is possible to move the attached motion groups by hand. This is a blocking call. As long as the websocket connection is open, no other endpoint can control or move the robot. <!-- theme: danger --> > **DANGER** > > Danger caused by robot. Improper assessment by the integrator of the application-specific hazards can result in people being > crushed, drawn in or caught due to the robot\'s complex movement sequences. Before opening the websocket, ensure that > > - The robot is in a safe state, > - The right payload is set, > - No humans or object are within the robot\'s reach or within the cell. As long as the websocket connection is open you will get the current state of the robot system in the response in the specified `response_rate`. If the activation failed, the returned status will return possible reasons for the failure. Free drive mode is only available for robot controllers that support it, in particular cobots. Use [listRobotControllers](#/operations/listRobotControllers) to check if the robot controller supports free drive mode.
2786
2861
  * @summary Stream Free Drive
2787
2862
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2788
2863
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2794,7 +2869,7 @@ var ControllerApi = class extends BaseAPI {
2794
2869
  return ControllerApiFp(this.configuration).streamFreeDrive(cell, controller, responseRate, options).then((request) => request(this.axios, this.basePath));
2795
2870
  }
2796
2871
  /**
2797
- * <!-- theme: success --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](#/operations/addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
2872
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](#/operations/addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates.
2798
2873
  * @summary Stream State
2799
2874
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2800
2875
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -2807,7 +2882,7 @@ var ControllerApi = class extends BaseAPI {
2807
2882
  return ControllerApiFp(this.configuration).streamRobotControllerState(cell, controller, responseRate, addControllerTimeout, options).then((request) => request(this.axios, this.basePath));
2808
2883
  }
2809
2884
  /**
2810
- * Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](#/operations/getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](#/operations/deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](#/operations/addRobotController).
2885
+ * **Required permissions:** `can_manage_controllers` - Create, update, or delete robot controllers ___ Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](#/operations/getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](#/operations/deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](#/operations/addRobotController).
2811
2886
  * @summary Update Robot Controller
2812
2887
  * @param {string} cell Unique identifier addressing a cell in all API calls.
2813
2888
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3040,7 +3115,7 @@ const ControllerInputsOutputsApiFactory = function(configuration, basePath, axio
3040
3115
  */
3041
3116
  var ControllerInputsOutputsApi = class extends BaseAPI {
3042
3117
  /**
3043
- * Lists the input/output descriptions of the robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the robot controller\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
3118
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Lists the input/output descriptions of the robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the robot controller\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
3044
3119
  * @summary List Descriptions
3045
3120
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3046
3121
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3055,7 +3130,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3055
3130
  return ControllerInputsOutputsApiFp(this.configuration).listIODescriptions(cell, controller, ios, direction, valueType, group, options).then((request) => request(this.axios, this.basePath));
3056
3131
  }
3057
3132
  /**
3058
- * Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listIODescriptions](#/operations/listIODescriptions).
3133
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Retrieves the current values of inputs/outputs. The identifiers of the inputs/outputs must be provided in the request. Request all available input/output identifiers via [listIODescriptions](#/operations/listIODescriptions).
3059
3134
  * @summary Get Input/Output Values
3060
3135
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3061
3136
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3067,7 +3142,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3067
3142
  return ControllerInputsOutputsApiFp(this.configuration).listIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
3068
3143
  }
3069
3144
  /**
3070
- * Set the values of outputs. All available output identifiers and possible value ranges can be requested via [listIODescriptions](#/operations/listIODescriptions). The call will return once the values have been set on and accepted by the robot. This can take up to 200 milliseconds. > **NOTE** > > Do not call this endpoint while another request is still in progress. The second call will fail.
3145
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Set the values of outputs. All available output identifiers and possible value ranges can be requested via [listIODescriptions](#/operations/listIODescriptions). The call will return once the values have been set on and accepted by the robot. This can take up to 200 milliseconds. > **NOTE** > > Do not call this endpoint while another request is still in progress. The second call will fail.
3071
3146
  * @summary Set Output Values
3072
3147
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3073
3148
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3079,7 +3154,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3079
3154
  return ControllerInputsOutputsApiFp(this.configuration).setOutputValues(cell, controller, iOValue, options).then((request) => request(this.axios, this.basePath));
3080
3155
  }
3081
3156
  /**
3082
- * <!-- theme: success --> > Websocket endpoint Continuously receive updates of input/output values via websocket. Updates are sent in the update rate of the controller. > **NOTE** > > If you request many values simultaneously, the request is likely to fail. The amount of values that can be streamed simultaneously depends on the specific robot controller. > **NOTE** > > The inputs and outputs are sent in the update rate of the controller to prevent losing any values. This can lead to a high amount of data transmitted.
3157
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Continuously receive updates of input/output values via websocket. Updates are sent in the update rate of the controller. > **NOTE** > > If you request many values simultaneously, the request is likely to fail. The amount of values that can be streamed simultaneously depends on the specific robot controller. > **NOTE** > > The inputs and outputs are sent in the update rate of the controller to prevent losing any values. This can lead to a high amount of data transmitted.
3083
3158
  * @summary Stream Input/Output Values
3084
3159
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3085
3160
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3091,7 +3166,7 @@ var ControllerInputsOutputsApi = class extends BaseAPI {
3091
3166
  return ControllerInputsOutputsApiFp(this.configuration).streamIOValues(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
3092
3167
  }
3093
3168
  /**
3094
- * Wait until an input/output reaches a certain value. This call returns as soon as the condition is met or the request fails. The `comparison_type` value is used to define how the current value of the input/output is compared with given value. Only set the value that corresponds to the `value_type` of the input/output. See [listIODescriptions](#/operations/listIODescriptions) for more information. **Examples** 1. Wait until analog input `AI_1` < 10: ``` io: \"AI_1\" comparison_type: \"COMPARISON_LESS\" value: 10 ``` 2. Wait until analog input `AI_2` > 5.0: ``` io: \"AI_2\" comparison_type: \"COMPARISON_GREATER\" value: 5.0 ``` 3. Wait until digital input `DI_3` is true: ``` io: \"DI_3\" comparison_type: \"COMPARISON_EQUAL\" value: true ```
3169
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Wait until an input/output reaches a certain value. This call returns as soon as the condition is met or the request fails. The `comparison_type` value is used to define how the current value of the input/output is compared with given value. Only set the value that corresponds to the `value_type` of the input/output. See [listIODescriptions](#/operations/listIODescriptions) for more information. **Examples** 1. Wait until analog input `AI_1` < 10: ``` io: \"AI_1\" comparison_type: \"COMPARISON_LESS\" value: 10 ``` 2. Wait until analog input `AI_2` > 5.0: ``` io: \"AI_2\" comparison_type: \"COMPARISON_GREATER\" value: 5.0 ``` 3. Wait until digital input `DI_3` is true: ``` io: \"DI_3\" comparison_type: \"COMPARISON_EQUAL\" value: true ```
3095
3170
  * @summary Wait For
3096
3171
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3097
3172
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3164,7 +3239,7 @@ const JoggingApiFactory = function(configuration, basePath, axios$1) {
3164
3239
  */
3165
3240
  var JoggingApi = class extends BaseAPI {
3166
3241
  /**
3167
- * <!-- theme: success --> > Websocket endpoint Provides execution control over a dynamically adaptable jogging motion for a motion group. Jogging describes controlling a motion group by sending real-time commands to move either its joints or the TCP. The commands contain target velocities that may change at any time during execution, so the resulting motion cannot be computed upfront. ### Preconditions The motion group is not moved by any other endpoint. ### Requests #### 1. Send `InitializeJoggingRequest` to configure the jogging. - Sets the robot controller mode to control mode. - Claims the motion group for jogging. For robotic arms, TCP is required to ensure that limits, including TCP limits, are respected. #### 2. Send `JointVelocityRequest` or `TcpVelocityRequest` to start the jogging motion. - Commands can only be processed in the cycle rate of the controller - Sending commands faster will not increase the responsiveness of the jogging motion, it will lead to dropped commands - It is recommended to couple sending commands with the [state stream](#/operations/streamMotionGroupState), which can be subscribed to via nats as well. #### 3. Change or stop the jogging motion - Change the jogging direction and/or velocity during the jogging motion with `JointVelocityRequest` or `TcpVelocityRequest`. - To stop the jogging motion, send zero velocities via either request or `PauseJoggingRequest`. ### Responses - Each request is acknowledged with a corresponding response: - `InitializeJoggingResponse` after `InitializeJoggingRequest` - `JointVelocityResponse` after `JointVelocityRequest` - `TcpVelocityResponse` after `TcpVelocityRequest` - `PauseJoggingResponse` after `PauseJoggingRequest` The responses confirm that the requests were received. They do not signal that the operation was successful; check the [motion group state](#/operations/streamMotionGroupState) for that. - `MovementErrorResponse` with error details is sent in case of an unexpected error, e.g., controller disconnects during jogging. ### Tips and Tricks - Ensure that the websocket connection remains open until the jogging motion is stopped to avoid unexpected stops.
3242
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Provides execution control over a dynamically adaptable jogging motion for a motion group. Jogging describes controlling a motion group by sending real-time commands to move either its joints or the TCP. The commands contain target velocities that may change at any time during execution, so the resulting motion cannot be computed upfront. ### Preconditions The motion group is not moved by any other endpoint. ### Requests #### 1. Send `InitializeJoggingRequest` to configure the jogging. - Sets the robot controller mode to control mode. - Claims the motion group for jogging. For robotic arms, TCP is required to ensure that limits, including TCP limits, are respected. #### 2. Send `JointVelocityRequest` or `TcpVelocityRequest` to start the jogging motion. - Commands can only be processed in the cycle rate of the controller - Sending commands faster will not increase the responsiveness of the jogging motion, it will lead to dropped commands - It is recommended to couple sending commands with the [state stream](#/operations/streamMotionGroupState), which can be subscribed to via nats as well. #### 3. Change or stop the jogging motion - Change the jogging direction and/or velocity during the jogging motion with `JointVelocityRequest` or `TcpVelocityRequest`. - To stop the jogging motion, send zero velocities via either request or `PauseJoggingRequest`. ### Responses - Each request is acknowledged with a corresponding response: - `InitializeJoggingResponse` after `InitializeJoggingRequest` - `JointVelocityResponse` after `JointVelocityRequest` - `TcpVelocityResponse` after `TcpVelocityRequest` - `PauseJoggingResponse` after `PauseJoggingRequest` The responses confirm that the requests were received. They do not signal that the operation was successful; check the [motion group state](#/operations/streamMotionGroupState) for that. - `MovementErrorResponse` with error details is sent in case of an unexpected error, e.g., controller disconnects during jogging. ### Tips and Tricks - Ensure that the websocket connection remains open until the jogging motion is stopped to avoid unexpected stops.
3168
3243
  * @summary Execute Jogging
3169
3244
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3170
3245
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3238,6 +3313,35 @@ const KinematicsApiAxiosParamCreator = function(configuration) {
3238
3313
  url: toPathString(localVarUrlObj),
3239
3314
  options: localVarRequestOptions
3240
3315
  };
3316
+ },
3317
+ projectJointPositionDirectionConstraint: async (cell, projectJointPositionDirectionConstraintRequest, options = {}) => {
3318
+ assertParamExists("projectJointPositionDirectionConstraint", "cell", cell);
3319
+ assertParamExists("projectJointPositionDirectionConstraint", "projectJointPositionDirectionConstraintRequest", projectJointPositionDirectionConstraintRequest);
3320
+ const localVarPath = `/experimental/cells/{cell}/kinematic/project-joint-position-direction-constraint`.replace(`{cell}`, encodeURIComponent(String(cell)));
3321
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
3322
+ let baseOptions;
3323
+ if (configuration) baseOptions = configuration.baseOptions;
3324
+ const localVarRequestOptions = {
3325
+ method: "POST",
3326
+ ...baseOptions,
3327
+ ...options
3328
+ };
3329
+ const localVarHeaderParameter = {};
3330
+ const localVarQueryParameter = {};
3331
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
3332
+ localVarHeaderParameter["Content-Type"] = "application/json";
3333
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
3334
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
3335
+ localVarRequestOptions.headers = {
3336
+ ...localVarHeaderParameter,
3337
+ ...headersFromBaseOptions,
3338
+ ...options.headers
3339
+ };
3340
+ localVarRequestOptions.data = serializeDataIfNeeded(projectJointPositionDirectionConstraintRequest, localVarRequestOptions, configuration);
3341
+ return {
3342
+ url: toPathString(localVarUrlObj),
3343
+ options: localVarRequestOptions
3344
+ };
3241
3345
  }
3242
3346
  };
3243
3347
  };
@@ -3258,6 +3362,12 @@ const KinematicsApiFp = function(configuration) {
3258
3362
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
3259
3363
  const localVarOperationServerBasePath = operationServerMap["KinematicsApi.inverseKinematics"]?.[localVarOperationServerIndex]?.url;
3260
3364
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
3365
+ },
3366
+ async projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options) {
3367
+ const localVarAxiosArgs = await localVarAxiosParamCreator.projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options);
3368
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
3369
+ const localVarOperationServerBasePath = operationServerMap["KinematicsApi.projectJointPositionDirectionConstraint"]?.[localVarOperationServerIndex]?.url;
3370
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
3261
3371
  }
3262
3372
  };
3263
3373
  };
@@ -3272,6 +3382,9 @@ const KinematicsApiFactory = function(configuration, basePath, axios$1) {
3272
3382
  },
3273
3383
  inverseKinematics(cell, inverseKinematicsRequest, options) {
3274
3384
  return localVarFp.inverseKinematics(cell, inverseKinematicsRequest, options).then((request) => request(axios$1, basePath));
3385
+ },
3386
+ projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options) {
3387
+ return localVarFp.projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options).then((request) => request(axios$1, basePath));
3275
3388
  }
3276
3389
  };
3277
3390
  };
@@ -3280,7 +3393,7 @@ const KinematicsApiFactory = function(configuration, basePath, axios$1) {
3280
3393
  */
3281
3394
  var KinematicsApi = class extends BaseAPI {
3282
3395
  /**
3283
- * Returns the TCP poses for a list of given joint positions.
3396
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns the TCP poses for a list of given joint positions.
3284
3397
  * @summary Forward kinematics
3285
3398
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3286
3399
  * @param {ForwardKinematicsRequest} forwardKinematicsRequest
@@ -3291,7 +3404,7 @@ var KinematicsApi = class extends BaseAPI {
3291
3404
  return KinematicsApiFp(this.configuration).forwardKinematics(cell, forwardKinematicsRequest, options).then((request) => request(this.axios, this.basePath));
3292
3405
  }
3293
3406
  /**
3294
- * Returns the reachable joint positions for a list of given poses.
3407
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Returns the reachable joint positions for a list of given poses.
3295
3408
  * @summary Inverse kinematics
3296
3409
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3297
3410
  * @param {InverseKinematicsRequest} inverseKinematicsRequest
@@ -3301,6 +3414,17 @@ var KinematicsApi = class extends BaseAPI {
3301
3414
  inverseKinematics(cell, inverseKinematicsRequest, options) {
3302
3415
  return KinematicsApiFp(this.configuration).inverseKinematics(cell, inverseKinematicsRequest, options).then((request) => request(this.axios, this.basePath));
3303
3416
  }
3417
+ /**
3418
+ * **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()) ```
3419
+ * @summary Project joint position to direction constraint
3420
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
3421
+ * @param {ProjectJointPositionDirectionConstraintRequest} projectJointPositionDirectionConstraintRequest
3422
+ * @param {*} [options] Override http request option.
3423
+ * @throws {RequiredError}
3424
+ */
3425
+ projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options) {
3426
+ return KinematicsApiFp(this.configuration).projectJointPositionDirectionConstraint(cell, projectJointPositionDirectionConstraintRequest, options).then((request) => request(this.axios, this.basePath));
3427
+ }
3304
3428
  };
3305
3429
  /**
3306
3430
  * LicenseApi - axios parameter creator
@@ -3465,7 +3589,7 @@ const LicenseApiFactory = function(configuration, basePath, axios$1) {
3465
3589
  */
3466
3590
  var LicenseApi = class extends BaseAPI {
3467
3591
  /**
3468
- * Activates a license using the provided license owner authentication token. The refresh token is used to enable communication with the license provider without requiring user interaction.
3592
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Activates a license using the provided license owner authentication token. The refresh token is used to enable communication with the license provider without requiring user interaction.
3469
3593
  * @summary Activate license
3470
3594
  * @param {ActivateLicenseRequest} activateLicenseRequest
3471
3595
  * @param {*} [options] Override http request option.
@@ -3475,7 +3599,7 @@ var LicenseApi = class extends BaseAPI {
3475
3599
  return LicenseApiFp(this.configuration).activateLicense(activateLicenseRequest, options).then((request) => request(this.axios, this.basePath));
3476
3600
  }
3477
3601
  /**
3478
- * Deactivates active license.
3602
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Deactivates active license.
3479
3603
  * @summary Deactivate license
3480
3604
  * @param {*} [options] Override http request option.
3481
3605
  * @throws {RequiredError}
@@ -3484,7 +3608,7 @@ var LicenseApi = class extends BaseAPI {
3484
3608
  return LicenseApiFp(this.configuration).deactivateLicense(options).then((request) => request(this.axios, this.basePath));
3485
3609
  }
3486
3610
  /**
3487
- * Get information on the license used with the Wandelbots NOVA instance, e.g., licensed product, expiration date, license status.
3611
+ * **Required permissions:** `can_manage_license` - Manage license configuration ___ Get information on the license used with the Wandelbots NOVA instance, e.g., licensed product, expiration date, license status.
3488
3612
  * @summary Get license
3489
3613
  * @param {*} [options] Override http request option.
3490
3614
  * @throws {RequiredError}
@@ -3493,7 +3617,7 @@ var LicenseApi = class extends BaseAPI {
3493
3617
  return LicenseApiFp(this.configuration).getLicense(options).then((request) => request(this.axios, this.basePath));
3494
3618
  }
3495
3619
  /**
3496
- * Get the license status. - If `valid`, Wandelbots NOVA can be used. - If `expired`, the license has to be renewed in order to use Wandelbots NOVA.
3620
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the license status. - If `valid`, Wandelbots NOVA can be used. - If `expired`, the license has to be renewed in order to use Wandelbots NOVA.
3497
3621
  * @summary Get license status
3498
3622
  * @param {*} [options] Override http request option.
3499
3623
  * @throws {RequiredError}
@@ -3644,7 +3768,7 @@ const MotionGroupApiFactory = function(configuration, basePath, axios$1) {
3644
3768
  */
3645
3769
  var MotionGroupApi = class extends BaseAPI {
3646
3770
  /**
3647
- * Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
3771
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Returns the current state of the selected motion group including the current joint position, velocity, pose, and more.
3648
3772
  * @summary State
3649
3773
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3650
3774
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3657,7 +3781,7 @@ var MotionGroupApi = class extends BaseAPI {
3657
3781
  return MotionGroupApiFp(this.configuration).getCurrentMotionGroupState(cell, controller, motionGroup, responseCoordinateSystem, options).then((request) => request(this.axios, this.basePath));
3658
3782
  }
3659
3783
  /**
3660
- * Get the set of parameters that describe the motion group and its configuration including safety zones, limits, etc. This data can change upon connection to the robot.
3784
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get the set of parameters that describe the motion group and its configuration including safety zones, limits, etc. This data can change upon connection to the robot.
3661
3785
  * @summary Description
3662
3786
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3663
3787
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3669,7 +3793,7 @@ var MotionGroupApi = class extends BaseAPI {
3669
3793
  return MotionGroupApiFp(this.configuration).getMotionGroupDescription(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
3670
3794
  }
3671
3795
  /**
3672
- * <!-- theme: success --> > Websocket endpoint Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
3796
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Receive updates of the motion group state. The stream will be closed from the server if the controller is disconnected.
3673
3797
  * @summary Stream State
3674
3798
  * @param {string} cell Unique identifier addressing a cell in all API calls.
3675
3799
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -3884,7 +4008,7 @@ const MotionGroupModelsApiFactory = function(configuration, basePath, axios$1) {
3884
4008
  */
3885
4009
  var MotionGroupModelsApi = class extends BaseAPI {
3886
4010
  /**
3887
- * Returns the default collision link chain for a given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models. The default link chain is derived from 3D models and optimized for collision detection within NOVA. The default link chain includes link shapes only. It does not include any attached components like wire feeders or sensors. Attach additional shapes to the link reference frames by extending the link dictionaries before further use. Additional shapes may overlap each other per link and may also overlap the respective link\'s default shape.
4011
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the default collision link chain for a given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models. The default link chain is derived from 3D models and optimized for collision detection within NOVA. The default link chain includes link shapes only. It does not include any attached components like wire feeders or sensors. Attach additional shapes to the link reference frames by extending the link dictionaries before further use. Additional shapes may overlap each other per link and may also overlap the respective link\'s default shape.
3888
4012
  * @summary Get Collision Model
3889
4013
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3890
4014
  * @param {*} [options] Override http request option.
@@ -3894,7 +4018,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3894
4018
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupCollisionModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3895
4019
  }
3896
4020
  /**
3897
- * Returns the GLB asset for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
4021
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the GLB asset for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3898
4022
  * @summary Download GLB Model
3899
4023
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3900
4024
  * @param {*} [options] Override http request option.
@@ -3904,7 +4028,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3904
4028
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupGlbModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3905
4029
  }
3906
4030
  /**
3907
- * Returns the kinematics model (DH parameters) for the given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models.
4031
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the kinematics model (DH parameters) for the given motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported motion group models.
3908
4032
  * @summary Get Kinematics
3909
4033
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3910
4034
  * @param {*} [options] Override http request option.
@@ -3914,7 +4038,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3914
4038
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupKinematicModel(motionGroupModel, options).then((request) => request(this.axios, this.basePath));
3915
4039
  }
3916
4040
  /**
3917
- * Returns the list of supported motion group models.
4041
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the list of supported motion group models.
3918
4042
  * @summary Motion Group Models
3919
4043
  * @param {*} [options] Override http request option.
3920
4044
  * @throws {RequiredError}
@@ -3923,7 +4047,7 @@ var MotionGroupModelsApi = class extends BaseAPI {
3923
4047
  return MotionGroupModelsApiFp(this.configuration).getMotionGroupModels(options).then((request) => request(this.axios, this.basePath));
3924
4048
  }
3925
4049
  /**
3926
- * Returns the USD scene model for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
4050
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the USD scene model for the specified motion group model. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported identifiers.
3927
4051
  * @summary Download USD Model
3928
4052
  * @param {string} motionGroupModel Unique identifier for the model of a motion group, e.g., &#x60;UniversalRobots_UR10e&#x60;. Get the &#x60;model&#x60; of a configured motion group with [getOptimizerConfiguration](#/operations/getOptimizerConfiguration).
3929
4053
  * @param {*} [options] Override http request option.
@@ -3934,6 +4058,167 @@ var MotionGroupModelsApi = class extends BaseAPI {
3934
4058
  }
3935
4059
  };
3936
4060
  /**
4061
+ * NOVACloudApi - axios parameter creator
4062
+ */
4063
+ const NOVACloudApiAxiosParamCreator = function(configuration) {
4064
+ return {
4065
+ connectToNovaCloud: async (completionTimeout, cloudConnectionRequest, options = {}) => {
4066
+ const localVarUrlObj = new URL(`/experimental/cloud/connect`, DUMMY_BASE_URL);
4067
+ let baseOptions;
4068
+ if (configuration) baseOptions = configuration.baseOptions;
4069
+ const localVarRequestOptions = {
4070
+ method: "POST",
4071
+ ...baseOptions,
4072
+ ...options
4073
+ };
4074
+ const localVarHeaderParameter = {};
4075
+ const localVarQueryParameter = {};
4076
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4077
+ if (completionTimeout !== void 0) localVarQueryParameter["completion_timeout"] = completionTimeout;
4078
+ localVarHeaderParameter["Content-Type"] = "application/json";
4079
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4080
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4081
+ localVarRequestOptions.headers = {
4082
+ ...localVarHeaderParameter,
4083
+ ...headersFromBaseOptions,
4084
+ ...options.headers
4085
+ };
4086
+ localVarRequestOptions.data = serializeDataIfNeeded(cloudConnectionRequest, localVarRequestOptions, configuration);
4087
+ return {
4088
+ url: toPathString(localVarUrlObj),
4089
+ options: localVarRequestOptions
4090
+ };
4091
+ },
4092
+ disconnectFromNovaCloud: async (completionTimeout, options = {}) => {
4093
+ const localVarUrlObj = new URL(`/experimental/cloud/config`, DUMMY_BASE_URL);
4094
+ let baseOptions;
4095
+ if (configuration) baseOptions = configuration.baseOptions;
4096
+ const localVarRequestOptions = {
4097
+ method: "DELETE",
4098
+ ...baseOptions,
4099
+ ...options
4100
+ };
4101
+ const localVarHeaderParameter = {};
4102
+ const localVarQueryParameter = {};
4103
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4104
+ if (completionTimeout !== void 0) localVarQueryParameter["completion_timeout"] = completionTimeout;
4105
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4106
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4107
+ localVarRequestOptions.headers = {
4108
+ ...localVarHeaderParameter,
4109
+ ...headersFromBaseOptions,
4110
+ ...options.headers
4111
+ };
4112
+ return {
4113
+ url: toPathString(localVarUrlObj),
4114
+ options: localVarRequestOptions
4115
+ };
4116
+ },
4117
+ getNovaCloudConfig: async (options = {}) => {
4118
+ const localVarUrlObj = new URL(`/experimental/cloud/config`, DUMMY_BASE_URL);
4119
+ let baseOptions;
4120
+ if (configuration) baseOptions = configuration.baseOptions;
4121
+ const localVarRequestOptions = {
4122
+ method: "GET",
4123
+ ...baseOptions,
4124
+ ...options
4125
+ };
4126
+ const localVarHeaderParameter = {};
4127
+ const localVarQueryParameter = {};
4128
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
4129
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
4130
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
4131
+ localVarRequestOptions.headers = {
4132
+ ...localVarHeaderParameter,
4133
+ ...headersFromBaseOptions,
4134
+ ...options.headers
4135
+ };
4136
+ return {
4137
+ url: toPathString(localVarUrlObj),
4138
+ options: localVarRequestOptions
4139
+ };
4140
+ }
4141
+ };
4142
+ };
4143
+ /**
4144
+ * NOVACloudApi - functional programming interface
4145
+ */
4146
+ const NOVACloudApiFp = function(configuration) {
4147
+ const localVarAxiosParamCreator = NOVACloudApiAxiosParamCreator(configuration);
4148
+ return {
4149
+ async connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4150
+ const localVarAxiosArgs = await localVarAxiosParamCreator.connectToNovaCloud(completionTimeout, cloudConnectionRequest, options);
4151
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4152
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.connectToNovaCloud"]?.[localVarOperationServerIndex]?.url;
4153
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
4154
+ },
4155
+ async disconnectFromNovaCloud(completionTimeout, options) {
4156
+ const localVarAxiosArgs = await localVarAxiosParamCreator.disconnectFromNovaCloud(completionTimeout, options);
4157
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4158
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.disconnectFromNovaCloud"]?.[localVarOperationServerIndex]?.url;
4159
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
4160
+ },
4161
+ async getNovaCloudConfig(options) {
4162
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getNovaCloudConfig(options);
4163
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
4164
+ const localVarOperationServerBasePath = operationServerMap["NOVACloudApi.getNovaCloudConfig"]?.[localVarOperationServerIndex]?.url;
4165
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
4166
+ }
4167
+ };
4168
+ };
4169
+ /**
4170
+ * NOVACloudApi - factory interface
4171
+ */
4172
+ const NOVACloudApiFactory = function(configuration, basePath, axios$1) {
4173
+ const localVarFp = NOVACloudApiFp(configuration);
4174
+ return {
4175
+ connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4176
+ return localVarFp.connectToNovaCloud(completionTimeout, cloudConnectionRequest, options).then((request) => request(axios$1, basePath));
4177
+ },
4178
+ disconnectFromNovaCloud(completionTimeout, options) {
4179
+ return localVarFp.disconnectFromNovaCloud(completionTimeout, options).then((request) => request(axios$1, basePath));
4180
+ },
4181
+ getNovaCloudConfig(options) {
4182
+ return localVarFp.getNovaCloudConfig(options).then((request) => request(axios$1, basePath));
4183
+ }
4184
+ };
4185
+ };
4186
+ /**
4187
+ * NOVACloudApi - object-oriented interface
4188
+ */
4189
+ var NOVACloudApi = class extends BaseAPI {
4190
+ /**
4191
+ * **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.
4192
+ * @summary Connect to NOVA Cloud
4193
+ * @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.
4194
+ * @param {CloudConnectionRequest} [cloudConnectionRequest]
4195
+ * @param {*} [options] Override http request option.
4196
+ * @throws {RequiredError}
4197
+ */
4198
+ connectToNovaCloud(completionTimeout, cloudConnectionRequest, options) {
4199
+ return NOVACloudApiFp(this.configuration).connectToNovaCloud(completionTimeout, cloudConnectionRequest, options).then((request) => request(this.axios, this.basePath));
4200
+ }
4201
+ /**
4202
+ * **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.
4203
+ * @summary Disconnect from NOVA Cloud
4204
+ * @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.
4205
+ * @param {*} [options] Override http request option.
4206
+ * @throws {RequiredError}
4207
+ */
4208
+ disconnectFromNovaCloud(completionTimeout, options) {
4209
+ return NOVACloudApiFp(this.configuration).disconnectFromNovaCloud(completionTimeout, options).then((request) => request(this.axios, this.basePath));
4210
+ }
4211
+ /**
4212
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the current NOVA Cloud connection config for this instance.
4213
+ * @summary Get Connection Config
4214
+ * @param {*} [options] Override http request option.
4215
+ * @throws {RequiredError}
4216
+ */
4217
+ getNovaCloudConfig(options) {
4218
+ return NOVACloudApiFp(this.configuration).getNovaCloudConfig(options).then((request) => request(this.axios, this.basePath));
4219
+ }
4220
+ };
4221
+ /**
3937
4222
  * ProgramApi - axios parameter creator
3938
4223
  */
3939
4224
  const ProgramApiAxiosParamCreator = function(configuration) {
@@ -4107,7 +4392,7 @@ const ProgramApiFactory = function(configuration, basePath, axios$1) {
4107
4392
  */
4108
4393
  var ProgramApi = class extends BaseAPI {
4109
4394
  /**
4110
- * <!-- theme: danger --> > **Experimental** Get details of a program.
4395
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Get details of a program.
4111
4396
  * @summary Get program
4112
4397
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4113
4398
  * @param {string} program
@@ -4118,7 +4403,7 @@ var ProgramApi = class extends BaseAPI {
4118
4403
  return ProgramApiFp(this.configuration).getProgram(cell, program, options).then((request) => request(this.axios, this.basePath));
4119
4404
  }
4120
4405
  /**
4121
- * <!-- theme: danger --> > **Experimental** List details of all existing programs.
4406
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** List details of all existing programs.
4122
4407
  * @summary List programs
4123
4408
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4124
4409
  * @param {*} [options] Override http request option.
@@ -4128,7 +4413,7 @@ var ProgramApi = class extends BaseAPI {
4128
4413
  return ProgramApiFp(this.configuration).listPrograms(cell, options).then((request) => request(this.axios, this.basePath));
4129
4414
  }
4130
4415
  /**
4131
- * <!-- theme: danger --> > **Experimental** This endpoint starts a new program execution. The program will be executed asynchronously.
4416
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** This endpoint starts a new program execution. The program will be executed asynchronously.
4132
4417
  * @summary Start the program
4133
4418
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4134
4419
  * @param {string} program
@@ -4140,7 +4425,7 @@ var ProgramApi = class extends BaseAPI {
4140
4425
  return ProgramApiFp(this.configuration).startProgram(cell, program, programStartRequest, options).then((request) => request(this.axios, this.basePath));
4141
4426
  }
4142
4427
  /**
4143
- * <!-- theme: danger --> > **Experimental** Stop a specific program run.
4428
+ * **Required permissions:** `can_operate_programs` - Execute and monitor programs ___ <!-- theme: danger --> > **Experimental** Stop a specific program run.
4144
4429
  * @summary Stop program run
4145
4430
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4146
4431
  * @param {string} program
@@ -4248,7 +4533,7 @@ const RobotConfigurationsApiFactory = function(configuration, basePath, axios$1)
4248
4533
  */
4249
4534
  var RobotConfigurationsApi = class extends BaseAPI {
4250
4535
  /**
4251
- * Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
4536
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns all robot controller configurations that match the provided [ARP scan result](#/operations/getArpScan).
4252
4537
  * @summary Robot Controller Configurations
4253
4538
  * @param {RobotControllerConfigurationRequest} robotControllerConfigurationRequest
4254
4539
  * @param {*} [options] Override http request option.
@@ -4258,7 +4543,7 @@ var RobotConfigurationsApi = class extends BaseAPI {
4258
4543
  return RobotConfigurationsApiFp(this.configuration).getControllerConfigFromArpScan(robotControllerConfigurationRequest, options).then((request) => request(this.axios, this.basePath));
4259
4544
  }
4260
4545
  /**
4261
- * Returns the identifiers of available robot configurations. A robot configuration represents a robot controller with one or more attached motion groups.
4546
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Returns the identifiers of available robot configurations. A robot configuration represents a robot controller with one or more attached motion groups.
4262
4547
  * @summary List Robot Configurations
4263
4548
  * @param {*} [options] Override http request option.
4264
4549
  * @throws {RequiredError}
@@ -4838,7 +5123,7 @@ const StoreCollisionComponentsApiFactory = function(configuration, basePath, axi
4838
5123
  */
4839
5124
  var StoreCollisionComponentsApi = class extends BaseAPI {
4840
5125
  /**
4841
- * Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
5126
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collider. <!-- theme: danger --> > This will delete persistently stored data.
4842
5127
  * @summary Delete Collider
4843
5128
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4844
5129
  * @param {string} collider Unique identifier addressing a collider.
@@ -4849,7 +5134,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4849
5134
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
4850
5135
  }
4851
5136
  /**
4852
- * Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
5137
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored link chain. <!-- theme: danger --> > This will delete persistently stored data.
4853
5138
  * @summary Delete Link Chain
4854
5139
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4855
5140
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4860,7 +5145,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4860
5145
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
4861
5146
  }
4862
5147
  /**
4863
- * Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
5148
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored tool. <!-- theme: danger --> > This will delete persistently stored data.
4864
5149
  * @summary Delete Tool
4865
5150
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4866
5151
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -4871,7 +5156,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4871
5156
  return StoreCollisionComponentsApiFp(this.configuration).deleteStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
4872
5157
  }
4873
5158
  /**
4874
- * Returns the collider.
5159
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collider.
4875
5160
  * @summary Get Collider
4876
5161
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4877
5162
  * @param {string} collider Unique identifier addressing a collider.
@@ -4882,7 +5167,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4882
5167
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollider(cell, collider, options).then((request) => request(this.axios, this.basePath));
4883
5168
  }
4884
5169
  /**
4885
- * Returns the collision link chain.
5170
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the collision link chain.
4886
5171
  * @summary Get Link Chain
4887
5172
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4888
5173
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4893,7 +5178,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4893
5178
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionLinkChain(cell, linkChain, options).then((request) => request(this.axios, this.basePath));
4894
5179
  }
4895
5180
  /**
4896
- * Returns the stored tool.
5181
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored tool.
4897
5182
  * @summary Get Tool
4898
5183
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4899
5184
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -4904,7 +5189,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4904
5189
  return StoreCollisionComponentsApiFp(this.configuration).getStoredCollisionTool(cell, tool, options).then((request) => request(this.axios, this.basePath));
4905
5190
  }
4906
5191
  /**
4907
- * Returns the stored link chains.
5192
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored link chains.
4908
5193
  * @summary List Link Chains
4909
5194
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4910
5195
  * @param {*} [options] Override http request option.
@@ -4914,7 +5199,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4914
5199
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChains(cell, options).then((request) => request(this.axios, this.basePath));
4915
5200
  }
4916
5201
  /**
4917
- * Returns a list of keys for stored link chains.
5202
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored link chains.
4918
5203
  * @summary List Link Chain Keys
4919
5204
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4920
5205
  * @param {*} [options] Override http request option.
@@ -4924,7 +5209,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4924
5209
  return StoreCollisionComponentsApiFp(this.configuration).listCollisionLinkChainsKeys(cell, options).then((request) => request(this.axios, this.basePath));
4925
5210
  }
4926
5211
  /**
4927
- * Returns all stored colliders.
5212
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns all stored colliders.
4928
5213
  * @summary List Colliders
4929
5214
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4930
5215
  * @param {*} [options] Override http request option.
@@ -4934,7 +5219,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4934
5219
  return StoreCollisionComponentsApiFp(this.configuration).listStoredColliders(cell, options).then((request) => request(this.axios, this.basePath));
4935
5220
  }
4936
5221
  /**
4937
- * Returns a list of keys for stored colliders.
5222
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored colliders.
4938
5223
  * @summary List Collider Keys
4939
5224
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4940
5225
  * @param {*} [options] Override http request option.
@@ -4944,7 +5229,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4944
5229
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollidersKeys(cell, options).then((request) => request(this.axios, this.basePath));
4945
5230
  }
4946
5231
  /**
4947
- * Returns the list of stored tools.
5232
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the list of stored tools.
4948
5233
  * @summary List Tools
4949
5234
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4950
5235
  * @param {*} [options] Override http request option.
@@ -4954,7 +5239,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4954
5239
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionTools(cell, options).then((request) => request(this.axios, this.basePath));
4955
5240
  }
4956
5241
  /**
4957
- * Returns a list of keys for stored tools.
5242
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored tools.
4958
5243
  * @summary List Tool Keys
4959
5244
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4960
5245
  * @param {*} [options] Override http request option.
@@ -4964,7 +5249,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4964
5249
  return StoreCollisionComponentsApiFp(this.configuration).listStoredCollisionToolsKeys(cell, options).then((request) => request(this.axios, this.basePath));
4965
5250
  }
4966
5251
  /**
4967
- * Stores collider. - If the collider does not exist, it will be created. - If the collider exists, it will be updated.
5252
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores collider. - If the collider does not exist, it will be created. - If the collider exists, it will be updated.
4968
5253
  * @summary Store Collider
4969
5254
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4970
5255
  * @param {string} collider Unique identifier addressing a collider.
@@ -4976,7 +5261,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4976
5261
  return StoreCollisionComponentsApiFp(this.configuration).storeCollider(cell, collider, collider2, options).then((request) => request(this.axios, this.basePath));
4977
5262
  }
4978
5263
  /**
4979
- * Stores link chain. - If the link chain does not exist, it will be created. - If the link chain exists, it will be updated.
5264
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores link chain. - If the link chain does not exist, it will be created. - If the link chain exists, it will be updated.
4980
5265
  * @summary Store Link Chain
4981
5266
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4982
5267
  * @param {string} linkChain Unique identifier addressing a collision link chain.
@@ -4988,7 +5273,7 @@ var StoreCollisionComponentsApi = class extends BaseAPI {
4988
5273
  return StoreCollisionComponentsApiFp(this.configuration).storeCollisionLinkChain(cell, linkChain, collider, options).then((request) => request(this.axios, this.basePath));
4989
5274
  }
4990
5275
  /**
4991
- * Stores the tool. - If the tool does not exist, it will be created. - If the tool exists, it will be updated.
5276
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores the tool. - If the tool does not exist, it will be created. - If the tool exists, it will be updated.
4992
5277
  * @summary Store Tool
4993
5278
  * @param {string} cell Unique identifier addressing a cell in all API calls.
4994
5279
  * @param {string} tool Unique identifier addressing a collision tool.
@@ -5209,7 +5494,7 @@ const StoreCollisionSetupsApiFactory = function(configuration, basePath, axios$1
5209
5494
  */
5210
5495
  var StoreCollisionSetupsApi = class extends BaseAPI {
5211
5496
  /**
5212
- * Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
5497
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Deletes the stored collision setup. <!-- theme: danger --> > This will delete persistently stored data.
5213
5498
  * @summary Delete Collision Setup
5214
5499
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5215
5500
  * @param {string} setup Identifier of the collision setup
@@ -5220,7 +5505,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5220
5505
  return StoreCollisionSetupsApiFp(this.configuration).deleteStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
5221
5506
  }
5222
5507
  /**
5223
- * Returns the stored collision setup.
5508
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns the stored collision setup.
5224
5509
  * @summary Get Collision Setup
5225
5510
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5226
5511
  * @param {string} setup Identifier of the collision setup
@@ -5231,7 +5516,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5231
5516
  return StoreCollisionSetupsApiFp(this.configuration).getStoredCollisionSetup(cell, setup, options).then((request) => request(this.axios, this.basePath));
5232
5517
  }
5233
5518
  /**
5234
- * Returns a list of stored collision setups.
5519
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of stored collision setups.
5235
5520
  * @summary List Collision Setups
5236
5521
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5237
5522
  * @param {*} [options] Override http request option.
@@ -5241,7 +5526,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5241
5526
  return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetups(cell, options).then((request) => request(this.axios, this.basePath));
5242
5527
  }
5243
5528
  /**
5244
- * Returns a list of keys for stored collision setups.
5529
+ * **Required permissions:** `can_read_collision_world` - Read collision models and scenes ___ Returns a list of keys for stored collision setups.
5245
5530
  * @summary List Collision Setup Keys
5246
5531
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5247
5532
  * @param {*} [options] Override http request option.
@@ -5251,7 +5536,7 @@ var StoreCollisionSetupsApi = class extends BaseAPI {
5251
5536
  return StoreCollisionSetupsApiFp(this.configuration).listStoredCollisionSetupsKeys(cell, options).then((request) => request(this.axios, this.basePath));
5252
5537
  }
5253
5538
  /**
5254
- * Stores collision setup. - If the collision setup does not exist, it will be created. - If the collision setup exists, it will be updated.
5539
+ * **Required permissions:** `can_write_collision_world` - Write collision models and scenes ___ Stores collision setup. - If the collision setup does not exist, it will be created. - If the collision setup exists, it will be updated.
5255
5540
  * @summary Store Collision Setup
5256
5541
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5257
5542
  * @param {string} setup Identifier of the collision setup
@@ -5510,7 +5795,7 @@ const StoreObjectApiFactory = function(configuration, basePath, axios$1) {
5510
5795
  */
5511
5796
  var StoreObjectApi = class extends BaseAPI {
5512
5797
  /**
5513
- * Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
5798
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete all objects. <!-- theme: danger --> > This will delete ALL your persistently stored data.
5514
5799
  * @summary Clear all Objects
5515
5800
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5516
5801
  * @param {*} [options] Override http request option.
@@ -5520,7 +5805,7 @@ var StoreObjectApi = class extends BaseAPI {
5520
5805
  return StoreObjectApiFp(this.configuration).clearAllObjects(cell, options).then((request) => request(this.axios, this.basePath));
5521
5806
  }
5522
5807
  /**
5523
- * Delete an object <!-- theme: danger --> > This will delete persistently stored data.
5808
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Delete an object <!-- theme: danger --> > This will delete persistently stored data.
5524
5809
  * @summary Delete Object
5525
5810
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5526
5811
  * @param {string} key
@@ -5531,7 +5816,7 @@ var StoreObjectApi = class extends BaseAPI {
5531
5816
  return StoreObjectApiFp(this.configuration).deleteObject(cell, key, options).then((request) => request(this.axios, this.basePath));
5532
5817
  }
5533
5818
  /**
5534
- * Returns content and metadata of a stored object.
5819
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Returns content and metadata of a stored object.
5535
5820
  * @summary Get Object
5536
5821
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5537
5822
  * @param {string} key
@@ -5542,7 +5827,7 @@ var StoreObjectApi = class extends BaseAPI {
5542
5827
  return StoreObjectApiFp(this.configuration).getObject(cell, key, options).then((request) => request(this.axios, this.basePath));
5543
5828
  }
5544
5829
  /**
5545
- * Returns metadata. Object content is not returned.
5830
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ Returns metadata. Object content is not returned.
5546
5831
  * @summary Get Object Metadata
5547
5832
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5548
5833
  * @param {string} key
@@ -5553,7 +5838,7 @@ var StoreObjectApi = class extends BaseAPI {
5553
5838
  return StoreObjectApiFp(this.configuration).getObjectMetadata(cell, key, options).then((request) => request(this.axios, this.basePath));
5554
5839
  }
5555
5840
  /**
5556
- * List the keys for all objects.
5841
+ * **Required permissions:** `can_read_objects` - Read stored objects ___ List the keys for all objects.
5557
5842
  * @summary List all Object Keys
5558
5843
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5559
5844
  * @param {*} [options] Override http request option.
@@ -5563,7 +5848,7 @@ var StoreObjectApi = class extends BaseAPI {
5563
5848
  return StoreObjectApiFp(this.configuration).listAllObjectKeys(cell, options).then((request) => request(this.axios, this.basePath));
5564
5849
  }
5565
5850
  /**
5566
- * Store any data as an object. Using a key which already contains an object will override the previously stored object. Use [getObjectMetadata](#/operations/getObjectMetadata) to verify that the key does not contain objects. #### Optional Specify metadata as a dictionary with names and values.
5851
+ * **Required permissions:** `can_write_objects` - Write stored objects ___ Store any data as an object. Using a key which already contains an object will override the previously stored object. Use [getObjectMetadata](#/operations/getObjectMetadata) to verify that the key does not contain objects. #### Optional Specify metadata as a dictionary with names and values.
5567
5852
  * @summary Store Object
5568
5853
  * @param {string} cell Unique identifier addressing a cell in all API calls.
5569
5854
  * @param {string} key
@@ -6016,7 +6301,7 @@ const SystemApiFactory = function(configuration, basePath, axios$1) {
6016
6301
  */
6017
6302
  var SystemApi = class extends BaseAPI {
6018
6303
  /**
6019
- * Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
6304
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves a configuration backup based on provided resource identifiers. If an empty array of resources is provided, a backup for all resources will be retrieved.
6020
6305
  * @summary Retrieve Configuration Backup
6021
6306
  * @param {Array<string>} [resources] List of resource identifiers to include in the retrieval.
6022
6307
  * @param {{ [key: string]: string; }} [metadata] Additional metadata to add to the backup
@@ -6027,7 +6312,7 @@ var SystemApi = class extends BaseAPI {
6027
6312
  return SystemApiFp(this.configuration).backupConfiguration(resources, metadata, options).then((request) => request(this.axios, this.basePath));
6028
6313
  }
6029
6314
  /**
6030
- * Check if a more recent Wandelbots NOVA Version is available.
6315
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Check if a more recent Wandelbots NOVA Version is available.
6031
6316
  * @summary Check update
6032
6317
  * @param {ReleaseChannel} channel
6033
6318
  * @param {*} [options] Override http request option.
@@ -6037,7 +6322,7 @@ var SystemApi = class extends BaseAPI {
6037
6322
  return SystemApiFp(this.configuration).checkNovaVersionUpdate(channel, options).then((request) => request(this.axios, this.basePath));
6038
6323
  }
6039
6324
  /**
6040
- * <!-- theme: danger --> > **Experimental** Performs an address resolution protocol (ARP) scan on the specified interface/classless inter-domain routing (CIDR) and returns all discovered devices on the network by CIDR notation.
6325
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Performs an address resolution protocol (ARP) scan on the specified interface/classless inter-domain routing (CIDR) and returns all discovered devices on the network by CIDR notation.
6041
6326
  * @summary Get ARP-Scan
6042
6327
  * @param {string} [_interface]
6043
6328
  * @param {string} [cidr]
@@ -6049,7 +6334,7 @@ var SystemApi = class extends BaseAPI {
6049
6334
  return SystemApiFp(this.configuration).getArpScan(_interface, cidr, timeout, options).then((request) => request(this.axios, this.basePath));
6050
6335
  }
6051
6336
  /**
6052
- * Retrieves the status of a configuration backup. The status can only be requested for 5 minutes after backup creation. After 5 minutes, 404 is returned.
6337
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves the status of a configuration backup. The status can only be requested for 5 minutes after backup creation. After 5 minutes, 404 is returned.
6053
6338
  * @summary Retrieve Backup Status
6054
6339
  * @param {string} operationId
6055
6340
  * @param {*} [options] Override http request option.
@@ -6059,7 +6344,7 @@ var SystemApi = class extends BaseAPI {
6059
6344
  return SystemApiFp(this.configuration).getConfigurationBackupStatus(operationId, options).then((request) => request(this.axios, this.basePath));
6060
6345
  }
6061
6346
  /**
6062
- * Collects information on the current status of all NOVA services and exports them as a .zip file. Includes information on all cells on the instance such as the service logs and virtual robot controllers. From each cell the logs of all services are included, as well as the configuration of each connected controller to start virtual robots.
6347
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Collects information on the current status of all NOVA services and exports them as a .zip file. Includes information on all cells on the instance such as the service logs and virtual robot controllers. From each cell the logs of all services are included, as well as the configuration of each connected controller to start virtual robots.
6063
6348
  * @summary Download Diagnosis Package
6064
6349
  * @param {*} [options] Override http request option.
6065
6350
  * @throws {RequiredError}
@@ -6068,7 +6353,7 @@ var SystemApi = class extends BaseAPI {
6068
6353
  return SystemApiFp(this.configuration).getDiagnosePackage(options).then((request) => request(this.axios, this.basePath));
6069
6354
  }
6070
6355
  /**
6071
- * <!-- theme: danger --> > **Experimental** Get the network interfaces of the system.
6356
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the network interfaces of the system.
6072
6357
  * @summary Network Interfaces
6073
6358
  * @param {*} [options] Override http request option.
6074
6359
  * @throws {RequiredError}
@@ -6077,7 +6362,7 @@ var SystemApi = class extends BaseAPI {
6077
6362
  return SystemApiFp(this.configuration).getNetworkInterfaces(options).then((request) => request(this.axios, this.basePath));
6078
6363
  }
6079
6364
  /**
6080
- * <!-- theme: danger --> > **Experimental** Get the current state of the network.
6365
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ <!-- theme: danger --> > **Experimental** Get the current state of the network.
6081
6366
  * @summary Network State
6082
6367
  * @param {*} [options] Override http request option.
6083
6368
  * @throws {RequiredError}
@@ -6086,7 +6371,7 @@ var SystemApi = class extends BaseAPI {
6086
6371
  return SystemApiFp(this.configuration).getNetworkState(options).then((request) => request(this.axios, this.basePath));
6087
6372
  }
6088
6373
  /**
6089
- * Get the status of all system services.
6374
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the status of all system services.
6090
6375
  * @summary Wandelbots NOVA status
6091
6376
  * @param {*} [options] Override http request option.
6092
6377
  * @throws {RequiredError}
@@ -6095,7 +6380,7 @@ var SystemApi = class extends BaseAPI {
6095
6380
  return SystemApiFp(this.configuration).getSystemStatus(options).then((request) => request(this.axios, this.basePath));
6096
6381
  }
6097
6382
  /**
6098
- * Get the current Wandelbots NOVA version.
6383
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Get the current Wandelbots NOVA version.
6099
6384
  * @summary Wandelbots NOVA Version
6100
6385
  * @param {*} [options] Override http request option.
6101
6386
  * @throws {RequiredError}
@@ -6104,7 +6389,7 @@ var SystemApi = class extends BaseAPI {
6104
6389
  return SystemApiFp(this.configuration).getSystemVersion(options).then((request) => request(this.axios, this.basePath));
6105
6390
  }
6106
6391
  /**
6107
- * Retrieves a list of all available configuration resources for backup purposes.
6392
+ * **Required permissions:** `can_backup_system` - Create system backups ___ Retrieves a list of all available configuration resources for backup purposes.
6108
6393
  * @summary List Configuration Resources
6109
6394
  * @param {*} [options] Override http request option.
6110
6395
  * @throws {RequiredError}
@@ -6113,7 +6398,7 @@ var SystemApi = class extends BaseAPI {
6113
6398
  return SystemApiFp(this.configuration).listConfigurationResources(options).then((request) => request(this.axios, this.basePath));
6114
6399
  }
6115
6400
  /**
6116
- * Restores a previously backed up configuration. If an empty array of resources is provided, all resources from the backup will be restored.
6401
+ * **Required permissions:** `can_restore_system` - Restore system backups ___ Restores a previously backed up configuration. If an empty array of resources is provided, all resources from the backup will be restored.
6117
6402
  * @summary Restore Configuration Backup
6118
6403
  * @param {File} body Backup file stream containing the configuration to restore.
6119
6404
  * @param {Array<string>} [resources] List of resource identifiers to restore. If empty, all resources from the backup will be restored.
@@ -6124,7 +6409,7 @@ var SystemApi = class extends BaseAPI {
6124
6409
  return SystemApiFp(this.configuration).restoreConfiguration(body, resources, options).then((request) => request(this.axios, this.basePath));
6125
6410
  }
6126
6411
  /**
6127
- * Update the Wandelbots NOVA version and all attached services. Sending this API Request will trigger an update of all NOVA services that are part of a cell. Previous cells and cell configurations will remain on the instance. If the update fails, the previous Wandelbots NOVA version is restored. System updates only apply to cells without an explicit chart version. Pinned versions are always preserved; setting `update_cells=false` pins unversioned cells to the current system version before updating.
6412
+ * **Required permissions:** `can_update_system` - Update system versions and services ___ Update the Wandelbots NOVA version and all attached services. Sending this API Request will trigger an update of all NOVA services that are part of a cell. Previous cells and cell configurations will remain on the instance. If the update fails, the previous Wandelbots NOVA version is restored. System updates only apply to cells without an explicit chart version. Pinned versions are always preserved; setting `update_cells=false` pins unversioned cells to the current system version before updating.
6128
6413
  * @summary Update Wandelbots NOVA version
6129
6414
  * @param {UpdateNovaVersionRequest} updateNovaVersionRequest
6130
6415
  * @param {*} [options] Override http request option.
@@ -6347,7 +6632,7 @@ const TrajectoryCachingApiFactory = function(configuration, basePath, axios$1) {
6347
6632
  */
6348
6633
  var TrajectoryCachingApi = class extends BaseAPI {
6349
6634
  /**
6350
- * Loads and validates the data of a trajectory into the execution cache, rendering the trajectory executable. <!-- theme: info --> > #### NOTE > > Using the trajectory cache is an optional performance optimization. It is not necessary to use the cache to execute trajectories. The response contains the result of the validation of the trajectory. Validation can lead to three different results: - Fully valid: The whole trajectory can be executed from start to end. The response will contain an unique identifier which is used to move the robot. - Partially valid: Only parts of the trajectory can be executed. The response will contain an unique identifier to move the robot and information about the failure for the part that is not executable. - Invalid: The trajectory can not be executed. The response will tell you the reason of failure. If the trajectory is at least partially valid, the parts of the trajectory that are valid can be executed using the [executeTrajectory](#/operations/executeTrajectory) endpoint. The workflow is as follows: - Generate a trajectory with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the trajectory to this endpoint to validate it and get a unique identifier for it, - The unique identifier will appear in the list of available trajectories, see [listTrajectories](#/operations/listTrajectories) endpoint, if it is at least partially executable. - Execute your trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint.
6635
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Loads and validates the data of a trajectory into the execution cache, rendering the trajectory executable. <!-- theme: info --> > #### NOTE > > Using the trajectory cache is an optional performance optimization. It is not necessary to use the cache to execute trajectories. The response contains the result of the validation of the trajectory. Validation can lead to three different results: - Fully valid: The whole trajectory can be executed from start to end. The response will contain an unique identifier which is used to move the robot. - Partially valid: Only parts of the trajectory can be executed. The response will contain an unique identifier to move the robot and information about the failure for the part that is not executable. - Invalid: The trajectory can not be executed. The response will tell you the reason of failure. If the trajectory is at least partially valid, the parts of the trajectory that are valid can be executed using the [executeTrajectory](#/operations/executeTrajectory) endpoint. The workflow is as follows: - Generate a trajectory with [planTrajectory](#/operations/planTrajectory) or your own motion planner, - Send the trajectory to this endpoint to validate it and get a unique identifier for it, - The unique identifier will appear in the list of available trajectories, see [listTrajectories](#/operations/listTrajectories) endpoint, if it is at least partially executable. - Execute your trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint.
6351
6636
  * @summary Add Trajectory
6352
6637
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6353
6638
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6359,7 +6644,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6359
6644
  return TrajectoryCachingApiFp(this.configuration).addTrajectory(cell, controller, addTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
6360
6645
  }
6361
6646
  /**
6362
- * Clear the trajectory cache.
6647
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Clear the trajectory cache.
6363
6648
  * @summary Clear Trajectories
6364
6649
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6365
6650
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6370,7 +6655,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6370
6655
  return TrajectoryCachingApiFp(this.configuration).clearTrajectories(cell, controller, options).then((request) => request(this.axios, this.basePath));
6371
6656
  }
6372
6657
  /**
6373
- * Delete a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories. Trajectories are removed automatically if the motion group or the corresponding controller is disconnected.
6658
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Delete a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories. Trajectories are removed automatically if the motion group or the corresponding controller is disconnected.
6374
6659
  * @summary Delete Trajectory
6375
6660
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6376
6661
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6382,7 +6667,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6382
6667
  return TrajectoryCachingApiFp(this.configuration).deleteTrajectory(cell, controller, trajectory, options).then((request) => request(this.axios, this.basePath));
6383
6668
  }
6384
6669
  /**
6385
- * Get a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories.
6670
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Get a previously created trajectory from cache. Use [listTrajectories](#/operations/listTrajectories) to list all cached trajectories.
6386
6671
  * @summary Get Trajectory
6387
6672
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6388
6673
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6394,7 +6679,7 @@ var TrajectoryCachingApi = class extends BaseAPI {
6394
6679
  return TrajectoryCachingApiFp(this.configuration).getTrajectory(cell, controller, trajectory, options).then((request) => request(this.axios, this.basePath));
6395
6680
  }
6396
6681
  /**
6397
- * List currently cached trajectories. Use [addTrajectory](#/operations/addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them. Trajectories are removed if the corresponding motion group or controller disconnects.
6682
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ List currently cached trajectories. Use [addTrajectory](#/operations/addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them. Trajectories are removed if the corresponding motion group or controller disconnects.
6398
6683
  * @summary List Trajectories
6399
6684
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6400
6685
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6466,7 +6751,7 @@ const TrajectoryExecutionApiFactory = function(configuration, basePath, axios$1)
6466
6751
  */
6467
6752
  var TrajectoryExecutionApi = class extends BaseAPI {
6468
6753
  /**
6469
- * <!-- theme: success --> > Websocket endpoint Provides execution control over a previously [planned trajectory](#/operations/planTrajectory). Enables the caller to attach input/output actions to the trajectory. ### Movement behavior | Virtual controller | Physical controller | |------------------|-------------------| | Desired joint configurations are commanded to each motion group and **applied immediately** | Move to desired **actual joint configuration**, **if possible** | ### Concept of location - The location or path parameter specifies the exact position along a trajectory. - The location is a scalar value that ranges from 0 to `n`, where `n` denotes the number of motion commands, or trajectory segments, e.g., line, p2p, etc. See [planTrajectory](#/operations/planTrajectory). - Each integer value of the location corresponds to one motion command, e.g., 3.0 to 3.999 could be a line. ### Preconditions - The motion group\'s control mode is not claimed by any other endpoint. - The motion group\'s joint position are at start location specified with `InitializeMovementRequest`. - Use [executeToTrajectory](#/operations/executeToTrajectory) to move the robot to the start location. ### Requests #### 1. Send `InitializeMovementRequest` to lock the trajectory to this connection The following actions are executed: - Sets robot controller mode to control mode, - Sets start location of the execution Keep in mind that only a single trajectory can be locked to a websocket connection at a time. Pausing the current movement enables you to send another `InitializeMovementRequest` to execute another trajectory on the same connection. #### 2. Send `StartMovementRequest` to start the movement Sets direction of movement, default is forward. #### **Optional** - To pause, send `PauseMovementRequest` before the movement has reached its end location. - Change the movement\'s velocity with `PlaybackSpeedRequest` after initializing the movement with `InitializeMovementRequest`. ### Responses To monitor the state of the movement, listen to the [state stream](#/operations/streamMotionGroupState). The state is published via nats as well. Field `execute` in the `MotionGroupState` indicates whether a movement is ongoing and carries execution details. Each request has a corresponding acknowledgment response. They signal success or failure of the request. Especially for `PauseMovementResponse`, it does not signal the end of the movement. Additionally, `MovementError` messages can be sent in case of unexpected errors during the execution, e.g., controller disconnects during movement. ### Tips and Tricks - A movement can be paused and resumed by sending `PauseMovementRequest` and `StartMovementRequest`. - Send `PlaybackSpeedRequest` before `StartMovementRequest` to reduce the velocity of the movement before it starts. - Send `PlaybackSpeedRequest` repeatedly to implement a slider. The velocity of the motion group can be adjusted with each controller step. Therefore, if your app needs a slider-like UI to alter the velocity of a currently running movement, you can send `PlaybackSpeedRequest` with different speed values repeatedly during the movement. - A closed trajectory (end and start joint position are equal) can be repeated by sending `StartMovementRequest` after the movement has finished.
6754
+ * **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ <!-- theme: success --> > Websocket endpoint Provides execution control over a previously [planned trajectory](#/operations/planTrajectory). Enables the caller to attach input/output actions to the trajectory. ### Movement behavior | Virtual controller | Physical controller | |------------------|-------------------| | Desired joint configurations are commanded to each motion group and **applied immediately** | Move to desired **actual joint configuration**, **if possible** | ### Concept of location - The location or path parameter specifies the exact position along a trajectory. - The location is a scalar value that ranges from 0 to `n`, where `n` denotes the number of motion commands, or trajectory segments, e.g., line, p2p, etc. See [planTrajectory](#/operations/planTrajectory). - Each integer value of the location corresponds to one motion command, e.g., 3.0 to 3.999 could be a line. ### Preconditions - The motion group\'s control mode is not claimed by any other endpoint. - The motion group\'s joint position are at start location specified with `InitializeMovementRequest`. - Use [executeToTrajectory](#/operations/executeToTrajectory) to move the robot to the start location. ### Requests #### 1. Send `InitializeMovementRequest` to lock the trajectory to this connection The following actions are executed: - Sets robot controller mode to control mode, - Sets start location of the execution Keep in mind that only a single trajectory can be locked to a websocket connection at a time. Pausing the current movement enables you to send another `InitializeMovementRequest` to execute another trajectory on the same connection. #### 2. Send `StartMovementRequest` to start the movement Sets direction of movement, default is forward. #### **Optional** - To pause, send `PauseMovementRequest` before the movement has reached its end location. - Change the movement\'s velocity with `PlaybackSpeedRequest` after initializing the movement with `InitializeMovementRequest`. ### Responses To monitor the state of the movement, listen to the [state stream](#/operations/streamMotionGroupState). The state is published via nats as well. Field `execute` in the `MotionGroupState` indicates whether a movement is ongoing and carries execution details. Each request has a corresponding acknowledgment response. They signal success or failure of the request. Especially for `PauseMovementResponse`, it does not signal the end of the movement. Additionally, `MovementError` messages can be sent in case of unexpected errors during the execution, e.g., controller disconnects during movement. ### Tips and Tricks - A movement can be paused and resumed by sending `PauseMovementRequest` and `StartMovementRequest`. - Send `PlaybackSpeedRequest` before `StartMovementRequest` to reduce the velocity of the movement before it starts. - Send `PlaybackSpeedRequest` repeatedly to implement a slider. The velocity of the motion group can be adjusted with each controller step. Therefore, if your app needs a slider-like UI to alter the velocity of a currently running movement, you can send `PlaybackSpeedRequest` with different speed values repeatedly during the movement. - A closed trajectory (end and start joint position are equal) can be repeated by sending `StartMovementRequest` after the movement has finished.
6470
6755
  * @summary Execute Trajectory
6471
6756
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6472
6757
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -6569,6 +6854,35 @@ const TrajectoryPlanningApiAxiosParamCreator = function(configuration) {
6569
6854
  url: toPathString(localVarUrlObj),
6570
6855
  options: localVarRequestOptions
6571
6856
  };
6857
+ },
6858
+ searchCollisionFreeMultiMotionGroup: async (cell, multiSearchCollisionFreeRequest, options = {}) => {
6859
+ assertParamExists("searchCollisionFreeMultiMotionGroup", "cell", cell);
6860
+ assertParamExists("searchCollisionFreeMultiMotionGroup", "multiSearchCollisionFreeRequest", multiSearchCollisionFreeRequest);
6861
+ const localVarPath = `/experimental/cells/{cell}/trajectory-planning/search-collision-free-multi-motion-group`.replace(`{cell}`, encodeURIComponent(String(cell)));
6862
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
6863
+ let baseOptions;
6864
+ if (configuration) baseOptions = configuration.baseOptions;
6865
+ const localVarRequestOptions = {
6866
+ method: "POST",
6867
+ ...baseOptions,
6868
+ ...options
6869
+ };
6870
+ const localVarHeaderParameter = {};
6871
+ const localVarQueryParameter = {};
6872
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
6873
+ localVarHeaderParameter["Content-Type"] = "application/json";
6874
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
6875
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6876
+ localVarRequestOptions.headers = {
6877
+ ...localVarHeaderParameter,
6878
+ ...headersFromBaseOptions,
6879
+ ...options.headers
6880
+ };
6881
+ localVarRequestOptions.data = serializeDataIfNeeded(multiSearchCollisionFreeRequest, localVarRequestOptions, configuration);
6882
+ return {
6883
+ url: toPathString(localVarUrlObj),
6884
+ options: localVarRequestOptions
6885
+ };
6572
6886
  }
6573
6887
  };
6574
6888
  };
@@ -6595,6 +6909,12 @@ const TrajectoryPlanningApiFp = function(configuration) {
6595
6909
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6596
6910
  const localVarOperationServerBasePath = operationServerMap["TrajectoryPlanningApi.planTrajectory"]?.[localVarOperationServerIndex]?.url;
6597
6911
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
6912
+ },
6913
+ async searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6914
+ const localVarAxiosArgs = await localVarAxiosParamCreator.searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options);
6915
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
6916
+ const localVarOperationServerBasePath = operationServerMap["TrajectoryPlanningApi.searchCollisionFreeMultiMotionGroup"]?.[localVarOperationServerIndex]?.url;
6917
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
6598
6918
  }
6599
6919
  };
6600
6920
  };
@@ -6612,6 +6932,9 @@ const TrajectoryPlanningApiFactory = function(configuration, basePath, axios$1)
6612
6932
  },
6613
6933
  planTrajectory(cell, planTrajectoryRequest, options) {
6614
6934
  return localVarFp.planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(axios$1, basePath));
6935
+ },
6936
+ searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6937
+ return localVarFp.searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options).then((request) => request(axios$1, basePath));
6615
6938
  }
6616
6939
  };
6617
6940
  };
@@ -6620,7 +6943,7 @@ const TrajectoryPlanningApiFactory = function(configuration, basePath, axios$1)
6620
6943
  */
6621
6944
  var TrajectoryPlanningApi = class extends BaseAPI {
6622
6945
  /**
6623
- * <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
6946
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ <!-- theme: danger --> > **Experimental** Merges a list of joint trajectories into a single trajectory with collision-aware blending. This endpoint merges a list of separate trajectories by connecting them via blending. The blending is performed with collision checking to ensure the merged trajectory is safe to execute. Timescaling will be applied to the blended area to ensure all limits are respected.
6624
6947
  * @summary Merge Trajectories
6625
6948
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6626
6949
  * @param {MergeTrajectoriesRequest} mergeTrajectoriesRequest
@@ -6631,7 +6954,7 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6631
6954
  return TrajectoryPlanningApiFp(this.configuration).mergeTrajectories(cell, mergeTrajectoriesRequest, options).then((request) => request(this.axios, this.basePath));
6632
6955
  }
6633
6956
  /**
6634
- * Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
6957
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a collision-free trajectory for a single motion group using point-to-point (PTP) motions. This endpoint is specifically designed for collision-free path planning algorithms that find a trajectory from a start joint position to a target position while avoiding obstacles. Use the following workflow to execute a planned collision-free trajectory: 1. Plan a collision-free trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory planning fails due to collision or algorithm constraints, the response will contain error information about the failure.
6635
6958
  * @summary Plan Collision-Free Trajectory
6636
6959
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6637
6960
  * @param {PlanCollisionFreeRequest} planCollisionFreeRequest
@@ -6642,7 +6965,7 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6642
6965
  return TrajectoryPlanningApiFp(this.configuration).planCollisionFree(cell, planCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
6643
6966
  }
6644
6967
  /**
6645
- * Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory is not executable, the response will contain the joint trajectory up until the error, e.g., all samples until a collision occurs. <!-- theme: info --> > #### Exception > > If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
6968
+ * **Required permissions:** `can_plan_motion` - Plan robot motions and trajectories ___ Plans a new trajectory for a single motion group. Describe the trajectory as a sequence of motion commands that the robots TCP should follow. Use the following workflow to execute a planned trajectory: 1. Plan a trajectory. 2. Optional: Load the planned trajectory into the cache using the [addTrajectory](#/operations/addTrajectory) endpoint. 3. Execute the (cached) trajectory using the [executeTrajectory](#/operations/executeTrajectory) endpoint. If the trajectory is not executable, the response will contain the joint trajectory up until the error, e.g., all samples until a collision occurs. <!-- theme: info --> > #### Exception > > If a CartesianPTP or JointPTP motion command has an invalid target, the response will contain the trajectory up until the start of the invalid PTP motion.
6646
6969
  * @summary Plan Trajectory
6647
6970
  * @param {string} cell Unique identifier addressing a cell in all API calls.
6648
6971
  * @param {PlanTrajectoryRequest} planTrajectoryRequest
@@ -6652,6 +6975,17 @@ var TrajectoryPlanningApi = class extends BaseAPI {
6652
6975
  planTrajectory(cell, planTrajectoryRequest, options) {
6653
6976
  return TrajectoryPlanningApiFp(this.configuration).planTrajectory(cell, planTrajectoryRequest, options).then((request) => request(this.axios, this.basePath));
6654
6977
  }
6978
+ /**
6979
+ * **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.
6980
+ * @summary Search Collision-Free Trajectories for Multiple Motion Groups
6981
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
6982
+ * @param {MultiSearchCollisionFreeRequest} multiSearchCollisionFreeRequest
6983
+ * @param {*} [options] Override http request option.
6984
+ * @throws {RequiredError}
6985
+ */
6986
+ searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options) {
6987
+ return TrajectoryPlanningApiFp(this.configuration).searchCollisionFreeMultiMotionGroup(cell, multiSearchCollisionFreeRequest, options).then((request) => request(this.axios, this.basePath));
6988
+ }
6655
6989
  };
6656
6990
  /**
6657
6991
  * VersionApi - axios parameter creator
@@ -6708,7 +7042,7 @@ const VersionApiFactory = function(configuration, basePath, axios$1) {
6708
7042
  */
6709
7043
  var VersionApi = class extends BaseAPI {
6710
7044
  /**
6711
- * Retrieves the version of the NOVA API.
7045
+ * **Required permissions:** `can_access_system` - View system status and metadata ___ Retrieves the version of the NOVA API.
6712
7046
  * @summary API Version
6713
7047
  * @param {*} [options] Override http request option.
6714
7048
  * @throws {RequiredError}
@@ -6783,6 +7117,36 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
6783
7117
  options: localVarRequestOptions
6784
7118
  };
6785
7119
  },
7120
+ addVirtualControllerSafetyZone: async (cell, controller, safetyZone, options = {}) => {
7121
+ assertParamExists("addVirtualControllerSafetyZone", "cell", cell);
7122
+ assertParamExists("addVirtualControllerSafetyZone", "controller", controller);
7123
+ assertParamExists("addVirtualControllerSafetyZone", "safetyZone", safetyZone);
7124
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller)));
7125
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7126
+ let baseOptions;
7127
+ if (configuration) baseOptions = configuration.baseOptions;
7128
+ const localVarRequestOptions = {
7129
+ method: "POST",
7130
+ ...baseOptions,
7131
+ ...options
7132
+ };
7133
+ const localVarHeaderParameter = {};
7134
+ const localVarQueryParameter = {};
7135
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7136
+ localVarHeaderParameter["Content-Type"] = "application/json";
7137
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7138
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7139
+ localVarRequestOptions.headers = {
7140
+ ...localVarHeaderParameter,
7141
+ ...headersFromBaseOptions,
7142
+ ...options.headers
7143
+ };
7144
+ localVarRequestOptions.data = serializeDataIfNeeded(safetyZone, localVarRequestOptions, configuration);
7145
+ return {
7146
+ url: toPathString(localVarUrlObj),
7147
+ options: localVarRequestOptions
7148
+ };
7149
+ },
6786
7150
  addVirtualControllerTcp: async (cell, controller, motionGroup, tcp, robotTcpData, options = {}) => {
6787
7151
  assertParamExists("addVirtualControllerTcp", "cell", cell);
6788
7152
  assertParamExists("addVirtualControllerTcp", "controller", controller);
@@ -6872,6 +7236,34 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
6872
7236
  options: localVarRequestOptions
6873
7237
  };
6874
7238
  },
7239
+ deleteVirtualControllerSafetyZone: async (cell, controller, id, options = {}) => {
7240
+ assertParamExists("deleteVirtualControllerSafetyZone", "cell", cell);
7241
+ assertParamExists("deleteVirtualControllerSafetyZone", "controller", controller);
7242
+ assertParamExists("deleteVirtualControllerSafetyZone", "id", id);
7243
+ 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)));
7244
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7245
+ let baseOptions;
7246
+ if (configuration) baseOptions = configuration.baseOptions;
7247
+ const localVarRequestOptions = {
7248
+ method: "DELETE",
7249
+ ...baseOptions,
7250
+ ...options
7251
+ };
7252
+ const localVarHeaderParameter = {};
7253
+ const localVarQueryParameter = {};
7254
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7255
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7256
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7257
+ localVarRequestOptions.headers = {
7258
+ ...localVarHeaderParameter,
7259
+ ...headersFromBaseOptions,
7260
+ ...options.headers
7261
+ };
7262
+ return {
7263
+ url: toPathString(localVarUrlObj),
7264
+ options: localVarRequestOptions
7265
+ };
7266
+ },
6875
7267
  deleteVirtualControllerTcp: async (cell, controller, motionGroup, tcp, options = {}) => {
6876
7268
  assertParamExists("deleteVirtualControllerTcp", "cell", cell);
6877
7269
  assertParamExists("deleteVirtualControllerTcp", "controller", controller);
@@ -7038,6 +7430,33 @@ const VirtualControllerApiAxiosParamCreator = function(configuration) {
7038
7430
  options: localVarRequestOptions
7039
7431
  };
7040
7432
  },
7433
+ getVirtualControllerSafetyZones: async (cell, controller, options = {}) => {
7434
+ assertParamExists("getVirtualControllerSafetyZones", "cell", cell);
7435
+ assertParamExists("getVirtualControllerSafetyZones", "controller", controller);
7436
+ const localVarPath = `/cells/{cell}/virtual-controllers/{controller}/safety-zones`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{controller}`, encodeURIComponent(String(controller)));
7437
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
7438
+ let baseOptions;
7439
+ if (configuration) baseOptions = configuration.baseOptions;
7440
+ const localVarRequestOptions = {
7441
+ method: "GET",
7442
+ ...baseOptions,
7443
+ ...options
7444
+ };
7445
+ const localVarHeaderParameter = {};
7446
+ const localVarQueryParameter = {};
7447
+ await setBearerAuthToObject(localVarHeaderParameter, configuration);
7448
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
7449
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
7450
+ localVarRequestOptions.headers = {
7451
+ ...localVarHeaderParameter,
7452
+ ...headersFromBaseOptions,
7453
+ ...options.headers
7454
+ };
7455
+ return {
7456
+ url: toPathString(localVarUrlObj),
7457
+ options: localVarRequestOptions
7458
+ };
7459
+ },
7041
7460
  listVirtualControllerCoordinateSystems: async (cell, controller, options = {}) => {
7042
7461
  assertParamExists("listVirtualControllerCoordinateSystems", "cell", cell);
7043
7462
  assertParamExists("listVirtualControllerCoordinateSystems", "controller", controller);
@@ -7232,6 +7651,12 @@ const VirtualControllerApiFp = function(configuration) {
7232
7651
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.addVirtualControllerMotionGroup"]?.[localVarOperationServerIndex]?.url;
7233
7652
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7234
7653
  },
7654
+ async addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7655
+ const localVarAxiosArgs = await localVarAxiosParamCreator.addVirtualControllerSafetyZone(cell, controller, safetyZone, options);
7656
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7657
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.addVirtualControllerSafetyZone"]?.[localVarOperationServerIndex]?.url;
7658
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7659
+ },
7235
7660
  async addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options) {
7236
7661
  const localVarAxiosArgs = await localVarAxiosParamCreator.addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options);
7237
7662
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7250,6 +7675,12 @@ const VirtualControllerApiFp = function(configuration) {
7250
7675
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.deleteVirtualControllerMotionGroup"]?.[localVarOperationServerIndex]?.url;
7251
7676
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7252
7677
  },
7678
+ async deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7679
+ const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVirtualControllerSafetyZone(cell, controller, id, options);
7680
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7681
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.deleteVirtualControllerSafetyZone"]?.[localVarOperationServerIndex]?.url;
7682
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7683
+ },
7253
7684
  async deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options) {
7254
7685
  const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options);
7255
7686
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7286,6 +7717,12 @@ const VirtualControllerApiFp = function(configuration) {
7286
7717
  const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.getVirtualControllerMounting"]?.[localVarOperationServerIndex]?.url;
7287
7718
  return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7288
7719
  },
7720
+ async getVirtualControllerSafetyZones(cell, controller, options) {
7721
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getVirtualControllerSafetyZones(cell, controller, options);
7722
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
7723
+ const localVarOperationServerBasePath = operationServerMap["VirtualControllerApi.getVirtualControllerSafetyZones"]?.[localVarOperationServerIndex]?.url;
7724
+ return (axios$1, basePath) => createRequestFunction(localVarAxiosArgs, axios.default, BASE_PATH, configuration)(axios$1, localVarOperationServerBasePath || basePath);
7725
+ },
7289
7726
  async listVirtualControllerCoordinateSystems(cell, controller, options) {
7290
7727
  const localVarAxiosArgs = await localVarAxiosParamCreator.listVirtualControllerCoordinateSystems(cell, controller, options);
7291
7728
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -7336,6 +7773,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios$1) {
7336
7773
  addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options) {
7337
7774
  return localVarFp.addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options).then((request) => request(axios$1, basePath));
7338
7775
  },
7776
+ addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7777
+ return localVarFp.addVirtualControllerSafetyZone(cell, controller, safetyZone, options).then((request) => request(axios$1, basePath));
7778
+ },
7339
7779
  addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options) {
7340
7780
  return localVarFp.addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options).then((request) => request(axios$1, basePath));
7341
7781
  },
@@ -7345,6 +7785,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios$1) {
7345
7785
  deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options) {
7346
7786
  return localVarFp.deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options).then((request) => request(axios$1, basePath));
7347
7787
  },
7788
+ deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7789
+ return localVarFp.deleteVirtualControllerSafetyZone(cell, controller, id, options).then((request) => request(axios$1, basePath));
7790
+ },
7348
7791
  deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options) {
7349
7792
  return localVarFp.deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options).then((request) => request(axios$1, basePath));
7350
7793
  },
@@ -7363,6 +7806,9 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios$1) {
7363
7806
  getVirtualControllerMounting(cell, controller, motionGroup, options) {
7364
7807
  return localVarFp.getVirtualControllerMounting(cell, controller, motionGroup, options).then((request) => request(axios$1, basePath));
7365
7808
  },
7809
+ getVirtualControllerSafetyZones(cell, controller, options) {
7810
+ return localVarFp.getVirtualControllerSafetyZones(cell, controller, options).then((request) => request(axios$1, basePath));
7811
+ },
7366
7812
  listVirtualControllerCoordinateSystems(cell, controller, options) {
7367
7813
  return localVarFp.listVirtualControllerCoordinateSystems(cell, controller, options).then((request) => request(axios$1, basePath));
7368
7814
  },
@@ -7388,7 +7834,7 @@ const VirtualControllerApiFactory = function(configuration, basePath, axios$1) {
7388
7834
  */
7389
7835
  var VirtualControllerApi = class extends BaseAPI {
7390
7836
  /**
7391
- * Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
7837
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
7392
7838
  * @summary Add Coordinate Systems
7393
7839
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7394
7840
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7401,7 +7847,7 @@ var VirtualControllerApi = class extends BaseAPI {
7401
7847
  return VirtualControllerApiFp(this.configuration).addVirtualControllerCoordinateSystem(cell, controller, coordinateSystem, coordinateSystemData, options).then((request) => request(this.axios, this.basePath));
7402
7848
  }
7403
7849
  /**
7404
- * Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller\'s configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
7850
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a motion group configuration for the virtual robot controller. Fields: - Only one of **motion_group_model** or **json_data** should be set. - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types. - **json_data**: Full JSON configuration of the virtual robot controller. This can be obtained from the physical controller\'s configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). - **extracted_motion_group_id** (required when using json_data): The motion group identifier to extract from the provided JSON configuration. - **motion_group**: Unique identifier for the motion group to be added. - **initial_joint_position**: Specifies the initial joint position for the added motion group. <!-- theme: info --> > #### NOTE > > When a motion group is added, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new motion group may not yet be available for use.
7405
7851
  * @summary Add Motion Group
7406
7852
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7407
7853
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7413,7 +7859,19 @@ var VirtualControllerApi = class extends BaseAPI {
7413
7859
  return VirtualControllerApiFp(this.configuration).addVirtualControllerMotionGroup(cell, controller, addVirtualControllerMotionGroupRequest, options).then((request) => request(this.axios, this.basePath));
7414
7860
  }
7415
7861
  /**
7416
- * Adds a new TCP or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange\'s coordinate system. > **NOTE** > > Ensure the TCP\'s position is within the robot\'s reach. Refer to the robot\'s documentation or data sheet for details like joint limits or reach. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
7862
+ * **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**.
7863
+ * @summary Add Safety Zone
7864
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7865
+ * @param {string} controller Unique identifier to address a controller in the cell.
7866
+ * @param {SafetyZone} safetyZone
7867
+ * @param {*} [options] Override http request option.
7868
+ * @throws {RequiredError}
7869
+ */
7870
+ addVirtualControllerSafetyZone(cell, controller, safetyZone, options) {
7871
+ return VirtualControllerApiFp(this.configuration).addVirtualControllerSafetyZone(cell, controller, safetyZone, options).then((request) => request(this.axios, this.basePath));
7872
+ }
7873
+ /**
7874
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Adds a new TCP or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange\'s coordinate system. > **NOTE** > > Ensure the TCP\'s position is within the robot\'s reach. Refer to the robot\'s documentation or data sheet for details like joint limits or reach. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
7417
7875
  * @summary Add TCP
7418
7876
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7419
7877
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7427,7 +7885,7 @@ var VirtualControllerApi = class extends BaseAPI {
7427
7885
  return VirtualControllerApiFp(this.configuration).addVirtualControllerTcp(cell, controller, motionGroup, tcp, robotTcpData, options).then((request) => request(this.axios, this.basePath));
7428
7886
  }
7429
7887
  /**
7430
- * Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
7888
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
7431
7889
  * @summary Delete Coordinate System
7432
7890
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7433
7891
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7440,7 +7898,7 @@ var VirtualControllerApi = class extends BaseAPI {
7440
7898
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerCoordinateSystem(cell, controller, coordinateSystem, deleteDependent, options).then((request) => request(this.axios, this.basePath));
7441
7899
  }
7442
7900
  /**
7443
- * Removes a motion group configuration from the virtual controller. <!-- theme: info --> > #### NOTE > > When a motion group is removed, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**.
7901
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Removes a motion group configuration from the virtual controller. <!-- theme: info --> > #### NOTE > > When a motion group is removed, **the virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Motion group changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself **does not wait until the restart and re-synchronization are complete**.
7444
7902
  * @summary Delete Motion Group
7445
7903
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7446
7904
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7452,7 +7910,19 @@ var VirtualControllerApi = class extends BaseAPI {
7452
7910
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerMotionGroup(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7453
7911
  }
7454
7912
  /**
7455
- * Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
7913
+ * **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**.
7914
+ * @summary Delete Safety Zone
7915
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7916
+ * @param {string} controller Unique identifier to address a controller in the cell.
7917
+ * @param {number} id The unique identifier of the safety zone to delete.
7918
+ * @param {*} [options] Override http request option.
7919
+ * @throws {RequiredError}
7920
+ */
7921
+ deleteVirtualControllerSafetyZone(cell, controller, id, options) {
7922
+ return VirtualControllerApiFp(this.configuration).deleteVirtualControllerSafetyZone(cell, controller, id, options).then((request) => request(this.axios, this.basePath));
7923
+ }
7924
+ /**
7925
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
7456
7926
  * @summary Remove TCP
7457
7927
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7458
7928
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7465,7 +7935,7 @@ var VirtualControllerApi = class extends BaseAPI {
7465
7935
  return VirtualControllerApiFp(this.configuration).deleteVirtualControllerTcp(cell, controller, motionGroup, tcp, options).then((request) => request(this.axios, this.basePath));
7466
7936
  }
7467
7937
  /**
7468
- * Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
7938
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
7469
7939
  * @summary Get Emergency Stop State
7470
7940
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7471
7941
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7476,7 +7946,7 @@ var VirtualControllerApi = class extends BaseAPI {
7476
7946
  return VirtualControllerApiFp(this.configuration).getEmergencyStop(cell, controller, options).then((request) => request(this.axios, this.basePath));
7477
7947
  }
7478
7948
  /**
7479
- * Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
7949
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the current motion group state which provides values for the joints\' position, velocity and acceleration.
7480
7950
  * @summary Get Motion Group State
7481
7951
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7482
7952
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7488,7 +7958,7 @@ var VirtualControllerApi = class extends BaseAPI {
7488
7958
  return VirtualControllerApiFp(this.configuration).getMotionGroupState(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7489
7959
  }
7490
7960
  /**
7491
- * Gets information on the motion group.
7961
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets information on the motion group.
7492
7962
  * @summary Motion Group Description
7493
7963
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7494
7964
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7499,7 +7969,7 @@ var VirtualControllerApi = class extends BaseAPI {
7499
7969
  return VirtualControllerApiFp(this.configuration).getMotionGroups(cell, controller, options).then((request) => request(this.axios, this.basePath));
7500
7970
  }
7501
7971
  /**
7502
- * Requests the operation mode of the virtual robot controller. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
7972
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Requests the operation mode of the virtual robot controller. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
7503
7973
  * @summary Get Operation Mode
7504
7974
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7505
7975
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7510,7 +7980,7 @@ var VirtualControllerApi = class extends BaseAPI {
7510
7980
  return VirtualControllerApiFp(this.configuration).getOperationMode(cell, controller, options).then((request) => request(this.axios, this.basePath));
7511
7981
  }
7512
7982
  /**
7513
- * Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
7983
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
7514
7984
  * @summary Get Mounting
7515
7985
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7516
7986
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7522,7 +7992,18 @@ var VirtualControllerApi = class extends BaseAPI {
7522
7992
  return VirtualControllerApiFp(this.configuration).getVirtualControllerMounting(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7523
7993
  }
7524
7994
  /**
7525
- * Lists all coordinate systems on the robot controller.
7995
+ * **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.
7996
+ * @summary List Safety Zones
7997
+ * @param {string} cell Unique identifier addressing a cell in all API calls.
7998
+ * @param {string} controller Unique identifier to address a controller in the cell.
7999
+ * @param {*} [options] Override http request option.
8000
+ * @throws {RequiredError}
8001
+ */
8002
+ getVirtualControllerSafetyZones(cell, controller, options) {
8003
+ return VirtualControllerApiFp(this.configuration).getVirtualControllerSafetyZones(cell, controller, options).then((request) => request(this.axios, this.basePath));
8004
+ }
8005
+ /**
8006
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists all coordinate systems on the robot controller.
7526
8007
  * @summary List Coordinate Systems
7527
8008
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7528
8009
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7533,7 +8014,7 @@ var VirtualControllerApi = class extends BaseAPI {
7533
8014
  return VirtualControllerApiFp(this.configuration).listVirtualControllerCoordinateSystems(cell, controller, options).then((request) => request(this.axios, this.basePath));
7534
8015
  }
7535
8016
  /**
7536
- * Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
8017
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
7537
8018
  * @summary List TCPs
7538
8019
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7539
8020
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7545,7 +8026,7 @@ var VirtualControllerApi = class extends BaseAPI {
7545
8026
  return VirtualControllerApiFp(this.configuration).listVirtualControllerTcps(cell, controller, motionGroup, options).then((request) => request(this.axios, this.basePath));
7546
8027
  }
7547
8028
  /**
7548
- * Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
8029
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
7549
8030
  * @summary Push or Release Emergency Stop
7550
8031
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7551
8032
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7557,7 +8038,7 @@ var VirtualControllerApi = class extends BaseAPI {
7557
8038
  return VirtualControllerApiFp(this.configuration).setEmergencyStop(cell, controller, active, options).then((request) => request(this.axios, this.basePath));
7558
8039
  }
7559
8040
  /**
7560
- * Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
8041
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
7561
8042
  * @summary Set Motion Group State
7562
8043
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7563
8044
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7570,7 +8051,7 @@ var VirtualControllerApi = class extends BaseAPI {
7570
8051
  return VirtualControllerApiFp(this.configuration).setMotionGroupState(cell, controller, motionGroup, motionGroupJoints, options).then((request) => request(this.axios, this.basePath));
7571
8052
  }
7572
8053
  /**
7573
- * Changes the operation mode of the virtual robot controller to the specified value. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
8054
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Changes the operation mode of the virtual robot controller to the specified value. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](#/operations/getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
7574
8055
  * @summary Set Operation Mode
7575
8056
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7576
8057
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7582,7 +8063,7 @@ var VirtualControllerApi = class extends BaseAPI {
7582
8063
  return VirtualControllerApiFp(this.configuration).setOperationMode(cell, controller, mode, options).then((request) => request(this.axios, this.basePath));
7583
8064
  }
7584
8065
  /**
7585
- * Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system\'s origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
8066
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system\'s origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
7586
8067
  * @summary Set Mounting
7587
8068
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7588
8069
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7771,7 +8252,7 @@ const VirtualControllerBehaviorApiFactory = function(configuration, basePath, ax
7771
8252
  */
7772
8253
  var VirtualControllerBehaviorApi = class extends BaseAPI {
7773
8254
  /**
7774
- * <!-- theme: success --> > Websocket endpoint Sends the **commanded** state, e.g., joint positions, velocities, accelerations, torques, for each motion group of the virtual controller and sets the joint configuration. Use [planTrajectory](#/operations/planTrajectory) and [executeTrajectory](#/operations/executeTrajectory) to move motion groups on virtual controllers. Learn more about the [movement behavior of virtual controllers in comparison to physical controllers](#/operations/executeTrajectory#movement-behavior). > **NOTE** > > Incoming joint configurations are not visualized and their velocity limits are not checked. #### Use cases 1. Creating a robotic application that dynamically adapts to the configured joints on the robot controller, using this stream to feed new joint configurations back to the motion groups.\\ The stream only sends data to the robot controller if a motion is executed.\\ If the robot controller\'s joint configuration differs too much from the incoming joint configuration, a following error occurs. Joint configurations that result in following errors are executed only for motions with a low velocity. 2. Mimic freedrive motions. <!-- theme: danger --> > **DANGER** > > If the incoming joint configuration is set to maximum velocity, the movement to reach this incoming joint configuration > will be executed with maximum speed regardless of safety zones and mechanical limits.
8255
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ <!-- theme: success --> > Websocket endpoint Sends the **commanded** state, e.g., joint positions, velocities, accelerations, torques, for each motion group of the virtual controller and sets the joint configuration. Use [planTrajectory](#/operations/planTrajectory) and [executeTrajectory](#/operations/executeTrajectory) to move motion groups on virtual controllers. Learn more about the [movement behavior of virtual controllers in comparison to physical controllers](#/operations/executeTrajectory#movement-behavior). > **NOTE** > > Incoming joint configurations are not visualized and their velocity limits are not checked. #### Use cases 1. Creating a robotic application that dynamically adapts to the configured joints on the robot controller, using this stream to feed new joint configurations back to the motion groups.\\ The stream only sends data to the robot controller if a motion is executed.\\ If the robot controller\'s joint configuration differs too much from the incoming joint configuration, a following error occurs. Joint configurations that result in following errors are executed only for motions with a low velocity. 2. Mimic freedrive motions. <!-- theme: danger --> > **DANGER** > > If the incoming joint configuration is set to maximum velocity, the movement to reach this incoming joint configuration > will be executed with maximum speed regardless of safety zones and mechanical limits.
7775
8256
  * @summary Stream Joint Configuration
7776
8257
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7777
8258
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7783,7 +8264,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7783
8264
  return VirtualControllerBehaviorApiFp(this.configuration).externalJointsStream(cell, controller, externalJointStreamRequest, options).then((request) => request(this.axios, this.basePath));
7784
8265
  }
7785
8266
  /**
7786
- * Get the cycle time of controller communication in [ms].
8267
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the cycle time of controller communication in [ms].
7787
8268
  * @summary Get Cycle Time
7788
8269
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7789
8270
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7794,7 +8275,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7794
8275
  return VirtualControllerBehaviorApiFp(this.configuration).getCycleTime(cell, controller, options).then((request) => request(this.axios, this.basePath));
7795
8276
  }
7796
8277
  /**
7797
- * Get the current virtual controller behavior. See [setVirtualControllerBehavior](#/operations/setVirtualControllerBehavior) and the body for details.
8278
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Get the current virtual controller behavior. See [setVirtualControllerBehavior](#/operations/setVirtualControllerBehavior) and the body for details.
7798
8279
  * @summary Get Behavior
7799
8280
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7800
8281
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7805,7 +8286,7 @@ var VirtualControllerBehaviorApi = class extends BaseAPI {
7805
8286
  return VirtualControllerBehaviorApiFp(this.configuration).getVirtualControllerBehavior(cell, controller, options).then((request) => request(this.axios, this.basePath));
7806
8287
  }
7807
8288
  /**
7808
- * Set virtual controller behavior. See query parameters for details.
8289
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Set virtual controller behavior. See query parameters for details.
7809
8290
  * @summary Set Behavior
7810
8291
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7811
8292
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7962,7 +8443,7 @@ const VirtualControllerInputsOutputsApiFactory = function(configuration, basePat
7962
8443
  */
7963
8444
  var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7964
8445
  /**
7965
- * Retrieves the current values of inputs/outputs of the virtual controller. The identifiers of inputs/outputs must be provided in the request. Request all available input/output identifiers via [listVirtualControllerIODescriptions](#/operations/listVirtualControllerIODescriptions).
8446
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Retrieves the current values of inputs/outputs of the virtual controller. The identifiers of inputs/outputs must be provided in the request. Request all available input/output identifiers via [listVirtualControllerIODescriptions](#/operations/listVirtualControllerIODescriptions).
7966
8447
  * @summary Get Input/Output Values
7967
8448
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7968
8449
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7974,7 +8455,7 @@ var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7974
8455
  return VirtualControllerInputsOutputsApiFp(this.configuration).listIOs(cell, controller, ios, options).then((request) => request(this.axios, this.basePath));
7975
8456
  }
7976
8457
  /**
7977
- * Lists the input/output descriptions of the virtual robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the virtual robot controller.\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
8458
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Lists the input/output descriptions of the virtual robot controller. The input/output descriptions contain information like name, type and unit.\\ Available inputs/outputs are defined by the virtual robot controller.\\ Each input/output has a unique identifier. - If no identifiers and no filters are specified in the request, all available inputs/outputs are retrieved by this endpoint. - If a filter, e.g., `direction`, `value_type`, `group` is applied, only matching inputs/outputs are returned.
7978
8459
  * @summary List Descriptions
7979
8460
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7980
8461
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -7989,7 +8470,7 @@ var VirtualControllerInputsOutputsApi = class extends BaseAPI {
7989
8470
  return VirtualControllerInputsOutputsApiFp(this.configuration).listVirtualControllerIODescriptions(cell, controller, ios, direction, valueType, group, options).then((request) => request(this.axios, this.basePath));
7990
8471
  }
7991
8472
  /**
7992
- * Sets a list of values of a virtual controller inputs/outputs.
8473
+ * **Required permissions:** `can_operate_virtual_controllers` - Operate and configure virtual controllers ___ Sets a list of values of a virtual controller inputs/outputs.
7993
8474
  * @summary Set Input/Ouput Values
7994
8475
  * @param {string} cell Unique identifier addressing a cell in all API calls.
7995
8476
  * @param {string} controller Unique identifier to address a controller in the cell.
@@ -8154,6 +8635,16 @@ exports.CellApi = CellApi;
8154
8635
  exports.CellApiAxiosParamCreator = CellApiAxiosParamCreator;
8155
8636
  exports.CellApiFactory = CellApiFactory;
8156
8637
  exports.CellApiFp = CellApiFp;
8638
+ exports.CloudConfigStatusConfiguredStatusEnum = CloudConfigStatusConfiguredStatusEnum;
8639
+ exports.CloudConfigStatusNotConfiguredStatusEnum = CloudConfigStatusNotConfiguredStatusEnum;
8640
+ exports.CloudConnectionErrorInvalidTokenCodeEnum = CloudConnectionErrorInvalidTokenCodeEnum;
8641
+ exports.CloudConnectionErrorLeafnodeConnectionErrorCodeEnum = CloudConnectionErrorLeafnodeConnectionErrorCodeEnum;
8642
+ exports.CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum = CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum;
8643
+ exports.CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum = CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum;
8644
+ exports.CloudConnectionErrorNatsFailedCodeEnum = CloudConnectionErrorNatsFailedCodeEnum;
8645
+ exports.CloudConnectionErrorUnexpectedResponseCodeEnum = CloudConnectionErrorUnexpectedResponseCodeEnum;
8646
+ exports.CloudDisconnectionStatusDisconnectedStatusEnum = CloudDisconnectionStatusDisconnectedStatusEnum;
8647
+ exports.CloudDisconnectionStatusDisconnectingStatusEnum = CloudDisconnectionStatusDisconnectingStatusEnum;
8157
8648
  exports.CollisionErrorKindEnum = CollisionErrorKindEnum;
8158
8649
  exports.Comparator = Comparator;
8159
8650
  exports.Configuration = Configuration;
@@ -8171,15 +8662,31 @@ exports.ControllerInputsOutputsApiFp = ControllerInputsOutputsApiFp;
8171
8662
  exports.ConvexHullShapeTypeEnum = ConvexHullShapeTypeEnum;
8172
8663
  exports.CylinderShapeTypeEnum = CylinderShapeTypeEnum;
8173
8664
  exports.Direction = Direction;
8665
+ exports.DirectionConstraintConstraintNameEnum = DirectionConstraintConstraintNameEnum;
8666
+ exports.ErrorDirectionConstraintNotMetErrorFeedbackNameEnum = ErrorDirectionConstraintNotMetErrorFeedbackNameEnum;
8667
+ exports.ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum = ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum;
8174
8668
  exports.ErrorInvalidJointCountErrorFeedbackNameEnum = ErrorInvalidJointCountErrorFeedbackNameEnum;
8175
8669
  exports.ErrorJointLimitExceededErrorFeedbackNameEnum = ErrorJointLimitExceededErrorFeedbackNameEnum;
8176
8670
  exports.ErrorJointPositionCollisionErrorFeedbackNameEnum = ErrorJointPositionCollisionErrorFeedbackNameEnum;
8177
8671
  exports.ErrorMaxIterationsExceededErrorFeedbackNameEnum = ErrorMaxIterationsExceededErrorFeedbackNameEnum;
8672
+ exports.ErrorUnsupportedOperationErrorFeedbackNameEnum = ErrorUnsupportedOperationErrorFeedbackNameEnum;
8178
8673
  exports.FanucControllerKindEnum = FanucControllerKindEnum;
8179
8674
  exports.FeedbackCollisionErrorFeedbackNameEnum = FeedbackCollisionErrorFeedbackNameEnum;
8675
+ exports.FeedbackCommandsMissingErrorFeedbackNameEnum = FeedbackCommandsMissingErrorFeedbackNameEnum;
8676
+ exports.FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum = FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum;
8677
+ exports.FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum = FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum;
8678
+ exports.FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum = FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum;
8679
+ exports.FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum = FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum;
8680
+ exports.FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum = FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum;
8681
+ exports.FeedbackInvalidDofErrorFeedbackNameEnum = FeedbackInvalidDofErrorFeedbackNameEnum;
8682
+ exports.FeedbackInvalidNanValueErrorFeedbackNameEnum = FeedbackInvalidNanValueErrorFeedbackNameEnum;
8683
+ exports.FeedbackInvalidSamplingTimeErrorFeedbackNameEnum = FeedbackInvalidSamplingTimeErrorFeedbackNameEnum;
8180
8684
  exports.FeedbackJointLimitExceededErrorFeedbackNameEnum = FeedbackJointLimitExceededErrorFeedbackNameEnum;
8685
+ exports.FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum = FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum;
8181
8686
  exports.FeedbackOutOfWorkspaceErrorFeedbackNameEnum = FeedbackOutOfWorkspaceErrorFeedbackNameEnum;
8182
8687
  exports.FeedbackSingularityErrorFeedbackNameEnum = FeedbackSingularityErrorFeedbackNameEnum;
8688
+ exports.FeedbackStartJointsMissingErrorFeedbackNameEnum = FeedbackStartJointsMissingErrorFeedbackNameEnum;
8689
+ exports.FeedbackTorqueExceededErrorFeedbackNameEnum = FeedbackTorqueExceededErrorFeedbackNameEnum;
8183
8690
  exports.FloatValueValueTypeEnum = FloatValueValueTypeEnum;
8184
8691
  exports.IOBooleanValueValueTypeEnum = IOBooleanValueValueTypeEnum;
8185
8692
  exports.IODirection = IODirection;
@@ -8202,6 +8709,7 @@ exports.JoggingDetailsKindEnum = JoggingDetailsKindEnum;
8202
8709
  exports.JoggingPausedByUserKindEnum = JoggingPausedByUserKindEnum;
8203
8710
  exports.JoggingPausedNearCollisionKindEnum = JoggingPausedNearCollisionKindEnum;
8204
8711
  exports.JoggingPausedNearJointLimitKindEnum = JoggingPausedNearJointLimitKindEnum;
8712
+ exports.JoggingPausedNearSingularityKindEnum = JoggingPausedNearSingularityKindEnum;
8205
8713
  exports.JoggingPausedOnIOKindEnum = JoggingPausedOnIOKindEnum;
8206
8714
  exports.JoggingRunningKindEnum = JoggingRunningKindEnum;
8207
8715
  exports.JointLimitExceededErrorKindEnum = JointLimitExceededErrorKindEnum;
@@ -8232,6 +8740,10 @@ exports.MotionGroupModelsApiAxiosParamCreator = MotionGroupModelsApiAxiosParamCr
8232
8740
  exports.MotionGroupModelsApiFactory = MotionGroupModelsApiFactory;
8233
8741
  exports.MotionGroupModelsApiFp = MotionGroupModelsApiFp;
8234
8742
  exports.MovementErrorResponseKindEnum = MovementErrorResponseKindEnum;
8743
+ exports.NOVACloudApi = NOVACloudApi;
8744
+ exports.NOVACloudApiAxiosParamCreator = NOVACloudApiAxiosParamCreator;
8745
+ exports.NOVACloudApiFactory = NOVACloudApiFactory;
8746
+ exports.NOVACloudApiFp = NOVACloudApiFp;
8235
8747
  exports.NanValueErrorKindEnum = NanValueErrorKindEnum;
8236
8748
  exports.NetworkStateConnectionTypeEnum = NetworkStateConnectionTypeEnum;
8237
8749
  exports.OperatingState = OperatingState;
@@ -8240,6 +8752,8 @@ exports.OrientationType = OrientationType;
8240
8752
  exports.PathCartesianPTPPathDefinitionNameEnum = PathCartesianPTPPathDefinitionNameEnum;
8241
8753
  exports.PathCirclePathDefinitionNameEnum = PathCirclePathDefinitionNameEnum;
8242
8754
  exports.PathCubicSplinePathDefinitionNameEnum = PathCubicSplinePathDefinitionNameEnum;
8755
+ exports.PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum = PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum;
8756
+ exports.PathDirectionConstrainedJointPTPPathDefinitionNameEnum = PathDirectionConstrainedJointPTPPathDefinitionNameEnum;
8243
8757
  exports.PathJointPTPPathDefinitionNameEnum = PathJointPTPPathDefinitionNameEnum;
8244
8758
  exports.PathLinePathDefinitionNameEnum = PathLinePathDefinitionNameEnum;
8245
8759
  exports.PauseJoggingRequestMessageTypeEnum = PauseJoggingRequestMessageTypeEnum;
@@ -8335,4 +8849,5 @@ exports.VirtualControllerInputsOutputsApiFactory = VirtualControllerInputsOutput
8335
8849
  exports.VirtualControllerInputsOutputsApiFp = VirtualControllerInputsOutputsApiFp;
8336
8850
  exports.VirtualControllerKindEnum = VirtualControllerKindEnum;
8337
8851
  exports.YaskawaControllerKindEnum = YaskawaControllerKindEnum;
8852
+ exports.ZodValidationErrorErrorCodeEnum = ZodValidationErrorErrorCodeEnum;
8338
8853
  exports.operationServerMap = operationServerMap;