@wandelbots/nova-js
Version:
Official JS client for the Wandelbots API
1 lines • 817 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","names":["axios","axios"],"sources":["../../node_modules/.pnpm/@wandelbots+nova-api@26.5.1/node_modules/@wandelbots/nova-api/dist/defineProperty-6Ts4XR6h.js","../../node_modules/.pnpm/@wandelbots+nova-api@26.5.1/node_modules/@wandelbots/nova-api/dist/v2/index.js","../../src/lib/context.ts","../../src/lib/mock/getCurrentRobotControllerState.ts","../../src/lib/mock/getMotionGroupDescription.ts","../../src/lib/mock/getMotionGroupKinematicModel.ts","../../src/lib/mock/getRobotController.ts","../../src/lib/mock/listCoordinateSystems.ts","../../src/lib/mock/listRobotControllers.ts","../../src/lib/mock/MockNovaInstance.ts","../../src/lib/NovaAPIClient.ts","../../src/lib/Nova.ts"],"sourcesContent":["//#region \\0@oxc-project+runtime@0.126.0/helpers/typeof.js\nfunction _typeof(o) {\n\t\"@babel/helpers - typeof\";\n\treturn _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o) {\n\t\treturn typeof o;\n\t} : function(o) {\n\t\treturn o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n\t}, _typeof(o);\n}\n//#endregion\n//#region \\0@oxc-project+runtime@0.126.0/helpers/toPrimitive.js\nfunction toPrimitive(t, r) {\n\tif (\"object\" != _typeof(t) || !t) return t;\n\tvar e = t[Symbol.toPrimitive];\n\tif (void 0 !== e) {\n\t\tvar i = e.call(t, r || \"default\");\n\t\tif (\"object\" != _typeof(i)) return i;\n\t\tthrow new TypeError(\"@@toPrimitive must return a primitive value.\");\n\t}\n\treturn (\"string\" === r ? String : Number)(t);\n}\n//#endregion\n//#region \\0@oxc-project+runtime@0.126.0/helpers/toPropertyKey.js\nfunction toPropertyKey(t) {\n\tvar i = toPrimitive(t, \"string\");\n\treturn \"symbol\" == _typeof(i) ? i : i + \"\";\n}\n//#endregion\n//#region \\0@oxc-project+runtime@0.126.0/helpers/defineProperty.js\nfunction _defineProperty(e, r, t) {\n\treturn (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n\t\tvalue: t,\n\t\tenumerable: !0,\n\t\tconfigurable: !0,\n\t\twritable: !0\n\t}) : e[r] = t, e;\n}\n//#endregion\nexport { _defineProperty as t };\n","import { t as _defineProperty } from \"../defineProperty-6Ts4XR6h.js\";\nimport globalAxios from \"axios\";\n//#region v2/base.ts\nconst BASE_PATH = \"/api/v2\".replace(/\\/+$/, \"\");\nconst COLLECTION_FORMATS = {\n\tcsv: \",\",\n\tssv: \" \",\n\ttsv: \"\t\",\n\tpipes: \"|\"\n};\nvar BaseAPI = class {\n\tconstructor(configuration, basePath = BASE_PATH, axios = globalAxios) {\n\t\tthis.basePath = basePath;\n\t\tthis.axios = axios;\n\t\t_defineProperty(this, \"configuration\", void 0);\n\t\tif (configuration) {\n\t\t\tthis.configuration = configuration;\n\t\t\tthis.basePath = configuration.basePath ?? basePath;\n\t\t}\n\t}\n};\nvar RequiredError = class extends Error {\n\tconstructor(field, msg) {\n\t\tsuper(msg);\n\t\tthis.field = field;\n\t\tthis.name = \"RequiredError\";\n\t}\n};\nconst operationServerMap = {};\n//#endregion\n//#region v2/common.ts\nconst DUMMY_BASE_URL = \"https://example.com\";\n/**\n*\n* @throws {RequiredError}\n*/\nconst assertParamExists = function(functionName, paramName, paramValue) {\n\tif (paramValue === null || paramValue === void 0) throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\n};\nconst setBearerAuthToObject = async function(object, configuration) {\n\tif (configuration && configuration.accessToken) object[\"Authorization\"] = \"Bearer \" + (typeof configuration.accessToken === \"function\" ? await configuration.accessToken() : await configuration.accessToken);\n};\nfunction setFlattenedQueryParams(urlSearchParams, parameter, key = \"\") {\n\tif (parameter == null) return;\n\tif (typeof parameter === \"object\") if (Array.isArray(parameter)) parameter.forEach((item) => setFlattenedQueryParams(urlSearchParams, item, key));\n\telse Object.keys(parameter).forEach((currentKey) => setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== \"\" ? \".\" : \"\"}${currentKey}`));\n\telse if (urlSearchParams.has(key)) urlSearchParams.append(key, parameter);\n\telse urlSearchParams.set(key, parameter);\n}\nconst setSearchParams = function(url, ...objects) {\n\tconst searchParams = new URLSearchParams(url.search);\n\tsetFlattenedQueryParams(searchParams, objects);\n\turl.search = searchParams.toString();\n};\nconst serializeDataIfNeeded = function(value, requestOptions, configuration) {\n\tconst nonString = typeof value !== \"string\";\n\treturn (nonString && configuration && configuration.isJsonMime ? configuration.isJsonMime(requestOptions.headers[\"Content-Type\"]) : nonString) ? JSON.stringify(value !== void 0 ? value : {}) : value || \"\";\n};\nconst toPathString = function(url) {\n\treturn url.pathname + url.search + url.hash;\n};\nconst createRequestFunction = function(axiosArgs, globalAxios, BASE_PATH, configuration) {\n\treturn (axios = globalAxios, basePath = BASE_PATH) => {\n\t\tconst axiosRequestArgs = {\n\t\t\t...axiosArgs.options,\n\t\t\turl: (axios.defaults.baseURL ? \"\" : configuration?.basePath ?? basePath) + axiosArgs.url\n\t\t};\n\t\treturn axios.request(axiosRequestArgs);\n\t};\n};\n//#endregion\n//#region v2/api.ts\nconst AbbControllerKindEnum = { AbbController: \"AbbController\" };\n/**\n* ## BEHAVIOR_AUTOMATIC This is the default behavior. The motion groups of the controller take commanded joint configuration as actual joint state. Configures the compliance of the virtual robot with the normal ControllerState cycle time. If set, the virtual robot will act like a physical one, e.g., with a cycle time of 8ms to respond to a new joint state command. ## BEHAVIOR_AUTOMATIC_NOT_COMPLY_WITH_CYCLETIME Configures the compliance of the virtual robot with the normal ControllerState cycle time. If set, the robot will respond as fast as possible, limited only by software execution speed. Because of that, the execution of a movement requires less time than with BEHAVIOR_AUTOMATIC. ## BEHAVIOR_EXTERNAL_SOURCE The external client is the only source of actual joint state changes. This mode is used to enable third party software indicating the current joint state via [externalJointsStream](#/operations/externalJointsStream). \n*/\nconst Behavior = {\n\tBehaviorAutomatic: \"BEHAVIOR_AUTOMATIC\",\n\tBehaviorAutomaticNotComplyWithCycletime: \"BEHAVIOR_AUTOMATIC_NOT_COMPLY_WITH_CYCLETIME\",\n\tBehaviorExternalSource: \"BEHAVIOR_EXTERNAL_SOURCE\"\n};\nconst BlendingAutoBlendingNameEnum = { BlendingAuto: \"BlendingAuto\" };\nconst BlendingPositionBlendingNameEnum = { BlendingPosition: \"BlendingPosition\" };\n/**\n* Defines the space in which blending is performed. - `JOINT`: Zone blending is performed in joint space - `CARTESIAN`: Auto-blending is performed in cartesian space \n*/\nconst BlendingSpace = {\n\tJoint: \"JOINT\",\n\tCartesian: \"CARTESIAN\"\n};\nconst BooleanValueValueTypeEnum = { Boolean: \"boolean\" };\nconst BoxShapeTypeEnum = { Box: \"box\" };\nconst BoxBoxTypeEnum = {\n\tHollow: \"HOLLOW\",\n\tFull: \"FULL\"\n};\nconst BusIOModbusClientBusTypeEnum = { ModbusClient: \"modbus_client\" };\nconst BusIOModbusServerBusTypeEnum = { ModbusServer: \"modbus_server\" };\nconst BusIOModbusTCPClientNetworkTypeEnum = { Tcp: \"tcp\" };\nconst BusIOModbusTCPServerNetworkTypeEnum = { Tcp: \"tcp\" };\nconst BusIOModbusVirtualBusTypeEnum = { ModbusVirtual: \"modbus_virtual\" };\nconst BusIOProfinetBusTypeEnum = { Profinet: \"profinet\" };\nconst BusIOProfinetVirtualBusTypeEnum = { ProfinetVirtual: \"profinet_virtual\" };\nconst BusIOSnap7BusTypeEnum = { Snap7: \"snap7\" };\n/**\n* Current state of the BUS input/output service. \n*/\nconst BusIOsStateEnum = {\n\tBusIosStateUnknown: \"BUS_IOS_STATE_UNKNOWN\",\n\tBusIosStateInitializing: \"BUS_IOS_STATE_INITIALIZING\",\n\tBusIosStateConnected: \"BUS_IOS_STATE_CONNECTED\",\n\tBusIosStateDisconnected: \"BUS_IOS_STATE_DISCONNECTED\"\n};\nconst CapsuleShapeTypeEnum = { Capsule: \"capsule\" };\nconst CloudConfigStatusConfiguredStatusEnum = { Configured: \"configured\" };\nconst CloudConfigStatusNotConfiguredStatusEnum = { NotConfigured: \"not_configured\" };\nconst CloudConnectionErrorInvalidTokenCodeEnum = { InvalidCloudToken: \"invalid_cloud_token\" };\nconst CloudConnectionErrorLeafnodeConnectionErrorCodeEnum = { LeafnodeConnectionError: \"leafnode_connection_error\" };\nconst CloudConnectionErrorLeafnodeConnectionTimeoutCodeEnum = { LeafnodeConnectionTimeout: \"leafnode_connection_timeout\" };\nconst CloudConnectionErrorLeafnodeRestartTimeoutCodeEnum = { LeafnodeRestartTimeout: \"leafnode_restart_timeout\" };\nconst CloudConnectionErrorNatsFailedCodeEnum = { NatsConnectionFailed: \"nats_connection_failed\" };\nconst CloudConnectionErrorUnexpectedResponseCodeEnum = { UnexpectedCloudResponse: \"unexpected_cloud_response\" };\nconst CloudDisconnectionStatusDisconnectedStatusEnum = { Disconnected: \"disconnected\" };\nconst CloudDisconnectionStatusDisconnectingStatusEnum = { Disconnecting: \"disconnecting\" };\nconst ColliderValueSourceEnum = { Value: \"value\" };\nconst CollisionErrorKindEnum = { CollisionError: \"CollisionError\" };\nconst CollisionSetupValueSourceEnum = { Value: \"value\" };\n/**\n* 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. \n*/\nconst Comparator = {\n\tComparatorEquals: \"COMPARATOR_EQUALS\",\n\tComparatorNotEquals: \"COMPARATOR_NOT_EQUALS\",\n\tComparatorGreater: \"COMPARATOR_GREATER\",\n\tComparatorGreaterEqual: \"COMPARATOR_GREATER_EQUAL\",\n\tComparatorLess: \"COMPARATOR_LESS\",\n\tComparatorLessEqual: \"COMPARATOR_LESS_EQUAL\"\n};\nconst ConfigurationArchiveStatusCreatingStatusEnum = { Creating: \"creating\" };\nconst ConfigurationArchiveStatusErrorStatusEnum = { Error: \"error\" };\nconst ConfigurationArchiveStatusSuccessStatusEnum = { Success: \"success\" };\nconst ConvexHullShapeTypeEnum = { ConvexHull: \"convex_hull\" };\nconst CylinderShapeTypeEnum = { Cylinder: \"cylinder\" };\n/**\n* The direction in which the trajectory is executed. Default: Forward. \n*/\nconst Direction = {\n\tDirectionForward: \"DIRECTION_FORWARD\",\n\tDirectionBackward: \"DIRECTION_BACKWARD\"\n};\nconst DirectionConstraintConstraintNameEnum = { DirectionConstraint: \"DirectionConstraint\" };\nconst ErrorDirectionConstraintNotMetErrorFeedbackNameEnum = { ErrorDirectionConstraintNotMet: \"ErrorDirectionConstraintNotMet\" };\nconst ErrorDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { ErrorDirectionConstraintNotNormalized: \"ErrorDirectionConstraintNotNormalized\" };\nconst ErrorInvalidJointCountErrorFeedbackNameEnum = { ErrorInvalidJointCount: \"ErrorInvalidJointCount\" };\nconst ErrorJointLimitExceededErrorFeedbackNameEnum = { ErrorJointLimitExceeded: \"ErrorJointLimitExceeded\" };\nconst ErrorJointPositionCollisionErrorFeedbackNameEnum = { ErrorJointPositionCollision: \"ErrorJointPositionCollision\" };\nconst ErrorMaxIterationsExceededErrorFeedbackNameEnum = { ErrorMaxIterationsExceeded: \"ErrorMaxIterationsExceeded\" };\nconst ErrorUnsupportedOperationErrorFeedbackNameEnum = { ErrorUnsupportedOperation: \"ErrorUnsupportedOperation\" };\nconst FanucControllerKindEnum = { FanucController: \"FanucController\" };\nconst FeedbackAxisRangeExceededErrorFeedbackNameEnum = { FeedbackAxisRangeExceeded: \"FeedbackAxisRangeExceeded\" };\nconst FeedbackCollisionErrorFeedbackNameEnum = { FeedbackCollision: \"FeedbackCollision\" };\nconst FeedbackCommandsMissingErrorFeedbackNameEnum = { FeedbackCommandsMissing: \"FeedbackCommandsMissing\" };\nconst FeedbackCubicSplineIsNotIncreasingErrorFeedbackNameEnum = { FeedbackCubicSplineIsNotIncreasing: \"FeedbackCubicSplineIsNotIncreasing\" };\nconst FeedbackCubicSplineNotAtStartPoseErrorFeedbackNameEnum = { FeedbackCubicSplineNotAtStartPose: \"FeedbackCubicSplineNotAtStartPose\" };\nconst FeedbackDirectionConstraintNoSolutionExistsErrorFeedbackNameEnum = { FeedbackDirectionConstraintNoSolutionExists: \"FeedbackDirectionConstraintNoSolutionExists\" };\nconst FeedbackDirectionConstraintNotMetErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotMet: \"FeedbackDirectionConstraintNotMet\" };\nconst FeedbackDirectionConstraintNotNormalizedErrorFeedbackNameEnum = { FeedbackDirectionConstraintNotNormalized: \"FeedbackDirectionConstraintNotNormalized\" };\nconst FeedbackInvalidDofErrorFeedbackNameEnum = { FeedbackInvalidDof: \"FeedbackInvalidDof\" };\nconst FeedbackInvalidNanValueErrorFeedbackNameEnum = { FeedbackInvalidNanValue: \"FeedbackInvalidNanValue\" };\nconst FeedbackInvalidSamplingTimeErrorFeedbackNameEnum = { FeedbackInvalidSamplingTime: \"FeedbackInvalidSamplingTime\" };\nconst FeedbackJointLimitExceededErrorFeedbackNameEnum = { FeedbackJointLimitExceeded: \"FeedbackJointLimitExceeded\" };\nconst FeedbackNoSolutionInCurrentConfigurationErrorFeedbackNameEnum = { FeedbackNoSolutionInCurrentConfiguration: \"FeedbackNoSolutionInCurrentConfiguration\" };\nconst FeedbackOutOfWorkspaceErrorFeedbackNameEnum = { FeedbackOutOfWorkspace: \"FeedbackOutOfWorkspace\" };\nconst FeedbackSingularityErrorFeedbackNameEnum = { FeedbackSingularity: \"FeedbackSingularity\" };\nconst FeedbackStartJointsMissingErrorFeedbackNameEnum = { FeedbackStartJointsMissing: \"FeedbackStartJointsMissing\" };\nconst FeedbackTorqueExceededErrorFeedbackNameEnum = { FeedbackTorqueExceeded: \"FeedbackTorqueExceeded\" };\nconst FloatValueValueTypeEnum = { Float: \"float\" };\nconst IOBooleanValueValueTypeEnum = { Boolean: \"boolean\" };\n/**\n* Identifies the input/output type.\n*/\nconst IODirection = {\n\tIoTypeInput: \"IO_TYPE_INPUT\",\n\tIoTypeOutput: \"IO_TYPE_OUTPUT\"\n};\nconst IOFloatValueValueTypeEnum = { Float: \"float\" };\nconst IOIntegerValueValueTypeEnum = { Integer: \"integer\" };\n/**\n* States the source of the input/output signal. \n*/\nconst IOOrigin = {\n\tController: \"CONTROLLER\",\n\tBusIo: \"BUS_IO\"\n};\n/**\n* Data type of the input/output.\n*/\nconst IOValueType = {\n\tIoValueBoolean: \"IO_VALUE_BOOLEAN\",\n\tIoValueAnalogFloat: \"IO_VALUE_ANALOG_FLOAT\",\n\tIoValueAnalogInteger: \"IO_VALUE_ANALOG_INTEGER\"\n};\nconst InconsistentTrajectorySizeErrorKindEnum = { InconsistentTrajectorySizeError: \"InconsistentTrajectorySizeError\" };\nconst InitializeJoggingRequestMessageTypeEnum = { InitializeJoggingRequest: \"InitializeJoggingRequest\" };\nconst InitializeJoggingResponseKindEnum = { InitializeReceived: \"INITIALIZE_RECEIVED\" };\nconst InitializeMovementRequestMessageTypeEnum = { InitializeMovementRequest: \"InitializeMovementRequest\" };\nconst InitializeMovementResponseKindEnum = { InitializeReceived: \"INITIALIZE_RECEIVED\" };\nconst IntegerValueValueTypeEnum = { Integer: \"integer\" };\nconst InvalidDofErrorKindEnum = { InvalidDofError: \"InvalidDofError\" };\nconst JoggingDetailsKindEnum = { Jogging: \"JOGGING\" };\nconst JoggingPausedByUserKindEnum = { PausedByUser: \"PAUSED_BY_USER\" };\nconst JoggingPausedNearCollisionKindEnum = { PausedNearCollision: \"PAUSED_NEAR_COLLISION\" };\nconst JoggingPausedNearJointLimitKindEnum = { PausedNearJointLimit: \"PAUSED_NEAR_JOINT_LIMIT\" };\nconst JoggingPausedNearSingularityKindEnum = { PausedNearSingularity: \"PAUSED_NEAR_SINGULARITY\" };\nconst JoggingPausedOnIOKindEnum = { PausedOnIo: \"PAUSED_ON_IO\" };\nconst JoggingRunningKindEnum = { Running: \"RUNNING\" };\nconst JointLimitExceededErrorKindEnum = { JointLimitExceededError: \"JointLimitExceededError\" };\nconst JointTypeEnum = {\n\tRevoluteJoint: \"REVOLUTE_JOINT\",\n\tPrismaticJoint: \"PRISMATIC_JOINT\"\n};\nconst JointVelocityRequestMessageTypeEnum = { JointVelocityRequest: \"JointVelocityRequest\" };\nconst JointVelocityResponseKindEnum = { JointVelocityReceived: \"JOINT_VELOCITY_RECEIVED\" };\nconst JointWaypointsRequestMessageTypeEnum = { JointWaypointsRequest: \"JointWaypointsRequest\" };\nconst JointWaypointsResponseKindEnum = { JointWaypointsReceived: \"JOINT_WAYPOINTS_RECEIVED\" };\nconst KinematicBranchElbow = {\n\tUp: \"UP\",\n\tDown: \"DOWN\"\n};\nconst KinematicBranchShoulder = {\n\tFront: \"FRONT\",\n\tBack: \"BACK\"\n};\nconst KinematicBranchWrist = {\n\tFlip: \"FLIP\",\n\tNoFlip: \"NO_FLIP\"\n};\nconst KukaControllerKindEnum = { KukaController: \"KukaController\" };\nconst LicenseStatusEnum = {\n\tOk: \"OK\",\n\tExpired: \"EXPIRED\",\n\tSuspended: \"SUSPENDED\",\n\tGracePeriodOver: \"GRACE_PERIOD_OVER\",\n\tNotFound: \"NOT_FOUND\"\n};\nconst LinkChainValueSourceEnum = { Value: \"value\" };\nconst Manufacturer = {\n\tAbb: \"abb\",\n\tFanuc: \"fanuc\",\n\tKuka: \"kuka\",\n\tStaubli: \"staubli\",\n\tUniversalrobots: \"universalrobots\",\n\tYaskawa: \"yaskawa\"\n};\nconst MidpointInsertionAlgorithmAlgorithmNameEnum = { MidpointInsertionAlgorithm: \"MidpointInsertionAlgorithm\" };\n/**\n* Area of the MODBUS input/output variable. Is used to interpret the corresponding bits correctly. \n*/\nconst ModbusIOArea = {\n\tModbusIoAreaUnknown: \"MODBUS_IO_AREA_UNKNOWN\",\n\tModbusIoAreaCoils: \"MODBUS_IO_AREA_COILS\",\n\tModbusIoAreaDiscreteInputs: \"MODBUS_IO_AREA_DISCRETE_INPUTS\",\n\tModbusIoAreaHoldingRegisters: \"MODBUS_IO_AREA_HOLDING_REGISTERS\",\n\tModbusIoAreaInputRegisters: \"MODBUS_IO_AREA_INPUT_REGISTERS\"\n};\n/**\n* Byte order of the MODBUS input/output variable. Used to interpret the corresponding bits correctly. \n*/\nconst ModbusIOByteOrder = {\n\tModbusIoByteOrderUnknown: \"MODBUS_IO_BYTE_ORDER_UNKNOWN\",\n\tModbusIoByteOrderAbcd: \"MODBUS_IO_BYTE_ORDER_ABCD\",\n\tModbusIoByteOrderBadc: \"MODBUS_IO_BYTE_ORDER_BADC\",\n\tModbusIoByteOrderCdab: \"MODBUS_IO_BYTE_ORDER_CDAB\",\n\tModbusIoByteOrderDcba: \"MODBUS_IO_BYTE_ORDER_DCBA\"\n};\n/**\n* Value type of the MODBUS input/output variable. Used to interpret the corresponding bits correctly. \n*/\nconst ModbusIOTypeEnum = {\n\tModbusIoTypeUnknown: \"MODBUS_IO_TYPE_UNKNOWN\",\n\tModbusIoTypeBool: \"MODBUS_IO_TYPE_BOOL\",\n\tModbusIoTypeUint16: \"MODBUS_IO_TYPE_UINT16\",\n\tModbusIoTypeFloat32: \"MODBUS_IO_TYPE_FLOAT32\"\n};\nconst MovementErrorResponseKindEnum = { MotionError: \"MOTION_ERROR\" };\nconst NanValueErrorKindEnum = { NanValueError: \"NanValueError\" };\nconst NetworkStateConnectionTypeEnum = {\n\tEthernet: \"ethernet\",\n\tWifi: \"wifi\",\n\tCellular: \"cellular\",\n\tVpn: \"vpn\",\n\tUnknown: \"unknown\"\n};\n/**\n* The operating state.\n*/\nconst OperatingState = {\n\tActive: \"ACTIVE\",\n\tInactive: \"INACTIVE\"\n};\n/**\n* Current operation mode of the configured robot controller. Operation modes in which the attached motion groups can be moved are: - OPERATION_MODE_MANUAL (if enabling switch is pressed) - OPERATION_MODE_MANUAL_T1 (if enabling switch is pressed) - OPERATION_MODE_MANUAL_T2 (if enabling switch is pressed) - OPERATION_MODE_AUTO (without needing to press enabling switch) All other modes are considered as non-operational. \n*/\nconst OperationMode = {\n\tOperationModeUnknown: \"OPERATION_MODE_UNKNOWN\",\n\tOperationModeNoController: \"OPERATION_MODE_NO_CONTROLLER\",\n\tOperationModeDisconnected: \"OPERATION_MODE_DISCONNECTED\",\n\tOperationModePowerOn: \"OPERATION_MODE_POWER_ON\",\n\tOperationModePending: \"OPERATION_MODE_PENDING\",\n\tOperationModeManual: \"OPERATION_MODE_MANUAL\",\n\tOperationModeManualT1: \"OPERATION_MODE_MANUAL_T1\",\n\tOperationModeManualT2: \"OPERATION_MODE_MANUAL_T2\",\n\tOperationModeAuto: \"OPERATION_MODE_AUTO\",\n\tOperationModeRecovery: \"OPERATION_MODE_RECOVERY\"\n};\n/**\n* The type of rotation description that is used to specify the orientation. **Rotation Vector notation** * The rotation is represented using an axis-angle representation: > axis = Vector[0:2] > angle = |axis| in [rad] > axis.normalized * angle **Quaternion notation** * The rotation is represented using a unit quaternion: [x, y, z, w]. * The vector part [x, y, z] is the imaginary part of the quaternion, and the scalar part [w] is the real part. **Euler notation** * *extrinsic* fixed external reference system * *intrinsic* reference system fixed to rotation body > angles = Vector[0:2] in [rad]. * ZYX, ZXZ,... - mapping of the given angles values to the (either intrinsic or extrinsic) axes in the stated order. > Example ZYX: Z = Vector[0], Y = Vector[1], X = Vector[2]. \n*/\nconst OrientationType = {\n\tRotationVector: \"ROTATION_VECTOR\",\n\tQuaternion: \"QUATERNION\",\n\tEulerAnglesIntrinsicZxz: \"EULER_ANGLES_INTRINSIC_ZXZ\",\n\tEulerAnglesIntrinsicXyx: \"EULER_ANGLES_INTRINSIC_XYX\",\n\tEulerAnglesIntrinsicYzy: \"EULER_ANGLES_INTRINSIC_YZY\",\n\tEulerAnglesIntrinsicZyz: \"EULER_ANGLES_INTRINSIC_ZYZ\",\n\tEulerAnglesIntrinsicXzx: \"EULER_ANGLES_INTRINSIC_XZX\",\n\tEulerAnglesIntrinsicYxy: \"EULER_ANGLES_INTRINSIC_YXY\",\n\tEulerAnglesIntrinsicXyz: \"EULER_ANGLES_INTRINSIC_XYZ\",\n\tEulerAnglesIntrinsicYzx: \"EULER_ANGLES_INTRINSIC_YZX\",\n\tEulerAnglesIntrinsicZxy: \"EULER_ANGLES_INTRINSIC_ZXY\",\n\tEulerAnglesIntrinsicXzy: \"EULER_ANGLES_INTRINSIC_XZY\",\n\tEulerAnglesIntrinsicZyx: \"EULER_ANGLES_INTRINSIC_ZYX\",\n\tEulerAnglesIntrinsicYxz: \"EULER_ANGLES_INTRINSIC_YXZ\",\n\tEulerAnglesExtrinsicZxz: \"EULER_ANGLES_EXTRINSIC_ZXZ\",\n\tEulerAnglesExtrinsicXyx: \"EULER_ANGLES_EXTRINSIC_XYX\",\n\tEulerAnglesExtrinsicYzy: \"EULER_ANGLES_EXTRINSIC_YZY\",\n\tEulerAnglesExtrinsicZyz: \"EULER_ANGLES_EXTRINSIC_ZYZ\",\n\tEulerAnglesExtrinsicXzx: \"EULER_ANGLES_EXTRINSIC_XZX\",\n\tEulerAnglesExtrinsicYxy: \"EULER_ANGLES_EXTRINSIC_YXY\",\n\tEulerAnglesExtrinsicZyx: \"EULER_ANGLES_EXTRINSIC_ZYX\",\n\tEulerAnglesExtrinsicXzy: \"EULER_ANGLES_EXTRINSIC_XZY\",\n\tEulerAnglesExtrinsicYxz: \"EULER_ANGLES_EXTRINSIC_YXZ\",\n\tEulerAnglesExtrinsicYzx: \"EULER_ANGLES_EXTRINSIC_YZX\",\n\tEulerAnglesExtrinsicXyz: \"EULER_ANGLES_EXTRINSIC_XYZ\",\n\tEulerAnglesExtrinsicZxy: \"EULER_ANGLES_EXTRINSIC_ZXY\"\n};\nconst PathCartesianPTPPathDefinitionNameEnum = { PathCartesianPtp: \"PathCartesianPTP\" };\nconst PathCirclePathDefinitionNameEnum = { PathCircle: \"PathCircle\" };\nconst PathCubicSplinePathDefinitionNameEnum = { PathCubicSpline: \"PathCubicSpline\" };\nconst PathDirectionConstrainedCartesianPTPPathDefinitionNameEnum = { DirectionConstrainedCartesianPtp: \"DirectionConstrainedCartesianPTP\" };\nconst PathDirectionConstrainedJointPTPPathDefinitionNameEnum = { DirectionConstrainedJointPtp: \"DirectionConstrainedJointPTP\" };\nconst PathJointPTPPathDefinitionNameEnum = { PathJointPtp: \"PathJointPTP\" };\nconst PathLinePathDefinitionNameEnum = { PathLine: \"PathLine\" };\nconst PauseJoggingRequestMessageTypeEnum = { PauseJoggingRequest: \"PauseJoggingRequest\" };\nconst PauseJoggingResponseKindEnum = { PauseReceived: \"PAUSE_RECEIVED\" };\nconst PauseMovementRequestMessageTypeEnum = { PauseMovementRequest: \"PauseMovementRequest\" };\nconst PauseMovementResponseKindEnum = { PauseReceived: \"PAUSE_RECEIVED\" };\nconst PlaneShapeTypeEnum = { Plane: \"plane\" };\nconst PlaybackSpeedRequestMessageTypeEnum = { PlaybackSpeedRequest: \"PlaybackSpeedRequest\" };\nconst PlaybackSpeedResponseKindEnum = { PlaybackSpeedReceived: \"PLAYBACK_SPEED_RECEIVED\" };\nconst PoseWaypointsRequestMessageTypeEnum = { PoseWaypointsRequest: \"PoseWaypointsRequest\" };\nconst PoseWaypointsResponseKindEnum = { PoseWaypointsReceived: \"POSE_WAYPOINTS_RECEIVED\" };\n/**\n* The direction of the input/output variable, indicating whether it is an input or output for the PROFINET device, e.g., NOVA\\'s PROFINET service.\n*/\nconst ProfinetIODirection = {\n\tProfinetIoDirectionInput: \"PROFINET_IO_DIRECTION_INPUT\",\n\tProfinetIoDirectionOutput: \"PROFINET_IO_DIRECTION_OUTPUT\",\n\tProfinetIoDirectionInout: \"PROFINET_IO_DIRECTION_INOUT\"\n};\n/**\n* Value type of the PROFINET input/output variable. Is used to interpret the corresponding bits correctly. \n*/\nconst ProfinetIOTypeEnum = {\n\tProfinetIoTypeUnknown: \"PROFINET_IO_TYPE_UNKNOWN\",\n\tProfinetIoTypeBool: \"PROFINET_IO_TYPE_BOOL\",\n\tProfinetIoTypeUsint: \"PROFINET_IO_TYPE_USINT\",\n\tProfinetIoTypeSint: \"PROFINET_IO_TYPE_SINT\",\n\tProfinetIoTypeUint: \"PROFINET_IO_TYPE_UINT\",\n\tProfinetIoTypeInt: \"PROFINET_IO_TYPE_INT\",\n\tProfinetIoTypeUdint: \"PROFINET_IO_TYPE_UDINT\",\n\tProfinetIoTypeDint: \"PROFINET_IO_TYPE_DINT\",\n\tProfinetIoTypeReal: \"PROFINET_IO_TYPE_REAL\",\n\tProfinetIoTypeLreal: \"PROFINET_IO_TYPE_LREAL\"\n};\n/**\n* The state of a program run.\n*/\nconst ProgramRunState = {\n\tPreparing: \"PREPARING\",\n\tRunning: \"RUNNING\",\n\tCompleted: \"COMPLETED\",\n\tFailed: \"FAILED\",\n\tStopped: \"STOPPED\"\n};\nconst RRTConnectAlgorithmAlgorithmNameEnum = { RrtConnectAlgorithm: \"RRTConnectAlgorithm\" };\nconst RectangleShapeTypeEnum = { Rectangle: \"rectangle\" };\nconst RectangularCapsuleShapeTypeEnum = { RectangularCapsule: \"rectangular_capsule\" };\n/**\n* The channel that defines what a new Wandelbots NOVA version is. * `next` the latest version * `stable` newest patch of the current version \n*/\nconst ReleaseChannel = {\n\tStable: \"stable\",\n\tNext: \"next\"\n};\n/**\n* Defines the current system mode of the robot system, including NOVA communicating with the robot controller. ### MODE_CONTROLLER_NOT_CONFIGURED No controller with the specified identifier is configured. Call [addRobotController](#/operations/addRobotController) to register a controller. ### MODE_INITIALIZING Indicates that a connection to the robot controller is established or reestablished in case of a disconnect. On success, the controller is set to MODE_MONITOR. On failure, the initialization process is retried until successful or cancelled by the user. ### MODE_MONITOR Read-only mode with an active controller connection. - Receives robot state and I/O signals - Move requests are rejected - No commands are sent to the controller ### MODE_CONTROL Active control mode. **Movement is possible in this mode** The robot is cyclically commanded to hold its current position. The robot state is received in sync with the controller cycle. Motion and jogging requests are accepted and executed. Input/Output interaction is enabled. ### MODE_FREE_DRIVE Read-only mode with servo motors enabled for manual movement (Free Drive). Move requests are rejected. Not supported by all robots: Use [getSupportedModes](#/operations/getSupportedModes) to check Free Drive availability. \n*/\nconst RobotSystemMode = {\n\tModeControllerNotConfigured: \"MODE_CONTROLLER_NOT_CONFIGURED\",\n\tModeInitializing: \"MODE_INITIALIZING\",\n\tModeMonitor: \"MODE_MONITOR\",\n\tModeControl: \"MODE_CONTROL\",\n\tModeFreeDrive: \"MODE_FREE_DRIVE\"\n};\n/**\n* Current safety state of the configured robot controller. Operation modes in which the attached motion groups can be moved are: - SAFETY_STATE_NORMAL - SAFETY_STATE_REDUCED All other modes are considered as non-operational. \n*/\nconst SafetyStateType = {\n\tSafetyStateUnknown: \"SAFETY_STATE_UNKNOWN\",\n\tSafetyStateFault: \"SAFETY_STATE_FAULT\",\n\tSafetyStateNormal: \"SAFETY_STATE_NORMAL\",\n\tSafetyStateMastering: \"SAFETY_STATE_MASTERING\",\n\tSafetyStateConfirmSafety: \"SAFETY_STATE_CONFIRM_SAFETY\",\n\tSafetyStateOperatorSafety: \"SAFETY_STATE_OPERATOR_SAFETY\",\n\tSafetyStateProtectiveStop: \"SAFETY_STATE_PROTECTIVE_STOP\",\n\tSafetyStateReduced: \"SAFETY_STATE_REDUCED\",\n\tSafetyStateStop: \"SAFETY_STATE_STOP\",\n\tSafetyStateStop0: \"SAFETY_STATE_STOP_0\",\n\tSafetyStateStop1: \"SAFETY_STATE_STOP_1\",\n\tSafetyStateStop2: \"SAFETY_STATE_STOP_2\",\n\tSafetyStateRecovery: \"SAFETY_STATE_RECOVERY\",\n\tSafetyStateDeviceEmergencyStop: \"SAFETY_STATE_DEVICE_EMERGENCY_STOP\",\n\tSafetyStateRobotEmergencyStop: \"SAFETY_STATE_ROBOT_EMERGENCY_STOP\",\n\tSafetyStateViolation: \"SAFETY_STATE_VIOLATION\"\n};\nconst ServiceGroup = {\n\tSystemService: \"SystemService\",\n\tCellService: \"CellService\",\n\tRobotController: \"RobotController\",\n\tApp: \"App\"\n};\nconst ServiceStatusPhase = {\n\tTerminating: \"Terminating\",\n\tInitialized: \"Initialized\",\n\tRunning: \"Running\",\n\tNoReady: \"NoReady\",\n\tCompleted: \"Completed\",\n\tContainerCreating: \"ContainerCreating\",\n\tPodInitializing: \"PodInitializing\",\n\tUnknown: \"Unknown\",\n\tCrashLoopBackOff: \"CrashLoopBackOff\",\n\tError: \"Error\",\n\tImagePullBackOff: \"ImagePullBackOff\",\n\tOomKilled: \"OOMKilled\",\n\tPending: \"Pending\",\n\tEvicted: \"Evicted\"\n};\nconst ServiceStatusSeverity = {\n\tInfo: \"INFO\",\n\tWarning: \"WARNING\",\n\tError: \"ERROR\"\n};\n/**\n* Defines available system modes of the robot system. Short versions (no \\\"ROBOT_SYSTEM_\\\" prefix) are provided, reusing strings from [getMode](#/operations/getMode) responses. \n*/\nconst SettableRobotSystemMode = {\n\tRobotSystemModeMonitor: \"ROBOT_SYSTEM_MODE_MONITOR\",\n\tModeMonitor: \"MODE_MONITOR\",\n\tRobotSystemModeControl: \"ROBOT_SYSTEM_MODE_CONTROL\",\n\tModeControl: \"MODE_CONTROL\"\n};\nconst SingularityTypeEnum = {\n\tWrist: \"WRIST\",\n\tElbow: \"ELBOW\",\n\tShoulder: \"SHOULDER\"\n};\n/**\n* PLC memory area of the Snap7 input/output variable. \n*/\nconst Snap7IOArea = {\n\tSnap7IoAreaUnknown: \"SNAP7_IO_AREA_UNKNOWN\",\n\tSnap7IoAreaProcessInputs: \"SNAP7_IO_AREA_PROCESS_INPUTS\",\n\tSnap7IoAreaProcessOutputs: \"SNAP7_IO_AREA_PROCESS_OUTPUTS\",\n\tSnap7IoAreaMerkers: \"SNAP7_IO_AREA_MERKERS\",\n\tSnap7IoAreaDataBlock: \"SNAP7_IO_AREA_DATA_BLOCK\"\n};\n/**\n* Direction of the Snap7 input/output variable from the perspective of this service. \n*/\nconst Snap7IODirection = {\n\tSnap7IoDirectionUnknown: \"SNAP7_IO_DIRECTION_UNKNOWN\",\n\tSnap7IoDirectionInput: \"SNAP7_IO_DIRECTION_INPUT\",\n\tSnap7IoDirectionOutput: \"SNAP7_IO_DIRECTION_OUTPUT\"\n};\n/**\n* PLC data type of the Snap7 input/output variable. Used to interpret the corresponding PLC memory correctly. \n*/\nconst Snap7IOTypeEnum = {\n\tSnap7IoTypeUnknown: \"SNAP7_IO_TYPE_UNKNOWN\",\n\tSnap7IoTypeBool: \"SNAP7_IO_TYPE_BOOL\",\n\tSnap7IoTypeByte: \"SNAP7_IO_TYPE_BYTE\",\n\tSnap7IoTypeWord: \"SNAP7_IO_TYPE_WORD\",\n\tSnap7IoTypeDword: \"SNAP7_IO_TYPE_DWORD\",\n\tSnap7IoTypeInt: \"SNAP7_IO_TYPE_INT\",\n\tSnap7IoTypeDint: \"SNAP7_IO_TYPE_DINT\",\n\tSnap7IoTypeReal: \"SNAP7_IO_TYPE_REAL\"\n};\nconst SphereShapeTypeEnum = { Sphere: \"sphere\" };\nconst StartMovementRequestMessageTypeEnum = { StartMovementRequest: \"StartMovementRequest\" };\nconst StartMovementResponseKindEnum = { StartReceived: \"START_RECEIVED\" };\nconst StorageKeySourceEnum = { Key: \"key\" };\nconst TcpRequiredErrorKindEnum = { TcpRequiredError: \"TcpRequiredError\" };\nconst TcpVelocityRequestMessageTypeEnum = { TcpVelocityRequest: \"TcpVelocityRequest\" };\nconst TcpVelocityResponseKindEnum = { TcpVelocityReceived: \"TCP_VELOCITY_RECEIVED\" };\nconst ToolValueSourceEnum = { Value: \"value\" };\nconst TorqueExceededErrorKindEnum = { TorqueExceededError: \"TorqueExceededError\" };\nconst TrajectoryDataMessageTypeEnum = { TrajectoryData: \"TrajectoryData\" };\nconst TrajectoryDetailsKindEnum = { Trajectory: \"TRAJECTORY\" };\nconst TrajectoryEndedKindEnum = { EndOfTrajectory: \"END_OF_TRAJECTORY\" };\nconst TrajectoryIdMessageTypeEnum = { TrajectoryId: \"TrajectoryId\" };\nconst TrajectoryPausedByUserKindEnum = { PausedByUser: \"PAUSED_BY_USER\" };\nconst TrajectoryPausedOnIOKindEnum = { PausedOnIo: \"PAUSED_ON_IO\" };\nconst TrajectoryRunningKindEnum = { Running: \"RUNNING\" };\nconst TrajectoryWaitForIOKindEnum = { WaitForIo: \"WAIT_FOR_IO\" };\n/**\n* The unit of input/output value.\n*/\nconst UnitType = {\n\tUnitNone: \"UNIT_NONE\",\n\tUnitKilogram: \"UNIT_KILOGRAM\",\n\tUnitAmpere: \"UNIT_AMPERE\",\n\tUnitKelvin: \"UNIT_KELVIN\",\n\tUnitHertz: \"UNIT_HERTZ\",\n\tUnitNewton: \"UNIT_NEWTON\",\n\tUnitVolt: \"UNIT_VOLT\",\n\tUnitCelsius: \"UNIT_CELSIUS\",\n\tUnitNewtonMeter: \"UNIT_NEWTON_METER\",\n\tUnitMeter: \"UNIT_METER\"\n};\nconst UniversalrobotsControllerKindEnum = { UniversalrobotsController: \"UniversalrobotsController\" };\nconst VirtualControllerKindEnum = { VirtualController: \"VirtualController\" };\nconst YaskawaControllerKindEnum = { YaskawaController: \"YaskawaController\" };\nconst ZodValidationErrorErrorCodeEnum = { ValidationError: \"validation_error\" };\n/**\n* ApplicationApi - axios parameter creator\n*/\nconst ApplicationApiAxiosParamCreator = function(configuration) {\n\treturn {\n\t\taddApp: async (cell, app, completionTimeout, options = {}) => {\n\t\t\tassertParamExists(\"addApp\", \"cell\", cell);\n\t\t\tassertParamExists(\"addApp\", \"app\", app);\n\t\t\tconst localVarPath = `/cells/{cell}/apps`.replace(`{cell}`, encodeURIComponent(String(cell)));\n\t\t\tconst localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n\t\t\tlet baseOptions;\n\t\t\tif (configuration) baseOptions = configuration.baseOptions;\n\t\t\tconst localVarRequestOptions = {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\t...baseOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst localVarHeaderParameter = {};\n\t\t\tconst localVarQueryParameter = {};\n\t\t\tawait setBearerAuthToObject(localVarHeaderParameter, configuration);\n\t\t\tif (completionTimeout !== void 0) localVarQueryParameter[\"completion_timeout\"] = completionTimeout;\n\t\t\tlocalVarHeaderParameter[\"Content-Type\"] = \"application/json\";\n\t\t\tsetSearchParams(localVarUrlObj, localVarQueryParameter);\n\t\t\tlet headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n\t\t\tlocalVarRequestOptions.headers = {\n\t\t\t\t...localVarHeaderParameter,\n\t\t\t\t...headersFromBaseOptions,\n\t\t\t\t...options.headers\n\t\t\t};\n\t\t\tlocalVarRequestOptions.data = serializeDataIfNeeded(app, localVarRequestOptions, configuration);\n\t\t\treturn {\n\t\t\t\turl: toPathString(localVarUrlObj),\n\t\t\t\toptions: localVarRequestOptions\n\t\t\t};\n\t\t},\n\t\tclearApps: async (cell, completionTimeout, options = {}) => {\n\t\t\tassertParamExists(\"clearApps\", \"cell\", cell);\n\t\t\tconst localVarPath = `/cells/{cell}/apps`.replace(`{cell}`, encodeURIComponent(String(cell)));\n\t\t\tconst localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n\t\t\tlet baseOptions;\n\t\t\tif (configuration) baseOptions = configuration.baseOptions;\n\t\t\tconst localVarRequestOptions = {\n\t\t\t\tmethod: \"DELETE\",\n\t\t\t\t...baseOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst localVarHeaderParameter = {};\n\t\t\tconst localVarQueryParameter = {};\n\t\t\tawait setBearerAuthToObject(localVarHeaderParameter, configuration);\n\t\t\tif (completionTimeout !== void 0) localVarQueryParameter[\"completion_timeout\"] = completionTimeout;\n\t\t\tsetSearchParams(localVarUrlObj, localVarQueryParameter);\n\t\t\tlet headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n\t\t\tlocalVarRequestOptions.headers = {\n\t\t\t\t...localVarHeaderParameter,\n\t\t\t\t...headersFromBaseOptions,\n\t\t\t\t...options.headers\n\t\t\t};\n\t\t\treturn {\n\t\t\t\turl: toPathString(localVarUrlObj),\n\t\t\t\toptions: localVarRequestOptions\n\t\t\t};\n\t\t},\n\t\tdeleteApp: async (cell, app, completionTimeout, options = {}) => {\n\t\t\tassertParamExists(\"deleteApp\", \"cell\", cell);\n\t\t\tassertParamExists(\"deleteApp\", \"app\", app);\n\t\t\tconst localVarPath = `/cells/{cell}/apps/{app}`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{app}`, encodeURIComponent(String(app)));\n\t\t\tconst localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n\t\t\tlet baseOptions;\n\t\t\tif (configuration) baseOptions = configuration.baseOptions;\n\t\t\tconst localVarRequestOptions = {\n\t\t\t\tmethod: \"DELETE\",\n\t\t\t\t...baseOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst localVarHeaderParameter = {};\n\t\t\tconst localVarQueryParameter = {};\n\t\t\tawait setBearerAuthToObject(localVarHeaderParameter, configuration);\n\t\t\tif (completionTimeout !== void 0) localVarQueryParameter[\"completion_timeout\"] = completionTimeout;\n\t\t\tsetSearchParams(localVarUrlObj, localVarQueryParameter);\n\t\t\tlet headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n\t\t\tlocalVarRequestOptions.headers = {\n\t\t\t\t...localVarHeaderParameter,\n\t\t\t\t...headersFromBaseOptions,\n\t\t\t\t...options.headers\n\t\t\t};\n\t\t\treturn {\n\t\t\t\turl: toPathString(localVarUrlObj),\n\t\t\t\toptions: localVarRequestOptions\n\t\t\t};\n\t\t},\n\t\tgetApp: async (cell, app, options = {}) => {\n\t\t\tassertParamExists(\"getApp\", \"cell\", cell);\n\t\t\tassertParamExists(\"getApp\", \"app\", app);\n\t\t\tconst localVarPath = `/cells/{cell}/apps/{app}`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{app}`, encodeURIComponent(String(app)));\n\t\t\tconst localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n\t\t\tlet baseOptions;\n\t\t\tif (configuration) baseOptions = configuration.baseOptions;\n\t\t\tconst localVarRequestOptions = {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\t...baseOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst localVarHeaderParameter = {};\n\t\t\tconst localVarQueryParameter = {};\n\t\t\tawait setBearerAuthToObject(localVarHeaderParameter, configuration);\n\t\t\tsetSearchParams(localVarUrlObj, localVarQueryParameter);\n\t\t\tlet headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n\t\t\tlocalVarRequestOptions.headers = {\n\t\t\t\t...localVarHeaderParameter,\n\t\t\t\t...headersFromBaseOptions,\n\t\t\t\t...options.headers\n\t\t\t};\n\t\t\treturn {\n\t\t\t\turl: toPathString(localVarUrlObj),\n\t\t\t\toptions: localVarRequestOptions\n\t\t\t};\n\t\t},\n\t\tlistApps: async (cell, options = {}) => {\n\t\t\tassertParamExists(\"listApps\", \"cell\", cell);\n\t\t\tconst localVarPath = `/cells/{cell}/apps`.replace(`{cell}`, encodeURIComponent(String(cell)));\n\t\t\tconst localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n\t\t\tlet baseOptions;\n\t\t\tif (configuration) baseOptions = configuration.baseOptions;\n\t\t\tconst localVarRequestOptions = {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\t...baseOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst localVarHeaderParameter = {};\n\t\t\tconst localVarQueryParameter = {};\n\t\t\tawait setBearerAuthToObject(localVarHeaderParameter, configuration);\n\t\t\tsetSearchParams(localVarUrlObj, localVarQueryParameter);\n\t\t\tlet headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n\t\t\tlocalVarRequestOptions.headers = {\n\t\t\t\t...localVarHeaderParameter,\n\t\t\t\t...headersFromBaseOptions,\n\t\t\t\t...options.headers\n\t\t\t};\n\t\t\treturn {\n\t\t\t\turl: toPathString(localVarUrlObj),\n\t\t\t\toptions: localVarRequestOptions\n\t\t\t};\n\t\t},\n\t\tupdateApp: async (cell, app, app2, completionTimeout, options = {}) => {\n\t\t\tassertParamExists(\"updateApp\", \"cell\", cell);\n\t\t\tassertParamExists(\"updateApp\", \"app\", app);\n\t\t\tassertParamExists(\"updateApp\", \"app2\", app2);\n\t\t\tconst localVarPath = `/cells/{cell}/apps/{app}`.replace(`{cell}`, encodeURIComponent(String(cell))).replace(`{app}`, encodeURIComponent(String(app)));\n\t\t\tconst localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n\t\t\tlet baseOptions;\n\t\t\tif (configuration) baseOptions = configuration.baseOptions;\n\t\t\tconst localVarRequestOptions = {\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\t...baseOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst localVarHeaderParameter = {};\n\t\t\tconst localVarQueryParameter = {};\n\t\t\tawait setBearerAuthToObject(localVarHeaderParameter, configuration);\n\t\t\tif (completionTimeout !== void 0) localVarQueryParameter[\"completion_timeout\"] = completionTimeout;\n\t\t\tlocalVarHeaderParameter[\"Content-Type\"] = \"application/json\";\n\t\t\tsetSearchParams(localVarUrlObj, localVarQueryParameter);\n\t\t\tlet headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n\t\t\tlocalVarRequestOptions.headers = {\n\t\t\t\t...localVarHeaderParameter,\n\t\t\t\t...headersFromBaseOptions,\n\t\t\t\t...options.headers\n\t\t\t};\n\t\t\tlocalVarRequestOptions.data = serializeDataIfNeeded(app2, localVarRequestOptions, configuration);\n\t\t\treturn {\n\t\t\t\turl: toPathString(localVarUrlObj),\n\t\t\t\toptions: localVarRequestOptions\n\t\t\t};\n\t\t}\n\t};\n};\n/**\n* ApplicationApi - functional programming interface\n*/\nconst ApplicationApiFp = function(configuration) {\n\tconst localVarAxiosParamCreator = ApplicationApiAxiosParamCreator(configuration);\n\treturn {\n\t\tasync addApp(cell, app, completionTimeout, options) {\n\t\t\tconst localVarAxiosArgs = await localVarAxiosParamCreator.addApp(cell, app, completionTimeout, options);\n\t\t\tconst localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n\t\t\tconst localVarOperationServerBasePath = operationServerMap[\"ApplicationApi.addApp\"]?.[localVarOperationServerIndex]?.url;\n\t\t\treturn (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n\t\t},\n\t\tasync clearApps(cell, completionTimeout, options) {\n\t\t\tconst localVarAxiosArgs = await localVarAxiosParamCreator.clearApps(cell, completionTimeout, options);\n\t\t\tconst localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n\t\t\tconst localVarOperationServerBasePath = operationServerMap[\"ApplicationApi.clearApps\"]?.[localVarOperationServerIndex]?.url;\n\t\t\treturn (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n\t\t},\n\t\tasync deleteApp(cell, app, completionTimeout, options) {\n\t\t\tconst localVarAxiosArgs = await localVarAxiosParamCreator.deleteApp(cell, app, completionTimeout, options);\n\t\t\tconst localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n\t\t\tconst localVarOperationServerBasePath = operationServerMap[\"ApplicationApi.deleteApp\"]?.[localVarOperationServerIndex]?.url;\n\t\t\treturn (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n\t\t},\n\t\tasync getApp(cell, app, options) {\n\t\t\tconst localVarAxiosArgs = await localVarAxiosParamCreator.getApp(cell, app, options);\n\t\t\tconst localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n\t\t\tconst localVarOperationServerBasePath = operationServerMap[\"ApplicationApi.getApp\"]?.[localVarOperationServerIndex]?.url;\n\t\t\treturn (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n\t\t},\n\t\tasync listApps(cell, options) {\n\t\t\tconst localVarAxiosArgs = await localVarAxiosParamCreator.listApps(cell, options);\n\t\t\tconst localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n\t\t\tconst localVarOperationServerBasePath = operationServerMap[\"ApplicationApi.listApps\"]?.[localVarOperationServerIndex]?.url;\n\t\t\treturn (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n\t\t},\n\t\tasync updateApp(cell, app, app2, completionTimeout, options) {\n\t\t\tconst localVarAxiosArgs = await localVarAxiosParamCreator.updateApp(cell, app, app2, completionTimeout, options);\n\t\t\tconst localVarOperationServerIndex = configuration?.serverIndex ?? 0;\n\t\t\tconst localVarOperationServerBasePath = operationServerMap[\"ApplicationApi.updateApp\"]?.[localVarOperationServerIndex]?.url;\n\t\t\treturn (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);\n\t\t}\n\t};\n};\n/**\n* ApplicationApi - factory interface\n*/\nconst ApplicationApiFactory = function(configuration, basePath, axios) {\n\tconst localVarFp = ApplicationApiFp(configuration);\n\treturn {\n\t\taddApp(cell, app, completionTimeout, options) {\n\t\t\treturn localVarFp.addApp(cell, app, completionTimeout, options).then((request) => request(axios, basePath));\n\t\t},\n\t\tclearApps(cell, completionTimeout, options) {\n\t\t\treturn localVarFp.clearApps(cell, completionTimeout, options).then((request) => request(axios, basePath));\n\t\t},\n\t\tdeleteApp(cell, app, completionTimeout, options) {\n\t\t\treturn localVarFp.deleteApp(cell, app, completionTimeout, options).then((request) => request(axios, basePath));\n\t\t},\n\t\tgetApp(cell, app, options) {\n\t\t\treturn localVarFp.getApp(cell, app, options).then((request) => request(axios, basePath));\n\t\t},\n\t\tlistApps(cell, options) {\n\t\t\treturn localVarFp.listApps(cell, options).then((request) => request(axios, basePath));\n\t\t},\n\t\tupdateApp(cell, app, app2, completionTimeout, options) {\n\t\t\treturn localVarFp.updateApp(cell, app, app2, completionTimeout, options).then((request) => request(axios, basePath));\n\t\t}\n\t};\n};\n/**\n* ApplicationApi - object-oriented interface\n*/\nvar ApplicationApi = class extends BaseAPI {\n\t/**\n\t* **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. \n\t* @summary Add Application\n\t* @param {string} cell Unique identifier addressing a cell in all API calls. \n\t* @param {App} app \n\t* @param {number} [completionTimeout] \n\t* @param {*} [options] Override http request option.\n\t* @throws {RequiredError}\n\t*/\n\taddApp(cell, app, completionTimeout, options) {\n\t\treturn ApplicationApiFp(this.configuration).addApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));\n\t}\n\t/**\n\t* **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete all GUI applications from the cell.\n\t* @summary Clear Applications\n\t* @param {string} cell Unique identifier addressing a cell in all API calls. \n\t* @param {number} [completionTimeout] \n\t* @param {*} [options] Override http request option.\n\t* @throws {RequiredError}\n\t*/\n\tclearApps(cell, completionTimeout, options) {\n\t\treturn ApplicationApiFp(this.configuration).clearApps(cell, completionTimeout, options).then((request) => request(this.axios, this.basePath));\n\t}\n\t/**\n\t* **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Delete a GUI application from the cell.\n\t* @summary Delete Application\n\t* @param {string} cell Unique identifier addressing a cell in all API calls. \n\t* @param {string} app \n\t* @param {number} [completionTimeout] \n\t* @param {*} [options] Override http request option.\n\t* @throws {RequiredError}\n\t*/\n\tdeleteApp(cell, app, completionTimeout, options) {\n\t\treturn ApplicationApiFp(this.configuration).deleteApp(cell, app, completionTimeout, options).then((request) => request(this.axios, this.basePath));\n\t}\n\t/**\n\t* **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). \n\t* @summary Configuration\n\t* @param {string} cell Unique identifier addressing a cell in all API calls. \n\t* @param {string} app \n\t* @param {*} [options] Override http request option.\n\t* @throws {RequiredError}\n\t*/\n\tgetApp(cell, app, options) {\n\t\treturn ApplicationApiFp(this.configuration).getApp(cell, app, options).then((request) => request(this.axios, this.basePath));\n\t}\n\t/**\n\t* **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. \n\t* @summary List Applications\n\t* @param {string} cell Unique identifier addressing a cell in all API calls. \n\t* @param {*} [options] Override http request option.\n\t* @throws {RequiredError}\n\t*/\n\tlistApps(cell, options) {\n\t\treturn ApplicationApiFp(this.configuration).listApps(cell, options).then((request) => request(this.axios, this.basePath));\n\t}\n\t/**\n\t* **Required permissions:** `can_manage_apps` - Install, update, or remove applications ___ Update the configuration of a GUI application in the cell.\n\t* @summary Update Configuration\n\t* @param {string} cell Unique identifier addressing a cell in all API calls. \n\t* @param {string} app \n\t* @param {App} app2 \n\t* @param {number} [completionTimeout] \n\t* @param {*} [options] Override http request option.\n\t* @throws {RequiredError}\n\t*/\n\tupdateApp(cell, app, app2, completionTimeout, options) {\n\t\treturn ApplicationApiFp(this.configuration).updateApp(cell, app, app2, completionTimeout, options).then((request) => request(this.axios, this.basePath));\n\t}\n};\n/**\n* BUSInputsOutputsApi - axios parameter creator\n*/\nconst BUSInputsOutputsApiAxiosParamCreator = function(configuration) {\n\treturn {\n\t\taddBusIOService: async (cell, busIOType, completionTimeout, options = {}) => {\n\t\t\tassertParamExists(\"addBusIOService\", \"cell\", cell);\n\t\t\tassertParamExists(\"addBusIOService\", \"busIOType\", busIOType);\n\t\t\tconst localVarPath = `/cells/{cell}/bus-ios`.replace(`{cell}`, encodeURIComponent(String(cell)));\n\t\t\tconst localVarUrlObj = new