From e3d2b1c460af72eda810c90e20ddfd44d04d636f Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Wed, 24 Apr 2024 09:41:55 +0800 Subject: [PATCH] api-server: update dependencies (#913) * update uvicorn Signed-off-by: Teo Koon Peng * fix docs url to follow new root path behavior Signed-off-by: Teo Koon Peng * revert change to how we determine root path Signed-off-by: Teo Koon Peng * fix Pipfile Signed-off-by: Teo Koon Peng * use verbose flag in ci Signed-off-by: Teo Koon Peng * again Signed-off-by: Teo Koon Peng * fix test error Signed-off-by: Teo Koon Peng * remove unused imports Signed-off-by: Teo Koon Peng * temp disable broken test Signed-off-by: Teo Koon Peng * skip another broken test Signed-off-by: Teo Koon Peng * WIP updating pydantic Signed-off-by: Teo Koon Peng * fix broken socketio tests Signed-off-by: Teo Koon Peng * fix using old field Signed-off-by: Teo Koon Peng * switch to new lifespan api Signed-off-by: Teo Koon Peng * fix typings Signed-off-by: Teo Koon Peng * remove use of deprecated code Signed-off-by: Teo Koon Peng * update pylint Signed-off-by: Teo Koon Peng * update client api Signed-off-by: Teo Koon Peng * do not separate input and output schemas Signed-off-by: Teo Koon Peng * revert incompatible change where all ros fields are optional Signed-off-by: Teo Koon Peng * update api-client Signed-off-by: Teo Koon Peng * fixes for frontend Signed-off-by: Teo Koon Peng * WIP updating tests Signed-off-by: Teo Koon Peng * fix tests Signed-off-by: Teo Koon Peng * before eject Signed-off-by: Teo Koon Peng * eject react-scripts and update dependencies, needed to fix axios Signed-off-by: Teo Koon Peng * update node Signed-off-by: Teo Koon Peng * update eslint Signed-off-by: Teo Koon Peng * move to jest, fix broken tests, remove svg and canvas tests Signed-off-by: Teo Koon Peng * migrating storybook Signed-off-by: Teo Koon Peng * finish migrating storybook Signed-off-by: Teo Koon Peng * migrate storybook on rmf-auth Signed-off-by: Teo Koon Peng * cleanup Signed-off-by: Teo Koon Peng * remove unused imports Signed-off-by: Teo Koon Peng * update lint command Signed-off-by: Teo Koon Peng * fix imports Signed-off-by: Teo Koon Peng * fix cjs not being processed Signed-off-by: Teo Koon Peng * disable treating warnings as errors Signed-off-by: Teo Koon Peng * update readme to use pnpm and node20 Signed-off-by: Teo Koon Peng * workaround pydantic serialization problem Signed-off-by: Teo Koon Peng * fix conversion in tests Signed-off-by: Teo Koon Peng --------- Signed-off-by: Teo Koon Peng --- .eslintrc.js | 51 - .github/actions/bootstrap/action.yml | 2 +- .github/workflows/api-server.yml | 2 +- .husky/pre-commit | 3 - .pylintrc | 763 +- Pipfile | 9 +- Pipfile.lock | 837 +- README.md | 9 +- eslint.config.js | 19 + package.json | 19 +- packages/api-client/generate-openapi.sh | 22 +- packages/api-client/lib/index.ts | 9 +- .../lib/openapi/.openapi-generator/VERSION | 2 +- packages/api-client/lib/openapi/api.ts | 4429 ++-- packages/api-client/lib/openapi/base.ts | 24 +- packages/api-client/lib/openapi/common.ts | 10 +- .../api-client/lib/openapi/configuration.ts | 9 + packages/api-client/lib/version.ts | 4 +- packages/api-client/openapi-generator.json | 3 - packages/api-client/openapitools.json | 15 + packages/api-client/package.json | 14 +- packages/api-client/schema/index.ts | 3000 +-- packages/api-server/.pylintrc | 603 - packages/api-server/api_server/__init__.py | 4 - packages/api-server/api_server/app.py | 180 +- .../api-server/api_server/fast_io/__init__.py | 30 +- .../fast_io/pydantic_json_serializer.py | 23 + packages/api-server/api_server/gateway.py | 12 +- .../api-server/api_server/models/__init__.py | 8 +- .../api_server/models/building_map.py | 12 +- .../api_server/models/dispensers.py | 4 +- .../api-server/api_server/models/doors.py | 4 +- .../api-server/api_server/models/ingestors.py | 4 +- .../api-server/api_server/models/lifts.py | 6 +- .../rmf_api/activity_discovery_response.py | 2 +- .../models/rmf_api/cancel_task_request.py | 2 +- .../models/rmf_api/cancel_task_response.py | 6 +- .../models/rmf_api/dispatch_task_response.py | 14 +- .../api_server/models/rmf_api/error.py | 9 +- .../api_server/models/rmf_api/fleet_log.py | 6 +- .../models/rmf_api/fleet_log_response.py | 22 +- .../models/rmf_api/fleet_log_update.py | 2 +- .../api_server/models/rmf_api/fleet_state.py | 2 +- .../models/rmf_api/interrupt_task_request.py | 2 +- .../models/rmf_api/interrupt_task_response.py | 6 +- .../models/rmf_api/kill_task_request.py | 2 +- .../models/rmf_api/kill_task_response.py | 6 +- .../models/rmf_api/resume_task_request.py | 12 +- .../models/rmf_api/resume_task_response.py | 6 +- .../models/rmf_api/rewind_task_response.py | 6 +- .../api_server/models/rmf_api/robot_state.py | 18 +- .../models/rmf_api/robot_task_response.py | 6 +- .../models/rmf_api/rtls_tag_state.py | 65 + .../models/rmf_api/simple_response.py | 20 +- .../models/rmf_api/skip_phase_request.py | 2 +- .../models/rmf_api/skip_phase_response.py | 6 +- .../models/rmf_api/task_discovery_response.py | 6 +- .../api_server/models/rmf_api/task_log.py | 22 +- .../models/rmf_api/task_log_response.py | 20 +- .../api_server/models/rmf_api/task_request.py | 16 +- .../api_server/models/rmf_api/task_state.py | 125 +- .../models/rmf_api/token_response.py | 20 +- .../models/rmf_api/transformation_2D.py | 15 + .../models/rmf_api/undo_skip_phase_request.py | 13 +- .../rmf_api/undo_skip_phase_response.py | 6 +- .../api_server/models/rmf_api/version.py | 4 +- .../api_server/models/rmf_ros2/Place.py | 12 +- .../rmf_ros2/event_description_DropOff.py | 8 +- .../rmf_ros2/event_description_GoToPlace.py | 6 +- .../rmf_ros2/event_description_PickUp.py | 8 +- .../rmf_ros2/event_description_Sequence.py | 22 +- .../models/rmf_ros2/task_description_Clean.py | 6 +- .../rmf_ros2/task_description_Compose.py | 8 +- .../rmf_ros2/task_description_Patrol.py | 2 +- .../api_server/models/rmf_ros2/version.py | 2 +- .../builtin_interfaces/Duration.py | 15 +- .../ros_pydantic/builtin_interfaces/Time.py | 15 +- .../rmf_building_map_msgs/AffineImage.py | 30 +- .../rmf_building_map_msgs/BuildingMap.py | 20 +- .../rmf_building_map_msgs/Door.py | 35 +- .../GetBuildingMap_Request.py | 10 +- .../GetBuildingMap_Response.py | 14 +- .../rmf_building_map_msgs/Graph.py | 23 +- .../rmf_building_map_msgs/GraphEdge.py | 23 +- .../rmf_building_map_msgs/GraphNode.py | 23 +- .../rmf_building_map_msgs/Level.py | 32 +- .../rmf_building_map_msgs/Lift.py | 38 +- .../rmf_building_map_msgs/Param.py | 27 +- .../rmf_building_map_msgs/Place.py | 27 +- .../rmf_charger_msgs/ChargerCancel.py | 15 +- .../rmf_charger_msgs/ChargerRequest.py | 26 +- .../rmf_charger_msgs/ChargerState.py | 35 +- .../rmf_dispenser_msgs/DispenserRequest.py | 26 +- .../DispenserRequestItem.py | 18 +- .../rmf_dispenser_msgs/DispenserResult.py | 23 +- .../rmf_dispenser_msgs/DispenserState.py | 26 +- .../ros_pydantic/rmf_door_msgs/DoorMode.py | 12 +- .../ros_pydantic/rmf_door_msgs/DoorRequest.py | 23 +- .../rmf_door_msgs/DoorSessions.py | 17 +- .../ros_pydantic/rmf_door_msgs/DoorState.py | 20 +- .../ros_pydantic/rmf_door_msgs/Session.py | 17 +- .../rmf_door_msgs/SupervisorHeartbeat.py | 14 +- .../rmf_fleet_msgs/ClosedLanes.py | 17 +- .../rmf_fleet_msgs/DestinationRequest.py | 23 +- .../ros_pydantic/rmf_fleet_msgs/Dock.py | 17 +- .../rmf_fleet_msgs/DockParameter.py | 20 +- .../rmf_fleet_msgs/DockSummary.py | 14 +- .../ros_pydantic/rmf_fleet_msgs/FleetState.py | 17 +- .../rmf_fleet_msgs/LaneRequest.py | 22 +- .../rmf_fleet_msgs/LiftClearance_Request.py | 15 +- .../rmf_fleet_msgs/LiftClearance_Response.py | 12 +- .../ros_pydantic/rmf_fleet_msgs/Location.py | 35 +- .../rmf_fleet_msgs/ModeParameter.py | 15 +- .../rmf_fleet_msgs/ModeRequest.py | 26 +- .../rmf_fleet_msgs/PathRequest.py | 23 +- .../rmf_fleet_msgs/PauseRequest.py | 26 +- .../ros_pydantic/rmf_fleet_msgs/RobotMode.py | 17 +- .../ros_pydantic/rmf_fleet_msgs/RobotState.py | 35 +- .../rmf_ingestor_msgs/IngestorRequest.py | 26 +- .../rmf_ingestor_msgs/IngestorRequestItem.py | 18 +- .../rmf_ingestor_msgs/IngestorResult.py | 23 +- .../rmf_ingestor_msgs/IngestorState.py | 26 +- .../ros_pydantic/rmf_lift_msgs/LiftRequest.py | 29 +- .../ros_pydantic/rmf_lift_msgs/LiftState.py | 41 +- .../ros_pydantic/rmf_task_msgs/Behavior.py | 17 +- .../rmf_task_msgs/BehaviorParameter.py | 15 +- .../ros_pydantic/rmf_task_msgs/BidNotice.py | 17 +- .../ros_pydantic/rmf_task_msgs/BidProposal.py | 29 +- .../rmf_task_msgs/CancelTask_Request.py | 15 +- .../rmf_task_msgs/CancelTask_Response.py | 15 +- .../ros_pydantic/rmf_task_msgs/Clean.py | 12 +- .../ros_pydantic/rmf_task_msgs/Delivery.py | 35 +- .../ros_pydantic/rmf_task_msgs/DispatchAck.py | 19 +- .../rmf_task_msgs/DispatchRequest.py | 20 +- .../rmf_task_msgs/GetTaskList_Request.py | 15 +- .../rmf_task_msgs/GetTaskList_Response.py | 20 +- .../models/ros_pydantic/rmf_task_msgs/Loop.py | 24 +- .../ros_pydantic/rmf_task_msgs/Priority.py | 12 +- .../rmf_task_msgs/ReviveTask_Request.py | 15 +- .../rmf_task_msgs/ReviveTask_Response.py | 12 +- .../ros_pydantic/rmf_task_msgs/Station.py | 18 +- .../rmf_task_msgs/SubmitTask_Request.py | 17 +- .../rmf_task_msgs/SubmitTask_Response.py | 18 +- .../rmf_task_msgs/TaskDescription.py | 32 +- .../ros_pydantic/rmf_task_msgs/TaskProfile.py | 20 +- .../ros_pydantic/rmf_task_msgs/TaskSummary.py | 38 +- .../ros_pydantic/rmf_task_msgs/TaskType.py | 12 +- .../ros_pydantic/rmf_task_msgs/Tasks.py | 14 +- .../models/ros_pydantic/rmf_task_msgs/Tow.py | 30 +- .../api-server/api_server/models/tasks.py | 40 + .../models/tortoise_models/authorization.py | 6 +- .../models/tortoise_models/building_map.py | 2 +- .../models/tortoise_models/fleets.py | 6 +- .../models/tortoise_models/health.py | 8 +- .../models/tortoise_models/scheduled_task.py | 31 +- .../models/tortoise_models/tasks.py | 26 +- .../api_server/models/tortoise_models/user.py | 4 +- .../api_server/models/tortoise_support.py | 16 + packages/api-server/api_server/models/user.py | 12 +- .../api_server/repositories/fleets.py | 9 +- .../api-server/api_server/repositories/rmf.py | 6 +- .../api_server/repositories/tasks.py | 24 +- .../api_server/rmf_io/book_keeper.py | 20 +- .../api_server/rmf_io/operators/health.py | 2 + .../api_server/rmf_io/test_rmf_service.py | 4 +- packages/api-server/api_server/ros.py | 2 +- .../api-server/api_server/routes/admin.py | 2 +- .../api-server/api_server/routes/internal.py | 2 +- packages/api-server/api_server/routes/main.py | 2 +- .../api_server/routes/tasks/favorite_tasks.py | 44 +- .../routes/tasks/scheduled_tasks.py | 55 +- .../api_server/routes/tasks/tasks.py | 68 +- .../routes/tasks/test_favorite_tasks.py | 5 +- .../routes/tasks/test_scheduled_tasks.py | 2 +- .../api_server/routes/tasks/test_tasks.py | 71 +- .../api_server/routes/test_dispensers.py | 11 +- .../api_server/routes/test_doors.py | 6 +- .../api_server/routes/test_fleets.py | 64 +- .../api_server/routes/test_ingestors.py | 11 +- .../api_server/routes/test_lifts.py | 6 +- .../api_server/static/redoc.standalone.js | 2 +- .../api-server/api_server/test/test_data.py | 30 +- .../api_server/test/test_fixtures.py | 71 +- .../api-server/api_server/test/test_stress.py | 5 +- .../api-server/api_server/test_sio_auth.py | 1 - packages/api-server/generate-models.sh | 10 +- packages/api-server/package.json | 2 +- packages/api-server/scripts/test.py | 3 +- packages/api-server/setup.py | 16 +- packages/dashboard-e2e/package.json | 4 +- packages/dashboard/.gitignore | 2 + packages/dashboard/.storybook/main.js | 13 - packages/dashboard/.storybook/main.ts | 20 + packages/dashboard/.storybook/preview.js | 3 - packages/dashboard/.storybook/preview.ts | 14 + packages/dashboard/babel.config.js | 7 + packages/dashboard/config/env.js | 102 + packages/dashboard/config/getHttpsConfig.js | 60 + .../dashboard/config/jest/babelTransform.js | 29 + .../dashboard/config/jest/cssTransform.js | 14 + .../dashboard/config/jest/fileTransform.js | 40 + packages/dashboard/config/modules.js | 134 + packages/dashboard/config/paths.js | 75 + packages/dashboard/config/webpack.config.js | 695 + .../persistentCache/createEnvironmentHash.js | 9 + .../config/webpackDevServer.config.js | 126 + packages/dashboard/package.json | 187 +- packages/dashboard/scripts/build.js | 186 + packages/dashboard/scripts/start.js | 141 + .../admin/add-permission-dialog.stories.tsx | 7 +- .../admin/create-role-dialog.stories.tsx | 7 +- .../admin/create-user-dialog.stories.tsx | 7 +- .../admin/drawer.stories.tsx | 7 +- .../dashboard/src/components/admin/drawer.tsx | 2 +- .../admin/manage-roles-dialog.stories.tsx | 6 +- .../admin/permissions-card.stories.tsx | 6 +- .../admin/role-list-card.stories.tsx | 7 +- .../tests/add-permission-dialog.test.tsx | 13 +- .../admin/tests/create-role-dialog.test.tsx | 9 +- .../admin/tests/create-user-dialog.test.tsx | 9 +- .../admin/tests/manage-roles-dialog.test.tsx | 7 +- .../admin/tests/permissions-card.test.tsx | 4 +- .../admin/tests/role-list-card.test.tsx | 4 +- .../admin/tests/user-list-card.test.tsx | 10 +- .../admin/tests/user-profile.test.tsx | 4 +- .../admin/user-list-card.stories.tsx | 7 +- .../admin/user-profile.stories.tsx | 6 +- .../dashboard/src/components/alert-store.tsx | 2 +- .../dashboard/src/components/app-events.ts | 2 +- packages/dashboard/src/components/appbar.tsx | 2 +- .../dashboard/src/components/beacons-app.tsx | 2 +- .../dashboard/src/components/doors-app.tsx | 2 +- packages/dashboard/src/components/map-app.tsx | 15 +- .../src/components/rmf-app/rmf-ingress.ts | 9 +- .../src/components/robots/robot-info-app.tsx | 6 +- .../src/components/robots/robot-summary.tsx | 38 +- .../src/components/robots/robots-app.tsx | 9 +- .../src/components/tasks/task-alert.tsx | 26 +- .../src/components/tasks/task-logs.tsx | 31 +- .../components/tasks/task-schedule-utils.ts | 9 +- .../src/components/tasks/task-schedule.tsx | 5 +- .../src/components/tasks/task-summary.tsx | 34 +- .../dashboard/src/components/tasks/utils.ts | 2 +- .../src/components/tests/appbar.test.tsx | 14 +- .../src/components/tests/test-utils.tsx | 16 +- packages/dashboard/src/components/utils.ts | 3 +- .../__mocks__/robot-trajectory-manager.ts | 3 +- .../managers/negotiation-status-manager.ts | 2 +- .../managers/resource-manager-dispensers.ts | 2 +- .../src/managers/resource-manager-robots.ts | 4 +- .../tests/resource-manager-robots.test.ts | 6 +- packages/dashboard/src/react-app-env.d.ts | 74 +- packages/dashboard/src/setupTests.ts | 7 + .../src/util/common-subscriptions.ts | 10 +- packages/react-components/.eslintignore | 2 - packages/react-components/.eslintrc.js | 31 - packages/react-components/.gitignore | 2 + packages/react-components/.storybook/main.js | 23 - packages/react-components/.storybook/main.ts | 29 + .../react-components/.storybook/preview.tsx | 23 +- packages/react-components/jest.config.ts | 12 + packages/react-components/karma.conf.js | 144 - .../lib/Introduction.stories.mdx | 211 - .../lib/alert-dialog.spec.tsx | 19 +- .../lib/alert-dialog.stories.tsx | 6 +- .../react-components/lib/alert-dialog.tsx | 23 +- .../beacons/beacon-table-datagrid.stories.tsx | 27 +- .../lib/beacons/beacon-table-datagrid.tsx | 3 +- .../lib/beacons/test-utils.spec.ts | 2 +- .../lib/benchmarks/robots.stories.tsx | 115 - .../lib/benchmarks/trajectories.stories.tsx | 40 - .../lib/color-manager.spec.ts | 14 - .../lib/confirmation-dialog.spec.tsx | 4 +- .../lib/confirmation-dialog.stories.tsx | 6 +- .../lib/design-decisions.stories.tsx | 27 - .../lib/doors/door-card.stories.tsx | 8 +- .../lib/doors/door-table-datagrid.spec.tsx | 1 + .../lib/doors/door-table-datagrid.stories.tsx | 14 +- .../lib/doors/door-table-datagrid.tsx | 1 + .../lib/doors/test-utils.spec.ts | 3 +- .../lib/error-overlay.stories.tsx | 6 +- .../react-components/lib/form-inputs.spec.tsx | 4 +- .../react-components/lib/header-bar.spec.tsx | 2 +- .../lib/header-bar.stories.tsx | 8 +- .../lib/info-card.stories.tsx | 8 +- .../lib/lifts/lift-card.stories.tsx | 8 +- .../lib/lifts/lift-request-dialog.spec.tsx | 13 +- .../lib/lifts/lift-table-datagrid.spec.tsx | 1 + .../lib/lifts/lift-table-datagrid.stories.tsx | 23 +- .../lib/lifts/lift-table-datagrid.tsx | 1 + .../react-components/lib/loading.stories.tsx | 6 +- packages/react-components/lib/locale.tsx | 2 +- .../react-components/lib/logo-button.spec.tsx | 2 +- .../lib/logo-button.stories.tsx | 6 +- .../lib/map/door-marker.spec.tsx | 56 - .../lib/map/door-markers.stories.tsx | 24 +- .../lib/map/entity-manager.spec.ts | 30 - .../lib/map/label-marker.spec.tsx | 14 - .../lib/map/label-marker.stories.tsx | 6 +- .../lib/map/lift-marker.spec.tsx | 106 - .../lib/map/lift-marker.stories.tsx | 14 +- .../lib/map/robot-marker.spec.tsx | 65 - .../lib/map/robot-markers.stories.tsx | 6 +- .../lib/map/test-utils.spec.tsx | 666 - .../lib/map/three-fiber/circle-shape.spec.tsx | 42 - .../lib/map/three-fiber/cube-marker.spec.tsx | 27 - .../three-fiber/robot-three-maker.spec.tsx | 29 - .../shape-three-rendering.spec.tsx | 30 - .../map/three-fiber/shape-three-rendering.tsx | 4 +- .../lib/map/three-fiber/text-maker.spec.tsx | 11 - .../lib/map/trajectory-marker.spec.tsx | 13 - .../lib/map/trajectory-marker.stories.tsx | 35 - .../lib/map/waypoint-marker.spec.tsx | 13 - .../lib/map/waypoint-markers.stories.tsx | 6 +- .../react-components/lib/map/with-label.tsx | 2 +- .../lib/map/workcell-marker.spec.tsx | 25 - .../lib/map/workcell-marker.stories.tsx | 8 +- .../lib/navigation-bar.spec.tsx | 2 +- .../react-components/lib/navigation-bar.tsx | 2 +- .../robots/circular-progress-bar.stories.tsx | 6 +- .../robots/linear-progress-bar.stories.tsx | 6 +- .../lib/robots/robot-info.spec.tsx | 2 +- .../lib/robots/robot-info.stories.tsx | 6 +- .../lib/robots/robot-info.tsx | 2 +- .../lib/robots/robot-table-datagrid.spec.tsx | 12 +- .../robots/robot-table-datagrid.stories.tsx | 12 +- .../lib/robots/robot-table-datagrid.tsx | 9 +- .../lib/robots/robot-table.spec.tsx | 12 +- .../lib/robots/robot-table.stories.tsx | 24 +- .../lib/robots/robot-table.tsx | 6 - packages/react-components/lib/robots/utils.ts | 18 +- .../lib/simple-filter.spec.tsx | 12 +- .../lib/simple-filter.stories.tsx | 6 +- .../lib/stack-navigator.spec.ts | 39 +- .../lib/tasks/create-task.spec.tsx | 66 +- .../lib/tasks/create-task.stories.tsx | 10 +- .../lib/tasks/task-info.stories.tsx | 6 +- .../lib/tasks/task-logs.spec.tsx | 4 +- .../lib/tasks/task-logs.stories.tsx | 6 +- ...-schedule-event-edit-delete-popup.spec.tsx | 2 +- .../lib/tasks/task-table-datagrid.spec.tsx | 5 +- .../lib/tasks/task-table-datagrid.tsx | 13 +- .../lib/tasks/task-table.spec.tsx | 4 +- .../lib/tasks/task-table.stories.tsx | 6 +- .../react-components/lib/tasks/task-table.tsx | 12 +- .../lib/tasks/task-timeline.spec.tsx | 12 +- .../lib/tasks/task-timeline.stories.tsx | 6 +- .../lib/tasks/task-timeline.tsx | 33 +- .../lib/themes/theme.stories.tsx | 6 +- .../react-components/lib/tooltip.stories.tsx | 6 +- .../lib/transfer-list.spec.tsx | 10 +- .../lib/transfer-list.stories.tsx | 6 +- .../react-components/lib/use-async.spec.ts | 14 +- .../react-components/lib/utils/misc.spec.ts | 4 +- .../lib/window/demo.stories.tsx | 6 +- .../lib/window/window-toolbar.stories.tsx | 6 +- .../lib/window/window.spec.tsx | 20 - .../lib/workcells/workcell-panel.stories.tsx | 6 +- .../lib/workcells/workcell-table.tsx | 157 +- packages/react-components/package.json | 110 +- packages/react-components/tsconfig.json | 3 +- packages/react-components/webpack.config.js | 92 - packages/rmf-auth/.eslintrc.js | 11 - packages/rmf-auth/.gitignore | 3 +- packages/rmf-auth/.storybook/main.js | 19 - packages/rmf-auth/.storybook/main.ts | 30 + packages/rmf-auth/.storybook/preview.ts | 14 + packages/rmf-auth/.storybook/preview.tsx | 26 - .../rmf-auth/lib/components/login.stories.tsx | 9 +- packages/rmf-auth/package.json | 58 +- packages/rmf-models/package.json | 2 +- packages/ros-translator/.pylintrc | 600 - packages/ros-translator/package.json | 2 +- .../ros_translator/pydantic/__init__.py | 26 +- .../ros_translator/pydantic/msg.j2 | 18 +- .../ros_translator/typescript/.pylintrc | 631 - pnpm-lock.yaml | 18367 ++++++++-------- scripts/base.pylintrc | 600 - scripts/generate-pylintrc.js | 20 - 379 files changed, 18120 insertions(+), 20540 deletions(-) delete mode 100644 .eslintrc.js create mode 100644 eslint.config.js delete mode 100644 packages/api-client/openapi-generator.json create mode 100644 packages/api-client/openapitools.json delete mode 100644 packages/api-server/.pylintrc create mode 100644 packages/api-server/api_server/fast_io/pydantic_json_serializer.py create mode 100644 packages/api-server/api_server/models/rmf_api/rtls_tag_state.py create mode 100644 packages/api-server/api_server/models/rmf_api/transformation_2D.py create mode 100644 packages/api-server/api_server/models/tasks.py create mode 100644 packages/api-server/api_server/models/tortoise_support.py delete mode 100644 packages/dashboard/.storybook/main.js create mode 100644 packages/dashboard/.storybook/main.ts delete mode 100644 packages/dashboard/.storybook/preview.js create mode 100644 packages/dashboard/.storybook/preview.ts create mode 100644 packages/dashboard/babel.config.js create mode 100644 packages/dashboard/config/env.js create mode 100644 packages/dashboard/config/getHttpsConfig.js create mode 100644 packages/dashboard/config/jest/babelTransform.js create mode 100644 packages/dashboard/config/jest/cssTransform.js create mode 100644 packages/dashboard/config/jest/fileTransform.js create mode 100644 packages/dashboard/config/modules.js create mode 100644 packages/dashboard/config/paths.js create mode 100644 packages/dashboard/config/webpack.config.js create mode 100644 packages/dashboard/config/webpack/persistentCache/createEnvironmentHash.js create mode 100644 packages/dashboard/config/webpackDevServer.config.js create mode 100644 packages/dashboard/scripts/build.js create mode 100644 packages/dashboard/scripts/start.js rename packages/dashboard/src/{stories => components}/admin/add-permission-dialog.stories.tsx (73%) rename packages/dashboard/src/{stories => components}/admin/create-role-dialog.stories.tsx (71%) rename packages/dashboard/src/{stories => components}/admin/create-user-dialog.stories.tsx (71%) rename packages/dashboard/src/{stories => components}/admin/drawer.stories.tsx (67%) rename packages/dashboard/src/{stories => components}/admin/manage-roles-dialog.stories.tsx (84%) rename packages/dashboard/src/{stories => components}/admin/permissions-card.stories.tsx (82%) rename packages/dashboard/src/{stories => components}/admin/role-list-card.stories.tsx (85%) rename packages/dashboard/src/{stories => components}/admin/user-list-card.stories.tsx (85%) rename packages/dashboard/src/{stories => components}/admin/user-profile.stories.tsx (84%) delete mode 100644 packages/react-components/.eslintignore delete mode 100644 packages/react-components/.eslintrc.js delete mode 100644 packages/react-components/.storybook/main.js create mode 100644 packages/react-components/.storybook/main.ts create mode 100644 packages/react-components/jest.config.ts delete mode 100644 packages/react-components/karma.conf.js delete mode 100644 packages/react-components/lib/Introduction.stories.mdx delete mode 100644 packages/react-components/lib/benchmarks/robots.stories.tsx delete mode 100644 packages/react-components/lib/benchmarks/trajectories.stories.tsx delete mode 100644 packages/react-components/lib/design-decisions.stories.tsx delete mode 100644 packages/react-components/lib/map/door-marker.spec.tsx delete mode 100644 packages/react-components/lib/map/entity-manager.spec.ts delete mode 100644 packages/react-components/lib/map/label-marker.spec.tsx delete mode 100644 packages/react-components/lib/map/lift-marker.spec.tsx delete mode 100644 packages/react-components/lib/map/robot-marker.spec.tsx delete mode 100644 packages/react-components/lib/map/test-utils.spec.tsx delete mode 100644 packages/react-components/lib/map/three-fiber/circle-shape.spec.tsx delete mode 100644 packages/react-components/lib/map/three-fiber/cube-marker.spec.tsx delete mode 100644 packages/react-components/lib/map/three-fiber/robot-three-maker.spec.tsx delete mode 100644 packages/react-components/lib/map/three-fiber/shape-three-rendering.spec.tsx delete mode 100644 packages/react-components/lib/map/three-fiber/text-maker.spec.tsx delete mode 100644 packages/react-components/lib/map/trajectory-marker.spec.tsx delete mode 100644 packages/react-components/lib/map/trajectory-marker.stories.tsx delete mode 100644 packages/react-components/lib/map/waypoint-marker.spec.tsx delete mode 100644 packages/react-components/lib/map/workcell-marker.spec.tsx delete mode 100644 packages/react-components/lib/window/window.spec.tsx delete mode 100644 packages/react-components/webpack.config.js delete mode 100644 packages/rmf-auth/.eslintrc.js delete mode 100644 packages/rmf-auth/.storybook/main.js create mode 100644 packages/rmf-auth/.storybook/main.ts create mode 100644 packages/rmf-auth/.storybook/preview.ts delete mode 100644 packages/rmf-auth/.storybook/preview.tsx delete mode 100644 packages/ros-translator/.pylintrc delete mode 100644 packages/ros-translator/ros_translator/typescript/.pylintrc delete mode 100644 scripts/base.pylintrc delete mode 100644 scripts/generate-pylintrc.js diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index e88b389ca..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,51 +0,0 @@ -module.exports = { - env: { - node: true, - es2021: true, - }, - extends: ['eslint:recommended'], - ignorePatterns: ['*.d.ts'], - overrides: [ - { - files: ['*.ts', '*.tsx'], - extends: ['plugin:@typescript-eslint/recommended'], - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], - rules: { - '@typescript-eslint/ban-types': ['error', { types: { '{}': false }, extendDefaults: true }], - }, - }, - { - files: ['*.tsx'], - env: { - browser: true, - es2021: true, - }, - extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'], - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 12, - sourceType: 'module', - }, - plugins: ['react'], - settings: { - react: { - version: 'detect', - }, - }, - rules: { - 'react/display-name': 'off', - 'react/prop-types': 'off', - }, - }, - { - files: ['*.test.ts', '*.test.tsx', '*.spec.ts', '*.spec.tsx'], - rules: { - // null assertions is often useful in tests - '@typescript-eslint/no-non-null-assertion': 'off', - }, - }, - ], -}; diff --git a/.github/actions/bootstrap/action.yml b/.github/actions/bootstrap/action.yml index 81425f590..48473eb2e 100644 --- a/.github/actions/bootstrap/action.yml +++ b/.github/actions/bootstrap/action.yml @@ -16,7 +16,7 @@ runs: version: 'latest' - uses: actions/setup-node@v2 with: - node-version: '16' + node-version: '20' cache: 'pnpm' - name: Install pipenv run: pip3 install pipenv diff --git a/.github/workflows/api-server.yml b/.github/workflows/api-server.yml index fb0a60e20..045f03654 100644 --- a/.github/workflows/api-server.yml +++ b/.github/workflows/api-server.yml @@ -35,7 +35,7 @@ jobs: run: | . /rmf_demos_ws/install/setup.bash pnpm run lint - pnpm run test:cov + pnpm run test:cov -v pipenv run python -m coverage xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 diff --git a/.husky/pre-commit b/.husky/pre-commit index 58b1861cc..5ee7abd87 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - pnpm exec lint-staged diff --git a/.pylintrc b/.pylintrc index 4cc9f477f..eb57fc54f 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,27 +1,77 @@ -[MASTER] +[MAIN] + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + +# Clear in-memory caches upon conclusion of linting. Useful if running pylint +# in a server-like mode. +clear-cache-post-run=no + +# Load and enable all available extensions. Use --list-extensions to see a list +# all available extensions. +#enable-all-extensions= + +# In error mode, messages with a category besides ERROR or FATAL are +# suppressed, and no reports are done by default. Error mode is compatible with +# disabling specific errors. +#errors-only= + +# Always return a 0 (non-error) status code, even if lint errors are found. +# This is primarily useful in continuous integration scripts. +#exit-zero= # A comma-separated list of package or module names from where C extensions may # be loaded. Extensions are loading into the active Python interpreter and may # run arbitrary code. -extension-pkg-whitelist=pydantic +extension-pkg-allow-list= + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code. (This is an alternative name to extension-pkg-allow-list +# for backward compatibility.) +extension-pkg-whitelist= -# Specify a score threshold to be exceeded before program exits with error. -fail-under=10.0 +# Return non-zero exit code if any of these messages/categories are detected, +# even if score is above --fail-under value. Syntax same as enable. Messages +# specified are enabled, while categories only check already-enabled messages. +fail-on= -# Add files or directories to the blacklist. They should be base names, not -# paths. +# Specify a score threshold under which the program will exit with error. +fail-under=10 + +# Interpret the stdin as a python script, whose filename needs to be passed as +# the module_or_package argument. +#from-stdin= + +# Files or directories to be skipped. They should be base names, not paths. ignore=CVS -# Add files or directories matching the regex patterns to the blacklist. The -# regex matches against base names, not paths. -ignore-patterns= +# Add files or directories matching the regular expressions patterns to the +# ignore-list. The regex matches against paths and can be in Posix or Windows +# format. Because '\\' represents the directory delimiter on Windows systems, +# it can't be used as an escape character. +ignore-paths= + +# Files or directories matching the regular expression patterns are skipped. +# The regex matches against base names, not paths. The default value ignores +# Emacs file locks +ignore-patterns=^\.# + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis). It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= # Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the -# number of processors available to use. +# number of processors available to use, and will cap the count on Windows to +# avoid hangs. jobs=1 # Control the amount of potential inferred values when inferring a single @@ -36,6 +86,19 @@ load-plugins= # Pickle collected data for later comparisons. persistent=yes +# Minimum Python version to use for version dependent checks. Will default to +# the version used to run pylint. +py-version=3.10 + +# Discover python modules and packages in the file system subtree. +recursive=no + +# Add paths to the list of the source roots. Supports globbing patterns. The +# source root is an absolute path or a path relative to the current working +# directory used to determine a package namespace for modules located under the +# source root. +source-roots= + # When enabled, pylint would attempt to guess common misconfiguration and emit # user-friendly hints instead of false-positive error messages. suggestion-mode=yes @@ -44,222 +107,8 @@ suggestion-mode=yes # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no - -[MESSAGES CONTROL] - -# Only show warnings with the listed confidence levels. Leave empty to show -# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. -confidence= - -# Disable the message, report, category or checker with the given id(s). You -# can either give multiple identifiers separated by comma (,) or put this -# option multiple times (only on the command line, not in the configuration -# file where it should appear only once). You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if -# you want to run only the similarities checker, you can use "--disable=all -# --enable=similarities". If you want to run only the classes checker, but have -# no Warning level messages displayed, use "--disable=all --enable=classes -# --disable=W". -disable=print-statement, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - use-symbolic-message-instead, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, - deprecated-operator-function, - deprecated-urllib-function, - xreadlines-attribute, - deprecated-sys-function, - exception-escape, - comprehension-escape, - -# added disables - design, - similarities, - invalid-name, - missing-module-docstring, - missing-class-docstring, - missing-function-docstring, - attribute-defined-outside-init, - fixme, - logging-fstring-interpolation, - line-too-long, - -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). See also the "--disable" option for examples. -enable=c-extension-no-member - - -[REPORTS] - -# Python expression which should return a score less than or equal to 10. You -# have access to the variables 'error', 'warning', 'refactor', and 'convention' -# which contain the number of messages in each category, as well as 'statement' -# which is the total number of statements analyzed. This score is used by the -# global evaluation report (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details. -#msg-template= - -# Set the output format. Available formats are text, parseable, colorized, json -# and msvs (visual studio). You can also give a reporter class, e.g. -# mypackage.mymodule.MyReporterClass. -output-format=text - -# Tells whether to display a full report or only the messages. -reports=no - -# Activate the evaluation score. -score=yes - - -[REFACTORING] - -# Maximum number of nested blocks for function / method body -max-nested-blocks=5 - -# Complete name of functions that never returns. When checking for -# inconsistent-return-statements if a never returning function is called then -# it will be considered as an explicit return statement and no message will be -# printed. -never-returning-functions=sys.exit - - -[LOGGING] - -# The type of string formatting that logging methods do. `old` means using % -# formatting, `new` is for `{}` formatting. -logging-format-style=old - -# Logging modules to check that the string format arguments are in logging -# function parameter format. -logging-modules=logging - - -[TYPECHECK] - -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators=contextlib.contextmanager - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -generated-members= - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# Tells whether to warn about missing members when the owner of the attribute -# is inferred to be None. -ignore-none=yes - -# This flag controls whether pylint should warn about no-member and similar -# checks whenever an opaque object is returned when inferring. The inference -# can return multiple potential results while evaluating a Python object, but -# some branches might not be evaluated, which results in partial inference. In -# that case, it might be useful to still emit no-member and other checks for -# the rest of the inferred objects. -ignore-on-opaque-inference=yes - -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes=optparse.Values,thread._local,_thread._local - -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis). It -# supports qualified module names, as well as Unix pattern matching. -ignored-modules= - -# Show a hint with possible names when a member name was not found. The aspect -# of finding the hint is based on edit distance. -missing-member-hint=yes - -# The minimum edit distance a name should have in order to be considered a -# similar match for a missing member name. -missing-member-hint-distance=1 - -# The total number of similar names that should be taken in consideration when -# showing a hint for a missing member. -missing-member-max-choices=1 - -# List of decorators that change the signature of a decorated function. -signature-mutators= +# In verbose mode, extra non-checker-related info will be displayed. +#verbose= [BASIC] @@ -268,13 +117,15 @@ signature-mutators= argument-naming-style=snake_case # Regular expression matching correct argument names. Overrides argument- -# naming-style. +# naming-style. If left empty, argument names will be checked with the set +# naming style. #argument-rgx= # Naming style matching correct attribute names. attr-naming-style=snake_case # Regular expression matching correct attribute names. Overrides attr-naming- +# style. If left empty, attribute names will be checked with the set naming # style. #attr-rgx= @@ -294,20 +145,30 @@ bad-names-rgxs= class-attribute-naming-style=any # Regular expression matching correct class attribute names. Overrides class- -# attribute-naming-style. +# attribute-naming-style. If left empty, class attribute names will be checked +# with the set naming style. #class-attribute-rgx= +# Naming style matching correct class constant names. +class-const-naming-style=UPPER_CASE + +# Regular expression matching correct class constant names. Overrides class- +# const-naming-style. If left empty, class constant names will be checked with +# the set naming style. +#class-const-rgx= + # Naming style matching correct class names. class-naming-style=PascalCase # Regular expression matching correct class names. Overrides class-naming- -# style. +# style. If left empty, class names will be checked with the set naming style. #class-rgx= # Naming style matching correct constant names. const-naming-style=UPPER_CASE # Regular expression matching correct constant names. Overrides const-naming- +# style. If left empty, constant names will be checked with the set naming # style. #const-rgx= @@ -319,7 +180,8 @@ docstring-min-length=-1 function-naming-style=snake_case # Regular expression matching correct function names. Overrides function- -# naming-style. +# naming-style. If left empty, function names will be checked with the set +# naming style. #function-rgx= # Good variable names which should always be accepted, separated by a comma. @@ -341,21 +203,22 @@ include-naming-hint=no inlinevar-naming-style=any # Regular expression matching correct inline iteration names. Overrides -# inlinevar-naming-style. +# inlinevar-naming-style. If left empty, inline iteration names will be checked +# with the set naming style. #inlinevar-rgx= # Naming style matching correct method names. method-naming-style=snake_case # Regular expression matching correct method names. Overrides method-naming- -# style. +# style. If left empty, method names will be checked with the set naming style. #method-rgx= # Naming style matching correct module names. module-naming-style=snake_case # Regular expression matching correct module names. Overrides module-naming- -# style. +# style. If left empty, module names will be checked with the set naming style. #module-rgx= # Colon-delimited sets of names that determine each other's naming style when @@ -371,14 +234,93 @@ no-docstring-rgx=^_ # These decorators are taken in consideration only for invalid-name. property-classes=abc.abstractproperty +# Regular expression matching correct type alias names. If left empty, type +# alias names will be checked with the set naming style. +#typealias-rgx= + +# Regular expression matching correct type variable names. If left empty, type +# variable names will be checked with the set naming style. +#typevar-rgx= + # Naming style matching correct variable names. variable-naming-style=snake_case # Regular expression matching correct variable names. Overrides variable- -# naming-style. +# naming-style. If left empty, variable names will be checked with the set +# naming style. #variable-rgx= +[CLASSES] + +# Warn about protected attribute access inside special methods +check-protected-access-in-special-methods=no + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp, + asyncSetUp, + __post_init__ + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict,_fields,_replace,_source,_make,os._exit + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=mcs + + +[DESIGN] + +# List of regular expressions of class ancestor names to ignore when counting +# public methods (see R0903) +exclude-too-few-public-methods= + +# List of qualified class names to ignore when counting class parents (see +# R0901) +ignored-parents= + +# Maximum number of arguments for function / method. +max-args=5 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Maximum number of boolean expressions in an if statement (see R0916). +max-bool-expr=5 + +# Maximum number of branch for function / method body. +max-branches=12 + +# Maximum number of locals for function / method body. +max-locals=15 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of return / yield for function / method body. +max-returns=6 + +# Maximum number of statements in function / method body. +max-statements=50 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when caught. +overgeneral-exceptions=builtins.BaseException,builtins.Exception + + [FORMAT] # Expected format of line ending, e.g. empty (any line ending), LF or CRLF. @@ -409,50 +351,111 @@ single-line-class-stmt=no single-line-if-stmt=no -[SIMILARITIES] +[IMPORTS] -# Ignore comments when computing similarities. -ignore-comments=yes +# List of modules that can be imported at any level, not just the top level +# one. +allow-any-import-level= -# Ignore docstrings when computing similarities. -ignore-docstrings=yes +# Allow explicit reexports by alias from a package __init__. +allow-reexport-from-package=no -# Ignore imports when computing similarities. -ignore-imports=no +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no -# Minimum lines number of a similarity. -min-similarity-lines=4 +# Deprecated modules which should not be used, separated by a comma. +deprecated-modules= +# Output a graph (.gv or any supported image format) of external dependencies +# to the given file (report RP0402 must not be disabled). +ext-import-graph= -[STRING] +# Output a graph (.gv or any supported image format) of all (i.e. internal and +# external) dependencies to the given file (report RP0402 must not be +# disabled). +import-graph= -# This flag controls whether inconsistent-quotes generates a warning when the -# character used as a quote delimiter is used inconsistently within a module. -check-quote-consistency=no +# Output a graph (.gv or any supported image format) of internal dependencies +# to the given file (report RP0402 must not be disabled). +int-import-graph= -# This flag controls whether the implicit-str-concat should generate a warning -# on implicit string concatenation in sequences defined over several lines. -check-str-concat-over-line-jumps=no +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant -[SPELLING] +# Couples of modules and preferred modules, separated by a comma. +preferred-modules= -# Limits count of emitted suggestions for spelling mistakes. -max-spelling-suggestions=4 -# Spelling dictionary name. Available dictionaries: none. To make it work, -# install the python-enchant package. -spelling-dict= +[LOGGING] -# List of comma separated words that should not be checked. -spelling-ignore-words= +# The type of string formatting that logging methods do. `old` means using % +# formatting, `new` is for `{}` formatting. +logging-format-style=old -# A path to a file that contains the private dictionary; one word per line. -spelling-private-dict-file= +# Logging modules to check that the string format arguments are in logging +# function parameter format. +logging-modules=logging -# Tells whether to store unknown words to the private dictionary (see the -# --spelling-private-dict-file option) instead of raising a message. -spelling-store-unknown-words=no + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE, +# UNDEFINED. +confidence=HIGH, + CONTROL_FLOW, + INFERENCE, + INFERENCE_FAILURE, + UNDEFINED + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once). You can also use "--disable=all" to +# disable everything first and then re-enable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use "--disable=all --enable=classes +# --disable=W". +disable=raw-checker-failed, + bad-inline-option, + locally-disabled, + file-ignored, + suppressed-message, + useless-suppression, + deprecated-pragma, + use-symbolic-message-instead, + use-implicit-booleaness-not-comparison-to-string, + use-implicit-booleaness-not-comparison-to-zero, + design, + similarities, + invalid-name, + missing-module-docstring, + missing-class-docstring, + missing-function-docstring, + attribute-defined-outside-init, + fixme, + logging-fstring-interpolation, + line-too-long, + global-statement, + unnecessary-dunder-call, + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable= + + +[METHOD_ARGS] + +# List of qualified names (i.e., library.method) which require a timeout +# parameter e.g. 'requests.api.get,requests.api.post' +timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request [MISCELLANEOUS] @@ -463,138 +466,186 @@ notes=FIXME, TODO # Regular expression of note tags to take in consideration. -#notes-rgx= +notes-rgx= -[VARIABLES] +[REFACTORING] -# List of additional names supposed to be defined in builtins. Remember that -# you should avoid defining new builtins when possible. -additional-builtins= +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 -# Tells whether unused global variables should be treated as a violation. -allow-global-unused-variables=yes +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit,argparse.parse_error -# List of strings which can identify a callback function by name. A callback -# name must start or end with one of those strings. -callbacks=cb_, - _cb +# Let 'consider-using-join' be raised when the separator to join on would be +# non-empty (resulting in expected fixes of the type: ``"- " + " - +# ".join(items)``) +suggest-join-with-non-empty-separator=yes -# A regular expression matching the name of dummy variables (i.e. expected to -# not be used). -dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ -# Argument names that match this expression will be ignored. Default to name -# with leading underscore. -ignored-argument-names=_.*|^ignored_|^unused_ +[REPORTS] -# Tells whether we should check for unused import in __init__ files. -init-import=no +# Python expression which should return a score less than or equal to 10. You +# have access to the variables 'fatal', 'error', 'warning', 'refactor', +# 'convention', and 'info' which contain the number of messages in each +# category, as well as 'statement' which is the total number of statements +# analyzed. This score is used by the global evaluation report (RP0004). +evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)) -# List of qualified module names which can have objects that can redefine -# builtins. -redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details. +msg-template= +# Set the output format. Available formats are: text, parseable, colorized, +# json2 (improved json format), json (old json format) and msvs (visual +# studio). You can also give a reporter class, e.g. +# mypackage.mymodule.MyReporterClass. +#output-format= -[IMPORTS] +# Tells whether to display a full report or only the messages. +reports=no -# List of modules that can be imported at any level, not just the top level -# one. -allow-any-import-level= +# Activate the evaluation score. +score=yes -# Allow wildcard imports from modules that define __all__. -allow-wildcard-with-all=no -# Analyse import fallback blocks. This can be used to support both Python 2 and -# 3 compatible code, which means that the block might have code that exists -# only in one or another interpreter, leading to false positives when analysed. -analyse-fallback-blocks=no +[SIMILARITIES] -# Deprecated modules which should not be used, separated by a comma. -deprecated-modules=optparse,tkinter.tix +# Comments are removed from the similarity computation +ignore-comments=yes -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled). -ext-import-graph= +# Docstrings are removed from the similarity computation +ignore-docstrings=yes -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled). -import-graph= +# Imports are removed from the similarity computation +ignore-imports=yes -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled). -int-import-graph= +# Signatures are removed from the similarity computation +ignore-signatures=yes -# Force import order to recognize a module as part of the standard -# compatibility libraries. -known-standard-library= +# Minimum lines number of a similarity. +min-similarity-lines=4 -# Force import order to recognize a module as part of a third party library. -known-third-party=enchant -# Couples of modules and preferred modules, separated by a comma. -preferred-modules= +[SPELLING] +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=4 -[DESIGN] +# Spelling dictionary name. No available dictionaries : You need to install +# both the python package and the system dependency for enchant to work. +spelling-dict= -# Maximum number of arguments for function / method. -max-args=5 +# List of comma separated words that should be considered directives if they +# appear at the beginning of a comment and should not be checked. +spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy: -# Maximum number of attributes for a class (see R0902). -max-attributes=7 +# List of comma separated words that should not be checked. +spelling-ignore-words= -# Maximum number of boolean expressions in an if statement (see R0916). -max-bool-expr=5 +# A path to a file that contains the private dictionary; one word per line. +spelling-private-dict-file= -# Maximum number of branch for function / method body. -max-branches=12 +# Tells whether to store unknown words to the private dictionary (see the +# --spelling-private-dict-file option) instead of raising a message. +spelling-store-unknown-words=no -# Maximum number of locals for function / method body. -max-locals=15 -# Maximum number of parents for a class (see R0901). -max-parents=7 +[STRING] -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 +# This flag controls whether inconsistent-quotes generates a warning when the +# character used as a quote delimiter is used inconsistently within a module. +check-quote-consistency=no -# Maximum number of return / yield for function / method body. -max-returns=6 +# This flag controls whether the implicit-str-concat should generate a warning +# on implicit string concatenation in sequences defined over several lines. +check-str-concat-over-line-jumps=no -# Maximum number of statements in function / method body. -max-statements=50 -# Minimum number of public methods for a class (see R0903). -min-public-methods=2 +[TYPECHECK] +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager -[CLASSES] +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__, - __new__, - setUp, - __post_init__ +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict, - _fields, - _replace, - _source, - _make +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg=cls +# List of symbolic message names to ignore for Mixin members. +ignored-checks-for-mixins=no-member, + not-async-context-manager, + not-context-manager, + attribute-defined-outside-init -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg=cls +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes -[EXCEPTIONS] +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 -# Exceptions that will emit a warning when being caught. Defaults to -# "BaseException, Exception". -overgeneral-exceptions=BaseException, - Exception +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 + +# Regex pattern to define which classes are considered mixins. +mixin-class-rgx=.*[Mm]ixin + +# List of decorators that change the signature of a decorated function. +signature-mutators= + + +[VARIABLES] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid defining new builtins when possible. +additional-builtins= + +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes + +# List of names allowed to shadow builtins +allowed-redefined-builtins= + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_, + _cb + +# A regular expression matching the name of dummy variables (i.e. expected to +# not be used). +dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ + +# Argument names that match this expression will be ignored. +ignored-argument-names=_.*|^ignored_|^unused_ + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io diff --git a/Pipfile b/Pipfile index 7a8e66320..42da6f72a 100644 --- a/Pipfile +++ b/Pipfile @@ -5,16 +5,15 @@ name = "pypi" [dev-packages] black = "==22.6.0" -isort = "~=5.8" -pylint = "==2.10.2" +isort = "==5.13.2" +pylint = "==3.1.0" coverage = "~=5.5" # api-server api-server = {editable = true, path = "./packages/api-server"} httpx = "~=0.26.0" -asyncpg = "~=0.25.0" -datamodel-code-generator = "==0.11.19" +datamodel-code-generator = "==0.25.4" requests = "~=2.25" -websocket-client = "~=1.2.3" +websocket-client = "~=1.7.0" # ros-translator ros-translator = {editable = true, path = "./packages/ros-translator"} diff --git a/Pipfile.lock b/Pipfile.lock index 431412c5a..7af923efb 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "ed96c413cc4942791c034f90cf34b2b774f5d48909217aea620b24fa0b394a81" + "sha256": "b7b6e862e5191aca7cc5e8c8eb25fc8c0428ab21a7094307abda965ac78f4c83" }, "pipfile-spec": 6, "requires": { @@ -19,11 +19,11 @@ "develop": { "aiofiles": { "hashes": [ - "sha256:7a973fc22b29e9962d0897805ace5856e6a566ab1f0c8e5c91ff6c866519c937", - "sha256:8334f23235248a3b2e83b2c3a78a22674f39969b96397126cc93664d9a901e59" + "sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107", + "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a" ], - "markers": "python_version >= '3.6' and python_version < '4.0'", - "version": "==0.8.0" + "markers": "python_version >= '3.7'", + "version": "==23.2.1" }, "aiosqlite": { "hashes": [ @@ -33,13 +33,21 @@ "markers": "python_version >= '3.6'", "version": "==0.17.0" }, + "annotated-types": { + "hashes": [ + "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43", + "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d" + ], + "markers": "python_version >= '3.8'", + "version": "==0.6.0" + }, "anyio": { "hashes": [ - "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee", - "sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f" + "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", + "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6" ], "markers": "python_version >= '3.8'", - "version": "==4.2.0" + "version": "==4.3.0" }, "api-server": { "editable": true, @@ -47,67 +55,27 @@ }, "argcomplete": { "hashes": [ - "sha256:4ba9cdaa28c361d251edce884cd50b4b1215d65cdc881bd204426cdde9f52731", - "sha256:fc82ef070c607b1559b5c720529d63b54d9dcf2dcfc2632b10e6372314a34457" + "sha256:bf7900329262e481be5a15f56f19736b376df6f82ed27576fa893652c5de6c23", + "sha256:c12355e0494c76a2a7b73e3a59b09024ca0ba1e279fb9ed6c1b82d5b74b6a70c" ], - "markers": "python_version >= '3.6'", - "version": "==2.1.2" + "markers": "python_version >= '3.8'", + "version": "==3.2.3" }, "astroid": { "hashes": [ - "sha256:3b680ce0419b8a771aba6190139a3998d14b413852506d99aff8dc2bf65ee67c", - "sha256:dc1e8b28427d6bbef6b8842b18765ab58f558c42bb80540bd7648c98412af25e" - ], - "markers": "python_version ~= '3.6'", - "version": "==2.7.3" - }, - "asyncpg": { - "hashes": [ - "sha256:0a61fb196ce4dae2f2fa26eb20a778db21bbee484d2e798cb3cc988de13bdd1b", - "sha256:18d49e2d93a7139a2fdbd113e320cc47075049997268a61bfbe0dde680c55471", - "sha256:191fe6341385b7fdea7dbdcf47fd6db3fd198827dcc1f2b228476d13c05a03c6", - "sha256:1a70783f6ffa34cc7dd2de20a873181414a34fd35a4a208a1f1a7f9f695e4ec4", - "sha256:2633331cbc8429030b4f20f712f8d0fbba57fa8555ee9b2f45f981b81328b256", - "sha256:2bc197fc4aca2fd24f60241057998124012469d2e414aed3f992579db0c88e3a", - "sha256:4327f691b1bdb222df27841938b3e04c14068166b3a97491bec2cb982f49f03e", - "sha256:43cde84e996a3afe75f325a68300093425c2f47d340c0fc8912765cf24a1c095", - "sha256:52fab7f1b2c29e187dd8781fce896249500cf055b63471ad66332e537e9b5f7e", - "sha256:56d88d7ef4341412cd9c68efba323a4519c916979ba91b95d4c08799d2ff0c09", - "sha256:5e4105f57ad1e8fbc8b1e535d8fcefa6ce6c71081228f08680c6dea24384ff0e", - "sha256:63f8e6a69733b285497c2855464a34de657f2cccd25aeaeeb5071872e9382540", - "sha256:649e2966d98cc48d0646d9a4e29abecd8b59d38d55c256d5c857f6b27b7407ac", - "sha256:6f8f5fc975246eda83da8031a14004b9197f510c41511018e7b1bedde6968e92", - "sha256:72a1e12ea0cf7c1e02794b697e3ca967b2360eaa2ce5d4bfdd8604ec2d6b774b", - "sha256:739bbd7f89a2b2f6bc44cb8bf967dab12c5bc714fcbe96e68d512be45ecdf962", - "sha256:863d36eba4a7caa853fd7d83fad5fd5306f050cc2fe6e54fbe10cdb30420e5e9", - "sha256:a738f1b2876f30d710d3dc1e7858160a0afe1603ba16bf5f391f5316eb0ed855", - "sha256:a84d30e6f850bac0876990bcd207362778e2208df0bee8be8da9f1558255e634", - "sha256:acb311722352152936e58a8ee3c5b8e791b24e84cd7d777c414ff05b3530ca68", - "sha256:beaecc52ad39614f6ca2e48c3ca15d56e24a2c15cbfdcb764a4320cc45f02fd5", - "sha256:bf5e3408a14a17d480f36ebaf0401a12ff6ae5457fdf45e4e2775c51cc9517d3", - "sha256:bf6dc9b55b9113f39eaa2057337ce3f9ef7de99a053b8a16360395ce588925cd", - "sha256:ddb4c3263a8d63dcde3d2c4ac1c25206bfeb31fa83bd70fd539e10f87739dee4", - "sha256:f55918ded7b85723a5eaeb34e86e7b9280d4474be67df853ab5a7fa0cc7c6bf2", - "sha256:fe471ccd915b739ca65e2e4dbd92a11b44a5b37f2e38f70827a1c147dafe0fa8" - ], - "index": "pypi", - "version": "==0.25.0" - }, - "attrs": { - "hashes": [ - "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30", - "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1" + "sha256:951798f922990137ac090c53af473db7ab4e70c770e6d7fae0cec59f74411819", + "sha256:ac248253bfa4bd924a0de213707e7ebeeb3138abeb48d798784ead1e56d419d4" ], - "markers": "python_version >= '3.7'", - "version": "==23.2.0" + "markers": "python_full_version >= '3.8.0'", + "version": "==3.1.0" }, "bidict": { "hashes": [ - "sha256:1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d", - "sha256:6ef212238eb884b664f28da76f33f1d28b260f665fc737b413b287d5487d1e7b" + "sha256:03069d763bc387bbd20e7d49914e75fc4132a41937fa3405417e1a5a2d006d71", + "sha256:5dae8d4d79b552a71cbabc7deb25dfe8ce710b17ff41711e13010ead2abfc3e5" ], - "markers": "python_version >= '3.7'", - "version": "==0.22.1" + "markers": "python_version >= '3.8'", + "version": "==0.23.1" }, "black": { "hashes": [ @@ -136,15 +104,16 @@ "sha256:f6fe02afde060bbeef044af7996f335fbe90b039ccf3f5eb8f16df8b20f77666" ], "index": "pypi", + "markers": "python_full_version >= '3.6.2'", "version": "==22.6.0" }, "certifi": { "hashes": [ - "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1", - "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474" + "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f", + "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1" ], "markers": "python_version >= '3.6'", - "version": "==2023.11.17" + "version": "==2024.2.2" }, "cffi": { "hashes": [ @@ -204,14 +173,6 @@ "markers": "platform_python_implementation != 'PyPy'", "version": "==1.16.0" }, - "chardet": { - "hashes": [ - "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa", - "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==4.0.0" - }, "charset-normalizer": { "hashes": [ "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", @@ -372,67 +333,77 @@ "sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6" ], "index": "pypi", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", "version": "==5.5" }, "cryptography": { "hashes": [ - "sha256:0a68bfcf57a6887818307600c3c0ebc3f62fbb6ccad2240aa21887cda1f8df1b", - "sha256:146e971e92a6dd042214b537a726c9750496128453146ab0ee8971a0299dc9bd", - "sha256:14e4b909373bc5bf1095311fa0f7fcabf2d1a160ca13f1e9e467be1ac4cbdf94", - "sha256:206aaf42e031b93f86ad60f9f5d9da1b09164f25488238ac1dc488334eb5e221", - "sha256:3005166a39b70c8b94455fdbe78d87a444da31ff70de3331cdec2c568cf25b7e", - "sha256:324721d93b998cb7367f1e6897370644751e5580ff9b370c0a50dc60a2003513", - "sha256:33588310b5c886dfb87dba5f013b8d27df7ffd31dc753775342a1e5ab139e59d", - "sha256:35cf6ed4c38f054478a9df14f03c1169bb14bd98f0b1705751079b25e1cb58bc", - "sha256:3ca482ea80626048975360c8e62be3ceb0f11803180b73163acd24bf014133a0", - "sha256:56ce0c106d5c3fec1038c3cca3d55ac320a5be1b44bf15116732d0bc716979a2", - "sha256:5a217bca51f3b91971400890905a9323ad805838ca3fa1e202a01844f485ee87", - "sha256:678cfa0d1e72ef41d48993a7be75a76b0725d29b820ff3cfd606a5b2b33fda01", - "sha256:69fd009a325cad6fbfd5b04c711a4da563c6c4854fc4c9544bff3088387c77c0", - "sha256:6cf9b76d6e93c62114bd19485e5cb003115c134cf9ce91f8ac924c44f8c8c3f4", - "sha256:74f18a4c8ca04134d2052a140322002fef535c99cdbc2a6afc18a8024d5c9d5b", - "sha256:85f759ed59ffd1d0baad296e72780aa62ff8a71f94dc1ab340386a1207d0ea81", - "sha256:87086eae86a700307b544625e3ba11cc600c3c0ef8ab97b0fda0705d6db3d4e3", - "sha256:8814722cffcfd1fbd91edd9f3451b88a8f26a5fd41b28c1c9193949d1c689dc4", - "sha256:8fedec73d590fd30c4e3f0d0f4bc961aeca8390c72f3eaa1a0874d180e868ddf", - "sha256:9515ea7f596c8092fdc9902627e51b23a75daa2c7815ed5aa8cf4f07469212ec", - "sha256:988b738f56c665366b1e4bfd9045c3efae89ee366ca3839cd5af53eaa1401bce", - "sha256:a2a8d873667e4fd2f34aedab02ba500b824692c6542e017075a2efc38f60a4c0", - "sha256:bd7cf7a8d9f34cc67220f1195884151426ce616fdc8285df9054bfa10135925f", - "sha256:bdce70e562c69bb089523e75ef1d9625b7417c6297a76ac27b1b8b1eb51b7d0f", - "sha256:be14b31eb3a293fc6e6aa2807c8a3224c71426f7c4e3639ccf1a2f3ffd6df8c3", - "sha256:be41b0c7366e5549265adf2145135dca107718fa44b6e418dc7499cfff6b4689", - "sha256:c310767268d88803b653fffe6d6f2f17bb9d49ffceb8d70aed50ad45ea49ab08", - "sha256:c58115384bdcfe9c7f644c72f10f6f42bed7cf59f7b52fe1bf7ae0a622b3a139", - "sha256:c640b0ef54138fde761ec99a6c7dc4ce05e80420262c20fa239e694ca371d434", - "sha256:ca20550bb590db16223eb9ccc5852335b48b8f597e2f6f0878bbfd9e7314eb17", - "sha256:d97aae66b7de41cdf5b12087b5509e4e9805ed6f562406dfcf60e8481a9a28f8", - "sha256:e9326ca78111e4c645f7e49cbce4ed2f3f85e17b61a563328c85a5208cf34440" - ], - "version": "==42.0.0" + "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee", + "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576", + "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d", + "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30", + "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413", + "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb", + "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da", + "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4", + "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd", + "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc", + "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8", + "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1", + "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc", + "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e", + "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8", + "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940", + "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400", + "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7", + "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16", + "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278", + "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74", + "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec", + "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1", + "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2", + "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c", + "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922", + "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a", + "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6", + "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1", + "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e", + "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac", + "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7" + ], + "version": "==42.0.5" }, "datamodel-code-generator": { "hashes": [ - "sha256:26a62a1f99c7c8148b808e3e67e82c762cc9f7bbe036fb4c2798352460d68e38", - "sha256:39874c017bbedc5fc9b93c332f3f213d299c9af2995e3870aaa2db8a661098e2" + "sha256:8e64c94a3bc92c69a6f56de84f0d61f70fd65c2e0ac95a27ce66837bd04c5492", + "sha256:cbf179517c610dce81589203d72b52e6ab848d78cb57264c1e5d929a9cc9d9a4" ], "index": "pypi", - "version": "==0.11.19" + "markers": "python_version >= '3.7' and python_version < '4.0'", + "version": "==0.25.4" + }, + "dill": { + "hashes": [ + "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca", + "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7" + ], + "markers": "python_version < '3.11'", + "version": "==0.3.8" }, "dnspython": { "hashes": [ - "sha256:6facdf76b73c742ccf2d07add296f178e629da60be23ce4b0a9c927b1e02c3a6", - "sha256:a0034815a59ba9ae888946be7ccca8f7c157b286f8455b379c692efb51022a15" + "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50", + "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc" ], "markers": "python_version >= '3.8'", - "version": "==2.5.0" + "version": "==2.6.1" }, "email-validator": { "hashes": [ - "sha256:a4b0bd1cf55f073b924258d19321b1f3aa74b4b5a71a42c305575dba920e1a44", - "sha256:c973053efbeddfef924dc0bd93f6e77a1ea7ee0fce935aea7103c7a3d6d2d637" + "sha256:200a70680ba08904be6d1eef729205cc0d687634399a5924d842533efb824b84", + "sha256:97d882d174e2a65732fb43bfce81a3a834cbc1bde8bf419e30ef5ea976370a05" ], - "version": "==2.1.0.post1" + "version": "==2.1.1" }, "exceptiongroup": { "hashes": [ @@ -444,11 +415,11 @@ }, "fastapi": { "hashes": [ - "sha256:8c77515984cd8e8cfeb58364f8cc7a28f0692088475e2614f7bf03275eba9093", - "sha256:b978095b9ee01a5cf49b19f4bc1ac9b8ca83aa076e770ef8fd9af09a2b88d191" + "sha256:2c9bab24667293b501cad8dd388c05240c850b58ec5876ee3283c47d6e1e3a4d", + "sha256:f3817eac96fe4f65a2ebb4baa000f394e55f5fccdaf7f75250804bc58f354f73" ], "markers": "python_version >= '3.8'", - "version": "==0.109.0" + "version": "==0.109.2" }, "genson": { "hashes": [ @@ -466,11 +437,11 @@ }, "httpcore": { "hashes": [ - "sha256:096cc05bca73b8e459a1fc3dcf585148f63e534eae4339559c9b8a8d6399acc7", - "sha256:9fc092e4799b26174648e54b74ed5f683132a464e95643b226e00c2ed2fa6535" + "sha256:ac418c1db41bade2ad53ae2f3834a3a0f5ae76b56cf5aa497d2d033384fc7d73", + "sha256:cb2839ccfcba0d2d3c1131d3c3e26dfc327326fbe7a5dc0dbfe9f6c9151bb022" ], "markers": "python_version >= '3.8'", - "version": "==1.0.2" + "version": "==1.0.4" }, "httptools": { "hashes": [ @@ -519,6 +490,7 @@ "sha256:8915f5a3627c4d47b73e8202457cb28f1266982d1159bd5779d86a80c0eab1cd" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==0.26.0" }, "idna": { @@ -539,18 +511,11 @@ }, "iso8601": { "hashes": [ - "sha256:36532f77cc800594e8f16641edae7f1baf7932f05d8e508545b95fc53c6dc85b", - "sha256:906714829fedbc89955d52806c903f2332e3948ed94e31e85037f9e0226b8376" + "sha256:32811e7b81deee2063ea6d2e94f8819a86d1f3811e49d23623a41fa832bef03f", + "sha256:8400e90141bf792bce2634df533dc57e3bee19ea120a87bebcd3da89a58ad73f" ], "markers": "python_version < '4.0' and python_full_version >= '3.6.2'", - "version": "==0.1.16" - }, - "isodate": { - "hashes": [ - "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96", - "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9" - ], - "version": "==0.6.1" + "version": "==1.1.0" }, "isort": { "hashes": [ @@ -558,6 +523,7 @@ "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6" ], "index": "pypi", + "markers": "python_full_version >= '3.8.0'", "version": "==5.13.2" }, "jinja2": { @@ -568,128 +534,79 @@ "markers": "python_version >= '3.7'", "version": "==3.1.3" }, - "jsonschema": { - "hashes": [ - "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163", - "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a" - ], - "version": "==3.2.0" - }, - "lazy-object-proxy": { - "hashes": [ - "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56", - "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4", - "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8", - "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282", - "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757", - "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424", - "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b", - "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255", - "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70", - "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94", - "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074", - "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c", - "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee", - "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9", - "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9", - "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69", - "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f", - "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3", - "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9", - "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d", - "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977", - "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b", - "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43", - "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658", - "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a", - "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd", - "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83", - "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4", - "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696", - "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05", - "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3", - "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6", - "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895", - "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4", - "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba", - "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03", - "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c" - ], - "markers": "python_version >= '3.8'", - "version": "==1.10.0" - }, "markupsafe": { "hashes": [ - "sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69", - "sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0", - "sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d", - "sha256:15866d7f2dc60cfdde12ebb4e75e41be862348b4728300c36cdf405e258415ec", - "sha256:1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5", - "sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411", - "sha256:23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3", - "sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74", - "sha256:3583a3a3ab7958e354dc1d25be74aee6228938312ee875a22330c4dc2e41beb0", - "sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949", - "sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d", - "sha256:3a66c36a3864df95e4f62f9167c734b3b1192cb0851b43d7cc08040c074c6279", - "sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f", - "sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6", - "sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc", - "sha256:49a3b78a5af63ec10d8604180380c13dcd870aba7928c1fe04e881d5c792dc4e", - "sha256:4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954", - "sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656", - "sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc", - "sha256:54635102ba3cf5da26eb6f96c4b8c53af8a9c0d97b64bdcb592596a6255d8518", - "sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56", - "sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc", - "sha256:698e84142f3f884114ea8cf83e7a67ca8f4ace8454e78fe960646c6c91c63bfa", - "sha256:6aa5e2e7fc9bc042ae82d8b79d795b9a62bd8f15ba1e7594e3db243f158b5565", - "sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4", - "sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb", - "sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250", - "sha256:7a07f40ef8f0fbc5ef1000d0c78771f4d5ca03b4953fc162749772916b298fc4", - "sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959", - "sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc", - "sha256:9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474", - "sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863", - "sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8", - "sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f", - "sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2", - "sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e", - "sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e", - "sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb", - "sha256:b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f", - "sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a", - "sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26", - "sha256:b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d", - "sha256:bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2", - "sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131", - "sha256:c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789", - "sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6", - "sha256:d18b66fe626ac412d96c2ab536306c736c66cf2a31c243a45025156cc190dc8a", - "sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858", - "sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e", - "sha256:d6e427c7378c7f1b2bef6a344c925b8b63623d3321c09a237b7cc0e77dd98ceb", - "sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e", - "sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84", - "sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7", - "sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea", - "sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b", - "sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6", - "sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475", - "sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74", - "sha256:fc1a75aa8f11b87910ffd98de62b29d6520b6d6e8a3de69a70ca34dea85d2a8a", - "sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00" + "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf", + "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff", + "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f", + "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3", + "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532", + "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f", + "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617", + "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df", + "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4", + "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906", + "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f", + "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", + "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8", + "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371", + "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2", + "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465", + "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52", + "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6", + "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", + "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad", + "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2", + "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0", + "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029", + "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f", + "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a", + "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced", + "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5", + "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c", + "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf", + "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9", + "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", + "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad", + "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3", + "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", + "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46", + "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc", + "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a", + "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", + "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900", + "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5", + "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea", + "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", + "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5", + "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e", + "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a", + "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f", + "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50", + "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", + "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", + "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4", + "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff", + "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2", + "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46", + "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", + "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf", + "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", + "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5", + "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab", + "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd", + "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68" ], "markers": "python_version >= '3.7'", - "version": "==2.1.4" + "version": "==2.1.5" }, "mccabe": { "hashes": [ - "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", - "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", + "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" ], - "version": "==0.6.1" + "markers": "python_version >= '3.6'", + "version": "==0.7.0" }, "mypy-extensions": { "hashes": [ @@ -699,30 +616,13 @@ "markers": "python_version >= '3.5'", "version": "==1.0.0" }, - "openapi-schema-validator": { - "hashes": [ - "sha256:230db361c71a5b08b25ec926797ac8b59a8f499bbd7316bd15b6cd0fc9aea5df", - "sha256:8ef097b78c191c89d9a12cdf3d311b2ecf9d3b80bbe8610dbc67a812205a6a8d", - "sha256:af023ae0d16372cf8dd0d128c9f3eaa080dc3cd5dfc69e6a247579f25bd10503" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.1.6" - }, - "openapi-spec-validator": { - "hashes": [ - "sha256:43d606c5910ed66e1641807993bd0a981de2fc5da44f03e1c4ca2bb65b94b68e", - "sha256:49d7da81996714445116f6105c9c5955c0e197ef8636da4f368c913f64753443" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.3.3" - }, "packaging": { "hashes": [ - "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", - "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" + "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", + "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9" ], - "markers": "python_version >= '3.6'", - "version": "==21.3" + "markers": "python_version >= '3.7'", + "version": "==24.0" }, "pathspec": { "hashes": [ @@ -734,19 +634,11 @@ }, "platformdirs": { "hashes": [ - "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380", - "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420" + "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068", + "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768" ], "markers": "python_version >= '3.8'", - "version": "==4.1.0" - }, - "prance": { - "hashes": [ - "sha256:814a523bc1ff18383c12cb523ce44c90fe8792bf5f48d8cc33c9f658276658ed", - "sha256:c15e9ca889b56262e4c2aee354f52918ba5e54f46bb3da42b806d8bbd8255ee9" - ], - "markers": "python_version >= '3.6'", - "version": "==0.22.11.4.0" + "version": "==4.2.0" }, "pycparser": { "hashes": [ @@ -756,46 +648,100 @@ "version": "==2.21" }, "pydantic": { - "hashes": [ - "sha256:08b6ec0917c30861e3fe71a93be1648a2aa4f62f866142ba21670b24444d7fd8", - "sha256:0fbb503bbbbab0c588ed3cd21975a1d0d4163b87e360fec17a792f7d8c4ff29f", - "sha256:1245f4f61f467cb3dfeced2b119afef3db386aec3d24a22a1de08c65038b255f", - "sha256:13e86a19dca96373dcf3190fcb8797d40a6f12f154a244a8d1e8e03b8f280593", - "sha256:21efacc678a11114c765eb52ec0db62edffa89e9a562a94cbf8fa10b5db5c046", - "sha256:23d47a4b57a38e8652bcab15a658fdb13c785b9ce217cc3a729504ab4e1d6bc9", - "sha256:24a7679fab2e0eeedb5a8924fc4a694b3bcaac7d305aeeac72dd7d4e05ecbebf", - "sha256:282613a5969c47c83a8710cc8bfd1e70c9223feb76566f74683af889faadc0ea", - "sha256:336709883c15c050b9c55a63d6c7ff09be883dbc17805d2b063395dd9d9d0022", - "sha256:412ab4a3f6dbd2bf18aefa9f79c7cca23744846b31f1d6555c2ee2b05a2e14ca", - "sha256:466669501d08ad8eb3c4fecd991c5e793c4e0bbd62299d05111d4f827cded64f", - "sha256:46f17b832fe27de7850896f3afee50ea682220dd218f7e9c88d436788419dca6", - "sha256:49a46a0994dd551ec051986806122767cf144b9702e31d47f6d493c336462597", - "sha256:4ae57b4d8e3312d486e2498d42aed3ece7b51848336964e43abbf9671584e67f", - "sha256:53e3819bd20a42470d6dd0fe7fc1c121c92247bca104ce608e609b59bc7a77ee", - "sha256:596f12a1085e38dbda5cbb874d0973303e34227b400b6414782bf205cc14940c", - "sha256:646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7", - "sha256:798a3d05ee3b71967844a1164fd5bdb8c22c6d674f26274e78b9f29d81770c4e", - "sha256:7f4fcec873f90537c382840f330b90f4715eebc2bc9925f04cb92de593eae054", - "sha256:82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d", - "sha256:8e3a76f571970fcd3c43ad982daf936ae39b3e90b8a2e96c04113a369869dc87", - "sha256:8ee853cd12ac2ddbf0ecbac1c289f95882b2d4482258048079d13be700aa114c", - "sha256:9d578ac4bf7fdf10ce14caba6f734c178379bd35c486c6deb6f49006e1ba78a7", - "sha256:a42c7d17706911199798d4c464b352e640cab4351efe69c2267823d619a937e5", - "sha256:aad4e10efa5474ed1a611b6d7f0d130f4aafadceb73c11d9e72823e8f508e663", - "sha256:ad8c2bc677ae5f6dbd3cf92f2c7dc613507eafe8f71719727cbc0a7dec9a8c01", - "sha256:bc3ed06ab13660b565eed80887fcfbc0070f0aa0691fbb351657041d3e874efe", - "sha256:bfb113860e9288d0886e3b9e49d9cf4a9d48b441f52ded7d96db7819028514cc", - "sha256:c37c28449752bb1f47975d22ef2882d70513c546f8f37201e0fec3a97b816eee", - "sha256:c66609e138c31cba607d8e2a7b6a5dc38979a06c900815495b2d90ce6ded35b4", - "sha256:d604be0f0b44d473e54fdcb12302495fe0467c56509a2f80483476f3ba92b33c", - "sha256:d986e115e0b39604b9eee3507987368ff8148222da213cd38c359f6f57b3b347", - "sha256:dba49d52500c35cfec0b28aa8b3ea5c37c9df183ffc7210b10ff2a415c125c4a", - "sha256:e897c9f35281f7889873a3e6d6b69aa1447ceb024e8495a5f0d02ecd17742a7f", - "sha256:f9f674b5c3bebc2eba401de64f29948ae1e646ba2735f884d1594c5f675d6f2a", - "sha256:fa7790e94c60f809c95602a26d906eba01a0abee9cc24150e4ce2189352deb1b" + "extras": [ + "email" + ], + "hashes": [ + "sha256:b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6", + "sha256:cc46fce86607580867bdc3361ad462bab9c222ef042d3da86f2fb333e1d916c5" + ], + "markers": "python_version >= '3.10' and python_version < '3.11'", + "version": "==2.6.4" + }, + "pydantic-core": { + "hashes": [ + "sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a", + "sha256:0d32576b1de5a30d9a97f300cc6a3f4694c428d956adbc7e6e2f9cad279e45ed", + "sha256:0df446663464884297c793874573549229f9eca73b59360878f382a0fc085979", + "sha256:0f56ae86b60ea987ae8bcd6654a887238fd53d1384f9b222ac457070b7ac4cff", + "sha256:13dcc4802961b5f843a9385fc821a0b0135e8c07fc3d9949fd49627c1a5e6ae5", + "sha256:162e498303d2b1c036b957a1278fa0899d02b2842f1ff901b6395104c5554a45", + "sha256:1b662180108c55dfbf1280d865b2d116633d436cfc0bba82323554873967b340", + "sha256:1cac689f80a3abab2d3c0048b29eea5751114054f032a941a32de4c852c59cad", + "sha256:21b888c973e4f26b7a96491c0965a8a312e13be108022ee510248fe379a5fa23", + "sha256:287073c66748f624be4cef893ef9174e3eb88fe0b8a78dc22e88eca4bc357ca6", + "sha256:2a1ef6a36fdbf71538142ed604ad19b82f67b05749512e47f247a6ddd06afdc7", + "sha256:2a72fb9963cba4cd5793854fd12f4cfee731e86df140f59ff52a49b3552db241", + "sha256:2acca2be4bb2f2147ada8cac612f8a98fc09f41c89f87add7256ad27332c2fda", + "sha256:2f583bd01bbfbff4eaee0868e6fc607efdfcc2b03c1c766b06a707abbc856187", + "sha256:33809aebac276089b78db106ee692bdc9044710e26f24a9a2eaa35a0f9fa70ba", + "sha256:36fa178aacbc277bc6b62a2c3da95226520da4f4e9e206fdf076484363895d2c", + "sha256:4204e773b4b408062960e65468d5346bdfe139247ee5f1ca2a378983e11388a2", + "sha256:4384a8f68ddb31a0b0c3deae88765f5868a1b9148939c3f4121233314ad5532c", + "sha256:456855f57b413f077dff513a5a28ed838dbbb15082ba00f80750377eed23d132", + "sha256:49d5d58abd4b83fb8ce763be7794d09b2f50f10aa65c0f0c1696c677edeb7cbf", + "sha256:4ac6b4ce1e7283d715c4b729d8f9dab9627586dafce81d9eaa009dd7f25dd972", + "sha256:4df8a199d9f6afc5ae9a65f8f95ee52cae389a8c6b20163762bde0426275b7db", + "sha256:500960cb3a0543a724a81ba859da816e8cf01b0e6aaeedf2c3775d12ee49cade", + "sha256:519ae0312616026bf4cedc0fe459e982734f3ca82ee8c7246c19b650b60a5ee4", + "sha256:578114bc803a4c1ff9946d977c221e4376620a46cf78da267d946397dc9514a8", + "sha256:5c5cbc703168d1b7a838668998308018a2718c2130595e8e190220238addc96f", + "sha256:6162f8d2dc27ba21027f261e4fa26f8bcb3cf9784b7f9499466a311ac284b5b9", + "sha256:704d35ecc7e9c31d48926150afada60401c55efa3b46cd1ded5a01bdffaf1d48", + "sha256:716b542728d4c742353448765aa7cdaa519a7b82f9564130e2b3f6766018c9ec", + "sha256:72282ad4892a9fb2da25defeac8c2e84352c108705c972db82ab121d15f14e6d", + "sha256:7233d65d9d651242a68801159763d09e9ec96e8a158dbf118dc090cd77a104c9", + "sha256:732da3243e1b8d3eab8c6ae23ae6a58548849d2e4a4e03a1924c8ddf71a387cb", + "sha256:75b81e678d1c1ede0785c7f46690621e4c6e63ccd9192af1f0bd9d504bbb6bf4", + "sha256:75f76ee558751746d6a38f89d60b6228fa174e5172d143886af0f85aa306fd89", + "sha256:7ee8d5f878dccb6d499ba4d30d757111847b6849ae07acdd1205fffa1fc1253c", + "sha256:7f752826b5b8361193df55afcdf8ca6a57d0232653494ba473630a83ba50d8c9", + "sha256:86b3d0033580bd6bbe07590152007275bd7af95f98eaa5bd36f3da219dcd93da", + "sha256:8d62da299c6ecb04df729e4b5c52dc0d53f4f8430b4492b93aa8de1f541c4aac", + "sha256:8e47755d8152c1ab5b55928ab422a76e2e7b22b5ed8e90a7d584268dd49e9c6b", + "sha256:9091632a25b8b87b9a605ec0e61f241c456e9248bfdcf7abdf344fdb169c81cf", + "sha256:936e5db01dd49476fa8f4383c259b8b1303d5dd5fb34c97de194560698cc2c5e", + "sha256:99b6add4c0b39a513d323d3b93bc173dac663c27b99860dd5bf491b240d26137", + "sha256:9c865a7ee6f93783bd5d781af5a4c43dadc37053a5b42f7d18dc019f8c9d2bd1", + "sha256:a425479ee40ff021f8216c9d07a6a3b54b31c8267c6e17aa88b70d7ebd0e5e5b", + "sha256:a4b2bf78342c40b3dc830880106f54328928ff03e357935ad26c7128bbd66ce8", + "sha256:a6b1bb0827f56654b4437955555dc3aeeebeddc47c2d7ed575477f082622c49e", + "sha256:aaf09e615a0bf98d406657e0008e4a8701b11481840be7d31755dc9f97c44053", + "sha256:b1f6f5938d63c6139860f044e2538baeee6f0b251a1816e7adb6cbce106a1f01", + "sha256:b29eeb887aa931c2fcef5aa515d9d176d25006794610c264ddc114c053bf96fe", + "sha256:b3992a322a5617ded0a9f23fd06dbc1e4bd7cf39bc4ccf344b10f80af58beacd", + "sha256:b5b6079cc452a7c53dd378c6f881ac528246b3ac9aae0f8eef98498a75657805", + "sha256:b60cc1a081f80a2105a59385b92d82278b15d80ebb3adb200542ae165cd7d183", + "sha256:b926dd38db1519ed3043a4de50214e0d600d404099c3392f098a7f9d75029ff8", + "sha256:bd87f48924f360e5d1c5f770d6155ce0e7d83f7b4e10c2f9ec001c73cf475c99", + "sha256:bda1ee3e08252b8d41fa5537413ffdddd58fa73107171a126d3b9ff001b9b820", + "sha256:be0ec334369316fa73448cc8c982c01e5d2a81c95969d58b8f6e272884df0074", + "sha256:c6119dc90483a5cb50a1306adb8d52c66e447da88ea44f323e0ae1a5fcb14256", + "sha256:c9803edf8e29bd825f43481f19c37f50d2b01899448273b3a7758441b512acf8", + "sha256:c9bd22a2a639e26171068f8ebb5400ce2c1bc7d17959f60a3b753ae13c632975", + "sha256:cbcc558401de90a746d02ef330c528f2e668c83350f045833543cd57ecead1ad", + "sha256:cf6204fe865da605285c34cf1172879d0314ff267b1c35ff59de7154f35fdc2e", + "sha256:d33dd21f572545649f90c38c227cc8631268ba25c460b5569abebdd0ec5974ca", + "sha256:d89ca19cdd0dd5f31606a9329e309d4fcbb3df860960acec32630297d61820df", + "sha256:d8f99b147ff3fcf6b3cc60cb0c39ea443884d5559a30b1481e92495f2310ff2b", + "sha256:d937653a696465677ed583124b94a4b2d79f5e30b2c46115a68e482c6a591c8a", + "sha256:dcca5d2bf65c6fb591fff92da03f94cd4f315972f97c21975398bd4bd046854a", + "sha256:ded1c35f15c9dea16ead9bffcde9bb5c7c031bff076355dc58dcb1cb436c4721", + "sha256:e3e70c94a0c3841e6aa831edab1619ad5c511199be94d0c11ba75fe06efe107a", + "sha256:e56f8186d6210ac7ece503193ec84104da7ceb98f68ce18c07282fcc2452e76f", + "sha256:e7774b570e61cb998490c5235740d475413a1f6de823169b4cf94e2fe9e9f6b2", + "sha256:e7c6ed0dc9d8e65f24f5824291550139fe6f37fac03788d4580da0d33bc00c97", + "sha256:ec08be75bb268473677edb83ba71e7e74b43c008e4a7b1907c6d57e940bf34b6", + "sha256:ecdf6bf5f578615f2e985a5e1f6572e23aa632c4bd1dc67f8f406d445ac115ed", + "sha256:ed25e1835c00a332cb10c683cd39da96a719ab1dfc08427d476bce41b92531fc", + "sha256:f4cb85f693044e0f71f394ff76c98ddc1bc0953e48c061725e540396d5c8a2e1", + "sha256:f53aace168a2a10582e570b7736cc5bef12cae9cf21775e3eafac597e8551fbe", + "sha256:f651dd19363c632f4abe3480a7c87a9773be27cfe1341aef06e8759599454120", + "sha256:fc4ad7f7ee1a13d9cb49d8198cd7d7e3aa93e425f371a68235f784e99741561f", + "sha256:fee427241c2d9fb7192b658190f9f5fd6dfe41e02f3c1489d2ec1e6a5ab1e04a" ], - "markers": "python_version >= '3.7'", - "version": "==1.10.14" + "markers": "python_version >= '3.8'", + "version": "==2.16.3" }, "pyjwt": { "extras": [ @@ -810,19 +756,12 @@ }, "pylint": { "hashes": [ - "sha256:6758cce3ddbab60c52b57dcc07f0c5d779e5daf0cf50f6faacbef1d3ea62d2a1", - "sha256:e178e96b6ba171f8ef51fbce9ca30931e6acbea4a155074d80cc081596c9e852" + "sha256:507a5b60953874766d8a366e8e8c7af63e058b26345cfcb5f91f89d987fd6b74", + "sha256:6a69beb4a6f63debebaab0a3477ecd0f559aa726af4954fc948c51f7a2549e23" ], "index": "pypi", - "version": "==2.10.2" - }, - "pyparsing": { - "hashes": [ - "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb", - "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db" - ], - "markers": "python_full_version >= '3.6.8'", - "version": "==3.1.1" + "markers": "python_full_version >= '3.8.0'", + "version": "==3.1.0" }, "pypika-tortoise": { "hashes": [ @@ -832,20 +771,6 @@ "markers": "python_version >= '3.7' and python_version < '4.0'", "version": "==0.1.6" }, - "pyrsistent": { - "hashes": [ - "sha256:aa2ae1c2e496f4d6777f869ea5de7166a8ccb9c2e06ebcf6c7ff1b670c98c5ef" - ], - "markers": "python_version >= '2.7'", - "version": "==0.16.1" - }, - "pysnooper": { - "hashes": [ - "sha256:810669e162a250a066d8662e573adbc5af770e937c5b5578f28bb7355d1c859b", - "sha256:aa859aa9a746cffc1f35e4ee469d49c3cc5185b5fc0c571feb3af3c94d2eb625" - ], - "version": "==1.2.0" - }, "python-dotenv": { "hashes": [ "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", @@ -855,26 +780,26 @@ }, "python-engineio": { "hashes": [ - "sha256:a357f0aba275c311b66f22181472ed5b174bbc541742eea1d16feae2fa1afabd", - "sha256:f8609e3afdda318fdc336b4ba2de8dd397bb8f9b8a1b43e56c27330e32c2e34c" + "sha256:979859bff770725b75e60353d7ae53b397e8b517d05ba76733b404a3dcca3e4c", + "sha256:e87459c15638e567711fd156e6f9c4a402668871bed79523f0ecfec744729ec7" ], "markers": "python_version >= '3.6'", - "version": "==4.8.2" + "version": "==4.9.0" }, "python-socketio": { "hashes": [ - "sha256:b03186e04b942088781f6286c13604a853e5e35ed59158c51ff7af22fa032e6f", - "sha256:cfcb0163d77c8d23b98285754e79016786740dd901268654a52823da0bc73382" + "sha256:bbcbd758ed8c183775cb2853ba001361e2fa018babf5cbe11a5b77e91c2ec2a2", + "sha256:f1a0228b8b1fbdbd93fbbedd821ebce0ef54b2b5bf6e98fcf710deaa7c574259" ], - "markers": "python_version >= '3.6'", - "version": "==5.11.0" + "markers": "python_version >= '3.8'", + "version": "==5.11.1" }, "pytz": { "hashes": [ - "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b", - "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7" + "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812", + "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319" ], - "version": "==2023.3.post1" + "version": "==2024.1" }, "pyyaml": { "hashes": [ @@ -930,6 +855,7 @@ "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" ], + "markers": "python_version >= '3.6'", "version": "==6.0.1" }, "reactivex": { @@ -946,99 +872,20 @@ "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==2.31.0" }, "ros-translator": { "editable": true, "path": "./packages/ros-translator" }, - "ruamel.yaml": { - "hashes": [ - "sha256:6024b986f06765d482b5b07e086cc4b4cd05dd22ddcbc758fa23d54873cf313d", - "sha256:b16b6c3816dff0a93dca12acf5e70afd089fa5acb80604afd1ffa8b465b7722c" - ], - "markers": "python_version >= '3'", - "version": "==0.17.40" - }, - "ruamel.yaml.clib": { - "hashes": [ - "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d", - "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001", - "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462", - "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9", - "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe", - "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b", - "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b", - "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615", - "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62", - "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15", - "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b", - "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1", - "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9", - "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675", - "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899", - "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7", - "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7", - "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312", - "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa", - "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91", - "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b", - "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6", - "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3", - "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334", - "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5", - "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3", - "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe", - "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c", - "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed", - "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337", - "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880", - "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f", - "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d", - "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248", - "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d", - "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf", - "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512", - "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069", - "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb", - "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942", - "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d", - "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31", - "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92", - "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5", - "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28", - "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d", - "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1", - "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2", - "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875", - "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412" - ], - "markers": "python_version < '3.13' and platform_python_implementation == 'CPython'", - "version": "==0.2.8" - }, "schedule": { "hashes": [ - "sha256:617adce8b4bf38c360b781297d59918fbebfb2878f1671d189f4f4af5d0567a4", - "sha256:e6ca13585e62c810e13a08682e0a6a8ad245372e376ba2b8679294f377dfc8e4" + "sha256:14cdeb083a596aa1de6dc77639a1b2ac8bf6eaafa82b1c9279d3612823063d01", + "sha256:843bc0538b99c93f02b8b50e3e39886c06f2d003b24f48e1aa4cadfa3f341279" ], - "markers": "python_version >= '3.6'", - "version": "==1.1.0" - }, - "semver": { - "hashes": [ - "sha256:ced8b23dceb22134307c1b8abfa523da14198793d9787ac838e70e29e77458d4", - "sha256:fa0fe2722ee1c3f57eac478820c3a5ae2f624af8264cbdf9000c980ff7f75e3f" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.13.0" - }, - "setuptools": { - "hashes": [ - "sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05", - "sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78" - ], - "markers": "python_version >= '3.8'", - "version": "==69.0.3" + "markers": "python_version >= '3.7'", + "version": "==1.2.1" }, "simple-websocket": { "hashes": [ @@ -1048,36 +895,28 @@ "markers": "python_version >= '3.6'", "version": "==1.0.0" }, - "six": { - "hashes": [ - "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.16.0" - }, "sniffio": { "hashes": [ - "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101", - "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384" + "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", + "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc" ], "markers": "python_version >= '3.7'", - "version": "==1.3.0" + "version": "==1.3.1" }, "starlette": { "hashes": [ - "sha256:3e2639dac3520e4f58734ed22553f950d3f3cb1001cd2eaac4d57e8cdc5f66bc", - "sha256:50bbbda9baa098e361f398fda0928062abbaf1f54f4fadcbe17c092a01eb9a25" + "sha256:13d429aa93a61dc40bf503e8c801db1f1bca3dc706b10ef2434a36123568f044", + "sha256:90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080" ], "markers": "python_version >= '3.8'", - "version": "==0.35.1" + "version": "==0.36.3" }, "toml": { "hashes": [ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version < '3.11'", "version": "==0.10.2" }, "tomli": { @@ -1085,90 +924,51 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_full_version < '3.11.0a7'", + "markers": "python_version < '3.11'", "version": "==2.0.1" }, + "tomlkit": { + "hashes": [ + "sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b", + "sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3" + ], + "markers": "python_version >= '3.7'", + "version": "==0.12.4" + }, "tortoise-orm": { "hashes": [ - "sha256:537361ce2d0829741afd43afd9bc9413a314a176cb58747d88047c20ccc01db1", - "sha256:edc9f3b49635b1dd74f73de38f54e031377e4f02b3698322502047f2e031af8b" + "sha256:1891ad935de689ddf002c5c65c864176d28659ab6069e45f0e2cde32359bb8d9", + "sha256:283af584d685dcc58d6cc1da35b9115bb1e41c89075eae2a19c493b39b9b41f7" ], - "markers": "python_version >= '3.7' and python_version < '4.0'", - "version": "==0.18.1" - }, - "typed-ast": { - "hashes": [ - "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10", - "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede", - "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e", - "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c", - "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d", - "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8", - "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e", - "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5", - "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155", - "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4", - "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba", - "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5", - "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a", - "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b", - "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311", - "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769", - "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686", - "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d", - "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2", - "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814", - "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9", - "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b", - "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b", - "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4", - "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd", - "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18", - "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa", - "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6", - "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee", - "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88", - "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4", - "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431", - "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04", - "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d", - "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02", - "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8", - "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437", - "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274", - "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f", - "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a", - "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2" - ], - "markers": "python_full_version >= '3.9.8'", - "version": "==1.5.5" + "markers": "python_version >= '3.8' and python_version < '4.0'", + "version": "==0.20.0" }, "typing-extensions": { "hashes": [ - "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783", - "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd" + "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", + "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb" ], - "markers": "python_version >= '3.8'", - "version": "==4.9.0" + "markers": "python_version < '3.11'", + "version": "==4.10.0" }, "urllib3": { "hashes": [ - "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3", - "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54" + "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", + "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" ], "markers": "python_version >= '3.8'", - "version": "==2.1.0" + "version": "==2.2.1" }, "uvicorn": { "extras": [ "standard" ], "hashes": [ - "sha256:0abd429ebb41e604ed8d2be6c60530de3408f250e8d2d84967d85ba9e86fe3af", - "sha256:9a66e7c42a2a95222f76ec24a4b754c158261c4696e683b9dadc72b590e0311b" + "sha256:6623abbbe6176204a4226e67607b4d52cc60ff62cda0ff177613645cefa2ece1", + "sha256:cab4473b5d1eaeb5a0f6375ac4bc85007ffc75c3cc1768816d9e5d589857b067" ], - "markers": "python_version >= '3.7'", - "version": "==0.18.3" + "markers": "python_version >= '3.8'", + "version": "==0.28.0" }, "uvloop": { "hashes": [ @@ -1288,11 +1088,12 @@ }, "websocket-client": { "hashes": [ - "sha256:1315816c0acc508997eb3ae03b9d3ff619c9d12d544c9a9b553704b1cc4f6af5", - "sha256:2eed4cc58e4d65613ed6114af2f380f7910ff416fc8c46947f6e76b6815f56c0" + "sha256:10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6", + "sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588" ], "index": "pypi", - "version": "==1.2.3" + "markers": "python_version >= '3.8'", + "version": "==1.7.0" }, "websockets": { "hashes": [ @@ -1371,12 +1172,6 @@ ], "version": "==12.0" }, - "wrapt": { - "hashes": [ - "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7" - ], - "version": "==1.12.1" - }, "wsproto": { "hashes": [ "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065", diff --git a/README.md b/README.md index a815cff51..2918b2bd7 100644 --- a/README.md +++ b/README.md @@ -20,17 +20,10 @@ Open-RMF Web is a collection of packages that provide a web-based interface for We currently support [Ubuntu 22.04](https://releases.ubuntu.com/jammy/), [ROS 2 Humble](https://docs.ros.org/en/humble/index.html) and Open-RMF's [22.09](https://github.com/open-rmf/rmf/releases/tag/22.09) release. Other distributions may work as well, but is not guaranteed. -Install [nodejs](https://nodejs.org/en/download/package-manager/) >= 16, -```bash -sudo apt update && sudo apt install curl -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash -nvm install 16 -``` - Install pnpm and nodejs ```bash curl -fsSL https://get.pnpm.io/install.sh | bash - -pnpm env use --global 16 +pnpm env use --global 20 ``` Install pipenv diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..d2798dbc3 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,19 @@ +const eslint = require('@eslint/js'); +const tseslint = require('typescript-eslint'); +const react = require('eslint-plugin-react'); +const reactHooks = require('eslint-plugin-react-hooks'); + +module.exports = tseslint.config(eslint.configs.recommended, ...tseslint.configs.recommended, { + files: ['**/*.{js,jsx,mjs,cjs,ts,tsx}'], + plugins: { react, reactHooks }, + settings: { + react: { + version: 'detect', + }, + }, + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/ban-types': ['error', { types: { '{}': false }, extendDefaults: true }], + '@typescript-eslint/no-loss-of-precision': 'off', + }, +}); diff --git a/package.json b/package.json index d902266fd..b8352cbda 100644 --- a/package.json +++ b/package.json @@ -7,19 +7,18 @@ "npm": ">=99" }, "scripts": { - "prepare": "husky install" + "prepare": "husky" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.33.0", - "eslint": "^7.32.0", - "eslint-plugin-react": "^7.30.1", + "eslint": "^8.57.0", + "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "^4.6.0", - "husky": "^8.0.1", - "lint-staged": "^10.5.4", - "prettier": "^2.7.1", - "pyright": "1.1.257", - "typescript": "~4.4.4" + "husky": "^9.0.11", + "lint-staged": "^15.2.2", + "prettier": "^3.2.5", + "pyright": "1.1.354", + "typescript": "~5.4.3", + "typescript-eslint": "^7.5.0" }, "lint-staged": { "**/*.{js,jsx,ts,tsx,css,scss}": [ diff --git a/packages/api-client/generate-openapi.sh b/packages/api-client/generate-openapi.sh index 0cac51f68..173ffbc3e 100755 --- a/packages/api-client/generate-openapi.sh +++ b/packages/api-client/generate-openapi.sh @@ -8,25 +8,13 @@ function usage() { cd $(dirname $0) source ../../scripts/version.sh -openapi_generator_ver=6.2.1 - -expected_sha='f2c8600f2c23ee1123eebf47ef0f40db386627e75b0340ca16182c10f4174fa9' - -if [[ ! -f ".bin/openapi-generator-cli-${openapi_generator_ver}.jar" ]]; then - mkdir -p .bin - wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/${openapi_generator_ver}/openapi-generator-cli-${openapi_generator_ver}.jar -O .bin/openapi-generator-cli-${openapi_generator_ver}.jar -fi - -sha=$(sha256sum .bin/openapi-generator-cli-${openapi_generator_ver}.jar | awk '{print $1}') - -if [[ $sha != $expected_sha ]]; then - echo "ERR: .bin/openapi-generator-cli-${openapi_generator_ver}.jar sha doesn't match" - exit 1 -fi pipenv run python generate-openapi.py +# openapi-generator support for openapi 3.1.0 is WIP (as of 7.4.0), the code it generates are invalid. +# hacky workaround by tricking it to think it is an openapi 3.0.3 spec. +sed '0,/"openapi": "3.1.0"/s//"openapi": "3.0.3"/' -i build/openapi.json rm -rf 'lib/openapi' -java -jar .bin/openapi-generator-cli-${openapi_generator_ver}.jar generate -i'build/openapi.json' -gtypescript-axios -olib/openapi -copenapi-generator.json +pnpm exec openapi-generator-cli generate rmf_server_ver=$(getVersion .) @@ -42,7 +30,7 @@ export const version = { EOF -npx prettier -w lib +pnpm exec prettier -w lib # generate schema cat << EOF > schema/index.ts diff --git a/packages/api-client/lib/index.ts b/packages/api-client/lib/index.ts index fcc6b4bef..c703d55e4 100644 --- a/packages/api-client/lib/index.ts +++ b/packages/api-client/lib/index.ts @@ -1,14 +1,14 @@ import Debug from 'debug'; import { io, Socket } from 'socket.io-client'; import { - ApiServerModelsTortoiseModelsAlertsAlertLeaf, - ApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf as BeaconState, + TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf, + TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf as BeaconState, BuildingMap, DispenserHealth, DispenserState, DoorHealth, DoorState, - ApiServerModelsRmfApiFleetStateFleetState, + FleetState, IngestorHealth, IngestorState, LiftHealth, @@ -17,8 +17,7 @@ import { TaskState, } from './openapi'; -type Alert = ApiServerModelsTortoiseModelsAlertsAlertLeaf; -type FleetState = ApiServerModelsRmfApiFleetStateFleetState; +type Alert = TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf; const debug = Debug('rmf-client'); diff --git a/packages/api-client/lib/openapi/.openapi-generator/VERSION b/packages/api-client/lib/openapi/.openapi-generator/VERSION index 0df17dd0f..ba7f754d0 100644 --- a/packages/api-client/lib/openapi/.openapi-generator/VERSION +++ b/packages/api-client/lib/openapi/.openapi-generator/VERSION @@ -1 +1 @@ -6.2.1 \ No newline at end of file +7.4.0 diff --git a/packages/api-client/lib/openapi/api.ts b/packages/api-client/lib/openapi/api.ts index 64a1ed2a4..d9c6d258b 100644 --- a/packages/api-client/lib/openapi/api.ts +++ b/packages/api-client/lib/openapi/api.ts @@ -12,8 +12,9 @@ * Do not edit the class manually. */ -import { Configuration } from './configuration'; -import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; +import type { Configuration } from './configuration'; +import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; // Some imports not used depending on template conditions // @ts-ignore import { @@ -28,8 +29,9 @@ import { toPathString, createRequestFunction, } from './common'; +import type { RequestArgs } from './base'; // @ts-ignore -import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base'; +import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerMap } from './base'; /** * @@ -50,11 +52,11 @@ export interface Activity { */ detail: string; /** - * The schema for this activity description + * * @type {object} * @memberof Activity */ - description_schema?: object; + description_schema?: object | null; } /** * @@ -67,7 +69,7 @@ export interface ActivityDiscovery { * @type {Array} * @memberof ActivityDiscovery */ - data?: Array; + data?: Array | null; } /** * @@ -77,19 +79,11 @@ export interface ActivityDiscovery { export interface ActivityDiscoveryRequest { /** * Indicate that this is an activity discovery request - * @type {string} + * @type {any} * @memberof ActivityDiscoveryRequest */ - type: ActivityDiscoveryRequestTypeEnum; + type: any; } - -export const ActivityDiscoveryRequestTypeEnum = { - ActivitiyDiscoveryRequest: 'activitiy_discovery_request', -} as const; - -export type ActivityDiscoveryRequestTypeEnum = - typeof ActivityDiscoveryRequestTypeEnum[keyof typeof ActivityDiscoveryRequestTypeEnum]; - /** * * @export @@ -142,287 +136,49 @@ export interface AffineImage { /** * * @export - * @interface ApiServerModelsRmfApiFleetLogFleetState - */ -export interface ApiServerModelsRmfApiFleetLogFleetState { - /** - * - * @type {string} - * @memberof ApiServerModelsRmfApiFleetLogFleetState - */ - name?: string; - /** - * Log for the overall fleet - * @type {Array} - * @memberof ApiServerModelsRmfApiFleetLogFleetState - */ - log?: Array; - /** - * Dictionary of logs for the individual robots. The keys (property names) are the robot names. - * @type {{ [key: string]: Array; }} - * @memberof ApiServerModelsRmfApiFleetLogFleetState - */ - robots?: { [key: string]: Array }; -} -/** - * - * @export - * @interface ApiServerModelsRmfApiFleetStateFleetState - */ -export interface ApiServerModelsRmfApiFleetStateFleetState { - /** - * - * @type {string} - * @memberof ApiServerModelsRmfApiFleetStateFleetState - */ - name?: string; - /** - * A dictionary of the states of the robots that belong to this fleet - * @type {{ [key: string]: RobotState; }} - * @memberof ApiServerModelsRmfApiFleetStateFleetState - */ - robots?: { [key: string]: RobotState }; -} -/** - * An enumeration. - * @export * @enum {string} */ -export type ApiServerModelsRmfApiSimpleResponseFailure = false; -/** - * An enumeration. - * @export - * @enum {string} - */ -export type ApiServerModelsRmfApiSimpleResponseSuccess = true; +export const ApiServerModelsRmfApiRobotStateStatus = { + Uninitialized: 'uninitialized', + Offline: 'offline', + Shutdown: 'shutdown', + Idle: 'idle', + Charging: 'charging', + Working: 'working', + Error: 'error', +} as const; -/** - * An enumeration. - * @export - * @enum {string} - */ -export type ApiServerModelsRmfApiTokenResponseFailure = false; +export type ApiServerModelsRmfApiRobotStateStatus = + typeof ApiServerModelsRmfApiRobotStateStatus[keyof typeof ApiServerModelsRmfApiRobotStateStatus]; /** - * An enumeration. + * * @export * @enum {string} */ -export type ApiServerModelsRmfApiTokenResponseSuccess = true; -/** - * General alert that can be triggered by events. - * @export - * @interface ApiServerModelsTortoiseModelsAlertsAlertLeaf - */ -export interface ApiServerModelsTortoiseModelsAlertsAlertLeaf { - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsAlertsAlertLeaf - */ - id: string; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsAlertsAlertLeaf - */ - original_id: string; - /** - * Default: default
Task: task
Fleet: fleet
Robot: robot - * @type {string} - * @memberof ApiServerModelsTortoiseModelsAlertsAlertLeaf - */ - category: string; - /** - * - * @type {number} - * @memberof ApiServerModelsTortoiseModelsAlertsAlertLeaf - */ - unix_millis_created_time: number; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsAlertsAlertLeaf - */ - acknowledged_by?: string | null; - /** - * - * @type {number} - * @memberof ApiServerModelsTortoiseModelsAlertsAlertLeaf - */ - unix_millis_acknowledged_time?: number | null; -} -/** - * - * @export - * @interface ApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf - */ -export interface ApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf { - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf - */ - id: string; - /** - * - * @type {boolean} - * @memberof ApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf - */ - online: boolean; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf - */ - category?: string | null; - /** - * - * @type {boolean} - * @memberof ApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf - */ - activated: boolean; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf - */ - level?: string | null; -} -/** - * - * @export - * @interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTask - */ -export interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTask { - /** - * - * @type {number} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask - */ - id: number; - /** - * - * @type {any} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask - */ - task_request?: any; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask - */ - created_by: string; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask - */ - last_ran?: string | null; - /** - * - * @type {any} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask - */ - except_dates?: any; - /** - * - * @type {Array} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask - */ - schedules: Array; -} -/** - * The schedules for a scheduled task request.
A scheduled task may have multiple schedules. - * @export - * @interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf - */ -export interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf { - /** - * - * @type {number} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf - */ - every?: number | null; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf - */ - start_from?: string | null; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf - */ - until?: string | null; - /** - * Monday: monday
Tuesday: tuesday
Wednesday: wednesday
Thursday: thursday
Friday: friday
Saturday: saturday
Sunday: sunday
Day: day
Hour: hour
Minute: minute - * @type {string} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf - */ - period: string; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf - */ - at?: string | null; -} +export const ApiServerModelsRmfApiTaskStateStatus = { + Uninitialized: 'uninitialized', + Blocked: 'blocked', + Error: 'error', + Failed: 'failed', + Queued: 'queued', + Standby: 'standby', + Underway: 'underway', + Delayed: 'delayed', + Skipped: 'skipped', + Canceled: 'canceled', + Killed: 'killed', + Completed: 'completed', +} as const; + +export type ApiServerModelsRmfApiTaskStateStatus = + typeof ApiServerModelsRmfApiTaskStateStatus[keyof typeof ApiServerModelsRmfApiTaskStateStatus]; + /** * * @export - * @interface ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf - */ -export interface ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf { - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf - */ - id: string; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf - */ - name: string; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf - */ - unix_millis_earliest_start_time?: string | null; - /** - * - * @type {any} - * @memberof ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf - */ - priority?: any; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf - */ - category: string; - /** - * - * @type {any} - * @memberof ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf - */ - description?: any; - /** - * - * @type {string} - * @memberof ApiServerModelsTortoiseModelsTasksTaskFavoriteLeaf - */ - user: string; -} -/** - * Which agent (robot) is the task assigned to - * @export * @interface AssignedTo */ export interface AssignedTo { @@ -450,13 +206,13 @@ export interface Assignment { * @type {string} * @memberof Assignment */ - fleet_name?: string; + fleet_name?: string | null; /** * * @type {string} * @memberof Assignment */ - expected_robot_name?: string; + expected_robot_name?: string | null; } /** * @@ -475,31 +231,31 @@ export interface Booking { * @type {number} * @memberof Booking */ - unix_millis_earliest_start_time?: number; + unix_millis_earliest_start_time?: number | null; /** * * @type {number} * @memberof Booking */ - unix_millis_request_time?: number; + unix_millis_request_time?: number | null; /** * * @type {Priority} * @memberof Booking */ - priority?: Priority; + priority?: Priority | null; /** - * Information about how and why this task was booked + * * @type {Array} * @memberof Booking */ - labels?: Array; + labels?: Array | null; /** - * (Optional) An identifier for the entity that requested this task + * * @type {string} * @memberof Booking */ - requester?: string; + requester?: string | null; } /** * @@ -534,10 +290,10 @@ export interface BuildingMap { export interface CancelTaskRequest { /** * Indicate that this is a task cancellation request - * @type {string} + * @type {any} * @memberof CancelTaskRequest */ - type: CancelTaskRequestTypeEnum; + type: any; /** * Specify the task ID to cancel * @type {string} @@ -545,20 +301,12 @@ export interface CancelTaskRequest { */ task_id: string; /** - * Labels to describe the purpose of the cancellation + * * @type {Array} * @memberof CancelTaskRequest */ - labels?: Array; + labels?: Array | null; } - -export const CancelTaskRequestTypeEnum = { - CancelTaskRequest: 'cancel_task_request', -} as const; - -export type CancelTaskRequestTypeEnum = - typeof CancelTaskRequestTypeEnum[keyof typeof CancelTaskRequestTypeEnum]; - /** * * @export @@ -578,38 +326,6 @@ export interface Cancellation { */ labels: Array; } -/** - * If the task was cancelled, this will describe information about the request. - * @export - * @interface Cancellation1 - */ -export interface Cancellation1 { - /** - * The time that the cancellation request arrived - * @type {number} - * @memberof Cancellation1 - */ - unix_millis_request_time: number; - /** - * Labels to describe the cancel request - * @type {Array} - * @memberof Cancellation1 - */ - labels: Array; -} -/** - * - * @export - * @interface CurrentMode - */ -export interface CurrentMode { - /** - * - * @type {number} - * @memberof CurrentMode - */ - value: number; -} /** * * @export @@ -617,17 +333,17 @@ export interface CurrentMode { */ export interface Data { /** - * Name of the fleet that supports these tasks + * * @type {string} * @memberof Data */ - fleet_name?: string; + fleet_name?: string | null; /** - * (list:replace) List of tasks that the fleet supports + * * @type {Array} * @memberof Data */ - tasks?: Array; + tasks?: Array | null; } /** * @@ -649,23 +365,17 @@ export interface Datum { activities: Array; } /** - * Detailed information about a task, phase, or event + * * @export * @interface Detail */ export interface Detail {} /** - * Detailed information about the event + * Detailed information about the issue * @export * @interface Detail1 */ export interface Detail1 {} -/** - * Detailed information about the issue - * @export - * @interface Detail2 - */ -export interface Detail2 {} /** * * @export @@ -674,23 +384,24 @@ export interface Detail2 {} export interface Dispatch { /** * - * @type {Status1} + * @type {Status2} * @memberof Dispatch */ - status: Status1; + status: Status2; /** * * @type {Assignment} * @memberof Dispatch */ - assignment?: Assignment; + assignment?: Assignment | null; /** * * @type {Array} * @memberof Dispatch */ - errors?: Array; + errors?: Array | null; } + /** * * @export @@ -699,10 +410,10 @@ export interface Dispatch { export interface DispatchTaskRequest { /** * Indicate that this is a task dispatch request - * @type {string} + * @type {any} * @memberof DispatchTaskRequest */ - type: DispatchTaskRequestTypeEnum; + type: any; /** * * @type {TaskRequest} @@ -710,14 +421,6 @@ export interface DispatchTaskRequest { */ request: TaskRequest; } - -export const DispatchTaskRequestTypeEnum = { - DispatchTaskRequest: 'dispatch_task_request', -} as const; - -export type DispatchTaskRequestTypeEnum = - typeof DispatchTaskRequestTypeEnum[keyof typeof DispatchTaskRequestTypeEnum]; - /** * * @export @@ -742,20 +445,21 @@ export interface DispenserHealth { * @type {string} * @memberof DispenserHealth */ - health_status: string | null; + id_: string; /** * - * @type {string} + * @type {HealthStatus} * @memberof DispenserHealth */ - health_message?: string | null; + health_status: HealthStatus; /** * * @type {string} * @memberof DispenserHealth */ - id_: string; + health_message: string | null; } + /** * * @export @@ -764,10 +468,10 @@ export interface DispenserHealth { export interface DispenserState { /** * - * @type {Time1} + * @type {Time} * @memberof DispenserState */ - time: Time1; + time: Time; /** * * @type {string} @@ -859,20 +563,21 @@ export interface DoorHealth { * @type {string} * @memberof DoorHealth */ - health_status: string | null; + id_: string; /** * - * @type {string} + * @type {HealthStatus} * @memberof DoorHealth */ - health_message?: string | null; + health_status: HealthStatus; /** * * @type {string} * @memberof DoorHealth */ - id_: string; + health_message: string | null; } + /** * * @export @@ -907,10 +612,10 @@ export interface DoorRequest { export interface DoorState { /** * - * @type {DoorTime} + * @type {Time} * @memberof DoorState */ - door_time: DoorTime; + door_time: Time; /** * * @type {string} @@ -919,66 +624,92 @@ export interface DoorState { door_name: string; /** * - * @type {CurrentMode} + * @type {DoorMode} * @memberof DoorState */ - current_mode: CurrentMode; + current_mode: DoorMode; } /** * * @export - * @interface DoorTime + * @interface EventState */ -export interface DoorTime { +export interface EventState { /** * * @type {number} - * @memberof DoorTime + * @memberof EventState */ - sec: number; + id: number; /** * - * @type {number} - * @memberof DoorTime + * @type {ApiServerModelsRmfApiTaskStateStatus} + * @memberof EventState */ - nanosec: number; + status?: ApiServerModelsRmfApiTaskStateStatus | null; + /** + * + * @type {string} + * @memberof EventState + */ + name?: string | null; + /** + * + * @type {Detail} + * @memberof EventState + */ + detail?: Detail | null; + /** + * + * @type {Array} + * @memberof EventState + */ + deps?: Array | null; } + /** * * @export - * @interface EventState + * @interface FleetLog */ -export interface EventState { +export interface FleetLog { /** * - * @type {number} - * @memberof EventState + * @type {string} + * @memberof FleetLog */ - id: number; + name?: string | null; + /** + * + * @type {Array} + * @memberof FleetLog + */ + log?: Array | null; + /** + * + * @type {{ [key: string]: Array; }} + * @memberof FleetLog + */ + robots?: { [key: string]: Array } | null; +} +/** + * + * @export + * @interface FleetState + */ +export interface FleetState { /** * - * @type {Status} - * @memberof EventState - */ - status?: Status; - /** - * The brief name of the event * @type {string} - * @memberof EventState + * @memberof FleetState */ - name?: string; + name?: string | null; /** * - * @type {Detail1} - * @memberof EventState - */ - detail?: Detail1; - /** - * This event may depend on other events. This array contains the IDs of those other event dependencies. - * @type {Array} - * @memberof EventState + * @type {{ [key: string]: RobotState; }} + * @memberof FleetState */ - deps?: Array; + robots?: { [key: string]: RobotState } | null; } /** * @@ -1086,6 +817,20 @@ export interface HTTPValidationError { */ detail?: Array; } +/** + * + * @export + * @enum {string} + */ + +export const HealthStatus = { + Healthy: 'Healthy', + Unhealthy: 'Unhealthy', + Dead: 'Dead', +} as const; + +export type HealthStatus = typeof HealthStatus[keyof typeof HealthStatus]; + /** * * @export @@ -1110,20 +855,21 @@ export interface IngestorHealth { * @type {string} * @memberof IngestorHealth */ - health_status: string | null; + id_: string; /** * - * @type {string} + * @type {HealthStatus} * @memberof IngestorHealth */ - health_message?: string | null; + health_status: HealthStatus; /** * * @type {string} * @memberof IngestorHealth */ - id_: string; + health_message: string | null; } + /** * * @export @@ -1132,10 +878,10 @@ export interface IngestorHealth { export interface IngestorState { /** * - * @type {Time1} + * @type {Time} * @memberof IngestorState */ - time: Time1; + time: Time; /** * * @type {string} @@ -1184,7 +930,7 @@ export interface Interruption { * @type {ResumedBy} * @memberof Interruption */ - resumed_by?: ResumedBy; + resumed_by?: ResumedBy | null; } /** * @@ -1193,17 +939,17 @@ export interface Interruption { */ export interface Issue { /** - * Category of the robot\'s issue + * * @type {string} * @memberof Issue */ - category?: string; + category?: string | null; /** * - * @type {Detail2} + * @type {Detail1} * @memberof Issue */ - detail?: Detail2; + detail?: Detail1 | null; } /** * @@ -1224,25 +970,6 @@ export interface Killed { */ labels: Array; } -/** - * If the task was killed, this will describe information about the request. - * @export - * @interface Killed1 - */ -export interface Killed1 { - /** - * The time that the cancellation request arrived - * @type {number} - * @memberof Killed1 - */ - unix_millis_request_time: number; - /** - * Labels to describe the kill request - * @type {Array} - * @memberof Killed1 - */ - labels: Array; -} /** * * @export @@ -1287,10 +1014,10 @@ export interface Level { nav_graphs: Array; /** * - * @type {WallGraph} + * @type {Graph} * @memberof Level */ - wall_graph: WallGraph; + wall_graph: Graph; } /** * @@ -1318,10 +1045,10 @@ export interface Lift { doors: Array; /** * - * @type {WallGraph} + * @type {Graph} * @memberof Lift */ - wall_graph: WallGraph; + wall_graph: Graph; /** * * @type {number} @@ -1364,20 +1091,21 @@ export interface LiftHealth { * @type {string} * @memberof LiftHealth */ - health_status: string | null; + id_: string; /** * - * @type {string} + * @type {HealthStatus} * @memberof LiftHealth */ - health_message?: string | null; + health_status: HealthStatus; /** * * @type {string} * @memberof LiftHealth */ - id_: string; + health_message: string | null; } + /** * * @export @@ -1411,10 +1139,10 @@ export interface LiftRequest { export interface LiftState { /** * - * @type {LiftTime} + * @type {Time} * @memberof LiftState */ - lift_time: LiftTime; + lift_time: Time; /** * * @type {string} @@ -1470,25 +1198,6 @@ export interface LiftState { */ session_id: string; } -/** - * - * @export - * @interface LiftTime - */ -export interface LiftTime { - /** - * - * @type {number} - * @memberof LiftTime - */ - sec: number; - /** - * - * @type {number} - * @memberof LiftTime - */ - nanosec: number; -} /** * * @export @@ -1557,6 +1266,7 @@ export interface LogEntry { */ text: string; } + /** * * @export @@ -1564,23 +1274,23 @@ export interface LogEntry { */ export interface ModelError { /** - * A standard code for the kind of error that has occurred + * * @type {number} * @memberof ModelError */ - code?: number; + code?: number | null; /** - * The category of the error + * * @type {string} * @memberof ModelError */ - category?: string; + category?: string | null; /** - * Details about the error + * * @type {string} * @memberof ModelError */ - detail?: string; + detail?: string | null; } /** * @@ -1625,6 +1335,27 @@ export interface Param { */ value_bool: boolean; } +/** + * + * @export + * @enum {string} + */ + +export const Period = { + Monday: 'monday', + Tuesday: 'tuesday', + Wednesday: 'wednesday', + Thursday: 'thursday', + Friday: 'friday', + Saturday: 'saturday', + Sunday: 'sunday', + Day: 'day', + Hour: 'hour', + Minute: 'minute', +} as const; + +export type Period = typeof Period[keyof typeof Period]; + /** * * @export @@ -1657,7 +1388,7 @@ export interface Phase { */ id: number; /** - * The category of this task or phase + * * @type {string} * @memberof Phase */ @@ -1667,27 +1398,27 @@ export interface Phase { * @type {Detail} * @memberof Phase */ - detail?: Detail; + detail?: Detail | null; /** * * @type {number} * @memberof Phase */ - unix_millis_start_time?: number; + unix_millis_start_time?: number | null; /** * * @type {number} * @memberof Phase */ - unix_millis_finish_time?: number; + unix_millis_finish_time?: number | null; /** - * An estimate, in milliseconds, of how long the subject will take to complete + * * @type {number} * @memberof Phase */ original_estimate_millis?: number; /** - * An estimate, in milliseconds, of how long the subject will take to complete + * * @type {number} * @memberof Phase */ @@ -1699,17 +1430,17 @@ export interface Phase { */ final_event_id?: number; /** - * A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers. + * * @type {{ [key: string]: EventState; }} * @memberof Phase */ - events?: { [key: string]: EventState }; + events?: { [key: string]: EventState } | null; /** - * Information about any skip requests that have been received + * * @type {{ [key: string]: SkipPhaseRequest; }} * @memberof Phase */ - skip_requests?: { [key: string]: SkipPhaseRequest }; + skip_requests?: { [key: string]: SkipPhaseRequest } | null; } /** * @@ -1718,17 +1449,17 @@ export interface Phase { */ export interface Phases { /** - * Log entries related to the overall phase + * * @type {Array} * @memberof Phases */ - log?: Array; + log?: Array | null; /** - * A dictionary whose keys (property names) are the indices of an event in the phase + * * @type {{ [key: string]: Array; }} * @memberof Phases */ - events?: { [key: string]: Array }; + events?: { [key: string]: Array } | null; } /** * @@ -1813,10 +1544,10 @@ export interface PostScheduledTaskRequest { task_request: TaskRequest; /** * - * @type {Array} + * @type {Array} * @memberof PostScheduledTaskRequest */ - schedules: Array; + schedules: Array; } /** * @@ -1844,17 +1575,17 @@ export interface PostUsers { */ export interface Priority {} /** - * Information about the resume request that ended this interruption. This field will be missing if the interruption is still active. + * * @export * @interface ResumedBy */ export interface ResumedBy { /** - * The time that the resume request arrived + * * @type {number} * @memberof ResumedBy */ - unix_millis_request_time?: number; + unix_millis_request_time?: number | null; /** * Labels to describe the resume request * @type {Array} @@ -1873,44 +1604,45 @@ export interface RobotState { * @type {string} * @memberof RobotState */ - name?: string; + name?: string | null; /** - * A simple token representing the status of the robot - * @type {Status2} + * + * @type {ApiServerModelsRmfApiRobotStateStatus} * @memberof RobotState */ - status?: Status2; + status?: ApiServerModelsRmfApiRobotStateStatus | null; /** - * The ID of the task this robot is currently working on. Empty string if the robot is not working on a task. + * * @type {string} * @memberof RobotState */ - task_id?: string; + task_id?: string | null; /** * * @type {number} * @memberof RobotState */ - unix_millis_time?: number; + unix_millis_time?: number | null; /** * * @type {Location2D} * @memberof RobotState */ - location?: Location2D; + location?: Location2D | null; /** - * State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged) + * * @type {number} * @memberof RobotState */ - battery?: number; + battery?: number | null; /** - * A list of issues with the robot that operators need to address + * * @type {Array} * @memberof RobotState */ - issues?: Array; + issues?: Array | null; } + /** * * @export @@ -1943,17 +1675,17 @@ export interface RobotTaskRequest { request: TaskRequest; } /** - * Response to a robot task request + * * @export * @interface RobotTaskResponse */ export interface RobotTaskResponse { /** * - * @type {boolean} + * @type {} * @memberof RobotTaskResponse */ - success: RobotTaskResponseSuccessEnum; + success: null; /** * * @type {TaskState} @@ -1961,32 +1693,105 @@ export interface RobotTaskResponse { */ state: TaskState; /** - * Any error messages explaining why the request failed + * * @type {Array} * @memberof RobotTaskResponse */ - errors?: Array; + errors?: Array | null; +} +/** + * + * @export + * @interface ScheduledTask + */ +export interface ScheduledTask { + /** + * + * @type {number} + * @memberof ScheduledTask + */ + id: number; + /** + * + * @type {TaskRequest} + * @memberof ScheduledTask + */ + task_request: TaskRequest; + /** + * + * @type {string} + * @memberof ScheduledTask + */ + created_by: string; + /** + * + * @type {Array} + * @memberof ScheduledTask + */ + schedules: Array; + /** + * + * @type {string} + * @memberof ScheduledTask + */ + last_ran?: string | null; + /** + * + * @type {Array} + * @memberof ScheduledTask + */ + except_dates?: Array | null; +} +/** + * + * @export + * @interface ScheduledTaskSchedule + */ +export interface ScheduledTaskSchedule { + /** + * + * @type {number} + * @memberof ScheduledTaskSchedule + */ + every?: number | null; + /** + * + * @type {string} + * @memberof ScheduledTaskSchedule + */ + start_from?: string | null; + /** + * + * @type {string} + * @memberof ScheduledTaskSchedule + */ + until?: string | null; + /** + * + * @type {Period} + * @memberof ScheduledTaskSchedule + */ + period: Period; + /** + * + * @type {string} + * @memberof ScheduledTaskSchedule + */ + at?: string | null; } - -export const RobotTaskResponseSuccessEnum = { - False: false, -} as const; - -export type RobotTaskResponseSuccessEnum = - typeof RobotTaskResponseSuccessEnum[keyof typeof RobotTaskResponseSuccessEnum]; /** - * Template for defining a response message that only indicates success and describes any errors + * * @export * @interface SimpleResponse */ export interface SimpleResponse { /** * - * @type {ApiServerModelsRmfApiSimpleResponseFailure} + * @type {any} * @memberof SimpleResponse */ - success: ApiServerModelsRmfApiSimpleResponseFailure; + success: any; /** * If the request failed, these error messages will explain why * @type {Array} @@ -1997,32 +1802,32 @@ export interface SimpleResponse { /** * * @export - * @interface SimpleResponseItem + * @interface SimpleResponse1 */ -export interface SimpleResponseItem { +export interface SimpleResponse1 { /** * - * @type {ApiServerModelsRmfApiSimpleResponseSuccess} - * @memberof SimpleResponseItem + * @type {any} + * @memberof SimpleResponse1 */ - success: ApiServerModelsRmfApiSimpleResponseSuccess; + success: any; } /** * * @export - * @interface SimpleResponseItem1 + * @interface SimpleResponse2 */ -export interface SimpleResponseItem1 { +export interface SimpleResponse2 { /** * - * @type {ApiServerModelsRmfApiSimpleResponseFailure} - * @memberof SimpleResponseItem1 + * @type {any} + * @memberof SimpleResponse2 */ - success: ApiServerModelsRmfApiSimpleResponseFailure; + success: any; /** * If the request failed, these error messages will explain why * @type {Array} - * @memberof SimpleResponseItem1 + * @memberof SimpleResponse2 */ errors: Array; } @@ -2046,23 +1851,23 @@ export interface SkipPhaseRequest { labels: Array; /** * - * @type {Undo1} + * @type {Undo} * @memberof SkipPhaseRequest */ - undo?: Undo1; + undo?: Undo | null; } /** - * Response to a request for a phase to be skipped + * * @export * @interface SkipPhaseResponse */ export interface SkipPhaseResponse { /** * - * @type {ApiServerModelsRmfApiTokenResponseFailure} + * @type {any} * @memberof SkipPhaseResponse */ - success: ApiServerModelsRmfApiTokenResponseFailure; + success: any; /** * A token for the request. The value of this token is unique within the scope of this request and can be used by other requests to reference this request. * @type {string} @@ -2077,35 +1882,12 @@ export interface SkipPhaseResponse { errors: Array; } /** - * An enumeration. - * @export - * @enum {string} - */ - -export const Status = { - Uninitialized: 'uninitialized', - Blocked: 'blocked', - Error: 'error', - Failed: 'failed', - Queued: 'queued', - Standby: 'standby', - Underway: 'underway', - Delayed: 'delayed', - Skipped: 'skipped', - Canceled: 'canceled', - Killed: 'killed', - Completed: 'completed', -} as const; - -export type Status = typeof Status[keyof typeof Status]; - -/** - * An enumeration. + * * @export * @enum {string} */ -export const Status1 = { +export const Status2 = { Queued: 'queued', Selected: 'selected', Dispatched: 'dispatched', @@ -2113,24 +1895,6 @@ export const Status1 = { CanceledInFlight: 'canceled_in_flight', } as const; -export type Status1 = typeof Status1[keyof typeof Status1]; - -/** - * An enumeration. - * @export - * @enum {string} - */ - -export const Status2 = { - Uninitialized: 'uninitialized', - Offline: 'offline', - Shutdown: 'shutdown', - Idle: 'idle', - Charging: 'charging', - Working: 'working', - Error: 'error', -} as const; - export type Status2 = typeof Status2[keyof typeof Status2]; /** @@ -2152,24 +1916,24 @@ export interface Task { */ detail: string; /** - * The schema for this task description + * * @type {object} * @memberof Task */ - description_schema?: object; + description_schema?: object | null; } /** - * Response to a request to cancel a task + * * @export * @interface TaskCancelResponse */ export interface TaskCancelResponse { /** * - * @type {ApiServerModelsRmfApiSimpleResponseFailure} + * @type {object} * @memberof TaskCancelResponse */ - success: ApiServerModelsRmfApiSimpleResponseFailure; + success: object; /** * If the request failed, these error messages will explain why * @type {Array} @@ -2185,10 +1949,10 @@ export interface TaskCancelResponse { export interface TaskDiscovery { /** * Indicate that this is an task discovery update - * @type {string} + * @type {any} * @memberof TaskDiscovery */ - type: TaskDiscoveryTypeEnum; + type: any; /** * * @type {Data} @@ -2196,14 +1960,6 @@ export interface TaskDiscovery { */ data: Data; } - -export const TaskDiscoveryTypeEnum = { - TaskDiscoveryUpdate: 'task_discovery_update', -} as const; - -export type TaskDiscoveryTypeEnum = - typeof TaskDiscoveryTypeEnum[keyof typeof TaskDiscoveryTypeEnum]; - /** * * @export @@ -2212,31 +1968,23 @@ export type TaskDiscoveryTypeEnum = export interface TaskDiscoveryRequest { /** * Indicate that this is a task discovery request - * @type {string} + * @type {any} * @memberof TaskDiscoveryRequest */ - type: TaskDiscoveryRequestTypeEnum; + type: any; } - -export const TaskDiscoveryRequestTypeEnum = { - TaskDiscoveryRequest: 'task_discovery_request', -} as const; - -export type TaskDiscoveryRequestTypeEnum = - typeof TaskDiscoveryRequestTypeEnum[keyof typeof TaskDiscoveryRequestTypeEnum]; - /** - * Response to a task dispatch request + * * @export * @interface TaskDispatchResponse */ export interface TaskDispatchResponse { /** * - * @type {boolean} + * @type {} * @memberof TaskDispatchResponse */ - success: TaskDispatchResponseSuccessEnum; + success: null; /** * * @type {TaskState} @@ -2244,74 +1992,50 @@ export interface TaskDispatchResponse { */ state: TaskState; /** - * Any error messages explaining why the request failed + * * @type {Array} * @memberof TaskDispatchResponse */ - errors?: Array; + errors?: Array | null; } - -export const TaskDispatchResponseSuccessEnum = { - False: false, -} as const; - -export type TaskDispatchResponseSuccessEnum = - typeof TaskDispatchResponseSuccessEnum[keyof typeof TaskDispatchResponseSuccessEnum]; - /** * * @export - * @interface TaskDispatchResponseItem + * @interface TaskDispatchResponse1 */ -export interface TaskDispatchResponseItem { +export interface TaskDispatchResponse1 { /** * - * @type {boolean} - * @memberof TaskDispatchResponseItem + * @type {any} + * @memberof TaskDispatchResponse1 */ - success: TaskDispatchResponseItemSuccessEnum; + success: any; /** * * @type {TaskState} - * @memberof TaskDispatchResponseItem + * @memberof TaskDispatchResponse1 */ state: TaskState; } - -export const TaskDispatchResponseItemSuccessEnum = { - True: true, -} as const; - -export type TaskDispatchResponseItemSuccessEnum = - typeof TaskDispatchResponseItemSuccessEnum[keyof typeof TaskDispatchResponseItemSuccessEnum]; - /** * * @export - * @interface TaskDispatchResponseItem1 + * @interface TaskDispatchResponse2 */ -export interface TaskDispatchResponseItem1 { +export interface TaskDispatchResponse2 { /** * - * @type {boolean} - * @memberof TaskDispatchResponseItem1 + * @type {} + * @memberof TaskDispatchResponse2 */ - success?: TaskDispatchResponseItem1SuccessEnum; + success?: null; /** - * Any error messages explaining why the request failed + * * @type {Array} - * @memberof TaskDispatchResponseItem1 + * @memberof TaskDispatchResponse2 */ - errors?: Array; + errors?: Array | null; } - -export const TaskDispatchResponseItem1SuccessEnum = { - False: false, -} as const; - -export type TaskDispatchResponseItem1SuccessEnum = - typeof TaskDispatchResponseItem1SuccessEnum[keyof typeof TaskDispatchResponseItem1SuccessEnum]; - /** * * @export @@ -2325,17 +2049,17 @@ export interface TaskEventLog { */ task_id: string; /** - * Log entries related to the overall task + * * @type {Array} * @memberof TaskEventLog */ - log?: Array; + log?: Array | null; /** - * A dictionary whose keys (property names) are the indices of a phase + * * @type {{ [key: string]: Phases; }} * @memberof TaskEventLog */ - phases?: { [key: string]: Phases }; + phases?: { [key: string]: Phases } | null; } /** * @@ -2366,7 +2090,7 @@ export interface TaskFavoritePydantic { * @type {object} * @memberof TaskFavoritePydantic */ - priority?: object; + priority: object | null; /** * * @type {string} @@ -2378,7 +2102,7 @@ export interface TaskFavoritePydantic { * @type {object} * @memberof TaskFavoritePydantic */ - description?: object; + description: object | null; /** * * @type {string} @@ -2394,10 +2118,10 @@ export interface TaskFavoritePydantic { export interface TaskInterruptionRequest { /** * Indicate that this is a task interruption request - * @type {string} + * @type {any} * @memberof TaskInterruptionRequest */ - type: TaskInterruptionRequestTypeEnum; + type: any; /** * Specify the task ID to interrupt * @type {string} @@ -2405,32 +2129,24 @@ export interface TaskInterruptionRequest { */ task_id: string; /** - * Labels to describe the purpose of the interruption + * * @type {Array} * @memberof TaskInterruptionRequest */ - labels?: Array; + labels?: Array | null; } - -export const TaskInterruptionRequestTypeEnum = { - InterruptTaskRequest: 'interrupt_task_request', -} as const; - -export type TaskInterruptionRequestTypeEnum = - typeof TaskInterruptionRequestTypeEnum[keyof typeof TaskInterruptionRequestTypeEnum]; - /** - * Response to a request for a task to be interrupted + * * @export * @interface TaskInterruptionResponse */ export interface TaskInterruptionResponse { /** * - * @type {ApiServerModelsRmfApiTokenResponseFailure} + * @type {any} * @memberof TaskInterruptionResponse */ - success: ApiServerModelsRmfApiTokenResponseFailure; + success: any; /** * A token for the request. The value of this token is unique within the scope of this request and can be used by other requests to reference this request. * @type {string} @@ -2452,10 +2168,10 @@ export interface TaskInterruptionResponse { export interface TaskKillRequest { /** * Indicate that this is a task kill request - * @type {string} + * @type {any} * @memberof TaskKillRequest */ - type: TaskKillRequestTypeEnum; + type: any; /** * Specify the task ID to kill * @type {string} @@ -2463,32 +2179,24 @@ export interface TaskKillRequest { */ task_id: string; /** - * Labels to describe the purpose of the kill + * * @type {Array} * @memberof TaskKillRequest */ - labels?: Array; + labels?: Array | null; } - -export const TaskKillRequestTypeEnum = { - KillTaskRequest: 'kill_task_request', -} as const; - -export type TaskKillRequestTypeEnum = - typeof TaskKillRequestTypeEnum[keyof typeof TaskKillRequestTypeEnum]; - /** - * Response to a request to kill a task + * * @export * @interface TaskKillResponse */ export interface TaskKillResponse { /** * - * @type {ApiServerModelsRmfApiSimpleResponseFailure} + * @type {object} * @memberof TaskKillResponse */ - success: ApiServerModelsRmfApiSimpleResponseFailure; + success: object; /** * If the request failed, these error messages will explain why * @type {Array} @@ -2504,10 +2212,10 @@ export interface TaskKillResponse { export interface TaskPhaseSkipRequest { /** * Indicate that this is a phase skip request - * @type {string} + * @type {any} * @memberof TaskPhaseSkipRequest */ - type: TaskPhaseSkipRequestTypeEnum; + type: any; /** * Specify the task ID whose phase should be skipped * @type {string} @@ -2521,20 +2229,12 @@ export interface TaskPhaseSkipRequest { */ phase_id: number; /** - * Labels to describe the purpose of the skip + * * @type {Array} * @memberof TaskPhaseSkipRequest */ - labels?: Array; + labels?: Array | null; } - -export const TaskPhaseSkipRequestTypeEnum = { - SkipPhaseRequest: 'skip_phase_request', -} as const; - -export type TaskPhaseSkipRequestTypeEnum = - typeof TaskPhaseSkipRequestTypeEnum[keyof typeof TaskPhaseSkipRequestTypeEnum]; - /** * * @export @@ -2542,23 +2242,23 @@ export type TaskPhaseSkipRequestTypeEnum = */ export interface TaskRequest { /** - * (Optional) The earliest time that this task may start + * * @type {number} * @memberof TaskRequest */ - unix_millis_earliest_start_time?: number; + unix_millis_earliest_start_time?: number | null; /** - * (Optional) The time that this request was initiated + * * @type {number} * @memberof TaskRequest */ - unix_millis_request_time?: number; + unix_millis_request_time?: number | null; /** - * (Optional) The priority of this task. This must match a priority schema supported by a fleet. + * * @type {object} * @memberof TaskRequest */ - priority?: object; + priority?: object | null; /** * * @type {string} @@ -2572,17 +2272,23 @@ export interface TaskRequest { */ description: any; /** - * Labels to describe the purpose of the task dispatch request + * * @type {Array} * @memberof TaskRequest */ - labels?: Array; + labels?: Array | null; + /** + * + * @type {string} + * @memberof TaskRequest + */ + requester?: string | null; /** - * (Optional) An identifier for the entity that requested this task + * * @type {string} * @memberof TaskRequest */ - requester?: string; + fleet_name?: string | null; } /** * @@ -2592,49 +2298,41 @@ export interface TaskRequest { export interface TaskResumeRequest { /** * Indicate that this is a task resuming request - * @type {string} + * @type {} * @memberof TaskResumeRequest */ - type?: TaskResumeRequestTypeEnum; + type?: null; /** - * Specify task ID to resume. + * * @type {string} * @memberof TaskResumeRequest */ - for_task?: string; + for_task?: string | null; /** - * A list of tokens of interruption requests which should be resumed. The interruption request associated with each token will be discarded. + * * @type {Array} * @memberof TaskResumeRequest */ - for_tokens?: Array; + for_tokens?: Array | null; /** - * Labels describing this request + * * @type {Array} * @memberof TaskResumeRequest */ - labels?: Array; + labels?: Array | null; } - -export const TaskResumeRequestTypeEnum = { - ResumeTaskRequest: 'resume_task_request', -} as const; - -export type TaskResumeRequestTypeEnum = - typeof TaskResumeRequestTypeEnum[keyof typeof TaskResumeRequestTypeEnum]; - /** - * Response to a request to resume a task + * * @export * @interface TaskResumeResponse */ export interface TaskResumeResponse { /** * - * @type {ApiServerModelsRmfApiSimpleResponseFailure} + * @type {object} * @memberof TaskResumeResponse */ - success: ApiServerModelsRmfApiSimpleResponseFailure; + success: object; /** * If the request failed, these error messages will explain why * @type {Array} @@ -2650,10 +2348,10 @@ export interface TaskResumeResponse { export interface TaskRewindRequest { /** * Indicate that this is a task rewind request - * @type {string} + * @type {any} * @memberof TaskRewindRequest */ - type: TaskRewindRequestTypeEnum; + type: any; /** * Specify the ID of the task that should rewind * @type {string} @@ -2667,26 +2365,18 @@ export interface TaskRewindRequest { */ phase_id: number; } - -export const TaskRewindRequestTypeEnum = { - RewindTaskRequest: 'rewind_task_request', -} as const; - -export type TaskRewindRequestTypeEnum = - typeof TaskRewindRequestTypeEnum[keyof typeof TaskRewindRequestTypeEnum]; - /** - * Response to a request to rewind a task + * * @export * @interface TaskRewindResponse */ export interface TaskRewindResponse { /** * - * @type {ApiServerModelsRmfApiSimpleResponseFailure} + * @type {object} * @memberof TaskRewindResponse */ - success: ApiServerModelsRmfApiSimpleResponseFailure; + success: object; /** * If the request failed, these error messages will explain why * @type {Array} @@ -2707,7 +2397,7 @@ export interface TaskState { */ booking: Booking; /** - * The category of this task or phase + * * @type {string} * @memberof TaskState */ @@ -2717,27 +2407,27 @@ export interface TaskState { * @type {Detail} * @memberof TaskState */ - detail?: Detail; + detail?: Detail | null; /** * * @type {number} * @memberof TaskState */ - unix_millis_start_time?: number; + unix_millis_start_time?: number | null; /** * * @type {number} * @memberof TaskState */ - unix_millis_finish_time?: number; + unix_millis_finish_time?: number | null; /** - * An estimate, in milliseconds, of how long the subject will take to complete + * * @type {number} * @memberof TaskState */ original_estimate_millis?: number; /** - * An estimate, in milliseconds, of how long the subject will take to complete + * * @type {number} * @memberof TaskState */ @@ -2747,64 +2437,65 @@ export interface TaskState { * @type {AssignedTo} * @memberof TaskState */ - assigned_to?: AssignedTo; + assigned_to?: AssignedTo | null; /** * - * @type {Status} + * @type {ApiServerModelsRmfApiTaskStateStatus} * @memberof TaskState */ - status?: Status; + status?: ApiServerModelsRmfApiTaskStateStatus | null; /** * * @type {Dispatch} * @memberof TaskState */ - dispatch?: Dispatch; + dispatch?: Dispatch | null; /** - * A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers. + * * @type {{ [key: string]: Phase; }} * @memberof TaskState */ - phases?: { [key: string]: Phase }; + phases?: { [key: string]: Phase } | null; /** - * An array of the IDs of completed phases of this task + * * @type {Array} * @memberof TaskState */ - completed?: Array; + completed?: Array | null; /** - * The ID of the active phase for this task + * * @type {number} * @memberof TaskState */ active?: number; /** - * An array of the pending phases of this task + * * @type {Array} * @memberof TaskState */ - pending?: Array; + pending?: Array | null; /** - * A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request. + * * @type {{ [key: string]: Interruption; }} * @memberof TaskState */ - interruptions?: { [key: string]: Interruption }; + interruptions?: { [key: string]: Interruption } | null; /** * - * @type {Cancellation1} + * @type {Cancellation} * @memberof TaskState */ - cancellation?: Cancellation1; + cancellation?: Cancellation | null; /** * - * @type {Killed1} + * @type {Killed} * @memberof TaskState */ - killed?: Killed1; + killed?: Killed | null; } + /** - * An enumeration. + * * @export * @enum {string} */ @@ -2840,34 +2531,15 @@ export interface Time { /** * * @export - * @interface Time1 - */ -export interface Time1 { - /** - * - * @type {number} - * @memberof Time1 - */ - sec: number; - /** - * - * @type {number} - * @memberof Time1 - */ - nanosec: number; -} -/** - * Template for defining a response message that provides a token upon success or errors upon failure - * @export * @interface TokenResponse */ export interface TokenResponse { /** * - * @type {ApiServerModelsRmfApiTokenResponseFailure} + * @type {any} * @memberof TokenResponse */ - success: ApiServerModelsRmfApiTokenResponseFailure; + success: any; /** * A token for the request. The value of this token is unique within the scope of this request and can be used by other requests to reference this request. * @type {string} @@ -2884,76 +2556,137 @@ export interface TokenResponse { /** * * @export - * @interface TokenResponseItem + * @interface TokenResponse1 */ -export interface TokenResponseItem { +export interface TokenResponse1 { /** * - * @type {ApiServerModelsRmfApiTokenResponseSuccess} - * @memberof TokenResponseItem + * @type {any} + * @memberof TokenResponse1 */ - success: ApiServerModelsRmfApiTokenResponseSuccess; + success: any; /** * A token for the request. The value of this token is unique within the scope of this request and can be used by other requests to reference this request. * @type {string} - * @memberof TokenResponseItem + * @memberof TokenResponse1 */ token: string; } /** * * @export - * @interface TokenResponseItem1 + * @interface TokenResponse2 */ -export interface TokenResponseItem1 { +export interface TokenResponse2 { /** * - * @type {ApiServerModelsRmfApiTokenResponseFailure} - * @memberof TokenResponseItem1 + * @type {any} + * @memberof TokenResponse2 */ - success: ApiServerModelsRmfApiTokenResponseFailure; + success: any; /** * Any error messages explaining why the request failed. * @type {Array} - * @memberof TokenResponseItem1 + * @memberof TokenResponse2 */ errors: Array; } /** - * + * General alert that can be triggered by events. * @export - * @interface Undo + * @interface TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf */ -export interface Undo { +export interface TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf { /** - * The time that the undo skip request arrived + * + * @type {string} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf + */ + id: string; + /** + * + * @type {string} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf + */ + original_id: string; + /** + * Default: default
Task: task
Fleet: fleet
Robot: robot + * @type {string} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf + */ + category: string; + /** + * * @type {number} - * @memberof Undo + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf */ - unix_millis_request_time: number; + unix_millis_created_time: number; /** - * Labels to describe the undo skip request - * @type {Array} - * @memberof Undo + * + * @type {string} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf */ - labels: Array; + acknowledged_by: string | null; + /** + * + * @type {number} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsAlertsAlertLeaf + */ + unix_millis_acknowledged_time: number | null; +} +/** + * + * @export + * @interface TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf + */ +export interface TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf { + /** + * + * @type {string} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf + */ + id: string; + /** + * + * @type {boolean} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf + */ + online: boolean; + /** + * + * @type {string} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf + */ + category: string | null; + /** + * + * @type {boolean} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf + */ + activated: boolean; + /** + * + * @type {string} + * @memberof TortoiseContribPydanticCreatorApiServerModelsTortoiseModelsBeaconsBeaconStateLeaf + */ + level: string | null; } /** - * Information about an undo skip request that applied to this request + * * @export - * @interface Undo1 + * @interface Undo */ -export interface Undo1 { +export interface Undo { /** * The time that the undo skip request arrived * @type {number} - * @memberof Undo1 + * @memberof Undo */ unix_millis_request_time: number; /** * Labels to describe the undo skip request * @type {Array} - * @memberof Undo1 + * @memberof Undo */ labels: Array; } @@ -2965,49 +2698,41 @@ export interface Undo1 { export interface UndoPhaseSkipRequest { /** * Indicate that this is a request to undo a phase skip request - * @type {string} + * @type {} * @memberof UndoPhaseSkipRequest */ - type?: UndoPhaseSkipRequestTypeEnum; + type?: null; /** - * Specify the relevant task ID + * * @type {string} * @memberof UndoPhaseSkipRequest */ - for_task?: string; + for_task?: string | null; /** - * A list of the tokens of skip requests which should be undone. The skips associated with each token will be discarded. + * * @type {Array} * @memberof UndoPhaseSkipRequest */ - for_tokens?: Array; + for_tokens?: Array | null; /** - * Labels describing this request + * * @type {Array} * @memberof UndoPhaseSkipRequest */ - labels?: Array; + labels?: Array | null; } - -export const UndoPhaseSkipRequestTypeEnum = { - UndoPhaseSkipRequest: 'undo_phase_skip_request', -} as const; - -export type UndoPhaseSkipRequestTypeEnum = - typeof UndoPhaseSkipRequestTypeEnum[keyof typeof UndoPhaseSkipRequestTypeEnum]; - /** - * Response to an undo phase skip request + * * @export * @interface UndoPhaseSkipResponse */ export interface UndoPhaseSkipResponse { /** * - * @type {ApiServerModelsRmfApiSimpleResponseFailure} + * @type {object} * @memberof UndoPhaseSkipResponse */ - success: ApiServerModelsRmfApiSimpleResponseFailure; + success: object; /** * If the request failed, these error messages will explain why * @type {Array} @@ -3065,37 +2790,6 @@ export interface ValidationError { */ type: string; } -/** - * - * @export - * @interface WallGraph - */ -export interface WallGraph { - /** - * - * @type {string} - * @memberof WallGraph - */ - name: string; - /** - * - * @type {Array} - * @memberof WallGraph - */ - vertices: Array; - /** - * - * @type {Array} - * @memberof WallGraph - */ - edges: Array; - /** - * - * @type {Array} - * @memberof WallGraph - */ - params: Array; -} /** * AdminApi - axios parameter creator @@ -3108,13 +2802,15 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * @summary Add Role Permission * @param {string} role * @param {Permission} permission + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ addRolePermissionAdminRolesRolePermissionsPost: async ( role: string, permission: Permission, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'role' is not null or undefined assertParamExists('addRolePermissionAdminRolesRolePermissionsPost', 'role', role); @@ -3135,6 +2831,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3160,13 +2860,15 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * @summary Add User Role * @param {string} username * @param {PostRoles} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ addUserRoleAdminUsersUsernameRolesPost: async ( username: string, postRoles: PostRoles, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'username' is not null or undefined assertParamExists('addUserRoleAdminUsersUsernameRolesPost', 'username', username); @@ -3187,6 +2889,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3211,12 +2917,14 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * Create a new role * @summary Create Role * @param {PostRoles} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ createRoleAdminRolesPost: async ( postRoles: PostRoles, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'postRoles' is not null or undefined assertParamExists('createRoleAdminRolesPost', 'postRoles', postRoles); @@ -3232,6 +2940,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3256,12 +2968,14 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * Create a user * @summary Create User * @param {PostUsers} postUsers + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ createUserAdminUsersPost: async ( postUsers: PostUsers, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'postUsers' is not null or undefined assertParamExists('createUserAdminUsersPost', 'postUsers', postUsers); @@ -3277,6 +2991,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3301,12 +3019,14 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * Delete a role * @summary Delete Role * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ deleteRoleAdminRolesRoleDelete: async ( role: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'role' is not null or undefined assertParamExists('deleteRoleAdminRolesRoleDelete', 'role', role); @@ -3325,6 +3045,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -3342,12 +3066,14 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * Delete a user This only performs a soft delete, while the user is deleted from the app database, it still exists in the idp so they can still log in, the user will then be re-created with the default permissions. * @summary Delete User * @param {string} username + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ deleteUserAdminUsersUsernameDelete: async ( username: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'username' is not null or undefined assertParamExists('deleteUserAdminUsersUsernameDelete', 'username', username); @@ -3366,6 +3092,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -3384,13 +3114,15 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * @summary Delete User Role * @param {string} username * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ deleteUserRoleAdminUsersUsernameRolesRoleDelete: async ( username: string, role: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'username' is not null or undefined assertParamExists('deleteUserRoleAdminUsersUsernameRolesRoleDelete', 'username', username); @@ -3410,6 +3142,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -3427,12 +3163,14 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * Get all permissions of a role * @summary Get Role Permissions * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getRolePermissionsAdminRolesRolePermissionsGet: async ( role: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'role' is not null or undefined assertParamExists('getRolePermissionsAdminRolesRolePermissionsGet', 'role', role); @@ -3451,6 +3189,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -3467,10 +3209,14 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration /** * Get all roles * @summary Get Roles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getRolesAdminRolesGet: async (options: AxiosRequestConfig = {}): Promise => { + getRolesAdminRolesGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/admin/roles`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -3483,6 +3229,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -3500,12 +3250,14 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * Get a user * @summary Get User * @param {string} username + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getUserAdminUsersUsernameGet: async ( username: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'username' is not null or undefined assertParamExists('getUserAdminUsersUsernameGet', 'username', username); @@ -3524,6 +3276,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -3540,21 +3296,23 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration /** * Search users * @summary Get Users - * @param {string} [username] filters username that starts with the value - * @param {boolean} [isAdmin] - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [username] filters username that starts with the value + * @param {boolean | null} [isAdmin] + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getUsersAdminUsersGet: async ( - username?: string, - isAdmin?: boolean, - limit?: number, - offset?: number, - orderBy?: string, - options: AxiosRequestConfig = {}, + username?: string | null, + isAdmin?: boolean | null, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { const localVarPath = `/admin/users`; // use dummy base URL string because the URL constructor only accepts absolute URLs. @@ -3588,6 +3346,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['order_by'] = orderBy; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -3606,13 +3368,15 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * @summary Make Admin * @param {string} username * @param {PostMakeAdmin} postMakeAdmin + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ makeAdminAdminUsersUsernameMakeAdminPost: async ( username: string, postMakeAdmin: PostMakeAdmin, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'username' is not null or undefined assertParamExists('makeAdminAdminUsersUsernameMakeAdminPost', 'username', username); @@ -3633,6 +3397,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3658,13 +3426,15 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * @summary Remove Role Permission * @param {string} role * @param {Permission} permission + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ removeRolePermissionAdminRolesRolePermissionsRemovePost: async ( role: string, permission: Permission, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'role' is not null or undefined assertParamExists('removeRolePermissionAdminRolesRolePermissionsRemovePost', 'role', role); @@ -3689,6 +3459,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3714,13 +3488,15 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration * @summary Set User Roles * @param {string} username * @param {Array} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ setUserRolesAdminUsersUsernameRolesPut: async ( username: string, postRoles: Array, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'username' is not null or undefined assertParamExists('setUserRolesAdminUsersUsernameRolesPut', 'username', username); @@ -3741,6 +3517,10 @@ export const AdminApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3776,197 +3556,336 @@ export const AdminApiFp = function (configuration?: Configuration) { * @summary Add Role Permission * @param {string} role * @param {Permission} permission + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async addRolePermissionAdminRolesRolePermissionsPost( role: string, permission: Permission, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.addRolePermissionAdminRolesRolePermissionsPost( role, permission, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.addRolePermissionAdminRolesRolePermissionsPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Add role to a user * @summary Add User Role * @param {string} username * @param {PostRoles} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async addUserRoleAdminUsersUsernameRolesPost( username: string, postRoles: PostRoles, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.addUserRoleAdminUsersUsernameRolesPost( username, postRoles, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.addUserRoleAdminUsersUsernameRolesPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Create a new role * @summary Create Role * @param {PostRoles} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async createRoleAdminRolesPost( postRoles: PostRoles, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.createRoleAdminRolesPost( postRoles, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.createRoleAdminRolesPost']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Create a user * @summary Create User * @param {PostUsers} postUsers + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async createUserAdminUsersPost( postUsers: PostUsers, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.createUserAdminUsersPost( postUsers, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.createUserAdminUsersPost']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Delete a role * @summary Delete Role * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async deleteRoleAdminRolesRoleDelete( role: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.deleteRoleAdminRolesRoleDelete( role, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.deleteRoleAdminRolesRoleDelete']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Delete a user This only performs a soft delete, while the user is deleted from the app database, it still exists in the idp so they can still log in, the user will then be re-created with the default permissions. * @summary Delete User * @param {string} username + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async deleteUserAdminUsersUsernameDelete( username: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUserAdminUsersUsernameDelete( username, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.deleteUserAdminUsersUsernameDelete']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Remove role from a user * @summary Delete User Role * @param {string} username * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async deleteUserRoleAdminUsersUsernameRolesRoleDelete( username: string, role: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUserRoleAdminUsersUsernameRolesRoleDelete( username, role, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.deleteUserRoleAdminUsersUsernameRolesRoleDelete']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Get all permissions of a role * @summary Get Role Permissions * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getRolePermissionsAdminRolesRolePermissionsGet( role: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { const localVarAxiosArgs = await localVarAxiosParamCreator.getRolePermissionsAdminRolesRolePermissionsGet( role, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.getRolePermissionsAdminRolesRolePermissionsGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Get all roles * @summary Get Roles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getRolesAdminRolesGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getRolesAdminRolesGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.getRolesAdminRolesGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.getRolesAdminRolesGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Get a user * @summary Get User * @param {string} username + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getUserAdminUsersUsernameGet( username: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getUserAdminUsersUsernameGet( username, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.getUserAdminUsersUsernameGet']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Search users * @summary Get Users - * @param {string} [username] filters username that starts with the value - * @param {boolean} [isAdmin] - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [username] filters username that starts with the value + * @param {boolean | null} [isAdmin] + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getUsersAdminUsersGet( - username?: string, - isAdmin?: boolean, - limit?: number, - offset?: number, - orderBy?: string, - options?: AxiosRequestConfig, + username?: string | null, + isAdmin?: boolean | null, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { const localVarAxiosArgs = await localVarAxiosParamCreator.getUsersAdminUsersGet( username, @@ -3974,72 +3893,124 @@ export const AdminApiFp = function (configuration?: Configuration) { limit, offset, orderBy, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.getUsersAdminUsersGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Make or remove admin privilege from a user * @summary Make Admin * @param {string} username * @param {PostMakeAdmin} postMakeAdmin + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async makeAdminAdminUsersUsernameMakeAdminPost( username: string, postMakeAdmin: PostMakeAdmin, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.makeAdminAdminUsersUsernameMakeAdminPost( username, postMakeAdmin, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.makeAdminAdminUsersUsernameMakeAdminPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Delete a permission from a role * @summary Remove Role Permission * @param {string} role * @param {Permission} permission + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async removeRolePermissionAdminRolesRolePermissionsRemovePost( role: string, permission: Permission, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.removeRolePermissionAdminRolesRolePermissionsRemovePost( role, permission, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.removeRolePermissionAdminRolesRolePermissionsRemovePost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Set the roles of a user * @summary Set User Roles * @param {string} username * @param {Array} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async setUserRolesAdminUsersUsernameRolesPut( username: string, postRoles: Array, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.setUserRolesAdminUsersUsernameRolesPut( username, postRoles, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AdminApi.setUserRolesAdminUsersUsernameRolesPut']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -4060,16 +4031,18 @@ export const AdminApiFactory = function ( * @summary Add Role Permission * @param {string} role * @param {Permission} permission + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ addRolePermissionAdminRolesRolePermissionsPost( role: string, permission: Permission, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .addRolePermissionAdminRolesRolePermissionsPost(role, permission, options) + .addRolePermissionAdminRolesRolePermissionsPost(role, permission, authorization, options) .then((request) => request(axios, basePath)); }, /** @@ -4077,64 +4050,86 @@ export const AdminApiFactory = function ( * @summary Add User Role * @param {string} username * @param {PostRoles} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ addUserRoleAdminUsersUsernameRolesPost( username: string, postRoles: PostRoles, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .addUserRoleAdminUsersUsernameRolesPost(username, postRoles, options) + .addUserRoleAdminUsersUsernameRolesPost(username, postRoles, authorization, options) .then((request) => request(axios, basePath)); }, /** * Create a new role * @summary Create Role * @param {PostRoles} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - createRoleAdminRolesPost(postRoles: PostRoles, options?: any): AxiosPromise { + createRoleAdminRolesPost( + postRoles: PostRoles, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .createRoleAdminRolesPost(postRoles, options) + .createRoleAdminRolesPost(postRoles, authorization, options) .then((request) => request(axios, basePath)); }, /** * Create a user * @summary Create User * @param {PostUsers} postUsers + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - createUserAdminUsersPost(postUsers: PostUsers, options?: any): AxiosPromise { + createUserAdminUsersPost( + postUsers: PostUsers, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .createUserAdminUsersPost(postUsers, options) + .createUserAdminUsersPost(postUsers, authorization, options) .then((request) => request(axios, basePath)); }, /** * Delete a role * @summary Delete Role * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - deleteRoleAdminRolesRoleDelete(role: string, options?: any): AxiosPromise { + deleteRoleAdminRolesRoleDelete( + role: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .deleteRoleAdminRolesRoleDelete(role, options) + .deleteRoleAdminRolesRoleDelete(role, authorization, options) .then((request) => request(axios, basePath)); }, /** * Delete a user This only performs a soft delete, while the user is deleted from the app database, it still exists in the idp so they can still log in, the user will then be re-created with the default permissions. * @summary Delete User * @param {string} username + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - deleteUserAdminUsersUsernameDelete(username: string, options?: any): AxiosPromise { + deleteUserAdminUsersUsernameDelete( + username: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .deleteUserAdminUsersUsernameDelete(username, options) + .deleteUserAdminUsersUsernameDelete(username, authorization, options) .then((request) => request(axios, basePath)); }, /** @@ -4142,75 +4137,92 @@ export const AdminApiFactory = function ( * @summary Delete User Role * @param {string} username * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ deleteUserRoleAdminUsersUsernameRolesRoleDelete( username: string, role: string, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .deleteUserRoleAdminUsersUsernameRolesRoleDelete(username, role, options) + .deleteUserRoleAdminUsersUsernameRolesRoleDelete(username, role, authorization, options) .then((request) => request(axios, basePath)); }, /** * Get all permissions of a role * @summary Get Role Permissions * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getRolePermissionsAdminRolesRolePermissionsGet( role: string, + authorization?: string | null, options?: any, ): AxiosPromise> { return localVarFp - .getRolePermissionsAdminRolesRolePermissionsGet(role, options) + .getRolePermissionsAdminRolesRolePermissionsGet(role, authorization, options) .then((request) => request(axios, basePath)); }, /** * Get all roles * @summary Get Roles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getRolesAdminRolesGet(options?: any): AxiosPromise> { - return localVarFp.getRolesAdminRolesGet(options).then((request) => request(axios, basePath)); + getRolesAdminRolesGet( + authorization?: string | null, + options?: any, + ): AxiosPromise> { + return localVarFp + .getRolesAdminRolesGet(authorization, options) + .then((request) => request(axios, basePath)); }, /** * Get a user * @summary Get User * @param {string} username + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getUserAdminUsersUsernameGet(username: string, options?: any): AxiosPromise { + getUserAdminUsersUsernameGet( + username: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .getUserAdminUsersUsernameGet(username, options) + .getUserAdminUsersUsernameGet(username, authorization, options) .then((request) => request(axios, basePath)); }, /** * Search users * @summary Get Users - * @param {string} [username] filters username that starts with the value - * @param {boolean} [isAdmin] - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [username] filters username that starts with the value + * @param {boolean | null} [isAdmin] + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getUsersAdminUsersGet( - username?: string, - isAdmin?: boolean, - limit?: number, - offset?: number, - orderBy?: string, + username?: string | null, + isAdmin?: boolean | null, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, options?: any, ): AxiosPromise> { return localVarFp - .getUsersAdminUsersGet(username, isAdmin, limit, offset, orderBy, options) + .getUsersAdminUsersGet(username, isAdmin, limit, offset, orderBy, authorization, options) .then((request) => request(axios, basePath)); }, /** @@ -4218,16 +4230,18 @@ export const AdminApiFactory = function ( * @summary Make Admin * @param {string} username * @param {PostMakeAdmin} postMakeAdmin + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ makeAdminAdminUsersUsernameMakeAdminPost( username: string, postMakeAdmin: PostMakeAdmin, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .makeAdminAdminUsersUsernameMakeAdminPost(username, postMakeAdmin, options) + .makeAdminAdminUsersUsernameMakeAdminPost(username, postMakeAdmin, authorization, options) .then((request) => request(axios, basePath)); }, /** @@ -4235,16 +4249,23 @@ export const AdminApiFactory = function ( * @summary Remove Role Permission * @param {string} role * @param {Permission} permission + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ removeRolePermissionAdminRolesRolePermissionsRemovePost( role: string, permission: Permission, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .removeRolePermissionAdminRolesRolePermissionsRemovePost(role, permission, options) + .removeRolePermissionAdminRolesRolePermissionsRemovePost( + role, + permission, + authorization, + options, + ) .then((request) => request(axios, basePath)); }, /** @@ -4252,16 +4273,18 @@ export const AdminApiFactory = function ( * @summary Set User Roles * @param {string} username * @param {Array} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ setUserRolesAdminUsersUsernameRolesPut( username: string, postRoles: Array, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .setUserRolesAdminUsersUsernameRolesPut(username, postRoles, options) + .setUserRolesAdminUsersUsernameRolesPut(username, postRoles, authorization, options) .then((request) => request(axios, basePath)); }, }; @@ -4279,6 +4302,7 @@ export class AdminApi extends BaseAPI { * @summary Add Role Permission * @param {string} role * @param {Permission} permission + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi @@ -4286,10 +4310,11 @@ export class AdminApi extends BaseAPI { public addRolePermissionAdminRolesRolePermissionsPost( role: string, permission: Permission, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return AdminApiFp(this.configuration) - .addRolePermissionAdminRolesRolePermissionsPost(role, permission, options) + .addRolePermissionAdminRolesRolePermissionsPost(role, permission, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4298,6 +4323,7 @@ export class AdminApi extends BaseAPI { * @summary Add User Role * @param {string} username * @param {PostRoles} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi @@ -4305,10 +4331,11 @@ export class AdminApi extends BaseAPI { public addUserRoleAdminUsersUsernameRolesPost( username: string, postRoles: PostRoles, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return AdminApiFp(this.configuration) - .addUserRoleAdminUsersUsernameRolesPost(username, postRoles, options) + .addUserRoleAdminUsersUsernameRolesPost(username, postRoles, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4316,13 +4343,18 @@ export class AdminApi extends BaseAPI { * Create a new role * @summary Create Role * @param {PostRoles} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi */ - public createRoleAdminRolesPost(postRoles: PostRoles, options?: AxiosRequestConfig) { + public createRoleAdminRolesPost( + postRoles: PostRoles, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return AdminApiFp(this.configuration) - .createRoleAdminRolesPost(postRoles, options) + .createRoleAdminRolesPost(postRoles, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4330,13 +4362,18 @@ export class AdminApi extends BaseAPI { * Create a user * @summary Create User * @param {PostUsers} postUsers + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi */ - public createUserAdminUsersPost(postUsers: PostUsers, options?: AxiosRequestConfig) { + public createUserAdminUsersPost( + postUsers: PostUsers, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return AdminApiFp(this.configuration) - .createUserAdminUsersPost(postUsers, options) + .createUserAdminUsersPost(postUsers, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4344,13 +4381,18 @@ export class AdminApi extends BaseAPI { * Delete a role * @summary Delete Role * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi */ - public deleteRoleAdminRolesRoleDelete(role: string, options?: AxiosRequestConfig) { + public deleteRoleAdminRolesRoleDelete( + role: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return AdminApiFp(this.configuration) - .deleteRoleAdminRolesRoleDelete(role, options) + .deleteRoleAdminRolesRoleDelete(role, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4358,13 +4400,18 @@ export class AdminApi extends BaseAPI { * Delete a user This only performs a soft delete, while the user is deleted from the app database, it still exists in the idp so they can still log in, the user will then be re-created with the default permissions. * @summary Delete User * @param {string} username + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi */ - public deleteUserAdminUsersUsernameDelete(username: string, options?: AxiosRequestConfig) { + public deleteUserAdminUsersUsernameDelete( + username: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return AdminApiFp(this.configuration) - .deleteUserAdminUsersUsernameDelete(username, options) + .deleteUserAdminUsersUsernameDelete(username, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4373,6 +4420,7 @@ export class AdminApi extends BaseAPI { * @summary Delete User Role * @param {string} username * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi @@ -4380,10 +4428,11 @@ export class AdminApi extends BaseAPI { public deleteUserRoleAdminUsersUsernameRolesRoleDelete( username: string, role: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return AdminApiFp(this.configuration) - .deleteUserRoleAdminUsersUsernameRolesRoleDelete(username, role, options) + .deleteUserRoleAdminUsersUsernameRolesRoleDelete(username, role, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4391,29 +4440,32 @@ export class AdminApi extends BaseAPI { * Get all permissions of a role * @summary Get Role Permissions * @param {string} role + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi */ public getRolePermissionsAdminRolesRolePermissionsGet( role: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return AdminApiFp(this.configuration) - .getRolePermissionsAdminRolesRolePermissionsGet(role, options) + .getRolePermissionsAdminRolesRolePermissionsGet(role, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * Get all roles * @summary Get Roles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi */ - public getRolesAdminRolesGet(options?: AxiosRequestConfig) { + public getRolesAdminRolesGet(authorization?: string | null, options?: RawAxiosRequestConfig) { return AdminApiFp(this.configuration) - .getRolesAdminRolesGet(options) + .getRolesAdminRolesGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4421,38 +4473,45 @@ export class AdminApi extends BaseAPI { * Get a user * @summary Get User * @param {string} username + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi */ - public getUserAdminUsersUsernameGet(username: string, options?: AxiosRequestConfig) { + public getUserAdminUsersUsernameGet( + username: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return AdminApiFp(this.configuration) - .getUserAdminUsersUsernameGet(username, options) + .getUserAdminUsersUsernameGet(username, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * Search users * @summary Get Users - * @param {string} [username] filters username that starts with the value - * @param {boolean} [isAdmin] - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [username] filters username that starts with the value + * @param {boolean | null} [isAdmin] + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi */ public getUsersAdminUsersGet( - username?: string, - isAdmin?: boolean, - limit?: number, - offset?: number, - orderBy?: string, - options?: AxiosRequestConfig, + username?: string | null, + isAdmin?: boolean | null, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return AdminApiFp(this.configuration) - .getUsersAdminUsersGet(username, isAdmin, limit, offset, orderBy, options) + .getUsersAdminUsersGet(username, isAdmin, limit, offset, orderBy, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4461,6 +4520,7 @@ export class AdminApi extends BaseAPI { * @summary Make Admin * @param {string} username * @param {PostMakeAdmin} postMakeAdmin + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi @@ -4468,10 +4528,11 @@ export class AdminApi extends BaseAPI { public makeAdminAdminUsersUsernameMakeAdminPost( username: string, postMakeAdmin: PostMakeAdmin, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return AdminApiFp(this.configuration) - .makeAdminAdminUsersUsernameMakeAdminPost(username, postMakeAdmin, options) + .makeAdminAdminUsersUsernameMakeAdminPost(username, postMakeAdmin, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4480,6 +4541,7 @@ export class AdminApi extends BaseAPI { * @summary Remove Role Permission * @param {string} role * @param {Permission} permission + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi @@ -4487,10 +4549,16 @@ export class AdminApi extends BaseAPI { public removeRolePermissionAdminRolesRolePermissionsRemovePost( role: string, permission: Permission, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return AdminApiFp(this.configuration) - .removeRolePermissionAdminRolesRolePermissionsRemovePost(role, permission, options) + .removeRolePermissionAdminRolesRolePermissionsRemovePost( + role, + permission, + authorization, + options, + ) .then((request) => request(this.axios, this.basePath)); } @@ -4499,6 +4567,7 @@ export class AdminApi extends BaseAPI { * @summary Set User Roles * @param {string} username * @param {Array} postRoles + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AdminApi @@ -4506,10 +4575,11 @@ export class AdminApi extends BaseAPI { public setUserRolesAdminUsersUsernameRolesPut( username: string, postRoles: Array, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return AdminApiFp(this.configuration) - .setUserRolesAdminUsersUsernameRolesPut(username, postRoles, options) + .setUserRolesAdminUsersUsernameRolesPut(username, postRoles, authorization, options) .then((request) => request(this.axios, this.basePath)); } } @@ -4524,12 +4594,14 @@ export const AlertsApiAxiosParamCreator = function (configuration?: Configuratio * * @summary Acknowledge Alert * @param {string} alertId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ acknowledgeAlertAlertsAlertIdPost: async ( alertId: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'alertId' is not null or undefined assertParamExists('acknowledgeAlertAlertsAlertIdPost', 'alertId', alertId); @@ -4548,6 +4620,10 @@ export const AlertsApiAxiosParamCreator = function (configuration?: Configuratio const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -4566,13 +4642,15 @@ export const AlertsApiAxiosParamCreator = function (configuration?: Configuratio * @summary Create Alert * @param {string} alertId * @param {string} category + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ createAlertAlertsPost: async ( alertId: string, category: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'alertId' is not null or undefined assertParamExists('createAlertAlertsPost', 'alertId', alertId); @@ -4598,6 +4676,10 @@ export const AlertsApiAxiosParamCreator = function (configuration?: Configuratio localVarQueryParameter['category'] = category; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -4615,12 +4697,14 @@ export const AlertsApiAxiosParamCreator = function (configuration?: Configuratio * * @summary Get Alert * @param {string} alertId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getAlertAlertsAlertIdGet: async ( alertId: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'alertId' is not null or undefined assertParamExists('getAlertAlertsAlertIdGet', 'alertId', alertId); @@ -4639,6 +4723,10 @@ export const AlertsApiAxiosParamCreator = function (configuration?: Configuratio const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -4655,10 +4743,14 @@ export const AlertsApiAxiosParamCreator = function (configuration?: Configuratio /** * * @summary Get Alerts + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getAlertsAlertsGet: async (options: AxiosRequestConfig = {}): Promise => { + getAlertsAlertsGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/alerts`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -4671,6 +4763,10 @@ export const AlertsApiAxiosParamCreator = function (configuration?: Configuratio const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -4698,87 +4794,142 @@ export const AlertsApiFp = function (configuration?: Configuration) { * * @summary Acknowledge Alert * @param {string} alertId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async acknowledgeAlertAlertsAlertIdPost( alertId: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< ( axios?: AxiosInstance, basePath?: string, - ) => AxiosPromise + ) => AxiosPromise > { const localVarAxiosArgs = await localVarAxiosParamCreator.acknowledgeAlertAlertsAlertIdPost( alertId, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AlertsApi.acknowledgeAlertAlertsAlertIdPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Create Alert * @param {string} alertId * @param {string} category + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async createAlertAlertsPost( alertId: string, category: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< ( axios?: AxiosInstance, basePath?: string, - ) => AxiosPromise + ) => AxiosPromise > { const localVarAxiosArgs = await localVarAxiosParamCreator.createAlertAlertsPost( alertId, category, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AlertsApi.createAlertAlertsPost']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Alert * @param {string} alertId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getAlertAlertsAlertIdGet( alertId: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< ( axios?: AxiosInstance, basePath?: string, - ) => AxiosPromise + ) => AxiosPromise > { const localVarAxiosArgs = await localVarAxiosParamCreator.getAlertAlertsAlertIdGet( alertId, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AlertsApi.getAlertAlertsAlertIdGet']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Alerts + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getAlertsAlertsGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< ( axios?: AxiosInstance, basePath?: string, - ) => AxiosPromise> + ) => AxiosPromise< + Array + > > { - const localVarAxiosArgs = await localVarAxiosParamCreator.getAlertsAlertsGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.getAlertsAlertsGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['AlertsApi.getAlertsAlertsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -4798,15 +4949,17 @@ export const AlertsApiFactory = function ( * * @summary Acknowledge Alert * @param {string} alertId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ acknowledgeAlertAlertsAlertIdPost( alertId: string, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .acknowledgeAlertAlertsAlertIdPost(alertId, options) + .acknowledgeAlertAlertsAlertIdPost(alertId, authorization, options) .then((request) => request(axios, basePath)); }, /** @@ -4814,43 +4967,53 @@ export const AlertsApiFactory = function ( * @summary Create Alert * @param {string} alertId * @param {string} category + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ createAlertAlertsPost( alertId: string, category: string, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .createAlertAlertsPost(alertId, category, options) + .createAlertAlertsPost(alertId, category, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Alert * @param {string} alertId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getAlertAlertsAlertIdGet( alertId: string, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .getAlertAlertsAlertIdGet(alertId, options) + .getAlertAlertsAlertIdGet(alertId, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Alerts + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getAlertsAlertsGet( + authorization?: string | null, options?: any, - ): AxiosPromise> { - return localVarFp.getAlertsAlertsGet(options).then((request) => request(axios, basePath)); + ): AxiosPromise< + Array + > { + return localVarFp + .getAlertsAlertsGet(authorization, options) + .then((request) => request(axios, basePath)); }, }; }; @@ -4866,13 +5029,18 @@ export class AlertsApi extends BaseAPI { * * @summary Acknowledge Alert * @param {string} alertId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AlertsApi */ - public acknowledgeAlertAlertsAlertIdPost(alertId: string, options?: AxiosRequestConfig) { + public acknowledgeAlertAlertsAlertIdPost( + alertId: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return AlertsApiFp(this.configuration) - .acknowledgeAlertAlertsAlertIdPost(alertId, options) + .acknowledgeAlertAlertsAlertIdPost(alertId, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4881,13 +5049,19 @@ export class AlertsApi extends BaseAPI { * @summary Create Alert * @param {string} alertId * @param {string} category + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AlertsApi */ - public createAlertAlertsPost(alertId: string, category: string, options?: AxiosRequestConfig) { + public createAlertAlertsPost( + alertId: string, + category: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return AlertsApiFp(this.configuration) - .createAlertAlertsPost(alertId, category, options) + .createAlertAlertsPost(alertId, category, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -4895,26 +5069,32 @@ export class AlertsApi extends BaseAPI { * * @summary Get Alert * @param {string} alertId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AlertsApi */ - public getAlertAlertsAlertIdGet(alertId: string, options?: AxiosRequestConfig) { + public getAlertAlertsAlertIdGet( + alertId: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return AlertsApiFp(this.configuration) - .getAlertAlertsAlertIdGet(alertId, options) + .getAlertAlertsAlertIdGet(alertId, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Get Alerts + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof AlertsApi */ - public getAlertsAlertsGet(options?: AxiosRequestConfig) { + public getAlertsAlertsGet(authorization?: string | null, options?: RawAxiosRequestConfig) { return AlertsApiFp(this.configuration) - .getAlertsAlertsGet(options) + .getAlertsAlertsGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } } @@ -4929,12 +5109,14 @@ export const BeaconsApiAxiosParamCreator = function (configuration?: Configurati * * @summary Get Beacon * @param {string} beaconId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getBeaconBeaconsBeaconIdGet: async ( beaconId: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'beaconId' is not null or undefined assertParamExists('getBeaconBeaconsBeaconIdGet', 'beaconId', beaconId); @@ -4953,6 +5135,10 @@ export const BeaconsApiAxiosParamCreator = function (configuration?: Configurati const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -4969,10 +5155,14 @@ export const BeaconsApiAxiosParamCreator = function (configuration?: Configurati /** * * @summary Get Beacons + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getBeaconsBeaconsGet: async (options: AxiosRequestConfig = {}): Promise => { + getBeaconsBeaconsGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/beacons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -4985,6 +5175,10 @@ export const BeaconsApiAxiosParamCreator = function (configuration?: Configurati const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -5006,6 +5200,7 @@ export const BeaconsApiAxiosParamCreator = function (configuration?: Configurati * @param {string} category * @param {boolean} activated * @param {string} level + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -5015,7 +5210,8 @@ export const BeaconsApiAxiosParamCreator = function (configuration?: Configurati category: string, activated: boolean, level: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'beaconId' is not null or undefined assertParamExists('saveBeaconStateBeaconsPost', 'beaconId', beaconId); @@ -5059,6 +5255,10 @@ export const BeaconsApiAxiosParamCreator = function (configuration?: Configurati localVarQueryParameter['level'] = level; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -5086,40 +5286,69 @@ export const BeaconsApiFp = function (configuration?: Configuration) { * * @summary Get Beacon * @param {string} beaconId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getBeaconBeaconsBeaconIdGet( beaconId: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< ( axios?: AxiosInstance, basePath?: string, - ) => AxiosPromise + ) => AxiosPromise > { const localVarAxiosArgs = await localVarAxiosParamCreator.getBeaconBeaconsBeaconIdGet( beaconId, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['BeaconsApi.getBeaconBeaconsBeaconIdGet']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Beacons + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getBeaconsBeaconsGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< ( axios?: AxiosInstance, basePath?: string, - ) => AxiosPromise> + ) => AxiosPromise< + Array + > > { - const localVarAxiosArgs = await localVarAxiosParamCreator.getBeaconsBeaconsGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.getBeaconsBeaconsGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['BeaconsApi.getBeaconsBeaconsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * @@ -5129,6 +5358,7 @@ export const BeaconsApiFp = function (configuration?: Configuration) { * @param {string} category * @param {boolean} activated * @param {string} level + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -5138,12 +5368,13 @@ export const BeaconsApiFp = function (configuration?: Configuration) { category: string, activated: boolean, level: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< ( axios?: AxiosInstance, basePath?: string, - ) => AxiosPromise + ) => AxiosPromise > { const localVarAxiosArgs = await localVarAxiosParamCreator.saveBeaconStateBeaconsPost( beaconId, @@ -5151,9 +5382,20 @@ export const BeaconsApiFp = function (configuration?: Configuration) { category, activated, level, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['BeaconsApi.saveBeaconStateBeaconsPost']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -5173,27 +5415,35 @@ export const BeaconsApiFactory = function ( * * @summary Get Beacon * @param {string} beaconId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getBeaconBeaconsBeaconIdGet( beaconId: string, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .getBeaconBeaconsBeaconIdGet(beaconId, options) + .getBeaconBeaconsBeaconIdGet(beaconId, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Beacons + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getBeaconsBeaconsGet( + authorization?: string | null, options?: any, - ): AxiosPromise> { - return localVarFp.getBeaconsBeaconsGet(options).then((request) => request(axios, basePath)); + ): AxiosPromise< + Array + > { + return localVarFp + .getBeaconsBeaconsGet(authorization, options) + .then((request) => request(axios, basePath)); }, /** * @@ -5203,6 +5453,7 @@ export const BeaconsApiFactory = function ( * @param {string} category * @param {boolean} activated * @param {string} level + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -5212,10 +5463,19 @@ export const BeaconsApiFactory = function ( category: string, activated: boolean, level: string, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .saveBeaconStateBeaconsPost(beaconId, online, category, activated, level, options) + .saveBeaconStateBeaconsPost( + beaconId, + online, + category, + activated, + level, + authorization, + options, + ) .then((request) => request(axios, basePath)); }, }; @@ -5232,26 +5492,32 @@ export class BeaconsApi extends BaseAPI { * * @summary Get Beacon * @param {string} beaconId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof BeaconsApi */ - public getBeaconBeaconsBeaconIdGet(beaconId: string, options?: AxiosRequestConfig) { + public getBeaconBeaconsBeaconIdGet( + beaconId: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return BeaconsApiFp(this.configuration) - .getBeaconBeaconsBeaconIdGet(beaconId, options) + .getBeaconBeaconsBeaconIdGet(beaconId, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Get Beacons + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof BeaconsApi */ - public getBeaconsBeaconsGet(options?: AxiosRequestConfig) { + public getBeaconsBeaconsGet(authorization?: string | null, options?: RawAxiosRequestConfig) { return BeaconsApiFp(this.configuration) - .getBeaconsBeaconsGet(options) + .getBeaconsBeaconsGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -5263,6 +5529,7 @@ export class BeaconsApi extends BaseAPI { * @param {string} category * @param {boolean} activated * @param {string} level + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof BeaconsApi @@ -5273,10 +5540,19 @@ export class BeaconsApi extends BaseAPI { category: string, activated: boolean, level: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return BeaconsApiFp(this.configuration) - .saveBeaconStateBeaconsPost(beaconId, online, category, activated, level, options) + .saveBeaconStateBeaconsPost( + beaconId, + online, + category, + activated, + level, + authorization, + options, + ) .then((request) => request(this.axios, this.basePath)); } } @@ -5290,11 +5566,13 @@ export const BuildingApiAxiosParamCreator = function (configuration?: Configurat /** * Available in socket.io * @summary Get Building Map + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getBuildingMapBuildingMapGet: async ( - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { const localVarPath = `/building_map`; // use dummy base URL string because the URL constructor only accepts absolute URLs. @@ -5308,6 +5586,10 @@ export const BuildingApiAxiosParamCreator = function (configuration?: Configurat const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -5334,16 +5616,30 @@ export const BuildingApiFp = function (configuration?: Configuration) { /** * Available in socket.io * @summary Get Building Map + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getBuildingMapBuildingMapGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getBuildingMapBuildingMapGet( + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['BuildingApi.getBuildingMapBuildingMapGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -5362,12 +5658,16 @@ export const BuildingApiFactory = function ( /** * Available in socket.io * @summary Get Building Map + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getBuildingMapBuildingMapGet(options?: any): AxiosPromise { + getBuildingMapBuildingMapGet( + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .getBuildingMapBuildingMapGet(options) + .getBuildingMapBuildingMapGet(authorization, options) .then((request) => request(axios, basePath)); }, }; @@ -5383,13 +5683,17 @@ export class BuildingApi extends BaseAPI { /** * Available in socket.io * @summary Get Building Map + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof BuildingApi */ - public getBuildingMapBuildingMapGet(options?: AxiosRequestConfig) { + public getBuildingMapBuildingMapGet( + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return BuildingApiFp(this.configuration) - .getBuildingMapBuildingMapGet(options) + .getBuildingMapBuildingMapGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } } @@ -5403,11 +5707,13 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati /** * Get the effective permissions of the current user * @summary Get Effective Permissions + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getEffectivePermissionsPermissionsGet: async ( - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { const localVarPath = `/permissions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. @@ -5421,6 +5727,10 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -5440,7 +5750,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTimeTimeGet: async (options: AxiosRequestConfig = {}): Promise => { + getTimeTimeGet: async (options: RawAxiosRequestConfig = {}): Promise => { const localVarPath = `/time`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -5469,10 +5779,14 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati /** * Get the currently logged in user * @summary Get User + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getUserUserGet: async (options: AxiosRequestConfig = {}): Promise => { + getUserUserGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/user`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -5485,6 +5799,10 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -5499,12 +5817,12 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati }; }, /** - * # NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint. ## About This exposes a minimal pubsub system built on top of socket.io. It works similar to a normal socket.io endpoint, except that are 2 special rooms which control subscriptions. ## Rooms ### subscribe Clients must send a message to this room to start receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### unsubscribe Clients can send a message to this room to stop receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### /alerts ``` { \"title\": \"Alert\", \"description\": \"General alert that can be triggered by events.\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"maxLength\": 255, \"type\": \"string\" }, \"original_id\": { \"title\": \"Original Id\", \"maxLength\": 255, \"type\": \"string\" }, \"category\": { \"title\": \"Category\", \"description\": \"Default: default
Task: task
Fleet: fleet
Robot: robot\", \"maxLength\": 7, \"type\": \"string\" }, \"unix_millis_created_time\": { \"title\": \"Unix Millis Created Time\", \"minimum\": -9223372036854775808, \"maximum\": 9223372036854775807, \"type\": \"integer\" }, \"acknowledged_by\": { \"title\": \"Acknowledged By\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"unix_millis_acknowledged_time\": { \"title\": \"Unix Millis Acknowledged Time\", \"minimum\": -9223372036854775808, \"maximum\": 9223372036854775807, \"nullable\": true, \"type\": \"integer\" } }, \"required\": [ \"id\", \"original_id\", \"category\", \"unix_millis_created_time\" ], \"additionalProperties\": false } ``` ### /beacons ``` { \"title\": \"BeaconState\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"maxLength\": 255, \"type\": \"string\" }, \"online\": { \"title\": \"Online\", \"type\": \"boolean\" }, \"category\": { \"title\": \"Category\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"activated\": { \"title\": \"Activated\", \"type\": \"boolean\" }, \"level\": { \"title\": \"Level\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" } }, \"required\": [ \"id\", \"online\", \"activated\" ], \"additionalProperties\": false } ``` ### /building_map ``` { \"title\": \"BuildingMap\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"levels\": { \"title\": \"Levels\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Level\" } }, \"lifts\": { \"title\": \"Lifts\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Lift\" } } }, \"required\": [ \"name\", \"levels\", \"lifts\" ], \"definitions\": { \"AffineImage\": { \"title\": \"AffineImage\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"x_offset\": { \"title\": \"X Offset\", \"default\": 0, \"type\": \"number\" }, \"y_offset\": { \"title\": \"Y Offset\", \"default\": 0, \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"default\": 0, \"type\": \"number\" }, \"scale\": { \"title\": \"Scale\", \"default\": 0, \"type\": \"number\" }, \"encoding\": { \"title\": \"Encoding\", \"default\": \"\", \"type\": \"string\" }, \"data\": { \"title\": \"Data\", \"type\": \"string\" } }, \"required\": [ \"name\", \"x_offset\", \"y_offset\", \"yaw\", \"scale\", \"encoding\", \"data\" ] }, \"Place\": { \"title\": \"Place\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"default\": 0, \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"default\": 0, \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"default\": 0, \"type\": \"number\" }, \"position_tolerance\": { \"title\": \"Position Tolerance\", \"default\": 0, \"type\": \"number\" }, \"yaw_tolerance\": { \"title\": \"Yaw Tolerance\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"name\", \"x\", \"y\", \"yaw\", \"position_tolerance\", \"yaw_tolerance\" ] }, \"Door\": { \"title\": \"Door\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"v1_x\": { \"title\": \"V1 X\", \"default\": 0, \"type\": \"number\" }, \"v1_y\": { \"title\": \"V1 Y\", \"default\": 0, \"type\": \"number\" }, \"v2_x\": { \"title\": \"V2 X\", \"default\": 0, \"type\": \"number\" }, \"v2_y\": { \"title\": \"V2 Y\", \"default\": 0, \"type\": \"number\" }, \"door_type\": { \"title\": \"Door Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"motion_range\": { \"title\": \"Motion Range\", \"default\": 0, \"type\": \"number\" }, \"motion_direction\": { \"title\": \"Motion Direction\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" } }, \"required\": [ \"name\", \"v1_x\", \"v1_y\", \"v2_x\", \"v2_y\", \"door_type\", \"motion_range\", \"motion_direction\" ] }, \"Param\": { \"title\": \"Param\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"type\": { \"title\": \"Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"value_int\": { \"title\": \"Value Int\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"value_float\": { \"title\": \"Value Float\", \"default\": 0, \"type\": \"number\" }, \"value_string\": { \"title\": \"Value String\", \"default\": \"\", \"type\": \"string\" }, \"value_bool\": { \"title\": \"Value Bool\", \"default\": false, \"type\": \"boolean\" } }, \"required\": [ \"name\", \"type\", \"value_int\", \"value_float\", \"value_string\", \"value_bool\" ] }, \"GraphNode\": { \"title\": \"GraphNode\", \"type\": \"object\", \"properties\": { \"x\": { \"title\": \"X\", \"default\": 0, \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"default\": 0, \"type\": \"number\" }, \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } } }, \"required\": [ \"x\", \"y\", \"name\", \"params\" ] }, \"GraphEdge\": { \"title\": \"GraphEdge\", \"type\": \"object\", \"properties\": { \"v1_idx\": { \"title\": \"V1 Idx\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"v2_idx\": { \"title\": \"V2 Idx\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } }, \"edge_type\": { \"title\": \"Edge Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" } }, \"required\": [ \"v1_idx\", \"v2_idx\", \"params\", \"edge_type\" ] }, \"Graph\": { \"title\": \"Graph\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"vertices\": { \"title\": \"Vertices\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/GraphNode\" } }, \"edges\": { \"title\": \"Edges\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/GraphEdge\" } }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } } }, \"required\": [ \"name\", \"vertices\", \"edges\", \"params\" ] }, \"Level\": { \"title\": \"Level\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"elevation\": { \"title\": \"Elevation\", \"default\": 0, \"type\": \"number\" }, \"images\": { \"title\": \"Images\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/AffineImage\" } }, \"places\": { \"title\": \"Places\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Place\" } }, \"doors\": { \"title\": \"Doors\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Door\" } }, \"nav_graphs\": { \"title\": \"Nav Graphs\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Graph\" } }, \"wall_graph\": { \"title\": \"Wall Graph\", \"default\": { \"name\": \"\", \"vertices\": [], \"edges\": [], \"params\": [] }, \"allOf\": [ { \"$ref\": \"#/definitions/Graph\" } ] } }, \"required\": [ \"name\", \"elevation\", \"images\", \"places\", \"doors\", \"nav_graphs\", \"wall_graph\" ] }, \"Lift\": { \"title\": \"Lift\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"levels\": { \"title\": \"Levels\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"doors\": { \"title\": \"Doors\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Door\" } }, \"wall_graph\": { \"title\": \"Wall Graph\", \"default\": { \"name\": \"\", \"vertices\": [], \"edges\": [], \"params\": [] }, \"allOf\": [ { \"$ref\": \"#/definitions/Graph\" } ] }, \"ref_x\": { \"title\": \"Ref X\", \"default\": 0, \"type\": \"number\" }, \"ref_y\": { \"title\": \"Ref Y\", \"default\": 0, \"type\": \"number\" }, \"ref_yaw\": { \"title\": \"Ref Yaw\", \"default\": 0, \"type\": \"number\" }, \"width\": { \"title\": \"Width\", \"default\": 0, \"type\": \"number\" }, \"depth\": { \"title\": \"Depth\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"name\", \"levels\", \"doors\", \"wall_graph\", \"ref_x\", \"ref_y\", \"ref_yaw\", \"width\", \"depth\" ] } } } ``` ### /doors/{door_name}/state ``` { \"title\": \"DoorState\", \"type\": \"object\", \"properties\": { \"door_time\": { \"title\": \"Door Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"door_name\": { \"title\": \"Door Name\", \"default\": \"\", \"type\": \"string\" }, \"current_mode\": { \"title\": \"Current Mode\", \"default\": { \"value\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/DoorMode\" } ] } }, \"required\": [ \"door_time\", \"door_name\", \"current_mode\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] }, \"DoorMode\": { \"title\": \"DoorMode\", \"type\": \"object\", \"properties\": { \"value\": { \"title\": \"Value\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"value\" ] } } } ``` ### /doors/{door_name}/health ``` { \"title\": \"DoorHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /lifts/{lift_name}/state ``` { \"title\": \"LiftState\", \"type\": \"object\", \"properties\": { \"lift_time\": { \"title\": \"Lift Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"lift_name\": { \"title\": \"Lift Name\", \"default\": \"\", \"type\": \"string\" }, \"available_floors\": { \"title\": \"Available Floors\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"current_floor\": { \"title\": \"Current Floor\", \"default\": \"\", \"type\": \"string\" }, \"destination_floor\": { \"title\": \"Destination Floor\", \"default\": \"\", \"type\": \"string\" }, \"door_state\": { \"title\": \"Door State\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"motion_state\": { \"title\": \"Motion State\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"available_modes\": { \"title\": \"Available Modes\", \"type\": \"array\", \"items\": { \"type\": \"integer\" } }, \"current_mode\": { \"title\": \"Current Mode\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"session_id\": { \"title\": \"Session Id\", \"default\": \"\", \"type\": \"string\" } }, \"required\": [ \"lift_time\", \"lift_name\", \"available_floors\", \"current_floor\", \"destination_floor\", \"door_state\", \"motion_state\", \"available_modes\", \"current_mode\", \"session_id\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /lifts/{lift_name}/health ``` { \"title\": \"LiftHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /tasks/{task_id}/state ``` { \"title\": \"TaskState\", \"type\": \"object\", \"properties\": { \"booking\": { \"$ref\": \"#/definitions/Booking\" }, \"category\": { \"$ref\": \"#/definitions/Category\" }, \"detail\": { \"$ref\": \"#/definitions/Detail\" }, \"unix_millis_start_time\": { \"title\": \"Unix Millis Start Time\", \"type\": \"integer\" }, \"unix_millis_finish_time\": { \"title\": \"Unix Millis Finish Time\", \"type\": \"integer\" }, \"original_estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"assigned_to\": { \"title\": \"Assigned To\", \"description\": \"Which agent (robot) is the task assigned to\", \"allOf\": [ { \"$ref\": \"#/definitions/AssignedTo\" } ] }, \"status\": { \"$ref\": \"#/definitions/Status\" }, \"dispatch\": { \"$ref\": \"#/definitions/Dispatch\" }, \"phases\": { \"title\": \"Phases\", \"description\": \"A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Phase\" } }, \"completed\": { \"title\": \"Completed\", \"description\": \"An array of the IDs of completed phases of this task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Id\" } }, \"active\": { \"title\": \"Active\", \"description\": \"The ID of the active phase for this task\", \"allOf\": [ { \"$ref\": \"#/definitions/Id\" } ] }, \"pending\": { \"title\": \"Pending\", \"description\": \"An array of the pending phases of this task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Id\" } }, \"interruptions\": { \"title\": \"Interruptions\", \"description\": \"A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Interruption\" } }, \"cancellation\": { \"title\": \"Cancellation\", \"description\": \"If the task was cancelled, this will describe information about the request.\", \"allOf\": [ { \"$ref\": \"#/definitions/Cancellation\" } ] }, \"killed\": { \"title\": \"Killed\", \"description\": \"If the task was killed, this will describe information about the request.\", \"allOf\": [ { \"$ref\": \"#/definitions/Killed\" } ] } }, \"required\": [ \"booking\" ], \"definitions\": { \"Booking\": { \"title\": \"Booking\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"description\": \"The unique identifier for this task\", \"type\": \"string\" }, \"unix_millis_earliest_start_time\": { \"title\": \"Unix Millis Earliest Start Time\", \"type\": \"integer\" }, \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"priority\": { \"title\": \"Priority\", \"description\": \"Priority information about this task\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"string\" } ] }, \"labels\": { \"title\": \"Labels\", \"description\": \"Information about how and why this task was booked\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"requester\": { \"title\": \"Requester\", \"description\": \"(Optional) An identifier for the entity that requested this task\", \"type\": \"string\" } }, \"required\": [ \"id\" ] }, \"Category\": { \"title\": \"Category\", \"description\": \"The category of this task or phase\", \"type\": \"string\" }, \"Detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about a task, phase, or event\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"array\", \"items\": {} }, { \"type\": \"string\" } ] }, \"EstimateMillis\": { \"title\": \"EstimateMillis\", \"description\": \"An estimate, in milliseconds, of how long the subject will take to complete\", \"minimum\": 0, \"type\": \"integer\" }, \"AssignedTo\": { \"title\": \"AssignedTo\", \"type\": \"object\", \"properties\": { \"group\": { \"title\": \"Group\", \"type\": \"string\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" } }, \"required\": [ \"group\", \"name\" ] }, \"Status\": { \"title\": \"Status\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"blocked\", \"error\", \"failed\", \"queued\", \"standby\", \"underway\", \"delayed\", \"skipped\", \"canceled\", \"killed\", \"completed\" ] }, \"Status1\": { \"title\": \"Status1\", \"description\": \"An enumeration.\", \"enum\": [ \"queued\", \"selected\", \"dispatched\", \"failed_to_assign\", \"canceled_in_flight\" ] }, \"Assignment\": { \"title\": \"Assignment\", \"type\": \"object\", \"properties\": { \"fleet_name\": { \"title\": \"Fleet Name\", \"type\": \"string\" }, \"expected_robot_name\": { \"title\": \"Expected Robot Name\", \"type\": \"string\" } } }, \"Error\": { \"title\": \"Error\", \"type\": \"object\", \"properties\": { \"code\": { \"title\": \"Code\", \"description\": \"A standard code for the kind of error that has occurred\", \"minimum\": 0, \"type\": \"integer\" }, \"category\": { \"title\": \"Category\", \"description\": \"The category of the error\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Details about the error\", \"type\": \"string\" } } }, \"Dispatch\": { \"title\": \"Dispatch\", \"type\": \"object\", \"properties\": { \"status\": { \"$ref\": \"#/definitions/Status1\" }, \"assignment\": { \"$ref\": \"#/definitions/Assignment\" }, \"errors\": { \"title\": \"Errors\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Error\" } } }, \"required\": [ \"status\" ] }, \"Id\": { \"title\": \"Id\", \"minimum\": 0, \"type\": \"integer\" }, \"EventState\": { \"title\": \"EventState\", \"type\": \"object\", \"properties\": { \"id\": { \"$ref\": \"#/definitions/Id\" }, \"status\": { \"$ref\": \"#/definitions/Status\" }, \"name\": { \"title\": \"Name\", \"description\": \"The brief name of the event\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about the event\", \"allOf\": [ { \"$ref\": \"#/definitions/Detail\" } ] }, \"deps\": { \"title\": \"Deps\", \"description\": \"This event may depend on other events. This array contains the IDs of those other event dependencies.\", \"type\": \"array\", \"items\": { \"type\": \"integer\", \"minimum\": 0 } } }, \"required\": [ \"id\" ] }, \"Undo\": { \"title\": \"Undo\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the undo skip request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the undo skip request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"SkipPhaseRequest\": { \"title\": \"SkipPhaseRequest\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the skip request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the purpose of the skip request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"undo\": { \"title\": \"Undo\", \"description\": \"Information about an undo skip request that applied to this request\", \"allOf\": [ { \"$ref\": \"#/definitions/Undo\" } ] } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Phase\": { \"title\": \"Phase\", \"type\": \"object\", \"properties\": { \"id\": { \"$ref\": \"#/definitions/Id\" }, \"category\": { \"$ref\": \"#/definitions/Category\" }, \"detail\": { \"$ref\": \"#/definitions/Detail\" }, \"unix_millis_start_time\": { \"title\": \"Unix Millis Start Time\", \"type\": \"integer\" }, \"unix_millis_finish_time\": { \"title\": \"Unix Millis Finish Time\", \"type\": \"integer\" }, \"original_estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"final_event_id\": { \"$ref\": \"#/definitions/Id\" }, \"events\": { \"title\": \"Events\", \"description\": \"A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/EventState\" } }, \"skip_requests\": { \"title\": \"Skip Requests\", \"description\": \"Information about any skip requests that have been received\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/SkipPhaseRequest\" } } }, \"required\": [ \"id\" ] }, \"ResumedBy\": { \"title\": \"ResumedBy\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the resume request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the resume request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"labels\" ] }, \"Interruption\": { \"title\": \"Interruption\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the interruption request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the purpose of the interruption\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"resumed_by\": { \"title\": \"Resumed By\", \"description\": \"Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.\", \"allOf\": [ { \"$ref\": \"#/definitions/ResumedBy\" } ] } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Cancellation\": { \"title\": \"Cancellation\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the cancellation request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the cancel request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Killed\": { \"title\": \"Killed\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the cancellation request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the kill request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] } } } ``` ### /tasks/{task_id}/log ``` { \"title\": \"TaskEventLog\", \"type\": \"object\", \"properties\": { \"task_id\": { \"title\": \"Task Id\", \"type\": \"string\" }, \"log\": { \"title\": \"Log\", \"description\": \"Log entries related to the overall task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"phases\": { \"title\": \"Phases\", \"description\": \"A dictionary whose keys (property names) are the indices of a phase\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Phases\" } } }, \"required\": [ \"task_id\" ], \"additionalProperties\": false, \"definitions\": { \"Tier\": { \"title\": \"Tier\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ] }, \"LogEntry\": { \"title\": \"LogEntry\", \"type\": \"object\", \"properties\": { \"seq\": { \"title\": \"Seq\", \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"type\": \"integer\" }, \"tier\": { \"description\": \"The importance level of the log entry\", \"allOf\": [ { \"$ref\": \"#/definitions/Tier\" } ] }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"title\": \"Text\", \"description\": \"The text of the log entry\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ] }, \"Phases\": { \"title\": \"Phases\", \"type\": \"object\", \"properties\": { \"log\": { \"title\": \"Log\", \"description\": \"Log entries related to the overall phase\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"events\": { \"title\": \"Events\", \"description\": \"A dictionary whose keys (property names) are the indices of an event in the phase\", \"type\": \"object\", \"additionalProperties\": { \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } } } }, \"additionalProperties\": false } } } ``` ### /dispensers/{guid}/state ``` { \"title\": \"DispenserState\", \"type\": \"object\", \"properties\": { \"time\": { \"title\": \"Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"guid\": { \"title\": \"Guid\", \"default\": \"\", \"type\": \"string\" }, \"mode\": { \"title\": \"Mode\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"request_guid_queue\": { \"title\": \"Request Guid Queue\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /dispensers/{guid}/health ``` { \"title\": \"DispenserHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /ingestors/{guid}/state ``` { \"title\": \"IngestorState\", \"type\": \"object\", \"properties\": { \"time\": { \"title\": \"Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"guid\": { \"title\": \"Guid\", \"default\": \"\", \"type\": \"string\" }, \"mode\": { \"title\": \"Mode\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"request_guid_queue\": { \"title\": \"Request Guid Queue\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /ingestors/{guid}/health ``` { \"title\": \"IngestorHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /fleets/{name}/state ``` { \"title\": \"FleetState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"robots\": { \"title\": \"Robots\", \"description\": \"A dictionary of the states of the robots that belong to this fleet\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/RobotState\" } } }, \"definitions\": { \"Status2\": { \"title\": \"Status2\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"offline\", \"shutdown\", \"idle\", \"charging\", \"working\", \"error\" ] }, \"Location2D\": { \"title\": \"Location2D\", \"type\": \"object\", \"properties\": { \"map\": { \"title\": \"Map\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" } }, \"required\": [ \"map\", \"x\", \"y\", \"yaw\" ] }, \"Issue\": { \"title\": \"Issue\", \"type\": \"object\", \"properties\": { \"category\": { \"title\": \"Category\", \"description\": \"Category of the robot\'s issue\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about the issue\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"array\", \"items\": {} }, { \"type\": \"string\" } ] } } }, \"RobotState\": { \"title\": \"RobotState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"status\": { \"description\": \"A simple token representing the status of the robot\", \"allOf\": [ { \"$ref\": \"#/definitions/Status2\" } ] }, \"task_id\": { \"title\": \"Task Id\", \"description\": \"The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.\", \"type\": \"string\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"location\": { \"$ref\": \"#/definitions/Location2D\" }, \"battery\": { \"title\": \"Battery\", \"description\": \"State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)\", \"minimum\": 0.0, \"maximum\": 1.0, \"type\": \"number\" }, \"issues\": { \"title\": \"Issues\", \"description\": \"A list of issues with the robot that operators need to address\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Issue\" } } } } } } ``` ### /fleets/{name}/log ``` { \"title\": \"FleetState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"log\": { \"title\": \"Log\", \"description\": \"Log for the overall fleet\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"robots\": { \"title\": \"Robots\", \"description\": \"Dictionary of logs for the individual robots. The keys (property names) are the robot names.\", \"type\": \"object\", \"additionalProperties\": { \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } } } }, \"definitions\": { \"Tier\": { \"title\": \"Tier\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ] }, \"LogEntry\": { \"title\": \"LogEntry\", \"type\": \"object\", \"properties\": { \"seq\": { \"title\": \"Seq\", \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"type\": \"integer\" }, \"tier\": { \"description\": \"The importance level of the log entry\", \"allOf\": [ { \"$ref\": \"#/definitions/Tier\" } ] }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"title\": \"Text\", \"description\": \"The text of the log entry\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ] } } } ``` + * # NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint. ## About This exposes a minimal pubsub system built on top of socket.io. It works similar to a normal socket.io endpoint, except that are 2 special rooms which control subscriptions. ## Rooms ### subscribe Clients must send a message to this room to start receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### unsubscribe Clients can send a message to this room to stop receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### /alerts ``` { \"additionalProperties\": false, \"description\": \"General alert that can be triggered by events.\", \"properties\": { \"id\": { \"maxLength\": 255, \"title\": \"Id\", \"type\": \"string\" }, \"original_id\": { \"maxLength\": 255, \"title\": \"Original Id\", \"type\": \"string\" }, \"category\": { \"description\": \"Default: default
Task: task
Fleet: fleet
Robot: robot\", \"maxLength\": 7, \"title\": \"Category\", \"type\": \"string\" }, \"unix_millis_created_time\": { \"maximum\": 9223372036854775807, \"minimum\": -9223372036854775808, \"title\": \"Unix Millis Created Time\", \"type\": \"integer\" }, \"acknowledged_by\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Acknowledged By\" }, \"unix_millis_acknowledged_time\": { \"anyOf\": [ { \"maximum\": 9223372036854775807, \"minimum\": -9223372036854775808, \"type\": \"integer\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Unix Millis Acknowledged Time\" } }, \"required\": [ \"id\", \"original_id\", \"category\", \"unix_millis_created_time\", \"acknowledged_by\", \"unix_millis_acknowledged_time\" ], \"title\": \"Alert\", \"type\": \"object\" } ``` ### /beacons ``` { \"additionalProperties\": false, \"properties\": { \"id\": { \"maxLength\": 255, \"title\": \"Id\", \"type\": \"string\" }, \"online\": { \"title\": \"Online\", \"type\": \"boolean\" }, \"category\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Category\" }, \"activated\": { \"title\": \"Activated\", \"type\": \"boolean\" }, \"level\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Level\" } }, \"required\": [ \"id\", \"online\", \"category\", \"activated\", \"level\" ], \"title\": \"BeaconState\", \"type\": \"object\" } ``` ### /building_map ``` { \"$defs\": { \"AffineImage\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"x_offset\": { \"title\": \"X Offset\", \"type\": \"number\" }, \"y_offset\": { \"title\": \"Y Offset\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" }, \"scale\": { \"title\": \"Scale\", \"type\": \"number\" }, \"encoding\": { \"title\": \"Encoding\", \"type\": \"string\" }, \"data\": { \"title\": \"Data\", \"type\": \"string\" } }, \"required\": [ \"name\", \"x_offset\", \"y_offset\", \"yaw\", \"scale\", \"encoding\", \"data\" ], \"title\": \"AffineImage\", \"type\": \"object\" }, \"Door\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"v1_x\": { \"title\": \"V1 X\", \"type\": \"number\" }, \"v1_y\": { \"title\": \"V1 Y\", \"type\": \"number\" }, \"v2_x\": { \"title\": \"V2 X\", \"type\": \"number\" }, \"v2_y\": { \"title\": \"V2 Y\", \"type\": \"number\" }, \"door_type\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Door Type\", \"type\": \"integer\" }, \"motion_range\": { \"title\": \"Motion Range\", \"type\": \"number\" }, \"motion_direction\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Motion Direction\", \"type\": \"integer\" } }, \"required\": [ \"name\", \"v1_x\", \"v1_y\", \"v2_x\", \"v2_y\", \"door_type\", \"motion_range\", \"motion_direction\" ], \"title\": \"Door\", \"type\": \"object\" }, \"Graph\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"vertices\": { \"items\": { \"$ref\": \"#/$defs/GraphNode\" }, \"title\": \"Vertices\", \"type\": \"array\" }, \"edges\": { \"items\": { \"$ref\": \"#/$defs/GraphEdge\" }, \"title\": \"Edges\", \"type\": \"array\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" } }, \"required\": [ \"name\", \"vertices\", \"edges\", \"params\" ], \"title\": \"Graph\", \"type\": \"object\" }, \"GraphEdge\": { \"properties\": { \"v1_idx\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"V1 Idx\", \"type\": \"integer\" }, \"v2_idx\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"V2 Idx\", \"type\": \"integer\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" }, \"edge_type\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Edge Type\", \"type\": \"integer\" } }, \"required\": [ \"v1_idx\", \"v2_idx\", \"params\", \"edge_type\" ], \"title\": \"GraphEdge\", \"type\": \"object\" }, \"GraphNode\": { \"properties\": { \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" } }, \"required\": [ \"x\", \"y\", \"name\", \"params\" ], \"title\": \"GraphNode\", \"type\": \"object\" }, \"Level\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"elevation\": { \"title\": \"Elevation\", \"type\": \"number\" }, \"images\": { \"items\": { \"$ref\": \"#/$defs/AffineImage\" }, \"title\": \"Images\", \"type\": \"array\" }, \"places\": { \"items\": { \"$ref\": \"#/$defs/Place\" }, \"title\": \"Places\", \"type\": \"array\" }, \"doors\": { \"items\": { \"$ref\": \"#/$defs/Door\" }, \"title\": \"Doors\", \"type\": \"array\" }, \"nav_graphs\": { \"items\": { \"$ref\": \"#/$defs/Graph\" }, \"title\": \"Nav Graphs\", \"type\": \"array\" }, \"wall_graph\": { \"$ref\": \"#/$defs/Graph\" } }, \"required\": [ \"name\", \"elevation\", \"images\", \"places\", \"doors\", \"nav_graphs\", \"wall_graph\" ], \"title\": \"Level\", \"type\": \"object\" }, \"Lift\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"levels\": { \"items\": { \"type\": \"string\" }, \"title\": \"Levels\", \"type\": \"array\" }, \"doors\": { \"items\": { \"$ref\": \"#/$defs/Door\" }, \"title\": \"Doors\", \"type\": \"array\" }, \"wall_graph\": { \"$ref\": \"#/$defs/Graph\" }, \"ref_x\": { \"title\": \"Ref X\", \"type\": \"number\" }, \"ref_y\": { \"title\": \"Ref Y\", \"type\": \"number\" }, \"ref_yaw\": { \"title\": \"Ref Yaw\", \"type\": \"number\" }, \"width\": { \"title\": \"Width\", \"type\": \"number\" }, \"depth\": { \"title\": \"Depth\", \"type\": \"number\" } }, \"required\": [ \"name\", \"levels\", \"doors\", \"wall_graph\", \"ref_x\", \"ref_y\", \"ref_yaw\", \"width\", \"depth\" ], \"title\": \"Lift\", \"type\": \"object\" }, \"Param\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"type\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Type\", \"type\": \"integer\" }, \"value_int\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Value Int\", \"type\": \"integer\" }, \"value_float\": { \"title\": \"Value Float\", \"type\": \"number\" }, \"value_string\": { \"title\": \"Value String\", \"type\": \"string\" }, \"value_bool\": { \"title\": \"Value Bool\", \"type\": \"boolean\" } }, \"required\": [ \"name\", \"type\", \"value_int\", \"value_float\", \"value_string\", \"value_bool\" ], \"title\": \"Param\", \"type\": \"object\" }, \"Place\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" }, \"position_tolerance\": { \"title\": \"Position Tolerance\", \"type\": \"number\" }, \"yaw_tolerance\": { \"title\": \"Yaw Tolerance\", \"type\": \"number\" } }, \"required\": [ \"name\", \"x\", \"y\", \"yaw\", \"position_tolerance\", \"yaw_tolerance\" ], \"title\": \"Place\", \"type\": \"object\" } }, \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"levels\": { \"items\": { \"$ref\": \"#/$defs/Level\" }, \"title\": \"Levels\", \"type\": \"array\" }, \"lifts\": { \"items\": { \"$ref\": \"#/$defs/Lift\" }, \"title\": \"Lifts\", \"type\": \"array\" } }, \"required\": [ \"name\", \"levels\", \"lifts\" ], \"title\": \"BuildingMap\", \"type\": \"object\" } ``` ### /doors/{door_name}/state ``` { \"$defs\": { \"DoorMode\": { \"properties\": { \"value\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Value\", \"type\": \"integer\" } }, \"required\": [ \"value\" ], \"title\": \"DoorMode\", \"type\": \"object\" }, \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"door_time\": { \"$ref\": \"#/$defs/Time\" }, \"door_name\": { \"title\": \"Door Name\", \"type\": \"string\" }, \"current_mode\": { \"$ref\": \"#/$defs/DoorMode\" } }, \"required\": [ \"door_time\", \"door_name\", \"current_mode\" ], \"title\": \"DoorState\", \"type\": \"object\" } ``` ### /doors/{door_name}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"DoorHealth\", \"type\": \"object\" } ``` ### /lifts/{lift_name}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"lift_time\": { \"$ref\": \"#/$defs/Time\" }, \"lift_name\": { \"title\": \"Lift Name\", \"type\": \"string\" }, \"available_floors\": { \"items\": { \"type\": \"string\" }, \"title\": \"Available Floors\", \"type\": \"array\" }, \"current_floor\": { \"title\": \"Current Floor\", \"type\": \"string\" }, \"destination_floor\": { \"title\": \"Destination Floor\", \"type\": \"string\" }, \"door_state\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Door State\", \"type\": \"integer\" }, \"motion_state\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Motion State\", \"type\": \"integer\" }, \"available_modes\": { \"items\": { \"type\": \"integer\" }, \"title\": \"Available Modes\", \"type\": \"array\" }, \"current_mode\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Current Mode\", \"type\": \"integer\" }, \"session_id\": { \"title\": \"Session Id\", \"type\": \"string\" } }, \"required\": [ \"lift_time\", \"lift_name\", \"available_floors\", \"current_floor\", \"destination_floor\", \"door_state\", \"motion_state\", \"available_modes\", \"current_mode\", \"session_id\" ], \"title\": \"LiftState\", \"type\": \"object\" } ``` ### /lifts/{lift_name}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"LiftHealth\", \"type\": \"object\" } ``` ### /tasks/{task_id}/state ``` { \"$defs\": { \"AssignedTo\": { \"properties\": { \"group\": { \"title\": \"Group\", \"type\": \"string\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" } }, \"required\": [ \"group\", \"name\" ], \"title\": \"AssignedTo\", \"type\": \"object\" }, \"Assignment\": { \"properties\": { \"fleet_name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Fleet Name\" }, \"expected_robot_name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Expected Robot Name\" } }, \"title\": \"Assignment\", \"type\": \"object\" }, \"Booking\": { \"properties\": { \"id\": { \"description\": \"The unique identifier for this task\", \"title\": \"Id\", \"type\": \"string\" }, \"unix_millis_earliest_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Earliest Start Time\" }, \"unix_millis_request_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Request Time\" }, \"priority\": { \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Priority information about this task\", \"title\": \"Priority\" }, \"labels\": { \"anyOf\": [ { \"items\": { \"type\": \"string\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about how and why this task was booked\", \"title\": \"Labels\" }, \"requester\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"(Optional) An identifier for the entity that requested this task\", \"title\": \"Requester\" } }, \"required\": [ \"id\" ], \"title\": \"Booking\", \"type\": \"object\" }, \"Cancellation\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the cancellation request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the cancel request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Cancellation\", \"type\": \"object\" }, \"Category\": { \"title\": \"Category\", \"type\": \"string\" }, \"Detail\": { \"anyOf\": [ { \"type\": \"object\" }, { \"items\": {}, \"type\": \"array\" }, { \"type\": \"string\" } ], \"title\": \"Detail\" }, \"Dispatch\": { \"properties\": { \"status\": { \"$ref\": \"#/$defs/Status2\" }, \"assignment\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Assignment\" }, { \"type\": \"null\" } ], \"default\": null }, \"errors\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Error\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Errors\" } }, \"required\": [ \"status\" ], \"title\": \"Dispatch\", \"type\": \"object\" }, \"Error\": { \"properties\": { \"code\": { \"anyOf\": [ { \"minimum\": 0, \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A standard code for the kind of error that has occurred\", \"title\": \"Code\" }, \"category\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The category of the error\", \"title\": \"Category\" }, \"detail\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Details about the error\", \"title\": \"Detail\" } }, \"title\": \"Error\", \"type\": \"object\" }, \"EstimateMillis\": { \"minimum\": 0, \"title\": \"EstimateMillis\", \"type\": \"integer\" }, \"EventState\": { \"properties\": { \"id\": { \"$ref\": \"#/$defs/Id\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null }, \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The brief name of the event\", \"title\": \"Name\" }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Detailed information about the event\" }, \"deps\": { \"anyOf\": [ { \"items\": { \"minimum\": 0, \"type\": \"integer\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"This event may depend on other events. This array contains the IDs of those other event dependencies.\", \"title\": \"Deps\" } }, \"required\": [ \"id\" ], \"title\": \"EventState\", \"type\": \"object\" }, \"Id\": { \"minimum\": 0, \"title\": \"Id\", \"type\": \"integer\" }, \"Interruption\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the interruption request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the purpose of the interruption\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" }, \"resumed_by\": { \"anyOf\": [ { \"$ref\": \"#/$defs/ResumedBy\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Interruption\", \"type\": \"object\" }, \"Killed\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the cancellation request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the kill request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Killed\", \"type\": \"object\" }, \"Phase\": { \"properties\": { \"id\": { \"$ref\": \"#/$defs/Id\" }, \"category\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Category\" }, { \"type\": \"null\" } ], \"default\": null }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null }, \"unix_millis_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Start Time\" }, \"unix_millis_finish_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Finish Time\" }, \"original_estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"final_event_id\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Id\" }, { \"type\": \"null\" } ], \"default\": null }, \"events\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/EventState\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.\", \"title\": \"Events\" }, \"skip_requests\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/SkipPhaseRequest\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about any skip requests that have been received\", \"title\": \"Skip Requests\" } }, \"required\": [ \"id\" ], \"title\": \"Phase\", \"type\": \"object\" }, \"ResumedBy\": { \"properties\": { \"unix_millis_request_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The time that the resume request arrived\", \"title\": \"Unix Millis Request Time\" }, \"labels\": { \"description\": \"Labels to describe the resume request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"labels\" ], \"title\": \"ResumedBy\", \"type\": \"object\" }, \"SkipPhaseRequest\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the skip request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the purpose of the skip request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" }, \"undo\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Undo\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about an undo skip request that applied to this request\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"SkipPhaseRequest\", \"type\": \"object\" }, \"Status\": { \"enum\": [ \"uninitialized\", \"blocked\", \"error\", \"failed\", \"queued\", \"standby\", \"underway\", \"delayed\", \"skipped\", \"canceled\", \"killed\", \"completed\" ], \"title\": \"Status\", \"type\": \"string\" }, \"Status2\": { \"enum\": [ \"queued\", \"selected\", \"dispatched\", \"failed_to_assign\", \"canceled_in_flight\" ], \"title\": \"Status2\", \"type\": \"string\" }, \"Undo\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the undo skip request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the undo skip request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Undo\", \"type\": \"object\" } }, \"properties\": { \"booking\": { \"$ref\": \"#/$defs/Booking\" }, \"category\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Category\" }, { \"type\": \"null\" } ], \"default\": null }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null }, \"unix_millis_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Start Time\" }, \"unix_millis_finish_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Finish Time\" }, \"original_estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"assigned_to\": { \"anyOf\": [ { \"$ref\": \"#/$defs/AssignedTo\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Which agent (robot) is the task assigned to\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null }, \"dispatch\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Dispatch\" }, { \"type\": \"null\" } ], \"default\": null }, \"phases\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Phase\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.\", \"title\": \"Phases\" }, \"completed\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Id\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"An array of the IDs of completed phases of this task\", \"title\": \"Completed\" }, \"active\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Id\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The ID of the active phase for this task\" }, \"pending\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Id\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"An array of the pending phases of this task\", \"title\": \"Pending\" }, \"interruptions\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Interruption\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.\", \"title\": \"Interruptions\" }, \"cancellation\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Cancellation\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"If the task was cancelled, this will describe information about the request.\" }, \"killed\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Killed\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"If the task was killed, this will describe information about the request.\" } }, \"required\": [ \"booking\" ], \"title\": \"TaskState\", \"type\": \"object\" } ``` ### /tasks/{task_id}/log ``` { \"$defs\": { \"LogEntry\": { \"properties\": { \"seq\": { \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"title\": \"Seq\", \"type\": \"integer\" }, \"tier\": { \"allOf\": [ { \"$ref\": \"#/$defs/Tier\" } ], \"description\": \"The importance level of the log entry\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"description\": \"The text of the log entry\", \"title\": \"Text\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ], \"title\": \"LogEntry\", \"type\": \"object\" }, \"Phases\": { \"additionalProperties\": false, \"properties\": { \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log entries related to the overall phase\", \"title\": \"Log\" }, \"events\": { \"anyOf\": [ { \"additionalProperties\": { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary whose keys (property names) are the indices of an event in the phase\", \"title\": \"Events\" } }, \"title\": \"Phases\", \"type\": \"object\" }, \"Tier\": { \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ], \"title\": \"Tier\", \"type\": \"string\" } }, \"additionalProperties\": false, \"properties\": { \"task_id\": { \"title\": \"Task Id\", \"type\": \"string\" }, \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log entries related to the overall task\", \"title\": \"Log\" }, \"phases\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Phases\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary whose keys (property names) are the indices of a phase\", \"title\": \"Phases\" } }, \"required\": [ \"task_id\" ], \"title\": \"TaskEventLog\", \"type\": \"object\" } ``` ### /dispensers/{guid}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"time\": { \"$ref\": \"#/$defs/Time\" }, \"guid\": { \"title\": \"Guid\", \"type\": \"string\" }, \"mode\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Mode\", \"type\": \"integer\" }, \"request_guid_queue\": { \"items\": { \"type\": \"string\" }, \"title\": \"Request Guid Queue\", \"type\": \"array\" }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"title\": \"DispenserState\", \"type\": \"object\" } ``` ### /dispensers/{guid}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"DispenserHealth\", \"type\": \"object\" } ``` ### /ingestors/{guid}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"time\": { \"$ref\": \"#/$defs/Time\" }, \"guid\": { \"title\": \"Guid\", \"type\": \"string\" }, \"mode\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Mode\", \"type\": \"integer\" }, \"request_guid_queue\": { \"items\": { \"type\": \"string\" }, \"title\": \"Request Guid Queue\", \"type\": \"array\" }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"title\": \"IngestorState\", \"type\": \"object\" } ``` ### /ingestors/{guid}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"IngestorHealth\", \"type\": \"object\" } ``` ### /fleets/{name}/state ``` { \"$defs\": { \"Issue\": { \"properties\": { \"category\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Category of the robot\'s issue\", \"title\": \"Category\" }, \"detail\": { \"anyOf\": [ { \"type\": \"object\" }, { \"items\": {}, \"type\": \"array\" }, { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Detailed information about the issue\", \"title\": \"Detail\" } }, \"title\": \"Issue\", \"type\": \"object\" }, \"Location2D\": { \"properties\": { \"map\": { \"title\": \"Map\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" } }, \"required\": [ \"map\", \"x\", \"y\", \"yaw\" ], \"title\": \"Location2D\", \"type\": \"object\" }, \"RobotState\": { \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A simple token representing the status of the robot\" }, \"task_id\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.\", \"title\": \"Task Id\" }, \"unix_millis_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Time\" }, \"location\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Location2D\" }, { \"type\": \"null\" } ], \"default\": null }, \"battery\": { \"anyOf\": [ { \"maximum\": 1.0, \"minimum\": 0.0, \"type\": \"number\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)\", \"title\": \"Battery\" }, \"issues\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Issue\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A list of issues with the robot that operators need to address\", \"title\": \"Issues\" } }, \"title\": \"RobotState\", \"type\": \"object\" }, \"Status\": { \"enum\": [ \"uninitialized\", \"offline\", \"shutdown\", \"idle\", \"charging\", \"working\", \"error\" ], \"title\": \"Status\", \"type\": \"string\" } }, \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"robots\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/RobotState\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of the states of the robots that belong to this fleet\", \"title\": \"Robots\" } }, \"title\": \"FleetState\", \"type\": \"object\" } ``` ### /fleets/{name}/log ``` { \"$defs\": { \"LogEntry\": { \"properties\": { \"seq\": { \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"title\": \"Seq\", \"type\": \"integer\" }, \"tier\": { \"allOf\": [ { \"$ref\": \"#/$defs/Tier\" } ], \"description\": \"The importance level of the log entry\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"description\": \"The text of the log entry\", \"title\": \"Text\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ], \"title\": \"LogEntry\", \"type\": \"object\" }, \"Tier\": { \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ], \"title\": \"Tier\", \"type\": \"string\" } }, \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log for the overall fleet\", \"title\": \"Log\" }, \"robots\": { \"anyOf\": [ { \"additionalProperties\": { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Dictionary of logs for the individual robots. The keys (property names) are the robot names.\", \"title\": \"Robots\" } }, \"title\": \"FleetLog\", \"type\": \"object\" } ``` * @summary Socket.io endpoint * @param {*} [options] Override http request option. * @throws {RequiredError} */ - lambdaSocketIoGet: async (options: AxiosRequestConfig = {}): Promise => { + lambdaSocketIoGet: async (options: RawAxiosRequestConfig = {}): Promise => { const localVarPath = `/socket.io`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -5543,15 +5861,31 @@ export const DefaultApiFp = function (configuration?: Configuration) { /** * Get the effective permissions of the current user * @summary Get Effective Permissions + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getEffectivePermissionsPermissionsGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { const localVarAxiosArgs = - await localVarAxiosParamCreator.getEffectivePermissionsPermissionsGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + await localVarAxiosParamCreator.getEffectivePermissionsPermissionsGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DefaultApi.getEffectivePermissionsPermissionsGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Get the current rmf time in unix milliseconds @@ -5560,34 +5894,66 @@ export const DefaultApiFp = function (configuration?: Configuration) { * @throws {RequiredError} */ async getTimeTimeGet( - options?: AxiosRequestConfig, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeTimeGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DefaultApi.getTimeTimeGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Get the currently logged in user * @summary Get User + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getUserUserGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getUserUserGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * # NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint. ## About This exposes a minimal pubsub system built on top of socket.io. It works similar to a normal socket.io endpoint, except that are 2 special rooms which control subscriptions. ## Rooms ### subscribe Clients must send a message to this room to start receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### unsubscribe Clients can send a message to this room to stop receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### /alerts ``` { \"title\": \"Alert\", \"description\": \"General alert that can be triggered by events.\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"maxLength\": 255, \"type\": \"string\" }, \"original_id\": { \"title\": \"Original Id\", \"maxLength\": 255, \"type\": \"string\" }, \"category\": { \"title\": \"Category\", \"description\": \"Default: default
Task: task
Fleet: fleet
Robot: robot\", \"maxLength\": 7, \"type\": \"string\" }, \"unix_millis_created_time\": { \"title\": \"Unix Millis Created Time\", \"minimum\": -9223372036854775808, \"maximum\": 9223372036854775807, \"type\": \"integer\" }, \"acknowledged_by\": { \"title\": \"Acknowledged By\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"unix_millis_acknowledged_time\": { \"title\": \"Unix Millis Acknowledged Time\", \"minimum\": -9223372036854775808, \"maximum\": 9223372036854775807, \"nullable\": true, \"type\": \"integer\" } }, \"required\": [ \"id\", \"original_id\", \"category\", \"unix_millis_created_time\" ], \"additionalProperties\": false } ``` ### /beacons ``` { \"title\": \"BeaconState\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"maxLength\": 255, \"type\": \"string\" }, \"online\": { \"title\": \"Online\", \"type\": \"boolean\" }, \"category\": { \"title\": \"Category\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"activated\": { \"title\": \"Activated\", \"type\": \"boolean\" }, \"level\": { \"title\": \"Level\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" } }, \"required\": [ \"id\", \"online\", \"activated\" ], \"additionalProperties\": false } ``` ### /building_map ``` { \"title\": \"BuildingMap\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"levels\": { \"title\": \"Levels\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Level\" } }, \"lifts\": { \"title\": \"Lifts\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Lift\" } } }, \"required\": [ \"name\", \"levels\", \"lifts\" ], \"definitions\": { \"AffineImage\": { \"title\": \"AffineImage\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"x_offset\": { \"title\": \"X Offset\", \"default\": 0, \"type\": \"number\" }, \"y_offset\": { \"title\": \"Y Offset\", \"default\": 0, \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"default\": 0, \"type\": \"number\" }, \"scale\": { \"title\": \"Scale\", \"default\": 0, \"type\": \"number\" }, \"encoding\": { \"title\": \"Encoding\", \"default\": \"\", \"type\": \"string\" }, \"data\": { \"title\": \"Data\", \"type\": \"string\" } }, \"required\": [ \"name\", \"x_offset\", \"y_offset\", \"yaw\", \"scale\", \"encoding\", \"data\" ] }, \"Place\": { \"title\": \"Place\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"default\": 0, \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"default\": 0, \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"default\": 0, \"type\": \"number\" }, \"position_tolerance\": { \"title\": \"Position Tolerance\", \"default\": 0, \"type\": \"number\" }, \"yaw_tolerance\": { \"title\": \"Yaw Tolerance\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"name\", \"x\", \"y\", \"yaw\", \"position_tolerance\", \"yaw_tolerance\" ] }, \"Door\": { \"title\": \"Door\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"v1_x\": { \"title\": \"V1 X\", \"default\": 0, \"type\": \"number\" }, \"v1_y\": { \"title\": \"V1 Y\", \"default\": 0, \"type\": \"number\" }, \"v2_x\": { \"title\": \"V2 X\", \"default\": 0, \"type\": \"number\" }, \"v2_y\": { \"title\": \"V2 Y\", \"default\": 0, \"type\": \"number\" }, \"door_type\": { \"title\": \"Door Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"motion_range\": { \"title\": \"Motion Range\", \"default\": 0, \"type\": \"number\" }, \"motion_direction\": { \"title\": \"Motion Direction\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" } }, \"required\": [ \"name\", \"v1_x\", \"v1_y\", \"v2_x\", \"v2_y\", \"door_type\", \"motion_range\", \"motion_direction\" ] }, \"Param\": { \"title\": \"Param\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"type\": { \"title\": \"Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"value_int\": { \"title\": \"Value Int\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"value_float\": { \"title\": \"Value Float\", \"default\": 0, \"type\": \"number\" }, \"value_string\": { \"title\": \"Value String\", \"default\": \"\", \"type\": \"string\" }, \"value_bool\": { \"title\": \"Value Bool\", \"default\": false, \"type\": \"boolean\" } }, \"required\": [ \"name\", \"type\", \"value_int\", \"value_float\", \"value_string\", \"value_bool\" ] }, \"GraphNode\": { \"title\": \"GraphNode\", \"type\": \"object\", \"properties\": { \"x\": { \"title\": \"X\", \"default\": 0, \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"default\": 0, \"type\": \"number\" }, \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } } }, \"required\": [ \"x\", \"y\", \"name\", \"params\" ] }, \"GraphEdge\": { \"title\": \"GraphEdge\", \"type\": \"object\", \"properties\": { \"v1_idx\": { \"title\": \"V1 Idx\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"v2_idx\": { \"title\": \"V2 Idx\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } }, \"edge_type\": { \"title\": \"Edge Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" } }, \"required\": [ \"v1_idx\", \"v2_idx\", \"params\", \"edge_type\" ] }, \"Graph\": { \"title\": \"Graph\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"vertices\": { \"title\": \"Vertices\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/GraphNode\" } }, \"edges\": { \"title\": \"Edges\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/GraphEdge\" } }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } } }, \"required\": [ \"name\", \"vertices\", \"edges\", \"params\" ] }, \"Level\": { \"title\": \"Level\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"elevation\": { \"title\": \"Elevation\", \"default\": 0, \"type\": \"number\" }, \"images\": { \"title\": \"Images\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/AffineImage\" } }, \"places\": { \"title\": \"Places\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Place\" } }, \"doors\": { \"title\": \"Doors\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Door\" } }, \"nav_graphs\": { \"title\": \"Nav Graphs\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Graph\" } }, \"wall_graph\": { \"title\": \"Wall Graph\", \"default\": { \"name\": \"\", \"vertices\": [], \"edges\": [], \"params\": [] }, \"allOf\": [ { \"$ref\": \"#/definitions/Graph\" } ] } }, \"required\": [ \"name\", \"elevation\", \"images\", \"places\", \"doors\", \"nav_graphs\", \"wall_graph\" ] }, \"Lift\": { \"title\": \"Lift\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"levels\": { \"title\": \"Levels\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"doors\": { \"title\": \"Doors\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Door\" } }, \"wall_graph\": { \"title\": \"Wall Graph\", \"default\": { \"name\": \"\", \"vertices\": [], \"edges\": [], \"params\": [] }, \"allOf\": [ { \"$ref\": \"#/definitions/Graph\" } ] }, \"ref_x\": { \"title\": \"Ref X\", \"default\": 0, \"type\": \"number\" }, \"ref_y\": { \"title\": \"Ref Y\", \"default\": 0, \"type\": \"number\" }, \"ref_yaw\": { \"title\": \"Ref Yaw\", \"default\": 0, \"type\": \"number\" }, \"width\": { \"title\": \"Width\", \"default\": 0, \"type\": \"number\" }, \"depth\": { \"title\": \"Depth\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"name\", \"levels\", \"doors\", \"wall_graph\", \"ref_x\", \"ref_y\", \"ref_yaw\", \"width\", \"depth\" ] } } } ``` ### /doors/{door_name}/state ``` { \"title\": \"DoorState\", \"type\": \"object\", \"properties\": { \"door_time\": { \"title\": \"Door Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"door_name\": { \"title\": \"Door Name\", \"default\": \"\", \"type\": \"string\" }, \"current_mode\": { \"title\": \"Current Mode\", \"default\": { \"value\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/DoorMode\" } ] } }, \"required\": [ \"door_time\", \"door_name\", \"current_mode\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] }, \"DoorMode\": { \"title\": \"DoorMode\", \"type\": \"object\", \"properties\": { \"value\": { \"title\": \"Value\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"value\" ] } } } ``` ### /doors/{door_name}/health ``` { \"title\": \"DoorHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /lifts/{lift_name}/state ``` { \"title\": \"LiftState\", \"type\": \"object\", \"properties\": { \"lift_time\": { \"title\": \"Lift Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"lift_name\": { \"title\": \"Lift Name\", \"default\": \"\", \"type\": \"string\" }, \"available_floors\": { \"title\": \"Available Floors\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"current_floor\": { \"title\": \"Current Floor\", \"default\": \"\", \"type\": \"string\" }, \"destination_floor\": { \"title\": \"Destination Floor\", \"default\": \"\", \"type\": \"string\" }, \"door_state\": { \"title\": \"Door State\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"motion_state\": { \"title\": \"Motion State\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"available_modes\": { \"title\": \"Available Modes\", \"type\": \"array\", \"items\": { \"type\": \"integer\" } }, \"current_mode\": { \"title\": \"Current Mode\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"session_id\": { \"title\": \"Session Id\", \"default\": \"\", \"type\": \"string\" } }, \"required\": [ \"lift_time\", \"lift_name\", \"available_floors\", \"current_floor\", \"destination_floor\", \"door_state\", \"motion_state\", \"available_modes\", \"current_mode\", \"session_id\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /lifts/{lift_name}/health ``` { \"title\": \"LiftHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /tasks/{task_id}/state ``` { \"title\": \"TaskState\", \"type\": \"object\", \"properties\": { \"booking\": { \"$ref\": \"#/definitions/Booking\" }, \"category\": { \"$ref\": \"#/definitions/Category\" }, \"detail\": { \"$ref\": \"#/definitions/Detail\" }, \"unix_millis_start_time\": { \"title\": \"Unix Millis Start Time\", \"type\": \"integer\" }, \"unix_millis_finish_time\": { \"title\": \"Unix Millis Finish Time\", \"type\": \"integer\" }, \"original_estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"assigned_to\": { \"title\": \"Assigned To\", \"description\": \"Which agent (robot) is the task assigned to\", \"allOf\": [ { \"$ref\": \"#/definitions/AssignedTo\" } ] }, \"status\": { \"$ref\": \"#/definitions/Status\" }, \"dispatch\": { \"$ref\": \"#/definitions/Dispatch\" }, \"phases\": { \"title\": \"Phases\", \"description\": \"A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Phase\" } }, \"completed\": { \"title\": \"Completed\", \"description\": \"An array of the IDs of completed phases of this task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Id\" } }, \"active\": { \"title\": \"Active\", \"description\": \"The ID of the active phase for this task\", \"allOf\": [ { \"$ref\": \"#/definitions/Id\" } ] }, \"pending\": { \"title\": \"Pending\", \"description\": \"An array of the pending phases of this task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Id\" } }, \"interruptions\": { \"title\": \"Interruptions\", \"description\": \"A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Interruption\" } }, \"cancellation\": { \"title\": \"Cancellation\", \"description\": \"If the task was cancelled, this will describe information about the request.\", \"allOf\": [ { \"$ref\": \"#/definitions/Cancellation\" } ] }, \"killed\": { \"title\": \"Killed\", \"description\": \"If the task was killed, this will describe information about the request.\", \"allOf\": [ { \"$ref\": \"#/definitions/Killed\" } ] } }, \"required\": [ \"booking\" ], \"definitions\": { \"Booking\": { \"title\": \"Booking\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"description\": \"The unique identifier for this task\", \"type\": \"string\" }, \"unix_millis_earliest_start_time\": { \"title\": \"Unix Millis Earliest Start Time\", \"type\": \"integer\" }, \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"priority\": { \"title\": \"Priority\", \"description\": \"Priority information about this task\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"string\" } ] }, \"labels\": { \"title\": \"Labels\", \"description\": \"Information about how and why this task was booked\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"requester\": { \"title\": \"Requester\", \"description\": \"(Optional) An identifier for the entity that requested this task\", \"type\": \"string\" } }, \"required\": [ \"id\" ] }, \"Category\": { \"title\": \"Category\", \"description\": \"The category of this task or phase\", \"type\": \"string\" }, \"Detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about a task, phase, or event\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"array\", \"items\": {} }, { \"type\": \"string\" } ] }, \"EstimateMillis\": { \"title\": \"EstimateMillis\", \"description\": \"An estimate, in milliseconds, of how long the subject will take to complete\", \"minimum\": 0, \"type\": \"integer\" }, \"AssignedTo\": { \"title\": \"AssignedTo\", \"type\": \"object\", \"properties\": { \"group\": { \"title\": \"Group\", \"type\": \"string\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" } }, \"required\": [ \"group\", \"name\" ] }, \"Status\": { \"title\": \"Status\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"blocked\", \"error\", \"failed\", \"queued\", \"standby\", \"underway\", \"delayed\", \"skipped\", \"canceled\", \"killed\", \"completed\" ] }, \"Status1\": { \"title\": \"Status1\", \"description\": \"An enumeration.\", \"enum\": [ \"queued\", \"selected\", \"dispatched\", \"failed_to_assign\", \"canceled_in_flight\" ] }, \"Assignment\": { \"title\": \"Assignment\", \"type\": \"object\", \"properties\": { \"fleet_name\": { \"title\": \"Fleet Name\", \"type\": \"string\" }, \"expected_robot_name\": { \"title\": \"Expected Robot Name\", \"type\": \"string\" } } }, \"Error\": { \"title\": \"Error\", \"type\": \"object\", \"properties\": { \"code\": { \"title\": \"Code\", \"description\": \"A standard code for the kind of error that has occurred\", \"minimum\": 0, \"type\": \"integer\" }, \"category\": { \"title\": \"Category\", \"description\": \"The category of the error\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Details about the error\", \"type\": \"string\" } } }, \"Dispatch\": { \"title\": \"Dispatch\", \"type\": \"object\", \"properties\": { \"status\": { \"$ref\": \"#/definitions/Status1\" }, \"assignment\": { \"$ref\": \"#/definitions/Assignment\" }, \"errors\": { \"title\": \"Errors\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Error\" } } }, \"required\": [ \"status\" ] }, \"Id\": { \"title\": \"Id\", \"minimum\": 0, \"type\": \"integer\" }, \"EventState\": { \"title\": \"EventState\", \"type\": \"object\", \"properties\": { \"id\": { \"$ref\": \"#/definitions/Id\" }, \"status\": { \"$ref\": \"#/definitions/Status\" }, \"name\": { \"title\": \"Name\", \"description\": \"The brief name of the event\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about the event\", \"allOf\": [ { \"$ref\": \"#/definitions/Detail\" } ] }, \"deps\": { \"title\": \"Deps\", \"description\": \"This event may depend on other events. This array contains the IDs of those other event dependencies.\", \"type\": \"array\", \"items\": { \"type\": \"integer\", \"minimum\": 0 } } }, \"required\": [ \"id\" ] }, \"Undo\": { \"title\": \"Undo\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the undo skip request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the undo skip request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"SkipPhaseRequest\": { \"title\": \"SkipPhaseRequest\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the skip request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the purpose of the skip request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"undo\": { \"title\": \"Undo\", \"description\": \"Information about an undo skip request that applied to this request\", \"allOf\": [ { \"$ref\": \"#/definitions/Undo\" } ] } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Phase\": { \"title\": \"Phase\", \"type\": \"object\", \"properties\": { \"id\": { \"$ref\": \"#/definitions/Id\" }, \"category\": { \"$ref\": \"#/definitions/Category\" }, \"detail\": { \"$ref\": \"#/definitions/Detail\" }, \"unix_millis_start_time\": { \"title\": \"Unix Millis Start Time\", \"type\": \"integer\" }, \"unix_millis_finish_time\": { \"title\": \"Unix Millis Finish Time\", \"type\": \"integer\" }, \"original_estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"final_event_id\": { \"$ref\": \"#/definitions/Id\" }, \"events\": { \"title\": \"Events\", \"description\": \"A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/EventState\" } }, \"skip_requests\": { \"title\": \"Skip Requests\", \"description\": \"Information about any skip requests that have been received\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/SkipPhaseRequest\" } } }, \"required\": [ \"id\" ] }, \"ResumedBy\": { \"title\": \"ResumedBy\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the resume request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the resume request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"labels\" ] }, \"Interruption\": { \"title\": \"Interruption\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the interruption request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the purpose of the interruption\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"resumed_by\": { \"title\": \"Resumed By\", \"description\": \"Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.\", \"allOf\": [ { \"$ref\": \"#/definitions/ResumedBy\" } ] } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Cancellation\": { \"title\": \"Cancellation\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the cancellation request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the cancel request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Killed\": { \"title\": \"Killed\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the cancellation request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the kill request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] } } } ``` ### /tasks/{task_id}/log ``` { \"title\": \"TaskEventLog\", \"type\": \"object\", \"properties\": { \"task_id\": { \"title\": \"Task Id\", \"type\": \"string\" }, \"log\": { \"title\": \"Log\", \"description\": \"Log entries related to the overall task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"phases\": { \"title\": \"Phases\", \"description\": \"A dictionary whose keys (property names) are the indices of a phase\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Phases\" } } }, \"required\": [ \"task_id\" ], \"additionalProperties\": false, \"definitions\": { \"Tier\": { \"title\": \"Tier\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ] }, \"LogEntry\": { \"title\": \"LogEntry\", \"type\": \"object\", \"properties\": { \"seq\": { \"title\": \"Seq\", \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"type\": \"integer\" }, \"tier\": { \"description\": \"The importance level of the log entry\", \"allOf\": [ { \"$ref\": \"#/definitions/Tier\" } ] }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"title\": \"Text\", \"description\": \"The text of the log entry\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ] }, \"Phases\": { \"title\": \"Phases\", \"type\": \"object\", \"properties\": { \"log\": { \"title\": \"Log\", \"description\": \"Log entries related to the overall phase\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"events\": { \"title\": \"Events\", \"description\": \"A dictionary whose keys (property names) are the indices of an event in the phase\", \"type\": \"object\", \"additionalProperties\": { \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } } } }, \"additionalProperties\": false } } } ``` ### /dispensers/{guid}/state ``` { \"title\": \"DispenserState\", \"type\": \"object\", \"properties\": { \"time\": { \"title\": \"Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"guid\": { \"title\": \"Guid\", \"default\": \"\", \"type\": \"string\" }, \"mode\": { \"title\": \"Mode\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"request_guid_queue\": { \"title\": \"Request Guid Queue\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /dispensers/{guid}/health ``` { \"title\": \"DispenserHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /ingestors/{guid}/state ``` { \"title\": \"IngestorState\", \"type\": \"object\", \"properties\": { \"time\": { \"title\": \"Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"guid\": { \"title\": \"Guid\", \"default\": \"\", \"type\": \"string\" }, \"mode\": { \"title\": \"Mode\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"request_guid_queue\": { \"title\": \"Request Guid Queue\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /ingestors/{guid}/health ``` { \"title\": \"IngestorHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /fleets/{name}/state ``` { \"title\": \"FleetState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"robots\": { \"title\": \"Robots\", \"description\": \"A dictionary of the states of the robots that belong to this fleet\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/RobotState\" } } }, \"definitions\": { \"Status2\": { \"title\": \"Status2\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"offline\", \"shutdown\", \"idle\", \"charging\", \"working\", \"error\" ] }, \"Location2D\": { \"title\": \"Location2D\", \"type\": \"object\", \"properties\": { \"map\": { \"title\": \"Map\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" } }, \"required\": [ \"map\", \"x\", \"y\", \"yaw\" ] }, \"Issue\": { \"title\": \"Issue\", \"type\": \"object\", \"properties\": { \"category\": { \"title\": \"Category\", \"description\": \"Category of the robot\'s issue\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about the issue\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"array\", \"items\": {} }, { \"type\": \"string\" } ] } } }, \"RobotState\": { \"title\": \"RobotState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"status\": { \"description\": \"A simple token representing the status of the robot\", \"allOf\": [ { \"$ref\": \"#/definitions/Status2\" } ] }, \"task_id\": { \"title\": \"Task Id\", \"description\": \"The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.\", \"type\": \"string\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"location\": { \"$ref\": \"#/definitions/Location2D\" }, \"battery\": { \"title\": \"Battery\", \"description\": \"State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)\", \"minimum\": 0.0, \"maximum\": 1.0, \"type\": \"number\" }, \"issues\": { \"title\": \"Issues\", \"description\": \"A list of issues with the robot that operators need to address\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Issue\" } } } } } } ``` ### /fleets/{name}/log ``` { \"title\": \"FleetState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"log\": { \"title\": \"Log\", \"description\": \"Log for the overall fleet\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"robots\": { \"title\": \"Robots\", \"description\": \"Dictionary of logs for the individual robots. The keys (property names) are the robot names.\", \"type\": \"object\", \"additionalProperties\": { \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } } } }, \"definitions\": { \"Tier\": { \"title\": \"Tier\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ] }, \"LogEntry\": { \"title\": \"LogEntry\", \"type\": \"object\", \"properties\": { \"seq\": { \"title\": \"Seq\", \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"type\": \"integer\" }, \"tier\": { \"description\": \"The importance level of the log entry\", \"allOf\": [ { \"$ref\": \"#/definitions/Tier\" } ] }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"title\": \"Text\", \"description\": \"The text of the log entry\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ] } } } ``` + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserUserGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DefaultApi.getUserUserGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * # NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint. ## About This exposes a minimal pubsub system built on top of socket.io. It works similar to a normal socket.io endpoint, except that are 2 special rooms which control subscriptions. ## Rooms ### subscribe Clients must send a message to this room to start receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### unsubscribe Clients can send a message to this room to stop receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### /alerts ``` { \"additionalProperties\": false, \"description\": \"General alert that can be triggered by events.\", \"properties\": { \"id\": { \"maxLength\": 255, \"title\": \"Id\", \"type\": \"string\" }, \"original_id\": { \"maxLength\": 255, \"title\": \"Original Id\", \"type\": \"string\" }, \"category\": { \"description\": \"Default: default
Task: task
Fleet: fleet
Robot: robot\", \"maxLength\": 7, \"title\": \"Category\", \"type\": \"string\" }, \"unix_millis_created_time\": { \"maximum\": 9223372036854775807, \"minimum\": -9223372036854775808, \"title\": \"Unix Millis Created Time\", \"type\": \"integer\" }, \"acknowledged_by\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Acknowledged By\" }, \"unix_millis_acknowledged_time\": { \"anyOf\": [ { \"maximum\": 9223372036854775807, \"minimum\": -9223372036854775808, \"type\": \"integer\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Unix Millis Acknowledged Time\" } }, \"required\": [ \"id\", \"original_id\", \"category\", \"unix_millis_created_time\", \"acknowledged_by\", \"unix_millis_acknowledged_time\" ], \"title\": \"Alert\", \"type\": \"object\" } ``` ### /beacons ``` { \"additionalProperties\": false, \"properties\": { \"id\": { \"maxLength\": 255, \"title\": \"Id\", \"type\": \"string\" }, \"online\": { \"title\": \"Online\", \"type\": \"boolean\" }, \"category\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Category\" }, \"activated\": { \"title\": \"Activated\", \"type\": \"boolean\" }, \"level\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Level\" } }, \"required\": [ \"id\", \"online\", \"category\", \"activated\", \"level\" ], \"title\": \"BeaconState\", \"type\": \"object\" } ``` ### /building_map ``` { \"$defs\": { \"AffineImage\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"x_offset\": { \"title\": \"X Offset\", \"type\": \"number\" }, \"y_offset\": { \"title\": \"Y Offset\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" }, \"scale\": { \"title\": \"Scale\", \"type\": \"number\" }, \"encoding\": { \"title\": \"Encoding\", \"type\": \"string\" }, \"data\": { \"title\": \"Data\", \"type\": \"string\" } }, \"required\": [ \"name\", \"x_offset\", \"y_offset\", \"yaw\", \"scale\", \"encoding\", \"data\" ], \"title\": \"AffineImage\", \"type\": \"object\" }, \"Door\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"v1_x\": { \"title\": \"V1 X\", \"type\": \"number\" }, \"v1_y\": { \"title\": \"V1 Y\", \"type\": \"number\" }, \"v2_x\": { \"title\": \"V2 X\", \"type\": \"number\" }, \"v2_y\": { \"title\": \"V2 Y\", \"type\": \"number\" }, \"door_type\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Door Type\", \"type\": \"integer\" }, \"motion_range\": { \"title\": \"Motion Range\", \"type\": \"number\" }, \"motion_direction\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Motion Direction\", \"type\": \"integer\" } }, \"required\": [ \"name\", \"v1_x\", \"v1_y\", \"v2_x\", \"v2_y\", \"door_type\", \"motion_range\", \"motion_direction\" ], \"title\": \"Door\", \"type\": \"object\" }, \"Graph\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"vertices\": { \"items\": { \"$ref\": \"#/$defs/GraphNode\" }, \"title\": \"Vertices\", \"type\": \"array\" }, \"edges\": { \"items\": { \"$ref\": \"#/$defs/GraphEdge\" }, \"title\": \"Edges\", \"type\": \"array\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" } }, \"required\": [ \"name\", \"vertices\", \"edges\", \"params\" ], \"title\": \"Graph\", \"type\": \"object\" }, \"GraphEdge\": { \"properties\": { \"v1_idx\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"V1 Idx\", \"type\": \"integer\" }, \"v2_idx\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"V2 Idx\", \"type\": \"integer\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" }, \"edge_type\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Edge Type\", \"type\": \"integer\" } }, \"required\": [ \"v1_idx\", \"v2_idx\", \"params\", \"edge_type\" ], \"title\": \"GraphEdge\", \"type\": \"object\" }, \"GraphNode\": { \"properties\": { \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" } }, \"required\": [ \"x\", \"y\", \"name\", \"params\" ], \"title\": \"GraphNode\", \"type\": \"object\" }, \"Level\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"elevation\": { \"title\": \"Elevation\", \"type\": \"number\" }, \"images\": { \"items\": { \"$ref\": \"#/$defs/AffineImage\" }, \"title\": \"Images\", \"type\": \"array\" }, \"places\": { \"items\": { \"$ref\": \"#/$defs/Place\" }, \"title\": \"Places\", \"type\": \"array\" }, \"doors\": { \"items\": { \"$ref\": \"#/$defs/Door\" }, \"title\": \"Doors\", \"type\": \"array\" }, \"nav_graphs\": { \"items\": { \"$ref\": \"#/$defs/Graph\" }, \"title\": \"Nav Graphs\", \"type\": \"array\" }, \"wall_graph\": { \"$ref\": \"#/$defs/Graph\" } }, \"required\": [ \"name\", \"elevation\", \"images\", \"places\", \"doors\", \"nav_graphs\", \"wall_graph\" ], \"title\": \"Level\", \"type\": \"object\" }, \"Lift\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"levels\": { \"items\": { \"type\": \"string\" }, \"title\": \"Levels\", \"type\": \"array\" }, \"doors\": { \"items\": { \"$ref\": \"#/$defs/Door\" }, \"title\": \"Doors\", \"type\": \"array\" }, \"wall_graph\": { \"$ref\": \"#/$defs/Graph\" }, \"ref_x\": { \"title\": \"Ref X\", \"type\": \"number\" }, \"ref_y\": { \"title\": \"Ref Y\", \"type\": \"number\" }, \"ref_yaw\": { \"title\": \"Ref Yaw\", \"type\": \"number\" }, \"width\": { \"title\": \"Width\", \"type\": \"number\" }, \"depth\": { \"title\": \"Depth\", \"type\": \"number\" } }, \"required\": [ \"name\", \"levels\", \"doors\", \"wall_graph\", \"ref_x\", \"ref_y\", \"ref_yaw\", \"width\", \"depth\" ], \"title\": \"Lift\", \"type\": \"object\" }, \"Param\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"type\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Type\", \"type\": \"integer\" }, \"value_int\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Value Int\", \"type\": \"integer\" }, \"value_float\": { \"title\": \"Value Float\", \"type\": \"number\" }, \"value_string\": { \"title\": \"Value String\", \"type\": \"string\" }, \"value_bool\": { \"title\": \"Value Bool\", \"type\": \"boolean\" } }, \"required\": [ \"name\", \"type\", \"value_int\", \"value_float\", \"value_string\", \"value_bool\" ], \"title\": \"Param\", \"type\": \"object\" }, \"Place\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" }, \"position_tolerance\": { \"title\": \"Position Tolerance\", \"type\": \"number\" }, \"yaw_tolerance\": { \"title\": \"Yaw Tolerance\", \"type\": \"number\" } }, \"required\": [ \"name\", \"x\", \"y\", \"yaw\", \"position_tolerance\", \"yaw_tolerance\" ], \"title\": \"Place\", \"type\": \"object\" } }, \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"levels\": { \"items\": { \"$ref\": \"#/$defs/Level\" }, \"title\": \"Levels\", \"type\": \"array\" }, \"lifts\": { \"items\": { \"$ref\": \"#/$defs/Lift\" }, \"title\": \"Lifts\", \"type\": \"array\" } }, \"required\": [ \"name\", \"levels\", \"lifts\" ], \"title\": \"BuildingMap\", \"type\": \"object\" } ``` ### /doors/{door_name}/state ``` { \"$defs\": { \"DoorMode\": { \"properties\": { \"value\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Value\", \"type\": \"integer\" } }, \"required\": [ \"value\" ], \"title\": \"DoorMode\", \"type\": \"object\" }, \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"door_time\": { \"$ref\": \"#/$defs/Time\" }, \"door_name\": { \"title\": \"Door Name\", \"type\": \"string\" }, \"current_mode\": { \"$ref\": \"#/$defs/DoorMode\" } }, \"required\": [ \"door_time\", \"door_name\", \"current_mode\" ], \"title\": \"DoorState\", \"type\": \"object\" } ``` ### /doors/{door_name}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"DoorHealth\", \"type\": \"object\" } ``` ### /lifts/{lift_name}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"lift_time\": { \"$ref\": \"#/$defs/Time\" }, \"lift_name\": { \"title\": \"Lift Name\", \"type\": \"string\" }, \"available_floors\": { \"items\": { \"type\": \"string\" }, \"title\": \"Available Floors\", \"type\": \"array\" }, \"current_floor\": { \"title\": \"Current Floor\", \"type\": \"string\" }, \"destination_floor\": { \"title\": \"Destination Floor\", \"type\": \"string\" }, \"door_state\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Door State\", \"type\": \"integer\" }, \"motion_state\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Motion State\", \"type\": \"integer\" }, \"available_modes\": { \"items\": { \"type\": \"integer\" }, \"title\": \"Available Modes\", \"type\": \"array\" }, \"current_mode\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Current Mode\", \"type\": \"integer\" }, \"session_id\": { \"title\": \"Session Id\", \"type\": \"string\" } }, \"required\": [ \"lift_time\", \"lift_name\", \"available_floors\", \"current_floor\", \"destination_floor\", \"door_state\", \"motion_state\", \"available_modes\", \"current_mode\", \"session_id\" ], \"title\": \"LiftState\", \"type\": \"object\" } ``` ### /lifts/{lift_name}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"LiftHealth\", \"type\": \"object\" } ``` ### /tasks/{task_id}/state ``` { \"$defs\": { \"AssignedTo\": { \"properties\": { \"group\": { \"title\": \"Group\", \"type\": \"string\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" } }, \"required\": [ \"group\", \"name\" ], \"title\": \"AssignedTo\", \"type\": \"object\" }, \"Assignment\": { \"properties\": { \"fleet_name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Fleet Name\" }, \"expected_robot_name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Expected Robot Name\" } }, \"title\": \"Assignment\", \"type\": \"object\" }, \"Booking\": { \"properties\": { \"id\": { \"description\": \"The unique identifier for this task\", \"title\": \"Id\", \"type\": \"string\" }, \"unix_millis_earliest_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Earliest Start Time\" }, \"unix_millis_request_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Request Time\" }, \"priority\": { \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Priority information about this task\", \"title\": \"Priority\" }, \"labels\": { \"anyOf\": [ { \"items\": { \"type\": \"string\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about how and why this task was booked\", \"title\": \"Labels\" }, \"requester\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"(Optional) An identifier for the entity that requested this task\", \"title\": \"Requester\" } }, \"required\": [ \"id\" ], \"title\": \"Booking\", \"type\": \"object\" }, \"Cancellation\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the cancellation request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the cancel request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Cancellation\", \"type\": \"object\" }, \"Category\": { \"title\": \"Category\", \"type\": \"string\" }, \"Detail\": { \"anyOf\": [ { \"type\": \"object\" }, { \"items\": {}, \"type\": \"array\" }, { \"type\": \"string\" } ], \"title\": \"Detail\" }, \"Dispatch\": { \"properties\": { \"status\": { \"$ref\": \"#/$defs/Status2\" }, \"assignment\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Assignment\" }, { \"type\": \"null\" } ], \"default\": null }, \"errors\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Error\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Errors\" } }, \"required\": [ \"status\" ], \"title\": \"Dispatch\", \"type\": \"object\" }, \"Error\": { \"properties\": { \"code\": { \"anyOf\": [ { \"minimum\": 0, \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A standard code for the kind of error that has occurred\", \"title\": \"Code\" }, \"category\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The category of the error\", \"title\": \"Category\" }, \"detail\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Details about the error\", \"title\": \"Detail\" } }, \"title\": \"Error\", \"type\": \"object\" }, \"EstimateMillis\": { \"minimum\": 0, \"title\": \"EstimateMillis\", \"type\": \"integer\" }, \"EventState\": { \"properties\": { \"id\": { \"$ref\": \"#/$defs/Id\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null }, \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The brief name of the event\", \"title\": \"Name\" }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Detailed information about the event\" }, \"deps\": { \"anyOf\": [ { \"items\": { \"minimum\": 0, \"type\": \"integer\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"This event may depend on other events. This array contains the IDs of those other event dependencies.\", \"title\": \"Deps\" } }, \"required\": [ \"id\" ], \"title\": \"EventState\", \"type\": \"object\" }, \"Id\": { \"minimum\": 0, \"title\": \"Id\", \"type\": \"integer\" }, \"Interruption\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the interruption request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the purpose of the interruption\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" }, \"resumed_by\": { \"anyOf\": [ { \"$ref\": \"#/$defs/ResumedBy\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Interruption\", \"type\": \"object\" }, \"Killed\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the cancellation request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the kill request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Killed\", \"type\": \"object\" }, \"Phase\": { \"properties\": { \"id\": { \"$ref\": \"#/$defs/Id\" }, \"category\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Category\" }, { \"type\": \"null\" } ], \"default\": null }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null }, \"unix_millis_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Start Time\" }, \"unix_millis_finish_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Finish Time\" }, \"original_estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"final_event_id\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Id\" }, { \"type\": \"null\" } ], \"default\": null }, \"events\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/EventState\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.\", \"title\": \"Events\" }, \"skip_requests\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/SkipPhaseRequest\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about any skip requests that have been received\", \"title\": \"Skip Requests\" } }, \"required\": [ \"id\" ], \"title\": \"Phase\", \"type\": \"object\" }, \"ResumedBy\": { \"properties\": { \"unix_millis_request_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The time that the resume request arrived\", \"title\": \"Unix Millis Request Time\" }, \"labels\": { \"description\": \"Labels to describe the resume request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"labels\" ], \"title\": \"ResumedBy\", \"type\": \"object\" }, \"SkipPhaseRequest\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the skip request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the purpose of the skip request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" }, \"undo\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Undo\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about an undo skip request that applied to this request\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"SkipPhaseRequest\", \"type\": \"object\" }, \"Status\": { \"enum\": [ \"uninitialized\", \"blocked\", \"error\", \"failed\", \"queued\", \"standby\", \"underway\", \"delayed\", \"skipped\", \"canceled\", \"killed\", \"completed\" ], \"title\": \"Status\", \"type\": \"string\" }, \"Status2\": { \"enum\": [ \"queued\", \"selected\", \"dispatched\", \"failed_to_assign\", \"canceled_in_flight\" ], \"title\": \"Status2\", \"type\": \"string\" }, \"Undo\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the undo skip request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the undo skip request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Undo\", \"type\": \"object\" } }, \"properties\": { \"booking\": { \"$ref\": \"#/$defs/Booking\" }, \"category\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Category\" }, { \"type\": \"null\" } ], \"default\": null }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null }, \"unix_millis_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Start Time\" }, \"unix_millis_finish_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Finish Time\" }, \"original_estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"assigned_to\": { \"anyOf\": [ { \"$ref\": \"#/$defs/AssignedTo\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Which agent (robot) is the task assigned to\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null }, \"dispatch\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Dispatch\" }, { \"type\": \"null\" } ], \"default\": null }, \"phases\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Phase\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.\", \"title\": \"Phases\" }, \"completed\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Id\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"An array of the IDs of completed phases of this task\", \"title\": \"Completed\" }, \"active\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Id\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The ID of the active phase for this task\" }, \"pending\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Id\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"An array of the pending phases of this task\", \"title\": \"Pending\" }, \"interruptions\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Interruption\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.\", \"title\": \"Interruptions\" }, \"cancellation\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Cancellation\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"If the task was cancelled, this will describe information about the request.\" }, \"killed\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Killed\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"If the task was killed, this will describe information about the request.\" } }, \"required\": [ \"booking\" ], \"title\": \"TaskState\", \"type\": \"object\" } ``` ### /tasks/{task_id}/log ``` { \"$defs\": { \"LogEntry\": { \"properties\": { \"seq\": { \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"title\": \"Seq\", \"type\": \"integer\" }, \"tier\": { \"allOf\": [ { \"$ref\": \"#/$defs/Tier\" } ], \"description\": \"The importance level of the log entry\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"description\": \"The text of the log entry\", \"title\": \"Text\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ], \"title\": \"LogEntry\", \"type\": \"object\" }, \"Phases\": { \"additionalProperties\": false, \"properties\": { \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log entries related to the overall phase\", \"title\": \"Log\" }, \"events\": { \"anyOf\": [ { \"additionalProperties\": { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary whose keys (property names) are the indices of an event in the phase\", \"title\": \"Events\" } }, \"title\": \"Phases\", \"type\": \"object\" }, \"Tier\": { \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ], \"title\": \"Tier\", \"type\": \"string\" } }, \"additionalProperties\": false, \"properties\": { \"task_id\": { \"title\": \"Task Id\", \"type\": \"string\" }, \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log entries related to the overall task\", \"title\": \"Log\" }, \"phases\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Phases\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary whose keys (property names) are the indices of a phase\", \"title\": \"Phases\" } }, \"required\": [ \"task_id\" ], \"title\": \"TaskEventLog\", \"type\": \"object\" } ``` ### /dispensers/{guid}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"time\": { \"$ref\": \"#/$defs/Time\" }, \"guid\": { \"title\": \"Guid\", \"type\": \"string\" }, \"mode\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Mode\", \"type\": \"integer\" }, \"request_guid_queue\": { \"items\": { \"type\": \"string\" }, \"title\": \"Request Guid Queue\", \"type\": \"array\" }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"title\": \"DispenserState\", \"type\": \"object\" } ``` ### /dispensers/{guid}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"DispenserHealth\", \"type\": \"object\" } ``` ### /ingestors/{guid}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"time\": { \"$ref\": \"#/$defs/Time\" }, \"guid\": { \"title\": \"Guid\", \"type\": \"string\" }, \"mode\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Mode\", \"type\": \"integer\" }, \"request_guid_queue\": { \"items\": { \"type\": \"string\" }, \"title\": \"Request Guid Queue\", \"type\": \"array\" }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"title\": \"IngestorState\", \"type\": \"object\" } ``` ### /ingestors/{guid}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"IngestorHealth\", \"type\": \"object\" } ``` ### /fleets/{name}/state ``` { \"$defs\": { \"Issue\": { \"properties\": { \"category\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Category of the robot\'s issue\", \"title\": \"Category\" }, \"detail\": { \"anyOf\": [ { \"type\": \"object\" }, { \"items\": {}, \"type\": \"array\" }, { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Detailed information about the issue\", \"title\": \"Detail\" } }, \"title\": \"Issue\", \"type\": \"object\" }, \"Location2D\": { \"properties\": { \"map\": { \"title\": \"Map\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" } }, \"required\": [ \"map\", \"x\", \"y\", \"yaw\" ], \"title\": \"Location2D\", \"type\": \"object\" }, \"RobotState\": { \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A simple token representing the status of the robot\" }, \"task_id\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.\", \"title\": \"Task Id\" }, \"unix_millis_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Time\" }, \"location\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Location2D\" }, { \"type\": \"null\" } ], \"default\": null }, \"battery\": { \"anyOf\": [ { \"maximum\": 1.0, \"minimum\": 0.0, \"type\": \"number\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)\", \"title\": \"Battery\" }, \"issues\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Issue\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A list of issues with the robot that operators need to address\", \"title\": \"Issues\" } }, \"title\": \"RobotState\", \"type\": \"object\" }, \"Status\": { \"enum\": [ \"uninitialized\", \"offline\", \"shutdown\", \"idle\", \"charging\", \"working\", \"error\" ], \"title\": \"Status\", \"type\": \"string\" } }, \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"robots\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/RobotState\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of the states of the robots that belong to this fleet\", \"title\": \"Robots\" } }, \"title\": \"FleetState\", \"type\": \"object\" } ``` ### /fleets/{name}/log ``` { \"$defs\": { \"LogEntry\": { \"properties\": { \"seq\": { \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"title\": \"Seq\", \"type\": \"integer\" }, \"tier\": { \"allOf\": [ { \"$ref\": \"#/$defs/Tier\" } ], \"description\": \"The importance level of the log entry\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"description\": \"The text of the log entry\", \"title\": \"Text\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ], \"title\": \"LogEntry\", \"type\": \"object\" }, \"Tier\": { \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ], \"title\": \"Tier\", \"type\": \"string\" } }, \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log for the overall fleet\", \"title\": \"Log\" }, \"robots\": { \"anyOf\": [ { \"additionalProperties\": { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Dictionary of logs for the individual robots. The keys (property names) are the robot names.\", \"title\": \"Robots\" } }, \"title\": \"FleetLog\", \"type\": \"object\" } ``` * @summary Socket.io endpoint * @param {*} [options] Override http request option. * @throws {RequiredError} */ async lambdaSocketIoGet( - options?: AxiosRequestConfig, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.lambdaSocketIoGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DefaultApi.lambdaSocketIoGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -5606,12 +5972,16 @@ export const DefaultApiFactory = function ( /** * Get the effective permissions of the current user * @summary Get Effective Permissions + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getEffectivePermissionsPermissionsGet(options?: any): AxiosPromise> { + getEffectivePermissionsPermissionsGet( + authorization?: string | null, + options?: any, + ): AxiosPromise> { return localVarFp - .getEffectivePermissionsPermissionsGet(options) + .getEffectivePermissionsPermissionsGet(authorization, options) .then((request) => request(axios, basePath)); }, /** @@ -5626,14 +5996,17 @@ export const DefaultApiFactory = function ( /** * Get the currently logged in user * @summary Get User + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getUserUserGet(options?: any): AxiosPromise { - return localVarFp.getUserUserGet(options).then((request) => request(axios, basePath)); + getUserUserGet(authorization?: string | null, options?: any): AxiosPromise { + return localVarFp + .getUserUserGet(authorization, options) + .then((request) => request(axios, basePath)); }, /** - * # NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint. ## About This exposes a minimal pubsub system built on top of socket.io. It works similar to a normal socket.io endpoint, except that are 2 special rooms which control subscriptions. ## Rooms ### subscribe Clients must send a message to this room to start receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### unsubscribe Clients can send a message to this room to stop receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### /alerts ``` { \"title\": \"Alert\", \"description\": \"General alert that can be triggered by events.\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"maxLength\": 255, \"type\": \"string\" }, \"original_id\": { \"title\": \"Original Id\", \"maxLength\": 255, \"type\": \"string\" }, \"category\": { \"title\": \"Category\", \"description\": \"Default: default
Task: task
Fleet: fleet
Robot: robot\", \"maxLength\": 7, \"type\": \"string\" }, \"unix_millis_created_time\": { \"title\": \"Unix Millis Created Time\", \"minimum\": -9223372036854775808, \"maximum\": 9223372036854775807, \"type\": \"integer\" }, \"acknowledged_by\": { \"title\": \"Acknowledged By\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"unix_millis_acknowledged_time\": { \"title\": \"Unix Millis Acknowledged Time\", \"minimum\": -9223372036854775808, \"maximum\": 9223372036854775807, \"nullable\": true, \"type\": \"integer\" } }, \"required\": [ \"id\", \"original_id\", \"category\", \"unix_millis_created_time\" ], \"additionalProperties\": false } ``` ### /beacons ``` { \"title\": \"BeaconState\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"maxLength\": 255, \"type\": \"string\" }, \"online\": { \"title\": \"Online\", \"type\": \"boolean\" }, \"category\": { \"title\": \"Category\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"activated\": { \"title\": \"Activated\", \"type\": \"boolean\" }, \"level\": { \"title\": \"Level\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" } }, \"required\": [ \"id\", \"online\", \"activated\" ], \"additionalProperties\": false } ``` ### /building_map ``` { \"title\": \"BuildingMap\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"levels\": { \"title\": \"Levels\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Level\" } }, \"lifts\": { \"title\": \"Lifts\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Lift\" } } }, \"required\": [ \"name\", \"levels\", \"lifts\" ], \"definitions\": { \"AffineImage\": { \"title\": \"AffineImage\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"x_offset\": { \"title\": \"X Offset\", \"default\": 0, \"type\": \"number\" }, \"y_offset\": { \"title\": \"Y Offset\", \"default\": 0, \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"default\": 0, \"type\": \"number\" }, \"scale\": { \"title\": \"Scale\", \"default\": 0, \"type\": \"number\" }, \"encoding\": { \"title\": \"Encoding\", \"default\": \"\", \"type\": \"string\" }, \"data\": { \"title\": \"Data\", \"type\": \"string\" } }, \"required\": [ \"name\", \"x_offset\", \"y_offset\", \"yaw\", \"scale\", \"encoding\", \"data\" ] }, \"Place\": { \"title\": \"Place\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"default\": 0, \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"default\": 0, \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"default\": 0, \"type\": \"number\" }, \"position_tolerance\": { \"title\": \"Position Tolerance\", \"default\": 0, \"type\": \"number\" }, \"yaw_tolerance\": { \"title\": \"Yaw Tolerance\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"name\", \"x\", \"y\", \"yaw\", \"position_tolerance\", \"yaw_tolerance\" ] }, \"Door\": { \"title\": \"Door\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"v1_x\": { \"title\": \"V1 X\", \"default\": 0, \"type\": \"number\" }, \"v1_y\": { \"title\": \"V1 Y\", \"default\": 0, \"type\": \"number\" }, \"v2_x\": { \"title\": \"V2 X\", \"default\": 0, \"type\": \"number\" }, \"v2_y\": { \"title\": \"V2 Y\", \"default\": 0, \"type\": \"number\" }, \"door_type\": { \"title\": \"Door Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"motion_range\": { \"title\": \"Motion Range\", \"default\": 0, \"type\": \"number\" }, \"motion_direction\": { \"title\": \"Motion Direction\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" } }, \"required\": [ \"name\", \"v1_x\", \"v1_y\", \"v2_x\", \"v2_y\", \"door_type\", \"motion_range\", \"motion_direction\" ] }, \"Param\": { \"title\": \"Param\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"type\": { \"title\": \"Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"value_int\": { \"title\": \"Value Int\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"value_float\": { \"title\": \"Value Float\", \"default\": 0, \"type\": \"number\" }, \"value_string\": { \"title\": \"Value String\", \"default\": \"\", \"type\": \"string\" }, \"value_bool\": { \"title\": \"Value Bool\", \"default\": false, \"type\": \"boolean\" } }, \"required\": [ \"name\", \"type\", \"value_int\", \"value_float\", \"value_string\", \"value_bool\" ] }, \"GraphNode\": { \"title\": \"GraphNode\", \"type\": \"object\", \"properties\": { \"x\": { \"title\": \"X\", \"default\": 0, \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"default\": 0, \"type\": \"number\" }, \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } } }, \"required\": [ \"x\", \"y\", \"name\", \"params\" ] }, \"GraphEdge\": { \"title\": \"GraphEdge\", \"type\": \"object\", \"properties\": { \"v1_idx\": { \"title\": \"V1 Idx\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"v2_idx\": { \"title\": \"V2 Idx\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } }, \"edge_type\": { \"title\": \"Edge Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" } }, \"required\": [ \"v1_idx\", \"v2_idx\", \"params\", \"edge_type\" ] }, \"Graph\": { \"title\": \"Graph\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"vertices\": { \"title\": \"Vertices\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/GraphNode\" } }, \"edges\": { \"title\": \"Edges\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/GraphEdge\" } }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } } }, \"required\": [ \"name\", \"vertices\", \"edges\", \"params\" ] }, \"Level\": { \"title\": \"Level\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"elevation\": { \"title\": \"Elevation\", \"default\": 0, \"type\": \"number\" }, \"images\": { \"title\": \"Images\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/AffineImage\" } }, \"places\": { \"title\": \"Places\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Place\" } }, \"doors\": { \"title\": \"Doors\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Door\" } }, \"nav_graphs\": { \"title\": \"Nav Graphs\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Graph\" } }, \"wall_graph\": { \"title\": \"Wall Graph\", \"default\": { \"name\": \"\", \"vertices\": [], \"edges\": [], \"params\": [] }, \"allOf\": [ { \"$ref\": \"#/definitions/Graph\" } ] } }, \"required\": [ \"name\", \"elevation\", \"images\", \"places\", \"doors\", \"nav_graphs\", \"wall_graph\" ] }, \"Lift\": { \"title\": \"Lift\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"levels\": { \"title\": \"Levels\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"doors\": { \"title\": \"Doors\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Door\" } }, \"wall_graph\": { \"title\": \"Wall Graph\", \"default\": { \"name\": \"\", \"vertices\": [], \"edges\": [], \"params\": [] }, \"allOf\": [ { \"$ref\": \"#/definitions/Graph\" } ] }, \"ref_x\": { \"title\": \"Ref X\", \"default\": 0, \"type\": \"number\" }, \"ref_y\": { \"title\": \"Ref Y\", \"default\": 0, \"type\": \"number\" }, \"ref_yaw\": { \"title\": \"Ref Yaw\", \"default\": 0, \"type\": \"number\" }, \"width\": { \"title\": \"Width\", \"default\": 0, \"type\": \"number\" }, \"depth\": { \"title\": \"Depth\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"name\", \"levels\", \"doors\", \"wall_graph\", \"ref_x\", \"ref_y\", \"ref_yaw\", \"width\", \"depth\" ] } } } ``` ### /doors/{door_name}/state ``` { \"title\": \"DoorState\", \"type\": \"object\", \"properties\": { \"door_time\": { \"title\": \"Door Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"door_name\": { \"title\": \"Door Name\", \"default\": \"\", \"type\": \"string\" }, \"current_mode\": { \"title\": \"Current Mode\", \"default\": { \"value\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/DoorMode\" } ] } }, \"required\": [ \"door_time\", \"door_name\", \"current_mode\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] }, \"DoorMode\": { \"title\": \"DoorMode\", \"type\": \"object\", \"properties\": { \"value\": { \"title\": \"Value\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"value\" ] } } } ``` ### /doors/{door_name}/health ``` { \"title\": \"DoorHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /lifts/{lift_name}/state ``` { \"title\": \"LiftState\", \"type\": \"object\", \"properties\": { \"lift_time\": { \"title\": \"Lift Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"lift_name\": { \"title\": \"Lift Name\", \"default\": \"\", \"type\": \"string\" }, \"available_floors\": { \"title\": \"Available Floors\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"current_floor\": { \"title\": \"Current Floor\", \"default\": \"\", \"type\": \"string\" }, \"destination_floor\": { \"title\": \"Destination Floor\", \"default\": \"\", \"type\": \"string\" }, \"door_state\": { \"title\": \"Door State\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"motion_state\": { \"title\": \"Motion State\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"available_modes\": { \"title\": \"Available Modes\", \"type\": \"array\", \"items\": { \"type\": \"integer\" } }, \"current_mode\": { \"title\": \"Current Mode\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"session_id\": { \"title\": \"Session Id\", \"default\": \"\", \"type\": \"string\" } }, \"required\": [ \"lift_time\", \"lift_name\", \"available_floors\", \"current_floor\", \"destination_floor\", \"door_state\", \"motion_state\", \"available_modes\", \"current_mode\", \"session_id\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /lifts/{lift_name}/health ``` { \"title\": \"LiftHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /tasks/{task_id}/state ``` { \"title\": \"TaskState\", \"type\": \"object\", \"properties\": { \"booking\": { \"$ref\": \"#/definitions/Booking\" }, \"category\": { \"$ref\": \"#/definitions/Category\" }, \"detail\": { \"$ref\": \"#/definitions/Detail\" }, \"unix_millis_start_time\": { \"title\": \"Unix Millis Start Time\", \"type\": \"integer\" }, \"unix_millis_finish_time\": { \"title\": \"Unix Millis Finish Time\", \"type\": \"integer\" }, \"original_estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"assigned_to\": { \"title\": \"Assigned To\", \"description\": \"Which agent (robot) is the task assigned to\", \"allOf\": [ { \"$ref\": \"#/definitions/AssignedTo\" } ] }, \"status\": { \"$ref\": \"#/definitions/Status\" }, \"dispatch\": { \"$ref\": \"#/definitions/Dispatch\" }, \"phases\": { \"title\": \"Phases\", \"description\": \"A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Phase\" } }, \"completed\": { \"title\": \"Completed\", \"description\": \"An array of the IDs of completed phases of this task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Id\" } }, \"active\": { \"title\": \"Active\", \"description\": \"The ID of the active phase for this task\", \"allOf\": [ { \"$ref\": \"#/definitions/Id\" } ] }, \"pending\": { \"title\": \"Pending\", \"description\": \"An array of the pending phases of this task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Id\" } }, \"interruptions\": { \"title\": \"Interruptions\", \"description\": \"A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Interruption\" } }, \"cancellation\": { \"title\": \"Cancellation\", \"description\": \"If the task was cancelled, this will describe information about the request.\", \"allOf\": [ { \"$ref\": \"#/definitions/Cancellation\" } ] }, \"killed\": { \"title\": \"Killed\", \"description\": \"If the task was killed, this will describe information about the request.\", \"allOf\": [ { \"$ref\": \"#/definitions/Killed\" } ] } }, \"required\": [ \"booking\" ], \"definitions\": { \"Booking\": { \"title\": \"Booking\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"description\": \"The unique identifier for this task\", \"type\": \"string\" }, \"unix_millis_earliest_start_time\": { \"title\": \"Unix Millis Earliest Start Time\", \"type\": \"integer\" }, \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"priority\": { \"title\": \"Priority\", \"description\": \"Priority information about this task\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"string\" } ] }, \"labels\": { \"title\": \"Labels\", \"description\": \"Information about how and why this task was booked\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"requester\": { \"title\": \"Requester\", \"description\": \"(Optional) An identifier for the entity that requested this task\", \"type\": \"string\" } }, \"required\": [ \"id\" ] }, \"Category\": { \"title\": \"Category\", \"description\": \"The category of this task or phase\", \"type\": \"string\" }, \"Detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about a task, phase, or event\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"array\", \"items\": {} }, { \"type\": \"string\" } ] }, \"EstimateMillis\": { \"title\": \"EstimateMillis\", \"description\": \"An estimate, in milliseconds, of how long the subject will take to complete\", \"minimum\": 0, \"type\": \"integer\" }, \"AssignedTo\": { \"title\": \"AssignedTo\", \"type\": \"object\", \"properties\": { \"group\": { \"title\": \"Group\", \"type\": \"string\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" } }, \"required\": [ \"group\", \"name\" ] }, \"Status\": { \"title\": \"Status\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"blocked\", \"error\", \"failed\", \"queued\", \"standby\", \"underway\", \"delayed\", \"skipped\", \"canceled\", \"killed\", \"completed\" ] }, \"Status1\": { \"title\": \"Status1\", \"description\": \"An enumeration.\", \"enum\": [ \"queued\", \"selected\", \"dispatched\", \"failed_to_assign\", \"canceled_in_flight\" ] }, \"Assignment\": { \"title\": \"Assignment\", \"type\": \"object\", \"properties\": { \"fleet_name\": { \"title\": \"Fleet Name\", \"type\": \"string\" }, \"expected_robot_name\": { \"title\": \"Expected Robot Name\", \"type\": \"string\" } } }, \"Error\": { \"title\": \"Error\", \"type\": \"object\", \"properties\": { \"code\": { \"title\": \"Code\", \"description\": \"A standard code for the kind of error that has occurred\", \"minimum\": 0, \"type\": \"integer\" }, \"category\": { \"title\": \"Category\", \"description\": \"The category of the error\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Details about the error\", \"type\": \"string\" } } }, \"Dispatch\": { \"title\": \"Dispatch\", \"type\": \"object\", \"properties\": { \"status\": { \"$ref\": \"#/definitions/Status1\" }, \"assignment\": { \"$ref\": \"#/definitions/Assignment\" }, \"errors\": { \"title\": \"Errors\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Error\" } } }, \"required\": [ \"status\" ] }, \"Id\": { \"title\": \"Id\", \"minimum\": 0, \"type\": \"integer\" }, \"EventState\": { \"title\": \"EventState\", \"type\": \"object\", \"properties\": { \"id\": { \"$ref\": \"#/definitions/Id\" }, \"status\": { \"$ref\": \"#/definitions/Status\" }, \"name\": { \"title\": \"Name\", \"description\": \"The brief name of the event\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about the event\", \"allOf\": [ { \"$ref\": \"#/definitions/Detail\" } ] }, \"deps\": { \"title\": \"Deps\", \"description\": \"This event may depend on other events. This array contains the IDs of those other event dependencies.\", \"type\": \"array\", \"items\": { \"type\": \"integer\", \"minimum\": 0 } } }, \"required\": [ \"id\" ] }, \"Undo\": { \"title\": \"Undo\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the undo skip request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the undo skip request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"SkipPhaseRequest\": { \"title\": \"SkipPhaseRequest\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the skip request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the purpose of the skip request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"undo\": { \"title\": \"Undo\", \"description\": \"Information about an undo skip request that applied to this request\", \"allOf\": [ { \"$ref\": \"#/definitions/Undo\" } ] } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Phase\": { \"title\": \"Phase\", \"type\": \"object\", \"properties\": { \"id\": { \"$ref\": \"#/definitions/Id\" }, \"category\": { \"$ref\": \"#/definitions/Category\" }, \"detail\": { \"$ref\": \"#/definitions/Detail\" }, \"unix_millis_start_time\": { \"title\": \"Unix Millis Start Time\", \"type\": \"integer\" }, \"unix_millis_finish_time\": { \"title\": \"Unix Millis Finish Time\", \"type\": \"integer\" }, \"original_estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"final_event_id\": { \"$ref\": \"#/definitions/Id\" }, \"events\": { \"title\": \"Events\", \"description\": \"A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/EventState\" } }, \"skip_requests\": { \"title\": \"Skip Requests\", \"description\": \"Information about any skip requests that have been received\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/SkipPhaseRequest\" } } }, \"required\": [ \"id\" ] }, \"ResumedBy\": { \"title\": \"ResumedBy\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the resume request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the resume request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"labels\" ] }, \"Interruption\": { \"title\": \"Interruption\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the interruption request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the purpose of the interruption\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"resumed_by\": { \"title\": \"Resumed By\", \"description\": \"Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.\", \"allOf\": [ { \"$ref\": \"#/definitions/ResumedBy\" } ] } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Cancellation\": { \"title\": \"Cancellation\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the cancellation request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the cancel request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Killed\": { \"title\": \"Killed\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the cancellation request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the kill request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] } } } ``` ### /tasks/{task_id}/log ``` { \"title\": \"TaskEventLog\", \"type\": \"object\", \"properties\": { \"task_id\": { \"title\": \"Task Id\", \"type\": \"string\" }, \"log\": { \"title\": \"Log\", \"description\": \"Log entries related to the overall task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"phases\": { \"title\": \"Phases\", \"description\": \"A dictionary whose keys (property names) are the indices of a phase\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Phases\" } } }, \"required\": [ \"task_id\" ], \"additionalProperties\": false, \"definitions\": { \"Tier\": { \"title\": \"Tier\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ] }, \"LogEntry\": { \"title\": \"LogEntry\", \"type\": \"object\", \"properties\": { \"seq\": { \"title\": \"Seq\", \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"type\": \"integer\" }, \"tier\": { \"description\": \"The importance level of the log entry\", \"allOf\": [ { \"$ref\": \"#/definitions/Tier\" } ] }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"title\": \"Text\", \"description\": \"The text of the log entry\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ] }, \"Phases\": { \"title\": \"Phases\", \"type\": \"object\", \"properties\": { \"log\": { \"title\": \"Log\", \"description\": \"Log entries related to the overall phase\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"events\": { \"title\": \"Events\", \"description\": \"A dictionary whose keys (property names) are the indices of an event in the phase\", \"type\": \"object\", \"additionalProperties\": { \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } } } }, \"additionalProperties\": false } } } ``` ### /dispensers/{guid}/state ``` { \"title\": \"DispenserState\", \"type\": \"object\", \"properties\": { \"time\": { \"title\": \"Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"guid\": { \"title\": \"Guid\", \"default\": \"\", \"type\": \"string\" }, \"mode\": { \"title\": \"Mode\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"request_guid_queue\": { \"title\": \"Request Guid Queue\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /dispensers/{guid}/health ``` { \"title\": \"DispenserHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /ingestors/{guid}/state ``` { \"title\": \"IngestorState\", \"type\": \"object\", \"properties\": { \"time\": { \"title\": \"Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"guid\": { \"title\": \"Guid\", \"default\": \"\", \"type\": \"string\" }, \"mode\": { \"title\": \"Mode\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"request_guid_queue\": { \"title\": \"Request Guid Queue\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /ingestors/{guid}/health ``` { \"title\": \"IngestorHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /fleets/{name}/state ``` { \"title\": \"FleetState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"robots\": { \"title\": \"Robots\", \"description\": \"A dictionary of the states of the robots that belong to this fleet\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/RobotState\" } } }, \"definitions\": { \"Status2\": { \"title\": \"Status2\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"offline\", \"shutdown\", \"idle\", \"charging\", \"working\", \"error\" ] }, \"Location2D\": { \"title\": \"Location2D\", \"type\": \"object\", \"properties\": { \"map\": { \"title\": \"Map\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" } }, \"required\": [ \"map\", \"x\", \"y\", \"yaw\" ] }, \"Issue\": { \"title\": \"Issue\", \"type\": \"object\", \"properties\": { \"category\": { \"title\": \"Category\", \"description\": \"Category of the robot\'s issue\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about the issue\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"array\", \"items\": {} }, { \"type\": \"string\" } ] } } }, \"RobotState\": { \"title\": \"RobotState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"status\": { \"description\": \"A simple token representing the status of the robot\", \"allOf\": [ { \"$ref\": \"#/definitions/Status2\" } ] }, \"task_id\": { \"title\": \"Task Id\", \"description\": \"The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.\", \"type\": \"string\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"location\": { \"$ref\": \"#/definitions/Location2D\" }, \"battery\": { \"title\": \"Battery\", \"description\": \"State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)\", \"minimum\": 0.0, \"maximum\": 1.0, \"type\": \"number\" }, \"issues\": { \"title\": \"Issues\", \"description\": \"A list of issues with the robot that operators need to address\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Issue\" } } } } } } ``` ### /fleets/{name}/log ``` { \"title\": \"FleetState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"log\": { \"title\": \"Log\", \"description\": \"Log for the overall fleet\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"robots\": { \"title\": \"Robots\", \"description\": \"Dictionary of logs for the individual robots. The keys (property names) are the robot names.\", \"type\": \"object\", \"additionalProperties\": { \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } } } }, \"definitions\": { \"Tier\": { \"title\": \"Tier\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ] }, \"LogEntry\": { \"title\": \"LogEntry\", \"type\": \"object\", \"properties\": { \"seq\": { \"title\": \"Seq\", \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"type\": \"integer\" }, \"tier\": { \"description\": \"The importance level of the log entry\", \"allOf\": [ { \"$ref\": \"#/definitions/Tier\" } ] }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"title\": \"Text\", \"description\": \"The text of the log entry\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ] } } } ``` + * # NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint. ## About This exposes a minimal pubsub system built on top of socket.io. It works similar to a normal socket.io endpoint, except that are 2 special rooms which control subscriptions. ## Rooms ### subscribe Clients must send a message to this room to start receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### unsubscribe Clients can send a message to this room to stop receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### /alerts ``` { \"additionalProperties\": false, \"description\": \"General alert that can be triggered by events.\", \"properties\": { \"id\": { \"maxLength\": 255, \"title\": \"Id\", \"type\": \"string\" }, \"original_id\": { \"maxLength\": 255, \"title\": \"Original Id\", \"type\": \"string\" }, \"category\": { \"description\": \"Default: default
Task: task
Fleet: fleet
Robot: robot\", \"maxLength\": 7, \"title\": \"Category\", \"type\": \"string\" }, \"unix_millis_created_time\": { \"maximum\": 9223372036854775807, \"minimum\": -9223372036854775808, \"title\": \"Unix Millis Created Time\", \"type\": \"integer\" }, \"acknowledged_by\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Acknowledged By\" }, \"unix_millis_acknowledged_time\": { \"anyOf\": [ { \"maximum\": 9223372036854775807, \"minimum\": -9223372036854775808, \"type\": \"integer\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Unix Millis Acknowledged Time\" } }, \"required\": [ \"id\", \"original_id\", \"category\", \"unix_millis_created_time\", \"acknowledged_by\", \"unix_millis_acknowledged_time\" ], \"title\": \"Alert\", \"type\": \"object\" } ``` ### /beacons ``` { \"additionalProperties\": false, \"properties\": { \"id\": { \"maxLength\": 255, \"title\": \"Id\", \"type\": \"string\" }, \"online\": { \"title\": \"Online\", \"type\": \"boolean\" }, \"category\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Category\" }, \"activated\": { \"title\": \"Activated\", \"type\": \"boolean\" }, \"level\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Level\" } }, \"required\": [ \"id\", \"online\", \"category\", \"activated\", \"level\" ], \"title\": \"BeaconState\", \"type\": \"object\" } ``` ### /building_map ``` { \"$defs\": { \"AffineImage\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"x_offset\": { \"title\": \"X Offset\", \"type\": \"number\" }, \"y_offset\": { \"title\": \"Y Offset\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" }, \"scale\": { \"title\": \"Scale\", \"type\": \"number\" }, \"encoding\": { \"title\": \"Encoding\", \"type\": \"string\" }, \"data\": { \"title\": \"Data\", \"type\": \"string\" } }, \"required\": [ \"name\", \"x_offset\", \"y_offset\", \"yaw\", \"scale\", \"encoding\", \"data\" ], \"title\": \"AffineImage\", \"type\": \"object\" }, \"Door\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"v1_x\": { \"title\": \"V1 X\", \"type\": \"number\" }, \"v1_y\": { \"title\": \"V1 Y\", \"type\": \"number\" }, \"v2_x\": { \"title\": \"V2 X\", \"type\": \"number\" }, \"v2_y\": { \"title\": \"V2 Y\", \"type\": \"number\" }, \"door_type\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Door Type\", \"type\": \"integer\" }, \"motion_range\": { \"title\": \"Motion Range\", \"type\": \"number\" }, \"motion_direction\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Motion Direction\", \"type\": \"integer\" } }, \"required\": [ \"name\", \"v1_x\", \"v1_y\", \"v2_x\", \"v2_y\", \"door_type\", \"motion_range\", \"motion_direction\" ], \"title\": \"Door\", \"type\": \"object\" }, \"Graph\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"vertices\": { \"items\": { \"$ref\": \"#/$defs/GraphNode\" }, \"title\": \"Vertices\", \"type\": \"array\" }, \"edges\": { \"items\": { \"$ref\": \"#/$defs/GraphEdge\" }, \"title\": \"Edges\", \"type\": \"array\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" } }, \"required\": [ \"name\", \"vertices\", \"edges\", \"params\" ], \"title\": \"Graph\", \"type\": \"object\" }, \"GraphEdge\": { \"properties\": { \"v1_idx\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"V1 Idx\", \"type\": \"integer\" }, \"v2_idx\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"V2 Idx\", \"type\": \"integer\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" }, \"edge_type\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Edge Type\", \"type\": \"integer\" } }, \"required\": [ \"v1_idx\", \"v2_idx\", \"params\", \"edge_type\" ], \"title\": \"GraphEdge\", \"type\": \"object\" }, \"GraphNode\": { \"properties\": { \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" } }, \"required\": [ \"x\", \"y\", \"name\", \"params\" ], \"title\": \"GraphNode\", \"type\": \"object\" }, \"Level\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"elevation\": { \"title\": \"Elevation\", \"type\": \"number\" }, \"images\": { \"items\": { \"$ref\": \"#/$defs/AffineImage\" }, \"title\": \"Images\", \"type\": \"array\" }, \"places\": { \"items\": { \"$ref\": \"#/$defs/Place\" }, \"title\": \"Places\", \"type\": \"array\" }, \"doors\": { \"items\": { \"$ref\": \"#/$defs/Door\" }, \"title\": \"Doors\", \"type\": \"array\" }, \"nav_graphs\": { \"items\": { \"$ref\": \"#/$defs/Graph\" }, \"title\": \"Nav Graphs\", \"type\": \"array\" }, \"wall_graph\": { \"$ref\": \"#/$defs/Graph\" } }, \"required\": [ \"name\", \"elevation\", \"images\", \"places\", \"doors\", \"nav_graphs\", \"wall_graph\" ], \"title\": \"Level\", \"type\": \"object\" }, \"Lift\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"levels\": { \"items\": { \"type\": \"string\" }, \"title\": \"Levels\", \"type\": \"array\" }, \"doors\": { \"items\": { \"$ref\": \"#/$defs/Door\" }, \"title\": \"Doors\", \"type\": \"array\" }, \"wall_graph\": { \"$ref\": \"#/$defs/Graph\" }, \"ref_x\": { \"title\": \"Ref X\", \"type\": \"number\" }, \"ref_y\": { \"title\": \"Ref Y\", \"type\": \"number\" }, \"ref_yaw\": { \"title\": \"Ref Yaw\", \"type\": \"number\" }, \"width\": { \"title\": \"Width\", \"type\": \"number\" }, \"depth\": { \"title\": \"Depth\", \"type\": \"number\" } }, \"required\": [ \"name\", \"levels\", \"doors\", \"wall_graph\", \"ref_x\", \"ref_y\", \"ref_yaw\", \"width\", \"depth\" ], \"title\": \"Lift\", \"type\": \"object\" }, \"Param\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"type\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Type\", \"type\": \"integer\" }, \"value_int\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Value Int\", \"type\": \"integer\" }, \"value_float\": { \"title\": \"Value Float\", \"type\": \"number\" }, \"value_string\": { \"title\": \"Value String\", \"type\": \"string\" }, \"value_bool\": { \"title\": \"Value Bool\", \"type\": \"boolean\" } }, \"required\": [ \"name\", \"type\", \"value_int\", \"value_float\", \"value_string\", \"value_bool\" ], \"title\": \"Param\", \"type\": \"object\" }, \"Place\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" }, \"position_tolerance\": { \"title\": \"Position Tolerance\", \"type\": \"number\" }, \"yaw_tolerance\": { \"title\": \"Yaw Tolerance\", \"type\": \"number\" } }, \"required\": [ \"name\", \"x\", \"y\", \"yaw\", \"position_tolerance\", \"yaw_tolerance\" ], \"title\": \"Place\", \"type\": \"object\" } }, \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"levels\": { \"items\": { \"$ref\": \"#/$defs/Level\" }, \"title\": \"Levels\", \"type\": \"array\" }, \"lifts\": { \"items\": { \"$ref\": \"#/$defs/Lift\" }, \"title\": \"Lifts\", \"type\": \"array\" } }, \"required\": [ \"name\", \"levels\", \"lifts\" ], \"title\": \"BuildingMap\", \"type\": \"object\" } ``` ### /doors/{door_name}/state ``` { \"$defs\": { \"DoorMode\": { \"properties\": { \"value\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Value\", \"type\": \"integer\" } }, \"required\": [ \"value\" ], \"title\": \"DoorMode\", \"type\": \"object\" }, \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"door_time\": { \"$ref\": \"#/$defs/Time\" }, \"door_name\": { \"title\": \"Door Name\", \"type\": \"string\" }, \"current_mode\": { \"$ref\": \"#/$defs/DoorMode\" } }, \"required\": [ \"door_time\", \"door_name\", \"current_mode\" ], \"title\": \"DoorState\", \"type\": \"object\" } ``` ### /doors/{door_name}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"DoorHealth\", \"type\": \"object\" } ``` ### /lifts/{lift_name}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"lift_time\": { \"$ref\": \"#/$defs/Time\" }, \"lift_name\": { \"title\": \"Lift Name\", \"type\": \"string\" }, \"available_floors\": { \"items\": { \"type\": \"string\" }, \"title\": \"Available Floors\", \"type\": \"array\" }, \"current_floor\": { \"title\": \"Current Floor\", \"type\": \"string\" }, \"destination_floor\": { \"title\": \"Destination Floor\", \"type\": \"string\" }, \"door_state\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Door State\", \"type\": \"integer\" }, \"motion_state\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Motion State\", \"type\": \"integer\" }, \"available_modes\": { \"items\": { \"type\": \"integer\" }, \"title\": \"Available Modes\", \"type\": \"array\" }, \"current_mode\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Current Mode\", \"type\": \"integer\" }, \"session_id\": { \"title\": \"Session Id\", \"type\": \"string\" } }, \"required\": [ \"lift_time\", \"lift_name\", \"available_floors\", \"current_floor\", \"destination_floor\", \"door_state\", \"motion_state\", \"available_modes\", \"current_mode\", \"session_id\" ], \"title\": \"LiftState\", \"type\": \"object\" } ``` ### /lifts/{lift_name}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"LiftHealth\", \"type\": \"object\" } ``` ### /tasks/{task_id}/state ``` { \"$defs\": { \"AssignedTo\": { \"properties\": { \"group\": { \"title\": \"Group\", \"type\": \"string\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" } }, \"required\": [ \"group\", \"name\" ], \"title\": \"AssignedTo\", \"type\": \"object\" }, \"Assignment\": { \"properties\": { \"fleet_name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Fleet Name\" }, \"expected_robot_name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Expected Robot Name\" } }, \"title\": \"Assignment\", \"type\": \"object\" }, \"Booking\": { \"properties\": { \"id\": { \"description\": \"The unique identifier for this task\", \"title\": \"Id\", \"type\": \"string\" }, \"unix_millis_earliest_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Earliest Start Time\" }, \"unix_millis_request_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Request Time\" }, \"priority\": { \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Priority information about this task\", \"title\": \"Priority\" }, \"labels\": { \"anyOf\": [ { \"items\": { \"type\": \"string\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about how and why this task was booked\", \"title\": \"Labels\" }, \"requester\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"(Optional) An identifier for the entity that requested this task\", \"title\": \"Requester\" } }, \"required\": [ \"id\" ], \"title\": \"Booking\", \"type\": \"object\" }, \"Cancellation\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the cancellation request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the cancel request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Cancellation\", \"type\": \"object\" }, \"Category\": { \"title\": \"Category\", \"type\": \"string\" }, \"Detail\": { \"anyOf\": [ { \"type\": \"object\" }, { \"items\": {}, \"type\": \"array\" }, { \"type\": \"string\" } ], \"title\": \"Detail\" }, \"Dispatch\": { \"properties\": { \"status\": { \"$ref\": \"#/$defs/Status2\" }, \"assignment\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Assignment\" }, { \"type\": \"null\" } ], \"default\": null }, \"errors\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Error\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Errors\" } }, \"required\": [ \"status\" ], \"title\": \"Dispatch\", \"type\": \"object\" }, \"Error\": { \"properties\": { \"code\": { \"anyOf\": [ { \"minimum\": 0, \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A standard code for the kind of error that has occurred\", \"title\": \"Code\" }, \"category\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The category of the error\", \"title\": \"Category\" }, \"detail\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Details about the error\", \"title\": \"Detail\" } }, \"title\": \"Error\", \"type\": \"object\" }, \"EstimateMillis\": { \"minimum\": 0, \"title\": \"EstimateMillis\", \"type\": \"integer\" }, \"EventState\": { \"properties\": { \"id\": { \"$ref\": \"#/$defs/Id\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null }, \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The brief name of the event\", \"title\": \"Name\" }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Detailed information about the event\" }, \"deps\": { \"anyOf\": [ { \"items\": { \"minimum\": 0, \"type\": \"integer\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"This event may depend on other events. This array contains the IDs of those other event dependencies.\", \"title\": \"Deps\" } }, \"required\": [ \"id\" ], \"title\": \"EventState\", \"type\": \"object\" }, \"Id\": { \"minimum\": 0, \"title\": \"Id\", \"type\": \"integer\" }, \"Interruption\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the interruption request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the purpose of the interruption\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" }, \"resumed_by\": { \"anyOf\": [ { \"$ref\": \"#/$defs/ResumedBy\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Interruption\", \"type\": \"object\" }, \"Killed\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the cancellation request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the kill request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Killed\", \"type\": \"object\" }, \"Phase\": { \"properties\": { \"id\": { \"$ref\": \"#/$defs/Id\" }, \"category\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Category\" }, { \"type\": \"null\" } ], \"default\": null }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null }, \"unix_millis_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Start Time\" }, \"unix_millis_finish_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Finish Time\" }, \"original_estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"final_event_id\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Id\" }, { \"type\": \"null\" } ], \"default\": null }, \"events\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/EventState\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.\", \"title\": \"Events\" }, \"skip_requests\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/SkipPhaseRequest\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about any skip requests that have been received\", \"title\": \"Skip Requests\" } }, \"required\": [ \"id\" ], \"title\": \"Phase\", \"type\": \"object\" }, \"ResumedBy\": { \"properties\": { \"unix_millis_request_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The time that the resume request arrived\", \"title\": \"Unix Millis Request Time\" }, \"labels\": { \"description\": \"Labels to describe the resume request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"labels\" ], \"title\": \"ResumedBy\", \"type\": \"object\" }, \"SkipPhaseRequest\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the skip request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the purpose of the skip request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" }, \"undo\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Undo\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about an undo skip request that applied to this request\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"SkipPhaseRequest\", \"type\": \"object\" }, \"Status\": { \"enum\": [ \"uninitialized\", \"blocked\", \"error\", \"failed\", \"queued\", \"standby\", \"underway\", \"delayed\", \"skipped\", \"canceled\", \"killed\", \"completed\" ], \"title\": \"Status\", \"type\": \"string\" }, \"Status2\": { \"enum\": [ \"queued\", \"selected\", \"dispatched\", \"failed_to_assign\", \"canceled_in_flight\" ], \"title\": \"Status2\", \"type\": \"string\" }, \"Undo\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the undo skip request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the undo skip request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Undo\", \"type\": \"object\" } }, \"properties\": { \"booking\": { \"$ref\": \"#/$defs/Booking\" }, \"category\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Category\" }, { \"type\": \"null\" } ], \"default\": null }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null }, \"unix_millis_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Start Time\" }, \"unix_millis_finish_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Finish Time\" }, \"original_estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"assigned_to\": { \"anyOf\": [ { \"$ref\": \"#/$defs/AssignedTo\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Which agent (robot) is the task assigned to\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null }, \"dispatch\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Dispatch\" }, { \"type\": \"null\" } ], \"default\": null }, \"phases\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Phase\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.\", \"title\": \"Phases\" }, \"completed\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Id\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"An array of the IDs of completed phases of this task\", \"title\": \"Completed\" }, \"active\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Id\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The ID of the active phase for this task\" }, \"pending\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Id\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"An array of the pending phases of this task\", \"title\": \"Pending\" }, \"interruptions\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Interruption\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.\", \"title\": \"Interruptions\" }, \"cancellation\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Cancellation\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"If the task was cancelled, this will describe information about the request.\" }, \"killed\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Killed\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"If the task was killed, this will describe information about the request.\" } }, \"required\": [ \"booking\" ], \"title\": \"TaskState\", \"type\": \"object\" } ``` ### /tasks/{task_id}/log ``` { \"$defs\": { \"LogEntry\": { \"properties\": { \"seq\": { \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"title\": \"Seq\", \"type\": \"integer\" }, \"tier\": { \"allOf\": [ { \"$ref\": \"#/$defs/Tier\" } ], \"description\": \"The importance level of the log entry\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"description\": \"The text of the log entry\", \"title\": \"Text\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ], \"title\": \"LogEntry\", \"type\": \"object\" }, \"Phases\": { \"additionalProperties\": false, \"properties\": { \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log entries related to the overall phase\", \"title\": \"Log\" }, \"events\": { \"anyOf\": [ { \"additionalProperties\": { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary whose keys (property names) are the indices of an event in the phase\", \"title\": \"Events\" } }, \"title\": \"Phases\", \"type\": \"object\" }, \"Tier\": { \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ], \"title\": \"Tier\", \"type\": \"string\" } }, \"additionalProperties\": false, \"properties\": { \"task_id\": { \"title\": \"Task Id\", \"type\": \"string\" }, \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log entries related to the overall task\", \"title\": \"Log\" }, \"phases\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Phases\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary whose keys (property names) are the indices of a phase\", \"title\": \"Phases\" } }, \"required\": [ \"task_id\" ], \"title\": \"TaskEventLog\", \"type\": \"object\" } ``` ### /dispensers/{guid}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"time\": { \"$ref\": \"#/$defs/Time\" }, \"guid\": { \"title\": \"Guid\", \"type\": \"string\" }, \"mode\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Mode\", \"type\": \"integer\" }, \"request_guid_queue\": { \"items\": { \"type\": \"string\" }, \"title\": \"Request Guid Queue\", \"type\": \"array\" }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"title\": \"DispenserState\", \"type\": \"object\" } ``` ### /dispensers/{guid}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"DispenserHealth\", \"type\": \"object\" } ``` ### /ingestors/{guid}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"time\": { \"$ref\": \"#/$defs/Time\" }, \"guid\": { \"title\": \"Guid\", \"type\": \"string\" }, \"mode\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Mode\", \"type\": \"integer\" }, \"request_guid_queue\": { \"items\": { \"type\": \"string\" }, \"title\": \"Request Guid Queue\", \"type\": \"array\" }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"title\": \"IngestorState\", \"type\": \"object\" } ``` ### /ingestors/{guid}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"IngestorHealth\", \"type\": \"object\" } ``` ### /fleets/{name}/state ``` { \"$defs\": { \"Issue\": { \"properties\": { \"category\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Category of the robot\'s issue\", \"title\": \"Category\" }, \"detail\": { \"anyOf\": [ { \"type\": \"object\" }, { \"items\": {}, \"type\": \"array\" }, { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Detailed information about the issue\", \"title\": \"Detail\" } }, \"title\": \"Issue\", \"type\": \"object\" }, \"Location2D\": { \"properties\": { \"map\": { \"title\": \"Map\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" } }, \"required\": [ \"map\", \"x\", \"y\", \"yaw\" ], \"title\": \"Location2D\", \"type\": \"object\" }, \"RobotState\": { \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A simple token representing the status of the robot\" }, \"task_id\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.\", \"title\": \"Task Id\" }, \"unix_millis_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Time\" }, \"location\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Location2D\" }, { \"type\": \"null\" } ], \"default\": null }, \"battery\": { \"anyOf\": [ { \"maximum\": 1.0, \"minimum\": 0.0, \"type\": \"number\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)\", \"title\": \"Battery\" }, \"issues\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Issue\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A list of issues with the robot that operators need to address\", \"title\": \"Issues\" } }, \"title\": \"RobotState\", \"type\": \"object\" }, \"Status\": { \"enum\": [ \"uninitialized\", \"offline\", \"shutdown\", \"idle\", \"charging\", \"working\", \"error\" ], \"title\": \"Status\", \"type\": \"string\" } }, \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"robots\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/RobotState\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of the states of the robots that belong to this fleet\", \"title\": \"Robots\" } }, \"title\": \"FleetState\", \"type\": \"object\" } ``` ### /fleets/{name}/log ``` { \"$defs\": { \"LogEntry\": { \"properties\": { \"seq\": { \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"title\": \"Seq\", \"type\": \"integer\" }, \"tier\": { \"allOf\": [ { \"$ref\": \"#/$defs/Tier\" } ], \"description\": \"The importance level of the log entry\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"description\": \"The text of the log entry\", \"title\": \"Text\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ], \"title\": \"LogEntry\", \"type\": \"object\" }, \"Tier\": { \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ], \"title\": \"Tier\", \"type\": \"string\" } }, \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log for the overall fleet\", \"title\": \"Log\" }, \"robots\": { \"anyOf\": [ { \"additionalProperties\": { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Dictionary of logs for the individual robots. The keys (property names) are the robot names.\", \"title\": \"Robots\" } }, \"title\": \"FleetLog\", \"type\": \"object\" } ``` * @summary Socket.io endpoint * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -5654,13 +6027,17 @@ export class DefaultApi extends BaseAPI { /** * Get the effective permissions of the current user * @summary Get Effective Permissions + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApi */ - public getEffectivePermissionsPermissionsGet(options?: AxiosRequestConfig) { + public getEffectivePermissionsPermissionsGet( + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return DefaultApiFp(this.configuration) - .getEffectivePermissionsPermissionsGet(options) + .getEffectivePermissionsPermissionsGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -5671,7 +6048,7 @@ export class DefaultApi extends BaseAPI { * @throws {RequiredError} * @memberof DefaultApi */ - public getTimeTimeGet(options?: AxiosRequestConfig) { + public getTimeTimeGet(options?: RawAxiosRequestConfig) { return DefaultApiFp(this.configuration) .getTimeTimeGet(options) .then((request) => request(this.axios, this.basePath)); @@ -5680,24 +6057,25 @@ export class DefaultApi extends BaseAPI { /** * Get the currently logged in user * @summary Get User + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApi */ - public getUserUserGet(options?: AxiosRequestConfig) { + public getUserUserGet(authorization?: string | null, options?: RawAxiosRequestConfig) { return DefaultApiFp(this.configuration) - .getUserUserGet(options) + .getUserUserGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } /** - * # NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint. ## About This exposes a minimal pubsub system built on top of socket.io. It works similar to a normal socket.io endpoint, except that are 2 special rooms which control subscriptions. ## Rooms ### subscribe Clients must send a message to this room to start receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### unsubscribe Clients can send a message to this room to stop receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### /alerts ``` { \"title\": \"Alert\", \"description\": \"General alert that can be triggered by events.\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"maxLength\": 255, \"type\": \"string\" }, \"original_id\": { \"title\": \"Original Id\", \"maxLength\": 255, \"type\": \"string\" }, \"category\": { \"title\": \"Category\", \"description\": \"Default: default
Task: task
Fleet: fleet
Robot: robot\", \"maxLength\": 7, \"type\": \"string\" }, \"unix_millis_created_time\": { \"title\": \"Unix Millis Created Time\", \"minimum\": -9223372036854775808, \"maximum\": 9223372036854775807, \"type\": \"integer\" }, \"acknowledged_by\": { \"title\": \"Acknowledged By\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"unix_millis_acknowledged_time\": { \"title\": \"Unix Millis Acknowledged Time\", \"minimum\": -9223372036854775808, \"maximum\": 9223372036854775807, \"nullable\": true, \"type\": \"integer\" } }, \"required\": [ \"id\", \"original_id\", \"category\", \"unix_millis_created_time\" ], \"additionalProperties\": false } ``` ### /beacons ``` { \"title\": \"BeaconState\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"maxLength\": 255, \"type\": \"string\" }, \"online\": { \"title\": \"Online\", \"type\": \"boolean\" }, \"category\": { \"title\": \"Category\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"activated\": { \"title\": \"Activated\", \"type\": \"boolean\" }, \"level\": { \"title\": \"Level\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" } }, \"required\": [ \"id\", \"online\", \"activated\" ], \"additionalProperties\": false } ``` ### /building_map ``` { \"title\": \"BuildingMap\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"levels\": { \"title\": \"Levels\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Level\" } }, \"lifts\": { \"title\": \"Lifts\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Lift\" } } }, \"required\": [ \"name\", \"levels\", \"lifts\" ], \"definitions\": { \"AffineImage\": { \"title\": \"AffineImage\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"x_offset\": { \"title\": \"X Offset\", \"default\": 0, \"type\": \"number\" }, \"y_offset\": { \"title\": \"Y Offset\", \"default\": 0, \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"default\": 0, \"type\": \"number\" }, \"scale\": { \"title\": \"Scale\", \"default\": 0, \"type\": \"number\" }, \"encoding\": { \"title\": \"Encoding\", \"default\": \"\", \"type\": \"string\" }, \"data\": { \"title\": \"Data\", \"type\": \"string\" } }, \"required\": [ \"name\", \"x_offset\", \"y_offset\", \"yaw\", \"scale\", \"encoding\", \"data\" ] }, \"Place\": { \"title\": \"Place\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"default\": 0, \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"default\": 0, \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"default\": 0, \"type\": \"number\" }, \"position_tolerance\": { \"title\": \"Position Tolerance\", \"default\": 0, \"type\": \"number\" }, \"yaw_tolerance\": { \"title\": \"Yaw Tolerance\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"name\", \"x\", \"y\", \"yaw\", \"position_tolerance\", \"yaw_tolerance\" ] }, \"Door\": { \"title\": \"Door\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"v1_x\": { \"title\": \"V1 X\", \"default\": 0, \"type\": \"number\" }, \"v1_y\": { \"title\": \"V1 Y\", \"default\": 0, \"type\": \"number\" }, \"v2_x\": { \"title\": \"V2 X\", \"default\": 0, \"type\": \"number\" }, \"v2_y\": { \"title\": \"V2 Y\", \"default\": 0, \"type\": \"number\" }, \"door_type\": { \"title\": \"Door Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"motion_range\": { \"title\": \"Motion Range\", \"default\": 0, \"type\": \"number\" }, \"motion_direction\": { \"title\": \"Motion Direction\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" } }, \"required\": [ \"name\", \"v1_x\", \"v1_y\", \"v2_x\", \"v2_y\", \"door_type\", \"motion_range\", \"motion_direction\" ] }, \"Param\": { \"title\": \"Param\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"type\": { \"title\": \"Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"value_int\": { \"title\": \"Value Int\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"value_float\": { \"title\": \"Value Float\", \"default\": 0, \"type\": \"number\" }, \"value_string\": { \"title\": \"Value String\", \"default\": \"\", \"type\": \"string\" }, \"value_bool\": { \"title\": \"Value Bool\", \"default\": false, \"type\": \"boolean\" } }, \"required\": [ \"name\", \"type\", \"value_int\", \"value_float\", \"value_string\", \"value_bool\" ] }, \"GraphNode\": { \"title\": \"GraphNode\", \"type\": \"object\", \"properties\": { \"x\": { \"title\": \"X\", \"default\": 0, \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"default\": 0, \"type\": \"number\" }, \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } } }, \"required\": [ \"x\", \"y\", \"name\", \"params\" ] }, \"GraphEdge\": { \"title\": \"GraphEdge\", \"type\": \"object\", \"properties\": { \"v1_idx\": { \"title\": \"V1 Idx\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"v2_idx\": { \"title\": \"V2 Idx\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } }, \"edge_type\": { \"title\": \"Edge Type\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" } }, \"required\": [ \"v1_idx\", \"v2_idx\", \"params\", \"edge_type\" ] }, \"Graph\": { \"title\": \"Graph\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"vertices\": { \"title\": \"Vertices\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/GraphNode\" } }, \"edges\": { \"title\": \"Edges\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/GraphEdge\" } }, \"params\": { \"title\": \"Params\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Param\" } } }, \"required\": [ \"name\", \"vertices\", \"edges\", \"params\" ] }, \"Level\": { \"title\": \"Level\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"elevation\": { \"title\": \"Elevation\", \"default\": 0, \"type\": \"number\" }, \"images\": { \"title\": \"Images\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/AffineImage\" } }, \"places\": { \"title\": \"Places\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Place\" } }, \"doors\": { \"title\": \"Doors\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Door\" } }, \"nav_graphs\": { \"title\": \"Nav Graphs\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Graph\" } }, \"wall_graph\": { \"title\": \"Wall Graph\", \"default\": { \"name\": \"\", \"vertices\": [], \"edges\": [], \"params\": [] }, \"allOf\": [ { \"$ref\": \"#/definitions/Graph\" } ] } }, \"required\": [ \"name\", \"elevation\", \"images\", \"places\", \"doors\", \"nav_graphs\", \"wall_graph\" ] }, \"Lift\": { \"title\": \"Lift\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"default\": \"\", \"type\": \"string\" }, \"levels\": { \"title\": \"Levels\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"doors\": { \"title\": \"Doors\", \"default\": [], \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Door\" } }, \"wall_graph\": { \"title\": \"Wall Graph\", \"default\": { \"name\": \"\", \"vertices\": [], \"edges\": [], \"params\": [] }, \"allOf\": [ { \"$ref\": \"#/definitions/Graph\" } ] }, \"ref_x\": { \"title\": \"Ref X\", \"default\": 0, \"type\": \"number\" }, \"ref_y\": { \"title\": \"Ref Y\", \"default\": 0, \"type\": \"number\" }, \"ref_yaw\": { \"title\": \"Ref Yaw\", \"default\": 0, \"type\": \"number\" }, \"width\": { \"title\": \"Width\", \"default\": 0, \"type\": \"number\" }, \"depth\": { \"title\": \"Depth\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"name\", \"levels\", \"doors\", \"wall_graph\", \"ref_x\", \"ref_y\", \"ref_yaw\", \"width\", \"depth\" ] } } } ``` ### /doors/{door_name}/state ``` { \"title\": \"DoorState\", \"type\": \"object\", \"properties\": { \"door_time\": { \"title\": \"Door Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"door_name\": { \"title\": \"Door Name\", \"default\": \"\", \"type\": \"string\" }, \"current_mode\": { \"title\": \"Current Mode\", \"default\": { \"value\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/DoorMode\" } ] } }, \"required\": [ \"door_time\", \"door_name\", \"current_mode\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] }, \"DoorMode\": { \"title\": \"DoorMode\", \"type\": \"object\", \"properties\": { \"value\": { \"title\": \"Value\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"value\" ] } } } ``` ### /doors/{door_name}/health ``` { \"title\": \"DoorHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /lifts/{lift_name}/state ``` { \"title\": \"LiftState\", \"type\": \"object\", \"properties\": { \"lift_time\": { \"title\": \"Lift Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"lift_name\": { \"title\": \"Lift Name\", \"default\": \"\", \"type\": \"string\" }, \"available_floors\": { \"title\": \"Available Floors\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"current_floor\": { \"title\": \"Current Floor\", \"default\": \"\", \"type\": \"string\" }, \"destination_floor\": { \"title\": \"Destination Floor\", \"default\": \"\", \"type\": \"string\" }, \"door_state\": { \"title\": \"Door State\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"motion_state\": { \"title\": \"Motion State\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"available_modes\": { \"title\": \"Available Modes\", \"type\": \"array\", \"items\": { \"type\": \"integer\" } }, \"current_mode\": { \"title\": \"Current Mode\", \"default\": 0, \"minimum\": 0, \"maximum\": 255, \"type\": \"integer\" }, \"session_id\": { \"title\": \"Session Id\", \"default\": \"\", \"type\": \"string\" } }, \"required\": [ \"lift_time\", \"lift_name\", \"available_floors\", \"current_floor\", \"destination_floor\", \"door_state\", \"motion_state\", \"available_modes\", \"current_mode\", \"session_id\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /lifts/{lift_name}/health ``` { \"title\": \"LiftHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /tasks/{task_id}/state ``` { \"title\": \"TaskState\", \"type\": \"object\", \"properties\": { \"booking\": { \"$ref\": \"#/definitions/Booking\" }, \"category\": { \"$ref\": \"#/definitions/Category\" }, \"detail\": { \"$ref\": \"#/definitions/Detail\" }, \"unix_millis_start_time\": { \"title\": \"Unix Millis Start Time\", \"type\": \"integer\" }, \"unix_millis_finish_time\": { \"title\": \"Unix Millis Finish Time\", \"type\": \"integer\" }, \"original_estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"assigned_to\": { \"title\": \"Assigned To\", \"description\": \"Which agent (robot) is the task assigned to\", \"allOf\": [ { \"$ref\": \"#/definitions/AssignedTo\" } ] }, \"status\": { \"$ref\": \"#/definitions/Status\" }, \"dispatch\": { \"$ref\": \"#/definitions/Dispatch\" }, \"phases\": { \"title\": \"Phases\", \"description\": \"A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Phase\" } }, \"completed\": { \"title\": \"Completed\", \"description\": \"An array of the IDs of completed phases of this task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Id\" } }, \"active\": { \"title\": \"Active\", \"description\": \"The ID of the active phase for this task\", \"allOf\": [ { \"$ref\": \"#/definitions/Id\" } ] }, \"pending\": { \"title\": \"Pending\", \"description\": \"An array of the pending phases of this task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Id\" } }, \"interruptions\": { \"title\": \"Interruptions\", \"description\": \"A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Interruption\" } }, \"cancellation\": { \"title\": \"Cancellation\", \"description\": \"If the task was cancelled, this will describe information about the request.\", \"allOf\": [ { \"$ref\": \"#/definitions/Cancellation\" } ] }, \"killed\": { \"title\": \"Killed\", \"description\": \"If the task was killed, this will describe information about the request.\", \"allOf\": [ { \"$ref\": \"#/definitions/Killed\" } ] } }, \"required\": [ \"booking\" ], \"definitions\": { \"Booking\": { \"title\": \"Booking\", \"type\": \"object\", \"properties\": { \"id\": { \"title\": \"Id\", \"description\": \"The unique identifier for this task\", \"type\": \"string\" }, \"unix_millis_earliest_start_time\": { \"title\": \"Unix Millis Earliest Start Time\", \"type\": \"integer\" }, \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"priority\": { \"title\": \"Priority\", \"description\": \"Priority information about this task\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"string\" } ] }, \"labels\": { \"title\": \"Labels\", \"description\": \"Information about how and why this task was booked\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"requester\": { \"title\": \"Requester\", \"description\": \"(Optional) An identifier for the entity that requested this task\", \"type\": \"string\" } }, \"required\": [ \"id\" ] }, \"Category\": { \"title\": \"Category\", \"description\": \"The category of this task or phase\", \"type\": \"string\" }, \"Detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about a task, phase, or event\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"array\", \"items\": {} }, { \"type\": \"string\" } ] }, \"EstimateMillis\": { \"title\": \"EstimateMillis\", \"description\": \"An estimate, in milliseconds, of how long the subject will take to complete\", \"minimum\": 0, \"type\": \"integer\" }, \"AssignedTo\": { \"title\": \"AssignedTo\", \"type\": \"object\", \"properties\": { \"group\": { \"title\": \"Group\", \"type\": \"string\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" } }, \"required\": [ \"group\", \"name\" ] }, \"Status\": { \"title\": \"Status\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"blocked\", \"error\", \"failed\", \"queued\", \"standby\", \"underway\", \"delayed\", \"skipped\", \"canceled\", \"killed\", \"completed\" ] }, \"Status1\": { \"title\": \"Status1\", \"description\": \"An enumeration.\", \"enum\": [ \"queued\", \"selected\", \"dispatched\", \"failed_to_assign\", \"canceled_in_flight\" ] }, \"Assignment\": { \"title\": \"Assignment\", \"type\": \"object\", \"properties\": { \"fleet_name\": { \"title\": \"Fleet Name\", \"type\": \"string\" }, \"expected_robot_name\": { \"title\": \"Expected Robot Name\", \"type\": \"string\" } } }, \"Error\": { \"title\": \"Error\", \"type\": \"object\", \"properties\": { \"code\": { \"title\": \"Code\", \"description\": \"A standard code for the kind of error that has occurred\", \"minimum\": 0, \"type\": \"integer\" }, \"category\": { \"title\": \"Category\", \"description\": \"The category of the error\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Details about the error\", \"type\": \"string\" } } }, \"Dispatch\": { \"title\": \"Dispatch\", \"type\": \"object\", \"properties\": { \"status\": { \"$ref\": \"#/definitions/Status1\" }, \"assignment\": { \"$ref\": \"#/definitions/Assignment\" }, \"errors\": { \"title\": \"Errors\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Error\" } } }, \"required\": [ \"status\" ] }, \"Id\": { \"title\": \"Id\", \"minimum\": 0, \"type\": \"integer\" }, \"EventState\": { \"title\": \"EventState\", \"type\": \"object\", \"properties\": { \"id\": { \"$ref\": \"#/definitions/Id\" }, \"status\": { \"$ref\": \"#/definitions/Status\" }, \"name\": { \"title\": \"Name\", \"description\": \"The brief name of the event\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about the event\", \"allOf\": [ { \"$ref\": \"#/definitions/Detail\" } ] }, \"deps\": { \"title\": \"Deps\", \"description\": \"This event may depend on other events. This array contains the IDs of those other event dependencies.\", \"type\": \"array\", \"items\": { \"type\": \"integer\", \"minimum\": 0 } } }, \"required\": [ \"id\" ] }, \"Undo\": { \"title\": \"Undo\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the undo skip request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the undo skip request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"SkipPhaseRequest\": { \"title\": \"SkipPhaseRequest\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the skip request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the purpose of the skip request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"undo\": { \"title\": \"Undo\", \"description\": \"Information about an undo skip request that applied to this request\", \"allOf\": [ { \"$ref\": \"#/definitions/Undo\" } ] } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Phase\": { \"title\": \"Phase\", \"type\": \"object\", \"properties\": { \"id\": { \"$ref\": \"#/definitions/Id\" }, \"category\": { \"$ref\": \"#/definitions/Category\" }, \"detail\": { \"$ref\": \"#/definitions/Detail\" }, \"unix_millis_start_time\": { \"title\": \"Unix Millis Start Time\", \"type\": \"integer\" }, \"unix_millis_finish_time\": { \"title\": \"Unix Millis Finish Time\", \"type\": \"integer\" }, \"original_estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"estimate_millis\": { \"$ref\": \"#/definitions/EstimateMillis\" }, \"final_event_id\": { \"$ref\": \"#/definitions/Id\" }, \"events\": { \"title\": \"Events\", \"description\": \"A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/EventState\" } }, \"skip_requests\": { \"title\": \"Skip Requests\", \"description\": \"Information about any skip requests that have been received\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/SkipPhaseRequest\" } } }, \"required\": [ \"id\" ] }, \"ResumedBy\": { \"title\": \"ResumedBy\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the resume request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the resume request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"labels\" ] }, \"Interruption\": { \"title\": \"Interruption\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the interruption request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the purpose of the interruption\", \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"resumed_by\": { \"title\": \"Resumed By\", \"description\": \"Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.\", \"allOf\": [ { \"$ref\": \"#/definitions/ResumedBy\" } ] } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Cancellation\": { \"title\": \"Cancellation\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the cancellation request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the cancel request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] }, \"Killed\": { \"title\": \"Killed\", \"type\": \"object\", \"properties\": { \"unix_millis_request_time\": { \"title\": \"Unix Millis Request Time\", \"description\": \"The time that the cancellation request arrived\", \"type\": \"integer\" }, \"labels\": { \"title\": \"Labels\", \"description\": \"Labels to describe the kill request\", \"type\": \"array\", \"items\": { \"type\": \"string\" } } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ] } } } ``` ### /tasks/{task_id}/log ``` { \"title\": \"TaskEventLog\", \"type\": \"object\", \"properties\": { \"task_id\": { \"title\": \"Task Id\", \"type\": \"string\" }, \"log\": { \"title\": \"Log\", \"description\": \"Log entries related to the overall task\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"phases\": { \"title\": \"Phases\", \"description\": \"A dictionary whose keys (property names) are the indices of a phase\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/Phases\" } } }, \"required\": [ \"task_id\" ], \"additionalProperties\": false, \"definitions\": { \"Tier\": { \"title\": \"Tier\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ] }, \"LogEntry\": { \"title\": \"LogEntry\", \"type\": \"object\", \"properties\": { \"seq\": { \"title\": \"Seq\", \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"type\": \"integer\" }, \"tier\": { \"description\": \"The importance level of the log entry\", \"allOf\": [ { \"$ref\": \"#/definitions/Tier\" } ] }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"title\": \"Text\", \"description\": \"The text of the log entry\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ] }, \"Phases\": { \"title\": \"Phases\", \"type\": \"object\", \"properties\": { \"log\": { \"title\": \"Log\", \"description\": \"Log entries related to the overall phase\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"events\": { \"title\": \"Events\", \"description\": \"A dictionary whose keys (property names) are the indices of an event in the phase\", \"type\": \"object\", \"additionalProperties\": { \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } } } }, \"additionalProperties\": false } } } ``` ### /dispensers/{guid}/state ``` { \"title\": \"DispenserState\", \"type\": \"object\", \"properties\": { \"time\": { \"title\": \"Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"guid\": { \"title\": \"Guid\", \"default\": \"\", \"type\": \"string\" }, \"mode\": { \"title\": \"Mode\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"request_guid_queue\": { \"title\": \"Request Guid Queue\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /dispensers/{guid}/health ``` { \"title\": \"DispenserHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /ingestors/{guid}/state ``` { \"title\": \"IngestorState\", \"type\": \"object\", \"properties\": { \"time\": { \"title\": \"Time\", \"default\": { \"sec\": 0, \"nanosec\": 0 }, \"allOf\": [ { \"$ref\": \"#/definitions/Time\" } ] }, \"guid\": { \"title\": \"Guid\", \"default\": \"\", \"type\": \"string\" }, \"mode\": { \"title\": \"Mode\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"request_guid_queue\": { \"title\": \"Request Guid Queue\", \"default\": [], \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"default\": 0, \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"definitions\": { \"Time\": { \"title\": \"Time\", \"type\": \"object\", \"properties\": { \"sec\": { \"title\": \"Sec\", \"default\": 0, \"minimum\": -2147483648, \"maximum\": 2147483647, \"type\": \"integer\" }, \"nanosec\": { \"title\": \"Nanosec\", \"default\": 0, \"minimum\": 0, \"maximum\": 4294967295, \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ] } } } ``` ### /ingestors/{guid}/health ``` { \"title\": \"IngestorHealth\", \"type\": \"object\", \"properties\": { \"health_status\": { \"title\": \"Health Status\", \"maxLength\": 255, \"nullable\": true, \"type\": \"string\" }, \"health_message\": { \"title\": \"Health Message\", \"nullable\": true, \"type\": \"string\" }, \"id_\": { \"title\": \"Id \", \"maxLength\": 255, \"type\": \"string\" } }, \"required\": [ \"health_status\", \"id_\" ], \"additionalProperties\": false } ``` ### /fleets/{name}/state ``` { \"title\": \"FleetState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"robots\": { \"title\": \"Robots\", \"description\": \"A dictionary of the states of the robots that belong to this fleet\", \"type\": \"object\", \"additionalProperties\": { \"$ref\": \"#/definitions/RobotState\" } } }, \"definitions\": { \"Status2\": { \"title\": \"Status2\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"offline\", \"shutdown\", \"idle\", \"charging\", \"working\", \"error\" ] }, \"Location2D\": { \"title\": \"Location2D\", \"type\": \"object\", \"properties\": { \"map\": { \"title\": \"Map\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" } }, \"required\": [ \"map\", \"x\", \"y\", \"yaw\" ] }, \"Issue\": { \"title\": \"Issue\", \"type\": \"object\", \"properties\": { \"category\": { \"title\": \"Category\", \"description\": \"Category of the robot\'s issue\", \"type\": \"string\" }, \"detail\": { \"title\": \"Detail\", \"description\": \"Detailed information about the issue\", \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"array\", \"items\": {} }, { \"type\": \"string\" } ] } } }, \"RobotState\": { \"title\": \"RobotState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"status\": { \"description\": \"A simple token representing the status of the robot\", \"allOf\": [ { \"$ref\": \"#/definitions/Status2\" } ] }, \"task_id\": { \"title\": \"Task Id\", \"description\": \"The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.\", \"type\": \"string\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"location\": { \"$ref\": \"#/definitions/Location2D\" }, \"battery\": { \"title\": \"Battery\", \"description\": \"State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)\", \"minimum\": 0.0, \"maximum\": 1.0, \"type\": \"number\" }, \"issues\": { \"title\": \"Issues\", \"description\": \"A list of issues with the robot that operators need to address\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/Issue\" } } } } } } ``` ### /fleets/{name}/log ``` { \"title\": \"FleetState\", \"type\": \"object\", \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"log\": { \"title\": \"Log\", \"description\": \"Log for the overall fleet\", \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } }, \"robots\": { \"title\": \"Robots\", \"description\": \"Dictionary of logs for the individual robots. The keys (property names) are the robot names.\", \"type\": \"object\", \"additionalProperties\": { \"type\": \"array\", \"items\": { \"$ref\": \"#/definitions/LogEntry\" } } } }, \"definitions\": { \"Tier\": { \"title\": \"Tier\", \"description\": \"An enumeration.\", \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ] }, \"LogEntry\": { \"title\": \"LogEntry\", \"type\": \"object\", \"properties\": { \"seq\": { \"title\": \"Seq\", \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"type\": \"integer\" }, \"tier\": { \"description\": \"The importance level of the log entry\", \"allOf\": [ { \"$ref\": \"#/definitions/Tier\" } ] }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"title\": \"Text\", \"description\": \"The text of the log entry\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ] } } } ``` + * # NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint. ## About This exposes a minimal pubsub system built on top of socket.io. It works similar to a normal socket.io endpoint, except that are 2 special rooms which control subscriptions. ## Rooms ### subscribe Clients must send a message to this room to start receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### unsubscribe Clients can send a message to this room to stop receiving messages on other rooms. The message must be of the form: ``` { \"room\": \"\" } ``` ### /alerts ``` { \"additionalProperties\": false, \"description\": \"General alert that can be triggered by events.\", \"properties\": { \"id\": { \"maxLength\": 255, \"title\": \"Id\", \"type\": \"string\" }, \"original_id\": { \"maxLength\": 255, \"title\": \"Original Id\", \"type\": \"string\" }, \"category\": { \"description\": \"Default: default
Task: task
Fleet: fleet
Robot: robot\", \"maxLength\": 7, \"title\": \"Category\", \"type\": \"string\" }, \"unix_millis_created_time\": { \"maximum\": 9223372036854775807, \"minimum\": -9223372036854775808, \"title\": \"Unix Millis Created Time\", \"type\": \"integer\" }, \"acknowledged_by\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Acknowledged By\" }, \"unix_millis_acknowledged_time\": { \"anyOf\": [ { \"maximum\": 9223372036854775807, \"minimum\": -9223372036854775808, \"type\": \"integer\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Unix Millis Acknowledged Time\" } }, \"required\": [ \"id\", \"original_id\", \"category\", \"unix_millis_created_time\", \"acknowledged_by\", \"unix_millis_acknowledged_time\" ], \"title\": \"Alert\", \"type\": \"object\" } ``` ### /beacons ``` { \"additionalProperties\": false, \"properties\": { \"id\": { \"maxLength\": 255, \"title\": \"Id\", \"type\": \"string\" }, \"online\": { \"title\": \"Online\", \"type\": \"boolean\" }, \"category\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Category\" }, \"activated\": { \"title\": \"Activated\", \"type\": \"boolean\" }, \"level\": { \"anyOf\": [ { \"maxLength\": 255, \"type\": \"string\" }, { \"type\": \"null\" } ], \"nullable\": true, \"title\": \"Level\" } }, \"required\": [ \"id\", \"online\", \"category\", \"activated\", \"level\" ], \"title\": \"BeaconState\", \"type\": \"object\" } ``` ### /building_map ``` { \"$defs\": { \"AffineImage\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"x_offset\": { \"title\": \"X Offset\", \"type\": \"number\" }, \"y_offset\": { \"title\": \"Y Offset\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" }, \"scale\": { \"title\": \"Scale\", \"type\": \"number\" }, \"encoding\": { \"title\": \"Encoding\", \"type\": \"string\" }, \"data\": { \"title\": \"Data\", \"type\": \"string\" } }, \"required\": [ \"name\", \"x_offset\", \"y_offset\", \"yaw\", \"scale\", \"encoding\", \"data\" ], \"title\": \"AffineImage\", \"type\": \"object\" }, \"Door\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"v1_x\": { \"title\": \"V1 X\", \"type\": \"number\" }, \"v1_y\": { \"title\": \"V1 Y\", \"type\": \"number\" }, \"v2_x\": { \"title\": \"V2 X\", \"type\": \"number\" }, \"v2_y\": { \"title\": \"V2 Y\", \"type\": \"number\" }, \"door_type\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Door Type\", \"type\": \"integer\" }, \"motion_range\": { \"title\": \"Motion Range\", \"type\": \"number\" }, \"motion_direction\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Motion Direction\", \"type\": \"integer\" } }, \"required\": [ \"name\", \"v1_x\", \"v1_y\", \"v2_x\", \"v2_y\", \"door_type\", \"motion_range\", \"motion_direction\" ], \"title\": \"Door\", \"type\": \"object\" }, \"Graph\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"vertices\": { \"items\": { \"$ref\": \"#/$defs/GraphNode\" }, \"title\": \"Vertices\", \"type\": \"array\" }, \"edges\": { \"items\": { \"$ref\": \"#/$defs/GraphEdge\" }, \"title\": \"Edges\", \"type\": \"array\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" } }, \"required\": [ \"name\", \"vertices\", \"edges\", \"params\" ], \"title\": \"Graph\", \"type\": \"object\" }, \"GraphEdge\": { \"properties\": { \"v1_idx\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"V1 Idx\", \"type\": \"integer\" }, \"v2_idx\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"V2 Idx\", \"type\": \"integer\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" }, \"edge_type\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Edge Type\", \"type\": \"integer\" } }, \"required\": [ \"v1_idx\", \"v2_idx\", \"params\", \"edge_type\" ], \"title\": \"GraphEdge\", \"type\": \"object\" }, \"GraphNode\": { \"properties\": { \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"params\": { \"items\": { \"$ref\": \"#/$defs/Param\" }, \"title\": \"Params\", \"type\": \"array\" } }, \"required\": [ \"x\", \"y\", \"name\", \"params\" ], \"title\": \"GraphNode\", \"type\": \"object\" }, \"Level\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"elevation\": { \"title\": \"Elevation\", \"type\": \"number\" }, \"images\": { \"items\": { \"$ref\": \"#/$defs/AffineImage\" }, \"title\": \"Images\", \"type\": \"array\" }, \"places\": { \"items\": { \"$ref\": \"#/$defs/Place\" }, \"title\": \"Places\", \"type\": \"array\" }, \"doors\": { \"items\": { \"$ref\": \"#/$defs/Door\" }, \"title\": \"Doors\", \"type\": \"array\" }, \"nav_graphs\": { \"items\": { \"$ref\": \"#/$defs/Graph\" }, \"title\": \"Nav Graphs\", \"type\": \"array\" }, \"wall_graph\": { \"$ref\": \"#/$defs/Graph\" } }, \"required\": [ \"name\", \"elevation\", \"images\", \"places\", \"doors\", \"nav_graphs\", \"wall_graph\" ], \"title\": \"Level\", \"type\": \"object\" }, \"Lift\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"levels\": { \"items\": { \"type\": \"string\" }, \"title\": \"Levels\", \"type\": \"array\" }, \"doors\": { \"items\": { \"$ref\": \"#/$defs/Door\" }, \"title\": \"Doors\", \"type\": \"array\" }, \"wall_graph\": { \"$ref\": \"#/$defs/Graph\" }, \"ref_x\": { \"title\": \"Ref X\", \"type\": \"number\" }, \"ref_y\": { \"title\": \"Ref Y\", \"type\": \"number\" }, \"ref_yaw\": { \"title\": \"Ref Yaw\", \"type\": \"number\" }, \"width\": { \"title\": \"Width\", \"type\": \"number\" }, \"depth\": { \"title\": \"Depth\", \"type\": \"number\" } }, \"required\": [ \"name\", \"levels\", \"doors\", \"wall_graph\", \"ref_x\", \"ref_y\", \"ref_yaw\", \"width\", \"depth\" ], \"title\": \"Lift\", \"type\": \"object\" }, \"Param\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"type\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Type\", \"type\": \"integer\" }, \"value_int\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Value Int\", \"type\": \"integer\" }, \"value_float\": { \"title\": \"Value Float\", \"type\": \"number\" }, \"value_string\": { \"title\": \"Value String\", \"type\": \"string\" }, \"value_bool\": { \"title\": \"Value Bool\", \"type\": \"boolean\" } }, \"required\": [ \"name\", \"type\", \"value_int\", \"value_float\", \"value_string\", \"value_bool\" ], \"title\": \"Param\", \"type\": \"object\" }, \"Place\": { \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" }, \"position_tolerance\": { \"title\": \"Position Tolerance\", \"type\": \"number\" }, \"yaw_tolerance\": { \"title\": \"Yaw Tolerance\", \"type\": \"number\" } }, \"required\": [ \"name\", \"x\", \"y\", \"yaw\", \"position_tolerance\", \"yaw_tolerance\" ], \"title\": \"Place\", \"type\": \"object\" } }, \"properties\": { \"name\": { \"title\": \"Name\", \"type\": \"string\" }, \"levels\": { \"items\": { \"$ref\": \"#/$defs/Level\" }, \"title\": \"Levels\", \"type\": \"array\" }, \"lifts\": { \"items\": { \"$ref\": \"#/$defs/Lift\" }, \"title\": \"Lifts\", \"type\": \"array\" } }, \"required\": [ \"name\", \"levels\", \"lifts\" ], \"title\": \"BuildingMap\", \"type\": \"object\" } ``` ### /doors/{door_name}/state ``` { \"$defs\": { \"DoorMode\": { \"properties\": { \"value\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Value\", \"type\": \"integer\" } }, \"required\": [ \"value\" ], \"title\": \"DoorMode\", \"type\": \"object\" }, \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"door_time\": { \"$ref\": \"#/$defs/Time\" }, \"door_name\": { \"title\": \"Door Name\", \"type\": \"string\" }, \"current_mode\": { \"$ref\": \"#/$defs/DoorMode\" } }, \"required\": [ \"door_time\", \"door_name\", \"current_mode\" ], \"title\": \"DoorState\", \"type\": \"object\" } ``` ### /doors/{door_name}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"DoorHealth\", \"type\": \"object\" } ``` ### /lifts/{lift_name}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"lift_time\": { \"$ref\": \"#/$defs/Time\" }, \"lift_name\": { \"title\": \"Lift Name\", \"type\": \"string\" }, \"available_floors\": { \"items\": { \"type\": \"string\" }, \"title\": \"Available Floors\", \"type\": \"array\" }, \"current_floor\": { \"title\": \"Current Floor\", \"type\": \"string\" }, \"destination_floor\": { \"title\": \"Destination Floor\", \"type\": \"string\" }, \"door_state\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Door State\", \"type\": \"integer\" }, \"motion_state\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Motion State\", \"type\": \"integer\" }, \"available_modes\": { \"items\": { \"type\": \"integer\" }, \"title\": \"Available Modes\", \"type\": \"array\" }, \"current_mode\": { \"maximum\": 255, \"minimum\": 0, \"title\": \"Current Mode\", \"type\": \"integer\" }, \"session_id\": { \"title\": \"Session Id\", \"type\": \"string\" } }, \"required\": [ \"lift_time\", \"lift_name\", \"available_floors\", \"current_floor\", \"destination_floor\", \"door_state\", \"motion_state\", \"available_modes\", \"current_mode\", \"session_id\" ], \"title\": \"LiftState\", \"type\": \"object\" } ``` ### /lifts/{lift_name}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"LiftHealth\", \"type\": \"object\" } ``` ### /tasks/{task_id}/state ``` { \"$defs\": { \"AssignedTo\": { \"properties\": { \"group\": { \"title\": \"Group\", \"type\": \"string\" }, \"name\": { \"title\": \"Name\", \"type\": \"string\" } }, \"required\": [ \"group\", \"name\" ], \"title\": \"AssignedTo\", \"type\": \"object\" }, \"Assignment\": { \"properties\": { \"fleet_name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Fleet Name\" }, \"expected_robot_name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Expected Robot Name\" } }, \"title\": \"Assignment\", \"type\": \"object\" }, \"Booking\": { \"properties\": { \"id\": { \"description\": \"The unique identifier for this task\", \"title\": \"Id\", \"type\": \"string\" }, \"unix_millis_earliest_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Earliest Start Time\" }, \"unix_millis_request_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Request Time\" }, \"priority\": { \"anyOf\": [ { \"type\": \"object\" }, { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Priority information about this task\", \"title\": \"Priority\" }, \"labels\": { \"anyOf\": [ { \"items\": { \"type\": \"string\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about how and why this task was booked\", \"title\": \"Labels\" }, \"requester\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"(Optional) An identifier for the entity that requested this task\", \"title\": \"Requester\" } }, \"required\": [ \"id\" ], \"title\": \"Booking\", \"type\": \"object\" }, \"Cancellation\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the cancellation request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the cancel request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Cancellation\", \"type\": \"object\" }, \"Category\": { \"title\": \"Category\", \"type\": \"string\" }, \"Detail\": { \"anyOf\": [ { \"type\": \"object\" }, { \"items\": {}, \"type\": \"array\" }, { \"type\": \"string\" } ], \"title\": \"Detail\" }, \"Dispatch\": { \"properties\": { \"status\": { \"$ref\": \"#/$defs/Status2\" }, \"assignment\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Assignment\" }, { \"type\": \"null\" } ], \"default\": null }, \"errors\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Error\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Errors\" } }, \"required\": [ \"status\" ], \"title\": \"Dispatch\", \"type\": \"object\" }, \"Error\": { \"properties\": { \"code\": { \"anyOf\": [ { \"minimum\": 0, \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A standard code for the kind of error that has occurred\", \"title\": \"Code\" }, \"category\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The category of the error\", \"title\": \"Category\" }, \"detail\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Details about the error\", \"title\": \"Detail\" } }, \"title\": \"Error\", \"type\": \"object\" }, \"EstimateMillis\": { \"minimum\": 0, \"title\": \"EstimateMillis\", \"type\": \"integer\" }, \"EventState\": { \"properties\": { \"id\": { \"$ref\": \"#/$defs/Id\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null }, \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The brief name of the event\", \"title\": \"Name\" }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Detailed information about the event\" }, \"deps\": { \"anyOf\": [ { \"items\": { \"minimum\": 0, \"type\": \"integer\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"This event may depend on other events. This array contains the IDs of those other event dependencies.\", \"title\": \"Deps\" } }, \"required\": [ \"id\" ], \"title\": \"EventState\", \"type\": \"object\" }, \"Id\": { \"minimum\": 0, \"title\": \"Id\", \"type\": \"integer\" }, \"Interruption\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the interruption request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the purpose of the interruption\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" }, \"resumed_by\": { \"anyOf\": [ { \"$ref\": \"#/$defs/ResumedBy\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Interruption\", \"type\": \"object\" }, \"Killed\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the cancellation request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the kill request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Killed\", \"type\": \"object\" }, \"Phase\": { \"properties\": { \"id\": { \"$ref\": \"#/$defs/Id\" }, \"category\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Category\" }, { \"type\": \"null\" } ], \"default\": null }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null }, \"unix_millis_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Start Time\" }, \"unix_millis_finish_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Finish Time\" }, \"original_estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"final_event_id\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Id\" }, { \"type\": \"null\" } ], \"default\": null }, \"events\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/EventState\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.\", \"title\": \"Events\" }, \"skip_requests\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/SkipPhaseRequest\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about any skip requests that have been received\", \"title\": \"Skip Requests\" } }, \"required\": [ \"id\" ], \"title\": \"Phase\", \"type\": \"object\" }, \"ResumedBy\": { \"properties\": { \"unix_millis_request_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The time that the resume request arrived\", \"title\": \"Unix Millis Request Time\" }, \"labels\": { \"description\": \"Labels to describe the resume request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"labels\" ], \"title\": \"ResumedBy\", \"type\": \"object\" }, \"SkipPhaseRequest\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the skip request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the purpose of the skip request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" }, \"undo\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Undo\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Information about an undo skip request that applied to this request\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"SkipPhaseRequest\", \"type\": \"object\" }, \"Status\": { \"enum\": [ \"uninitialized\", \"blocked\", \"error\", \"failed\", \"queued\", \"standby\", \"underway\", \"delayed\", \"skipped\", \"canceled\", \"killed\", \"completed\" ], \"title\": \"Status\", \"type\": \"string\" }, \"Status2\": { \"enum\": [ \"queued\", \"selected\", \"dispatched\", \"failed_to_assign\", \"canceled_in_flight\" ], \"title\": \"Status2\", \"type\": \"string\" }, \"Undo\": { \"properties\": { \"unix_millis_request_time\": { \"description\": \"The time that the undo skip request arrived\", \"title\": \"Unix Millis Request Time\", \"type\": \"integer\" }, \"labels\": { \"description\": \"Labels to describe the undo skip request\", \"items\": { \"type\": \"string\" }, \"title\": \"Labels\", \"type\": \"array\" } }, \"required\": [ \"unix_millis_request_time\", \"labels\" ], \"title\": \"Undo\", \"type\": \"object\" } }, \"properties\": { \"booking\": { \"$ref\": \"#/$defs/Booking\" }, \"category\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Category\" }, { \"type\": \"null\" } ], \"default\": null }, \"detail\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Detail\" }, { \"type\": \"null\" } ], \"default\": null }, \"unix_millis_start_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Start Time\" }, \"unix_millis_finish_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Finish Time\" }, \"original_estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"estimate_millis\": { \"anyOf\": [ { \"$ref\": \"#/$defs/EstimateMillis\" }, { \"type\": \"null\" } ], \"default\": null }, \"assigned_to\": { \"anyOf\": [ { \"$ref\": \"#/$defs/AssignedTo\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Which agent (robot) is the task assigned to\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null }, \"dispatch\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Dispatch\" }, { \"type\": \"null\" } ], \"default\": null }, \"phases\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Phase\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.\", \"title\": \"Phases\" }, \"completed\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Id\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"An array of the IDs of completed phases of this task\", \"title\": \"Completed\" }, \"active\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Id\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The ID of the active phase for this task\" }, \"pending\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Id\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"An array of the pending phases of this task\", \"title\": \"Pending\" }, \"interruptions\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Interruption\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.\", \"title\": \"Interruptions\" }, \"cancellation\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Cancellation\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"If the task was cancelled, this will describe information about the request.\" }, \"killed\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Killed\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"If the task was killed, this will describe information about the request.\" } }, \"required\": [ \"booking\" ], \"title\": \"TaskState\", \"type\": \"object\" } ``` ### /tasks/{task_id}/log ``` { \"$defs\": { \"LogEntry\": { \"properties\": { \"seq\": { \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"title\": \"Seq\", \"type\": \"integer\" }, \"tier\": { \"allOf\": [ { \"$ref\": \"#/$defs/Tier\" } ], \"description\": \"The importance level of the log entry\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"description\": \"The text of the log entry\", \"title\": \"Text\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ], \"title\": \"LogEntry\", \"type\": \"object\" }, \"Phases\": { \"additionalProperties\": false, \"properties\": { \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log entries related to the overall phase\", \"title\": \"Log\" }, \"events\": { \"anyOf\": [ { \"additionalProperties\": { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary whose keys (property names) are the indices of an event in the phase\", \"title\": \"Events\" } }, \"title\": \"Phases\", \"type\": \"object\" }, \"Tier\": { \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ], \"title\": \"Tier\", \"type\": \"string\" } }, \"additionalProperties\": false, \"properties\": { \"task_id\": { \"title\": \"Task Id\", \"type\": \"string\" }, \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log entries related to the overall task\", \"title\": \"Log\" }, \"phases\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/Phases\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary whose keys (property names) are the indices of a phase\", \"title\": \"Phases\" } }, \"required\": [ \"task_id\" ], \"title\": \"TaskEventLog\", \"type\": \"object\" } ``` ### /dispensers/{guid}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"time\": { \"$ref\": \"#/$defs/Time\" }, \"guid\": { \"title\": \"Guid\", \"type\": \"string\" }, \"mode\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Mode\", \"type\": \"integer\" }, \"request_guid_queue\": { \"items\": { \"type\": \"string\" }, \"title\": \"Request Guid Queue\", \"type\": \"array\" }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"title\": \"DispenserState\", \"type\": \"object\" } ``` ### /dispensers/{guid}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"DispenserHealth\", \"type\": \"object\" } ``` ### /ingestors/{guid}/state ``` { \"$defs\": { \"Time\": { \"properties\": { \"sec\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Sec\", \"type\": \"integer\" }, \"nanosec\": { \"maximum\": 4294967295, \"minimum\": 0, \"title\": \"Nanosec\", \"type\": \"integer\" } }, \"required\": [ \"sec\", \"nanosec\" ], \"title\": \"Time\", \"type\": \"object\" } }, \"properties\": { \"time\": { \"$ref\": \"#/$defs/Time\" }, \"guid\": { \"title\": \"Guid\", \"type\": \"string\" }, \"mode\": { \"maximum\": 2147483647, \"minimum\": -2147483648, \"title\": \"Mode\", \"type\": \"integer\" }, \"request_guid_queue\": { \"items\": { \"type\": \"string\" }, \"title\": \"Request Guid Queue\", \"type\": \"array\" }, \"seconds_remaining\": { \"title\": \"Seconds Remaining\", \"type\": \"number\" } }, \"required\": [ \"time\", \"guid\", \"mode\", \"request_guid_queue\", \"seconds_remaining\" ], \"title\": \"IngestorState\", \"type\": \"object\" } ``` ### /ingestors/{guid}/health ``` { \"$defs\": { \"HealthStatus\": { \"enum\": [ \"Healthy\", \"Unhealthy\", \"Dead\" ], \"title\": \"HealthStatus\", \"type\": \"string\" } }, \"properties\": { \"id_\": { \"title\": \"Id \", \"type\": \"string\" }, \"health_status\": { \"$ref\": \"#/$defs/HealthStatus\" }, \"health_message\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"title\": \"Health Message\" } }, \"required\": [ \"id_\", \"health_status\", \"health_message\" ], \"title\": \"IngestorHealth\", \"type\": \"object\" } ``` ### /fleets/{name}/state ``` { \"$defs\": { \"Issue\": { \"properties\": { \"category\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Category of the robot\'s issue\", \"title\": \"Category\" }, \"detail\": { \"anyOf\": [ { \"type\": \"object\" }, { \"items\": {}, \"type\": \"array\" }, { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Detailed information about the issue\", \"title\": \"Detail\" } }, \"title\": \"Issue\", \"type\": \"object\" }, \"Location2D\": { \"properties\": { \"map\": { \"title\": \"Map\", \"type\": \"string\" }, \"x\": { \"title\": \"X\", \"type\": \"number\" }, \"y\": { \"title\": \"Y\", \"type\": \"number\" }, \"yaw\": { \"title\": \"Yaw\", \"type\": \"number\" } }, \"required\": [ \"map\", \"x\", \"y\", \"yaw\" ], \"title\": \"Location2D\", \"type\": \"object\" }, \"RobotState\": { \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"status\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Status\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A simple token representing the status of the robot\" }, \"task_id\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.\", \"title\": \"Task Id\" }, \"unix_millis_time\": { \"anyOf\": [ { \"type\": \"integer\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Unix Millis Time\" }, \"location\": { \"anyOf\": [ { \"$ref\": \"#/$defs/Location2D\" }, { \"type\": \"null\" } ], \"default\": null }, \"battery\": { \"anyOf\": [ { \"maximum\": 1.0, \"minimum\": 0.0, \"type\": \"number\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)\", \"title\": \"Battery\" }, \"issues\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/Issue\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A list of issues with the robot that operators need to address\", \"title\": \"Issues\" } }, \"title\": \"RobotState\", \"type\": \"object\" }, \"Status\": { \"enum\": [ \"uninitialized\", \"offline\", \"shutdown\", \"idle\", \"charging\", \"working\", \"error\" ], \"title\": \"Status\", \"type\": \"string\" } }, \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"robots\": { \"anyOf\": [ { \"additionalProperties\": { \"$ref\": \"#/$defs/RobotState\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"A dictionary of the states of the robots that belong to this fleet\", \"title\": \"Robots\" } }, \"title\": \"FleetState\", \"type\": \"object\" } ``` ### /fleets/{name}/log ``` { \"$defs\": { \"LogEntry\": { \"properties\": { \"seq\": { \"description\": \"Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.\", \"exclusiveMaximum\": 4294967296, \"minimum\": 0, \"title\": \"Seq\", \"type\": \"integer\" }, \"tier\": { \"allOf\": [ { \"$ref\": \"#/$defs/Tier\" } ], \"description\": \"The importance level of the log entry\" }, \"unix_millis_time\": { \"title\": \"Unix Millis Time\", \"type\": \"integer\" }, \"text\": { \"description\": \"The text of the log entry\", \"title\": \"Text\", \"type\": \"string\" } }, \"required\": [ \"seq\", \"tier\", \"unix_millis_time\", \"text\" ], \"title\": \"LogEntry\", \"type\": \"object\" }, \"Tier\": { \"enum\": [ \"uninitialized\", \"info\", \"warning\", \"error\" ], \"title\": \"Tier\", \"type\": \"string\" } }, \"properties\": { \"name\": { \"anyOf\": [ { \"type\": \"string\" }, { \"type\": \"null\" } ], \"default\": null, \"title\": \"Name\" }, \"log\": { \"anyOf\": [ { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Log for the overall fleet\", \"title\": \"Log\" }, \"robots\": { \"anyOf\": [ { \"additionalProperties\": { \"items\": { \"$ref\": \"#/$defs/LogEntry\" }, \"type\": \"array\" }, \"type\": \"object\" }, { \"type\": \"null\" } ], \"default\": null, \"description\": \"Dictionary of logs for the individual robots. The keys (property names) are the robot names.\", \"title\": \"Robots\" } }, \"title\": \"FleetLog\", \"type\": \"object\" } ``` * @summary Socket.io endpoint * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApi */ - public lambdaSocketIoGet(options?: AxiosRequestConfig) { + public lambdaSocketIoGet(options?: RawAxiosRequestConfig) { return DefaultApiFp(this.configuration) .lambdaSocketIoGet(options) .then((request) => request(this.axios, this.basePath)); @@ -5714,12 +6092,14 @@ export const DispensersApiAxiosParamCreator = function (configuration?: Configur * Available in socket.io * @summary Get Dispenser Health * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getDispenserHealthDispensersGuidHealthGet: async ( guid: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'guid' is not null or undefined assertParamExists('getDispenserHealthDispensersGuidHealthGet', 'guid', guid); @@ -5738,6 +6118,10 @@ export const DispensersApiAxiosParamCreator = function (configuration?: Configur const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -5755,12 +6139,14 @@ export const DispensersApiAxiosParamCreator = function (configuration?: Configur * Available in socket.io * @summary Get Dispenser State * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getDispenserStateDispensersGuidStateGet: async ( guid: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'guid' is not null or undefined assertParamExists('getDispenserStateDispensersGuidStateGet', 'guid', guid); @@ -5779,6 +6165,10 @@ export const DispensersApiAxiosParamCreator = function (configuration?: Configur const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -5795,10 +6185,14 @@ export const DispensersApiAxiosParamCreator = function (configuration?: Configur /** * * @summary Get Dispensers + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDispensersDispensersGet: async (options: AxiosRequestConfig = {}): Promise => { + getDispensersDispensersGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/dispensers`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -5811,6 +6205,10 @@ export const DispensersApiAxiosParamCreator = function (configuration?: Configur const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -5838,43 +6236,93 @@ export const DispensersApiFp = function (configuration?: Configuration) { * Available in socket.io * @summary Get Dispenser Health * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getDispenserHealthDispensersGuidHealthGet( guid: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = - await localVarAxiosParamCreator.getDispenserHealthDispensersGuidHealthGet(guid, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + await localVarAxiosParamCreator.getDispenserHealthDispensersGuidHealthGet( + guid, + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DispensersApi.getDispenserHealthDispensersGuidHealthGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Available in socket.io * @summary Get Dispenser State * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getDispenserStateDispensersGuidStateGet( guid: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = - await localVarAxiosParamCreator.getDispenserStateDispensersGuidStateGet(guid, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + await localVarAxiosParamCreator.getDispenserStateDispensersGuidStateGet( + guid, + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DispensersApi.getDispenserStateDispensersGuidStateGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Dispensers + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getDispensersDispensersGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getDispensersDispensersGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.getDispensersDispensersGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DispensersApi.getDispensersDispensersGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -5894,41 +6342,49 @@ export const DispensersApiFactory = function ( * Available in socket.io * @summary Get Dispenser Health * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getDispenserHealthDispensersGuidHealthGet( guid: string, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .getDispenserHealthDispensersGuidHealthGet(guid, options) + .getDispenserHealthDispensersGuidHealthGet(guid, authorization, options) .then((request) => request(axios, basePath)); }, /** * Available in socket.io * @summary Get Dispenser State * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getDispenserStateDispensersGuidStateGet( guid: string, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .getDispenserStateDispensersGuidStateGet(guid, options) + .getDispenserStateDispensersGuidStateGet(guid, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Dispensers + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDispensersDispensersGet(options?: any): AxiosPromise> { + getDispensersDispensersGet( + authorization?: string | null, + options?: any, + ): AxiosPromise> { return localVarFp - .getDispensersDispensersGet(options) + .getDispensersDispensersGet(authorization, options) .then((request) => request(axios, basePath)); }, }; @@ -5945,13 +6401,18 @@ export class DispensersApi extends BaseAPI { * Available in socket.io * @summary Get Dispenser Health * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DispensersApi */ - public getDispenserHealthDispensersGuidHealthGet(guid: string, options?: AxiosRequestConfig) { + public getDispenserHealthDispensersGuidHealthGet( + guid: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return DispensersApiFp(this.configuration) - .getDispenserHealthDispensersGuidHealthGet(guid, options) + .getDispenserHealthDispensersGuidHealthGet(guid, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -5959,26 +6420,35 @@ export class DispensersApi extends BaseAPI { * Available in socket.io * @summary Get Dispenser State * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DispensersApi */ - public getDispenserStateDispensersGuidStateGet(guid: string, options?: AxiosRequestConfig) { + public getDispenserStateDispensersGuidStateGet( + guid: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return DispensersApiFp(this.configuration) - .getDispenserStateDispensersGuidStateGet(guid, options) + .getDispenserStateDispensersGuidStateGet(guid, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Get Dispensers + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DispensersApi */ - public getDispensersDispensersGet(options?: AxiosRequestConfig) { + public getDispensersDispensersGet( + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return DispensersApiFp(this.configuration) - .getDispensersDispensersGet(options) + .getDispensersDispensersGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } } @@ -5993,12 +6463,14 @@ export const DoorsApiAxiosParamCreator = function (configuration?: Configuration * Available in socket.io * @summary Get Door Health * @param {string} doorName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getDoorHealthDoorsDoorNameHealthGet: async ( doorName: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'doorName' is not null or undefined assertParamExists('getDoorHealthDoorsDoorNameHealthGet', 'doorName', doorName); @@ -6017,6 +6489,10 @@ export const DoorsApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6034,12 +6510,14 @@ export const DoorsApiAxiosParamCreator = function (configuration?: Configuration * Available in socket.io * @summary Get Door State * @param {string} doorName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getDoorStateDoorsDoorNameStateGet: async ( doorName: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'doorName' is not null or undefined assertParamExists('getDoorStateDoorsDoorNameStateGet', 'doorName', doorName); @@ -6058,6 +6536,10 @@ export const DoorsApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6074,10 +6556,14 @@ export const DoorsApiAxiosParamCreator = function (configuration?: Configuration /** * * @summary Get Doors + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDoorsDoorsGet: async (options: AxiosRequestConfig = {}): Promise => { + getDoorsDoorsGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/doors`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -6090,6 +6576,10 @@ export const DoorsApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6108,13 +6598,15 @@ export const DoorsApiAxiosParamCreator = function (configuration?: Configuration * @summary Post Door Request * @param {string} doorName * @param {DoorRequest} doorRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postDoorRequestDoorsDoorNameRequestPost: async ( doorName: string, doorRequest: DoorRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'doorName' is not null or undefined assertParamExists('postDoorRequestDoorsDoorNameRequestPost', 'doorName', doorName); @@ -6135,6 +6627,10 @@ export const DoorsApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -6169,68 +6665,124 @@ export const DoorsApiFp = function (configuration?: Configuration) { * Available in socket.io * @summary Get Door Health * @param {string} doorName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getDoorHealthDoorsDoorNameHealthGet( doorName: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getDoorHealthDoorsDoorNameHealthGet( doorName, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DoorsApi.getDoorHealthDoorsDoorNameHealthGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Available in socket.io * @summary Get Door State * @param {string} doorName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getDoorStateDoorsDoorNameStateGet( doorName: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getDoorStateDoorsDoorNameStateGet( doorName, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DoorsApi.getDoorStateDoorsDoorNameStateGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Doors + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getDoorsDoorsGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getDoorsDoorsGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.getDoorsDoorsGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DoorsApi.getDoorsDoorsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Door Request * @param {string} doorName * @param {DoorRequest} doorRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postDoorRequestDoorsDoorNameRequestPost( doorName: string, doorRequest: DoorRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postDoorRequestDoorsDoorNameRequestPost( doorName, doorRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DoorsApi.postDoorRequestDoorsDoorNameRequestPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -6250,50 +6802,65 @@ export const DoorsApiFactory = function ( * Available in socket.io * @summary Get Door Health * @param {string} doorName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDoorHealthDoorsDoorNameHealthGet(doorName: string, options?: any): AxiosPromise { + getDoorHealthDoorsDoorNameHealthGet( + doorName: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .getDoorHealthDoorsDoorNameHealthGet(doorName, options) + .getDoorHealthDoorsDoorNameHealthGet(doorName, authorization, options) .then((request) => request(axios, basePath)); }, /** * Available in socket.io * @summary Get Door State * @param {string} doorName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDoorStateDoorsDoorNameStateGet(doorName: string, options?: any): AxiosPromise { + getDoorStateDoorsDoorNameStateGet( + doorName: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .getDoorStateDoorsDoorNameStateGet(doorName, options) + .getDoorStateDoorsDoorNameStateGet(doorName, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Doors + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDoorsDoorsGet(options?: any): AxiosPromise> { - return localVarFp.getDoorsDoorsGet(options).then((request) => request(axios, basePath)); + getDoorsDoorsGet(authorization?: string | null, options?: any): AxiosPromise> { + return localVarFp + .getDoorsDoorsGet(authorization, options) + .then((request) => request(axios, basePath)); }, /** * * @summary Post Door Request * @param {string} doorName * @param {DoorRequest} doorRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postDoorRequestDoorsDoorNameRequestPost( doorName: string, doorRequest: DoorRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postDoorRequestDoorsDoorNameRequestPost(doorName, doorRequest, options) + .postDoorRequestDoorsDoorNameRequestPost(doorName, doorRequest, authorization, options) .then((request) => request(axios, basePath)); }, }; @@ -6310,13 +6877,18 @@ export class DoorsApi extends BaseAPI { * Available in socket.io * @summary Get Door Health * @param {string} doorName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DoorsApi */ - public getDoorHealthDoorsDoorNameHealthGet(doorName: string, options?: AxiosRequestConfig) { + public getDoorHealthDoorsDoorNameHealthGet( + doorName: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return DoorsApiFp(this.configuration) - .getDoorHealthDoorsDoorNameHealthGet(doorName, options) + .getDoorHealthDoorsDoorNameHealthGet(doorName, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -6324,26 +6896,32 @@ export class DoorsApi extends BaseAPI { * Available in socket.io * @summary Get Door State * @param {string} doorName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DoorsApi */ - public getDoorStateDoorsDoorNameStateGet(doorName: string, options?: AxiosRequestConfig) { + public getDoorStateDoorsDoorNameStateGet( + doorName: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return DoorsApiFp(this.configuration) - .getDoorStateDoorsDoorNameStateGet(doorName, options) + .getDoorStateDoorsDoorNameStateGet(doorName, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Get Doors + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DoorsApi */ - public getDoorsDoorsGet(options?: AxiosRequestConfig) { + public getDoorsDoorsGet(authorization?: string | null, options?: RawAxiosRequestConfig) { return DoorsApiFp(this.configuration) - .getDoorsDoorsGet(options) + .getDoorsDoorsGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -6352,6 +6930,7 @@ export class DoorsApi extends BaseAPI { * @summary Post Door Request * @param {string} doorName * @param {DoorRequest} doorRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DoorsApi @@ -6359,10 +6938,11 @@ export class DoorsApi extends BaseAPI { public postDoorRequestDoorsDoorNameRequestPost( doorName: string, doorRequest: DoorRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return DoorsApiFp(this.configuration) - .postDoorRequestDoorsDoorNameRequestPost(doorName, doorRequest, options) + .postDoorRequestDoorsDoorNameRequestPost(doorName, doorRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } } @@ -6378,13 +6958,15 @@ export const FleetsApiAxiosParamCreator = function (configuration?: Configuratio * @summary Get Fleet Log * @param {string} name * @param {string} [between] The period of time to fetch, in unix millis. This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getFleetLogFleetsNameLogGet: async ( name: string, between?: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'name' is not null or undefined assertParamExists('getFleetLogFleetsNameLogGet', 'name', name); @@ -6407,6 +6989,10 @@ export const FleetsApiAxiosParamCreator = function (configuration?: Configuratio localVarQueryParameter['between'] = between; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6424,12 +7010,14 @@ export const FleetsApiAxiosParamCreator = function (configuration?: Configuratio * Available in socket.io * @summary Get Fleet State * @param {string} name + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getFleetStateFleetsNameStateGet: async ( name: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'name' is not null or undefined assertParamExists('getFleetStateFleetsNameStateGet', 'name', name); @@ -6448,6 +7036,10 @@ export const FleetsApiAxiosParamCreator = function (configuration?: Configuratio const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6464,10 +7056,14 @@ export const FleetsApiAxiosParamCreator = function (configuration?: Configuratio /** * * @summary Get Fleets + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getFleetsFleetsGet: async (options: AxiosRequestConfig = {}): Promise => { + getFleetsFleetsGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/fleets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -6480,6 +7076,10 @@ export const FleetsApiAxiosParamCreator = function (configuration?: Configuratio const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6508,64 +7108,90 @@ export const FleetsApiFp = function (configuration?: Configuration) { * @summary Get Fleet Log * @param {string} name * @param {string} [between] The period of time to fetch, in unix millis. This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getFleetLogFleetsNameLogGet( name: string, between?: string, - options?: AxiosRequestConfig, - ): Promise< - ( - axios?: AxiosInstance, - basePath?: string, - ) => AxiosPromise - > { + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getFleetLogFleetsNameLogGet( name, between, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['FleetsApi.getFleetLogFleetsNameLogGet']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Available in socket.io * @summary Get Fleet State * @param {string} name + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getFleetStateFleetsNameStateGet( name: string, - options?: AxiosRequestConfig, - ): Promise< - ( - axios?: AxiosInstance, - basePath?: string, - ) => AxiosPromise - > { + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getFleetStateFleetsNameStateGet( name, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['FleetsApi.getFleetStateFleetsNameStateGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Fleets + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getFleetsFleetsGet( - options?: AxiosRequestConfig, - ): Promise< - ( - axios?: AxiosInstance, - basePath?: string, - ) => AxiosPromise> - > { - const localVarAxiosArgs = await localVarAxiosParamCreator.getFleetsFleetsGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFleetsFleetsGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['FleetsApi.getFleetsFleetsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -6586,43 +7212,51 @@ export const FleetsApiFactory = function ( * @summary Get Fleet Log * @param {string} name * @param {string} [between] The period of time to fetch, in unix millis. This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getFleetLogFleetsNameLogGet( name: string, between?: string, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .getFleetLogFleetsNameLogGet(name, between, options) + .getFleetLogFleetsNameLogGet(name, between, authorization, options) .then((request) => request(axios, basePath)); }, /** * Available in socket.io * @summary Get Fleet State * @param {string} name + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getFleetStateFleetsNameStateGet( name: string, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .getFleetStateFleetsNameStateGet(name, options) + .getFleetStateFleetsNameStateGet(name, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Fleets + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getFleetsFleetsGet( + authorization?: string | null, options?: any, - ): AxiosPromise> { - return localVarFp.getFleetsFleetsGet(options).then((request) => request(axios, basePath)); + ): AxiosPromise> { + return localVarFp + .getFleetsFleetsGet(authorization, options) + .then((request) => request(axios, basePath)); }, }; }; @@ -6639,13 +7273,19 @@ export class FleetsApi extends BaseAPI { * @summary Get Fleet Log * @param {string} name * @param {string} [between] The period of time to fetch, in unix millis. This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof FleetsApi */ - public getFleetLogFleetsNameLogGet(name: string, between?: string, options?: AxiosRequestConfig) { + public getFleetLogFleetsNameLogGet( + name: string, + between?: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return FleetsApiFp(this.configuration) - .getFleetLogFleetsNameLogGet(name, between, options) + .getFleetLogFleetsNameLogGet(name, between, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -6653,26 +7293,32 @@ export class FleetsApi extends BaseAPI { * Available in socket.io * @summary Get Fleet State * @param {string} name + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof FleetsApi */ - public getFleetStateFleetsNameStateGet(name: string, options?: AxiosRequestConfig) { + public getFleetStateFleetsNameStateGet( + name: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return FleetsApiFp(this.configuration) - .getFleetStateFleetsNameStateGet(name, options) + .getFleetStateFleetsNameStateGet(name, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Get Fleets + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof FleetsApi */ - public getFleetsFleetsGet(options?: AxiosRequestConfig) { + public getFleetsFleetsGet(authorization?: string | null, options?: RawAxiosRequestConfig) { return FleetsApiFp(this.configuration) - .getFleetsFleetsGet(options) + .getFleetsFleetsGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } } @@ -6687,12 +7333,14 @@ export const IngestorsApiAxiosParamCreator = function (configuration?: Configura * Available in socket.io * @summary Get Ingestor Health * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getIngestorHealthIngestorsGuidHealthGet: async ( guid: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'guid' is not null or undefined assertParamExists('getIngestorHealthIngestorsGuidHealthGet', 'guid', guid); @@ -6711,6 +7359,10 @@ export const IngestorsApiAxiosParamCreator = function (configuration?: Configura const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6728,12 +7380,14 @@ export const IngestorsApiAxiosParamCreator = function (configuration?: Configura * Available in socket.io * @summary Get Ingestor State * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getIngestorStateIngestorsGuidStateGet: async ( guid: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'guid' is not null or undefined assertParamExists('getIngestorStateIngestorsGuidStateGet', 'guid', guid); @@ -6752,6 +7406,10 @@ export const IngestorsApiAxiosParamCreator = function (configuration?: Configura const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6768,10 +7426,14 @@ export const IngestorsApiAxiosParamCreator = function (configuration?: Configura /** * * @summary Get Ingestors + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getIngestorsIngestorsGet: async (options: AxiosRequestConfig = {}): Promise => { + getIngestorsIngestorsGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/ingestors`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -6784,6 +7446,10 @@ export const IngestorsApiAxiosParamCreator = function (configuration?: Configura const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -6811,43 +7477,92 @@ export const IngestorsApiFp = function (configuration?: Configuration) { * Available in socket.io * @summary Get Ingestor Health * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getIngestorHealthIngestorsGuidHealthGet( guid: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = - await localVarAxiosParamCreator.getIngestorHealthIngestorsGuidHealthGet(guid, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + await localVarAxiosParamCreator.getIngestorHealthIngestorsGuidHealthGet( + guid, + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['IngestorsApi.getIngestorHealthIngestorsGuidHealthGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Available in socket.io * @summary Get Ingestor State * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getIngestorStateIngestorsGuidStateGet( guid: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = - await localVarAxiosParamCreator.getIngestorStateIngestorsGuidStateGet(guid, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + await localVarAxiosParamCreator.getIngestorStateIngestorsGuidStateGet( + guid, + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['IngestorsApi.getIngestorStateIngestorsGuidStateGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Ingestors + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getIngestorsIngestorsGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getIngestorsIngestorsGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.getIngestorsIngestorsGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['IngestorsApi.getIngestorsIngestorsGet']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -6867,41 +7582,49 @@ export const IngestorsApiFactory = function ( * Available in socket.io * @summary Get Ingestor Health * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getIngestorHealthIngestorsGuidHealthGet( guid: string, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .getIngestorHealthIngestorsGuidHealthGet(guid, options) + .getIngestorHealthIngestorsGuidHealthGet(guid, authorization, options) .then((request) => request(axios, basePath)); }, /** * Available in socket.io * @summary Get Ingestor State * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getIngestorStateIngestorsGuidStateGet( guid: string, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .getIngestorStateIngestorsGuidStateGet(guid, options) + .getIngestorStateIngestorsGuidStateGet(guid, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Ingestors + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getIngestorsIngestorsGet(options?: any): AxiosPromise> { + getIngestorsIngestorsGet( + authorization?: string | null, + options?: any, + ): AxiosPromise> { return localVarFp - .getIngestorsIngestorsGet(options) + .getIngestorsIngestorsGet(authorization, options) .then((request) => request(axios, basePath)); }, }; @@ -6918,13 +7641,18 @@ export class IngestorsApi extends BaseAPI { * Available in socket.io * @summary Get Ingestor Health * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof IngestorsApi */ - public getIngestorHealthIngestorsGuidHealthGet(guid: string, options?: AxiosRequestConfig) { + public getIngestorHealthIngestorsGuidHealthGet( + guid: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return IngestorsApiFp(this.configuration) - .getIngestorHealthIngestorsGuidHealthGet(guid, options) + .getIngestorHealthIngestorsGuidHealthGet(guid, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -6932,26 +7660,32 @@ export class IngestorsApi extends BaseAPI { * Available in socket.io * @summary Get Ingestor State * @param {string} guid + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof IngestorsApi */ - public getIngestorStateIngestorsGuidStateGet(guid: string, options?: AxiosRequestConfig) { + public getIngestorStateIngestorsGuidStateGet( + guid: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return IngestorsApiFp(this.configuration) - .getIngestorStateIngestorsGuidStateGet(guid, options) + .getIngestorStateIngestorsGuidStateGet(guid, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Get Ingestors + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof IngestorsApi */ - public getIngestorsIngestorsGet(options?: AxiosRequestConfig) { + public getIngestorsIngestorsGet(authorization?: string | null, options?: RawAxiosRequestConfig) { return IngestorsApiFp(this.configuration) - .getIngestorsIngestorsGet(options) + .getIngestorsIngestorsGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } } @@ -6966,12 +7700,14 @@ export const LiftsApiAxiosParamCreator = function (configuration?: Configuration * Available in socket.io * @summary Get Lift Health * @param {string} liftName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getLiftHealthLiftsLiftNameHealthGet: async ( liftName: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'liftName' is not null or undefined assertParamExists('getLiftHealthLiftsLiftNameHealthGet', 'liftName', liftName); @@ -6990,6 +7726,10 @@ export const LiftsApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7007,12 +7747,14 @@ export const LiftsApiAxiosParamCreator = function (configuration?: Configuration * Available in socket.io * @summary Get Lift State * @param {string} liftName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getLiftStateLiftsLiftNameStateGet: async ( liftName: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'liftName' is not null or undefined assertParamExists('getLiftStateLiftsLiftNameStateGet', 'liftName', liftName); @@ -7031,6 +7773,10 @@ export const LiftsApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7047,10 +7793,14 @@ export const LiftsApiAxiosParamCreator = function (configuration?: Configuration /** * * @summary Get Lifts + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLiftsLiftsGet: async (options: AxiosRequestConfig = {}): Promise => { + getLiftsLiftsGet: async ( + authorization?: string | null, + options: RawAxiosRequestConfig = {}, + ): Promise => { const localVarPath = `/lifts`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -7063,6 +7813,10 @@ export const LiftsApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7081,13 +7835,15 @@ export const LiftsApiAxiosParamCreator = function (configuration?: Configuration * @summary Post Lift Request * @param {string} liftName * @param {LiftRequest} liftRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postLiftRequestLiftsLiftNameRequestPost: async ( liftName: string, liftRequest: LiftRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'liftName' is not null or undefined assertParamExists('postLiftRequestLiftsLiftNameRequestPost', 'liftName', liftName); @@ -7108,6 +7864,10 @@ export const LiftsApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7142,68 +7902,124 @@ export const LiftsApiFp = function (configuration?: Configuration) { * Available in socket.io * @summary Get Lift Health * @param {string} liftName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getLiftHealthLiftsLiftNameHealthGet( liftName: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getLiftHealthLiftsLiftNameHealthGet( liftName, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['LiftsApi.getLiftHealthLiftsLiftNameHealthGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Available in socket.io * @summary Get Lift State * @param {string} liftName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getLiftStateLiftsLiftNameStateGet( liftName: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getLiftStateLiftsLiftNameStateGet( liftName, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['LiftsApi.getLiftStateLiftsLiftNameStateGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Lifts + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getLiftsLiftsGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLiftsLiftsGet(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.getLiftsLiftsGet( + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['LiftsApi.getLiftsLiftsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Lift Request * @param {string} liftName * @param {LiftRequest} liftRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postLiftRequestLiftsLiftNameRequestPost( liftName: string, liftRequest: LiftRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postLiftRequestLiftsLiftNameRequestPost( liftName, liftRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['LiftsApi.postLiftRequestLiftsLiftNameRequestPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -7223,50 +8039,65 @@ export const LiftsApiFactory = function ( * Available in socket.io * @summary Get Lift Health * @param {string} liftName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLiftHealthLiftsLiftNameHealthGet(liftName: string, options?: any): AxiosPromise { + getLiftHealthLiftsLiftNameHealthGet( + liftName: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .getLiftHealthLiftsLiftNameHealthGet(liftName, options) + .getLiftHealthLiftsLiftNameHealthGet(liftName, authorization, options) .then((request) => request(axios, basePath)); }, /** * Available in socket.io * @summary Get Lift State * @param {string} liftName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLiftStateLiftsLiftNameStateGet(liftName: string, options?: any): AxiosPromise { + getLiftStateLiftsLiftNameStateGet( + liftName: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .getLiftStateLiftsLiftNameStateGet(liftName, options) + .getLiftStateLiftsLiftNameStateGet(liftName, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Lifts + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLiftsLiftsGet(options?: any): AxiosPromise> { - return localVarFp.getLiftsLiftsGet(options).then((request) => request(axios, basePath)); + getLiftsLiftsGet(authorization?: string | null, options?: any): AxiosPromise> { + return localVarFp + .getLiftsLiftsGet(authorization, options) + .then((request) => request(axios, basePath)); }, /** * * @summary Post Lift Request * @param {string} liftName * @param {LiftRequest} liftRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postLiftRequestLiftsLiftNameRequestPost( liftName: string, liftRequest: LiftRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postLiftRequestLiftsLiftNameRequestPost(liftName, liftRequest, options) + .postLiftRequestLiftsLiftNameRequestPost(liftName, liftRequest, authorization, options) .then((request) => request(axios, basePath)); }, }; @@ -7283,13 +8114,18 @@ export class LiftsApi extends BaseAPI { * Available in socket.io * @summary Get Lift Health * @param {string} liftName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof LiftsApi */ - public getLiftHealthLiftsLiftNameHealthGet(liftName: string, options?: AxiosRequestConfig) { + public getLiftHealthLiftsLiftNameHealthGet( + liftName: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return LiftsApiFp(this.configuration) - .getLiftHealthLiftsLiftNameHealthGet(liftName, options) + .getLiftHealthLiftsLiftNameHealthGet(liftName, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -7297,26 +8133,32 @@ export class LiftsApi extends BaseAPI { * Available in socket.io * @summary Get Lift State * @param {string} liftName + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof LiftsApi */ - public getLiftStateLiftsLiftNameStateGet(liftName: string, options?: AxiosRequestConfig) { + public getLiftStateLiftsLiftNameStateGet( + liftName: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return LiftsApiFp(this.configuration) - .getLiftStateLiftsLiftNameStateGet(liftName, options) + .getLiftStateLiftsLiftNameStateGet(liftName, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Get Lifts + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof LiftsApi */ - public getLiftsLiftsGet(options?: AxiosRequestConfig) { + public getLiftsLiftsGet(authorization?: string | null, options?: RawAxiosRequestConfig) { return LiftsApiFp(this.configuration) - .getLiftsLiftsGet(options) + .getLiftsLiftsGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -7325,6 +8167,7 @@ export class LiftsApi extends BaseAPI { * @summary Post Lift Request * @param {string} liftName * @param {LiftRequest} liftRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof LiftsApi @@ -7332,10 +8175,11 @@ export class LiftsApi extends BaseAPI { public postLiftRequestLiftsLiftNameRequestPost( liftName: string, liftRequest: LiftRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return LiftsApiFp(this.configuration) - .postLiftRequestLiftsLiftNameRequestPost(liftName, liftRequest, options) + .postLiftRequestLiftsLiftNameRequestPost(liftName, liftRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } } @@ -7351,13 +8195,15 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * @summary Del Scheduled Tasks Event * @param {number} taskId * @param {string} eventDate + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ delScheduledTasksEventScheduledTasksTaskIdClearPut: async ( taskId: number, eventDate: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskId' is not null or undefined assertParamExists('delScheduledTasksEventScheduledTasksTaskIdClearPut', 'taskId', taskId); @@ -7387,6 +8233,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration (eventDate as any) instanceof Date ? (eventDate as any).toISOString() : eventDate; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7404,12 +8254,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Del Scheduled Tasks * @param {number} taskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ delScheduledTasksScheduledTasksTaskIdDelete: async ( taskId: number, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskId' is not null or undefined assertParamExists('delScheduledTasksScheduledTasksTaskIdDelete', 'taskId', taskId); @@ -7428,6 +8280,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7445,12 +8301,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Delete Favorite Task * @param {string} favoriteTaskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete: async ( favoriteTaskId: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'favoriteTaskId' is not null or undefined assertParamExists( @@ -7473,6 +8331,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7489,11 +8351,13 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration /** * * @summary Get Favorites Tasks + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getFavoritesTasksFavoriteTasksGet: async ( - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { const localVarPath = `/favorite_tasks`; // use dummy base URL string because the URL constructor only accepts absolute URLs. @@ -7507,6 +8371,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7524,12 +8392,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Get Scheduled Task * @param {number} taskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getScheduledTaskScheduledTasksTaskIdGet: async ( taskId: number, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskId' is not null or undefined assertParamExists('getScheduledTaskScheduledTasksTaskIdGet', 'taskId', taskId); @@ -7548,6 +8418,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7566,19 +8440,21 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * @summary Get Scheduled Tasks * @param {string} startBefore Only return scheduled tasks that start before given timestamp * @param {string} untilAfter Only return scheduled tasks that stop after given timestamp - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getScheduledTasksScheduledTasksGet: async ( startBefore: string, untilAfter: string, - limit?: number, - offset?: number, - orderBy?: string, - options: AxiosRequestConfig = {}, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'startBefore' is not null or undefined assertParamExists('getScheduledTasksScheduledTasksGet', 'startBefore', startBefore); @@ -7618,6 +8494,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['order_by'] = orderBy; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7636,13 +8516,15 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * @summary Get Task Log * @param {string} taskId task_id * @param {string} [between] The period of time to fetch, in unix millis. This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getTaskLogTasksTaskIdLogGet: async ( taskId: string, between?: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskId' is not null or undefined assertParamExists('getTaskLogTasksTaskIdLogGet', 'taskId', taskId); @@ -7665,6 +8547,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['between'] = between; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7682,12 +8568,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Get Task Request * @param {string} taskId task_id + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getTaskRequestTasksTaskIdRequestGet: async ( taskId: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskId' is not null or undefined assertParamExists('getTaskRequestTasksTaskIdRequestGet', 'taskId', taskId); @@ -7706,6 +8594,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7723,12 +8615,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * Available in socket.io * @summary Get Task State * @param {string} taskId task_id + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getTaskStateTasksTaskIdStateGet: async ( taskId: string, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskId' is not null or undefined assertParamExists('getTaskStateTasksTaskIdStateGet', 'taskId', taskId); @@ -7747,6 +8641,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -7764,12 +8662,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Activity Discovery * @param {ActivityDiscoveryRequest} activityDiscoveryRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postActivityDiscoveryTasksActivityDiscoveryPost: async ( activityDiscoveryRequest: ActivityDiscoveryRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'activityDiscoveryRequest' is not null or undefined assertParamExists( @@ -7789,6 +8689,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7813,12 +8717,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Cancel Task * @param {CancelTaskRequest} cancelTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postCancelTaskTasksCancelTaskPost: async ( cancelTaskRequest: CancelTaskRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'cancelTaskRequest' is not null or undefined assertParamExists( @@ -7838,6 +8744,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7862,12 +8772,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Dispatch Task * @param {DispatchTaskRequest} dispatchTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postDispatchTaskTasksDispatchTaskPost: async ( dispatchTaskRequest: DispatchTaskRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'dispatchTaskRequest' is not null or undefined assertParamExists( @@ -7887,6 +8799,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7911,12 +8827,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Favorite Task * @param {TaskFavoritePydantic} taskFavoritePydantic + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postFavoriteTaskFavoriteTasksPost: async ( taskFavoritePydantic: TaskFavoritePydantic, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskFavoritePydantic' is not null or undefined assertParamExists( @@ -7936,6 +8854,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7960,12 +8882,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Interrupt Task * @param {TaskInterruptionRequest} taskInterruptionRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postInterruptTaskTasksInterruptTaskPost: async ( taskInterruptionRequest: TaskInterruptionRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskInterruptionRequest' is not null or undefined assertParamExists( @@ -7985,6 +8909,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8009,12 +8937,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Kill Task * @param {TaskKillRequest} taskKillRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postKillTaskTasksKillTaskPost: async ( taskKillRequest: TaskKillRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskKillRequest' is not null or undefined assertParamExists('postKillTaskTasksKillTaskPost', 'taskKillRequest', taskKillRequest); @@ -8030,6 +8960,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8054,12 +8988,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Resume Task * @param {TaskResumeRequest} taskResumeRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postResumeTaskTasksResumeTaskPost: async ( taskResumeRequest: TaskResumeRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskResumeRequest' is not null or undefined assertParamExists( @@ -8079,6 +9015,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8103,12 +9043,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Rewind Task * @param {TaskRewindRequest} taskRewindRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postRewindTaskTasksRewindTaskPost: async ( taskRewindRequest: TaskRewindRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskRewindRequest' is not null or undefined assertParamExists( @@ -8128,6 +9070,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8152,12 +9098,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Robot Task * @param {RobotTaskRequest} robotTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postRobotTaskTasksRobotTaskPost: async ( robotTaskRequest: RobotTaskRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'robotTaskRequest' is not null or undefined assertParamExists('postRobotTaskTasksRobotTaskPost', 'robotTaskRequest', robotTaskRequest); @@ -8173,6 +9121,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8197,12 +9149,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * Create a scheduled task. Below are some examples of how the schedules are represented. For more examples, check the docs of the underlying library used [here](https://github.com/dbader/schedule/blob/6eb0b5346b1ce35ece5050e65789fa6e44368175/docs/examples.rst). | every | to | period | at | description | | - | - | - | - | - | | 10 | - | minutes | - | Every 10 minutes | | - | - | hour | - | Every hour | | - | - | day | 10:30 | Every day at 10:30am | | - | - | monday | - | Every monday | | - | - | wednesday | 13:15 | Every wednesday at 01:15pm | | - | - | minute | :17 | Every 17th sec of a mintue | | 5 | 10 | seconds | - | Every 5-10 seconds (randomly) | * @summary Post Scheduled Task * @param {PostScheduledTaskRequest} postScheduledTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postScheduledTaskScheduledTasksPost: async ( postScheduledTaskRequest: PostScheduledTaskRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'postScheduledTaskRequest' is not null or undefined assertParamExists( @@ -8222,6 +9176,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8246,12 +9204,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Skip Phase * @param {TaskPhaseSkipRequest} taskPhaseSkipRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postSkipPhaseTasksSkipPhasePost: async ( taskPhaseSkipRequest: TaskPhaseSkipRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskPhaseSkipRequest' is not null or undefined assertParamExists( @@ -8271,6 +9231,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8295,12 +9259,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Task Discovery * @param {TaskDiscoveryRequest} taskDiscoveryRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postTaskDiscoveryTasksTaskDiscoveryPost: async ( taskDiscoveryRequest: TaskDiscoveryRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskDiscoveryRequest' is not null or undefined assertParamExists( @@ -8320,6 +9286,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8344,12 +9314,14 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * * @summary Post Undo Skip Phase * @param {UndoPhaseSkipRequest} undoPhaseSkipRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postUndoSkipPhaseTasksUndoSkipPhasePost: async ( undoPhaseSkipRequest: UndoPhaseSkipRequest, - options: AxiosRequestConfig = {}, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'undoPhaseSkipRequest' is not null or undefined assertParamExists( @@ -8369,6 +9341,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8392,29 +9368,31 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration /** * * @summary Query Task States - * @param {string} [taskId] comma separated list of task ids - * @param {string} [category] comma separated list of task categories - * @param {string} [assignedTo] comma separated list of assigned robot names - * @param {string} [status] comma separated list of statuses + * @param {string | null} [taskId] comma separated list of task ids + * @param {string | null} [category] comma separated list of task categories + * @param {string | null} [assignedTo] comma separated list of assigned robot names + * @param {string | null} [status] comma separated list of statuses * @param {string} [startTimeBetween] The period of starting time to fetch, in unix millis. This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. * @param {string} [finishTimeBetween] The period of finishing time to fetch, in unix millis. This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ queryTaskStatesTasksGet: async ( - taskId?: string, - category?: string, - assignedTo?: string, - status?: string, + taskId?: string | null, + category?: string | null, + assignedTo?: string | null, + status?: string | null, startTimeBetween?: string, finishTimeBetween?: string, - limit?: number, - offset?: number, - orderBy?: string, - options: AxiosRequestConfig = {}, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { const localVarPath = `/tasks`; // use dummy base URL string because the URL constructor only accepts absolute URLs. @@ -8464,6 +9442,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['order_by'] = orderBy; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { @@ -8482,15 +9464,17 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration * @summary Update Schedule Task * @param {number} taskId * @param {PostScheduledTaskRequest} postScheduledTaskRequest - * @param {string} [exceptDate] + * @param {string | null} [exceptDate] + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ updateScheduleTaskScheduledTasksTaskIdUpdatePost: async ( taskId: number, postScheduledTaskRequest: PostScheduledTaskRequest, - exceptDate?: string, - options: AxiosRequestConfig = {}, + exceptDate?: string | null, + authorization?: string | null, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'taskId' is not null or undefined assertParamExists('updateScheduleTaskScheduledTasksTaskIdUpdatePost', 'taskId', taskId); @@ -8520,6 +9504,10 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration (exceptDate as any) instanceof Date ? (exceptDate as any).toISOString() : exceptDate; } + if (authorization != null) { + localVarHeaderParameter['authorization'] = String(authorization); + } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -8555,448 +9543,737 @@ export const TasksApiFp = function (configuration?: Configuration) { * @summary Del Scheduled Tasks Event * @param {number} taskId * @param {string} eventDate + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async delScheduledTasksEventScheduledTasksTaskIdClearPut( taskId: number, eventDate: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.delScheduledTasksEventScheduledTasksTaskIdClearPut( taskId, eventDate, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.delScheduledTasksEventScheduledTasksTaskIdClearPut']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Del Scheduled Tasks * @param {number} taskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async delScheduledTasksScheduledTasksTaskIdDelete( taskId: number, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.delScheduledTasksScheduledTasksTaskIdDelete( taskId, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.delScheduledTasksScheduledTasksTaskIdDelete']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Delete Favorite Task * @param {string} favoriteTaskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete( favoriteTaskId: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete( favoriteTaskId, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Favorites Tasks + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getFavoritesTasksFavoriteTasksGet( - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< (axios?: AxiosInstance, basePath?: string) => AxiosPromise> > { const localVarAxiosArgs = await localVarAxiosParamCreator.getFavoritesTasksFavoriteTasksGet( + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.getFavoritesTasksFavoriteTasksGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Scheduled Task * @param {number} taskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getScheduledTaskScheduledTasksTaskIdGet( taskId: number, - options?: AxiosRequestConfig, - ): Promise< - ( - axios?: AxiosInstance, - basePath?: string, - ) => AxiosPromise - > { + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = - await localVarAxiosParamCreator.getScheduledTaskScheduledTasksTaskIdGet(taskId, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + await localVarAxiosParamCreator.getScheduledTaskScheduledTasksTaskIdGet( + taskId, + authorization, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.getScheduledTaskScheduledTasksTaskIdGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Scheduled Tasks * @param {string} startBefore Only return scheduled tasks that start before given timestamp * @param {string} untilAfter Only return scheduled tasks that stop after given timestamp - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getScheduledTasksScheduledTasksGet( startBefore: string, untilAfter: string, - limit?: number, - offset?: number, - orderBy?: string, - options?: AxiosRequestConfig, - ): Promise< - ( - axios?: AxiosInstance, - basePath?: string, - ) => AxiosPromise> - > { + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { const localVarAxiosArgs = await localVarAxiosParamCreator.getScheduledTasksScheduledTasksGet( startBefore, untilAfter, limit, offset, orderBy, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.getScheduledTasksScheduledTasksGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Available in socket.io * @summary Get Task Log * @param {string} taskId task_id * @param {string} [between] The period of time to fetch, in unix millis. This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getTaskLogTasksTaskIdLogGet( taskId: string, between?: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getTaskLogTasksTaskIdLogGet( taskId, between, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.getTaskLogTasksTaskIdLogGet']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Get Task Request * @param {string} taskId task_id + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getTaskRequestTasksTaskIdRequestGet( taskId: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getTaskRequestTasksTaskIdRequestGet( taskId, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.getTaskRequestTasksTaskIdRequestGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Available in socket.io * @summary Get Task State * @param {string} taskId task_id + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getTaskStateTasksTaskIdStateGet( taskId: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getTaskStateTasksTaskIdStateGet( taskId, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.getTaskStateTasksTaskIdStateGet']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Activity Discovery * @param {ActivityDiscoveryRequest} activityDiscoveryRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postActivityDiscoveryTasksActivityDiscoveryPost( activityDiscoveryRequest: ActivityDiscoveryRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postActivityDiscoveryTasksActivityDiscoveryPost( activityDiscoveryRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postActivityDiscoveryTasksActivityDiscoveryPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Cancel Task * @param {CancelTaskRequest} cancelTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postCancelTaskTasksCancelTaskPost( cancelTaskRequest: CancelTaskRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postCancelTaskTasksCancelTaskPost( cancelTaskRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postCancelTaskTasksCancelTaskPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Dispatch Task * @param {DispatchTaskRequest} dispatchTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postDispatchTaskTasksDispatchTaskPost( dispatchTaskRequest: DispatchTaskRequest, - options?: AxiosRequestConfig, - ): Promise< - (axios?: AxiosInstance, basePath?: string) => AxiosPromise - > { + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postDispatchTaskTasksDispatchTaskPost( dispatchTaskRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postDispatchTaskTasksDispatchTaskPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Favorite Task * @param {TaskFavoritePydantic} taskFavoritePydantic + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postFavoriteTaskFavoriteTasksPost( taskFavoritePydantic: TaskFavoritePydantic, - options?: AxiosRequestConfig, - ): Promise< - ( - axios?: AxiosInstance, - basePath?: string, - ) => AxiosPromise - > { + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postFavoriteTaskFavoriteTasksPost( taskFavoritePydantic, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postFavoriteTaskFavoriteTasksPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Interrupt Task * @param {TaskInterruptionRequest} taskInterruptionRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postInterruptTaskTasksInterruptTaskPost( taskInterruptionRequest: TaskInterruptionRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise< (axios?: AxiosInstance, basePath?: string) => AxiosPromise > { const localVarAxiosArgs = await localVarAxiosParamCreator.postInterruptTaskTasksInterruptTaskPost( taskInterruptionRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postInterruptTaskTasksInterruptTaskPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Kill Task * @param {TaskKillRequest} taskKillRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postKillTaskTasksKillTaskPost( taskKillRequest: TaskKillRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postKillTaskTasksKillTaskPost( taskKillRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postKillTaskTasksKillTaskPost']?.[localVarOperationServerIndex] + ?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Resume Task * @param {TaskResumeRequest} taskResumeRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postResumeTaskTasksResumeTaskPost( taskResumeRequest: TaskResumeRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postResumeTaskTasksResumeTaskPost( taskResumeRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postResumeTaskTasksResumeTaskPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Rewind Task * @param {TaskRewindRequest} taskRewindRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postRewindTaskTasksRewindTaskPost( taskRewindRequest: TaskRewindRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postRewindTaskTasksRewindTaskPost( taskRewindRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postRewindTaskTasksRewindTaskPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Robot Task * @param {RobotTaskRequest} robotTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postRobotTaskTasksRobotTaskPost( robotTaskRequest: RobotTaskRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postRobotTaskTasksRobotTaskPost( robotTaskRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postRobotTaskTasksRobotTaskPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * Create a scheduled task. Below are some examples of how the schedules are represented. For more examples, check the docs of the underlying library used [here](https://github.com/dbader/schedule/blob/6eb0b5346b1ce35ece5050e65789fa6e44368175/docs/examples.rst). | every | to | period | at | description | | - | - | - | - | - | | 10 | - | minutes | - | Every 10 minutes | | - | - | hour | - | Every hour | | - | - | day | 10:30 | Every day at 10:30am | | - | - | monday | - | Every monday | | - | - | wednesday | 13:15 | Every wednesday at 01:15pm | | - | - | minute | :17 | Every 17th sec of a mintue | | 5 | 10 | seconds | - | Every 5-10 seconds (randomly) | * @summary Post Scheduled Task * @param {PostScheduledTaskRequest} postScheduledTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postScheduledTaskScheduledTasksPost( postScheduledTaskRequest: PostScheduledTaskRequest, - options?: AxiosRequestConfig, - ): Promise< - ( - axios?: AxiosInstance, - basePath?: string, - ) => AxiosPromise - > { + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postScheduledTaskScheduledTasksPost( postScheduledTaskRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postScheduledTaskScheduledTasksPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Skip Phase * @param {TaskPhaseSkipRequest} taskPhaseSkipRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postSkipPhaseTasksSkipPhasePost( taskPhaseSkipRequest: TaskPhaseSkipRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postSkipPhaseTasksSkipPhasePost( taskPhaseSkipRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postSkipPhaseTasksSkipPhasePost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Task Discovery * @param {TaskDiscoveryRequest} taskDiscoveryRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postTaskDiscoveryTasksTaskDiscoveryPost( taskDiscoveryRequest: TaskDiscoveryRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postTaskDiscoveryTasksTaskDiscoveryPost( taskDiscoveryRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postTaskDiscoveryTasksTaskDiscoveryPost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Post Undo Skip Phase * @param {UndoPhaseSkipRequest} undoPhaseSkipRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async postUndoSkipPhaseTasksUndoSkipPhasePost( undoPhaseSkipRequest: UndoPhaseSkipRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.postUndoSkipPhaseTasksUndoSkipPhasePost( undoPhaseSkipRequest, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.postUndoSkipPhaseTasksUndoSkipPhasePost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Query Task States - * @param {string} [taskId] comma separated list of task ids - * @param {string} [category] comma separated list of task categories - * @param {string} [assignedTo] comma separated list of assigned robot names - * @param {string} [status] comma separated list of statuses + * @param {string | null} [taskId] comma separated list of task ids + * @param {string | null} [category] comma separated list of task categories + * @param {string | null} [assignedTo] comma separated list of assigned robot names + * @param {string | null} [status] comma separated list of statuses * @param {string} [startTimeBetween] The period of starting time to fetch, in unix millis. This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. * @param {string} [finishTimeBetween] The period of finishing time to fetch, in unix millis. This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async queryTaskStatesTasksGet( - taskId?: string, - category?: string, - assignedTo?: string, - status?: string, + taskId?: string | null, + category?: string | null, + assignedTo?: string | null, + status?: string | null, startTimeBetween?: string, finishTimeBetween?: string, - limit?: number, - offset?: number, - orderBy?: string, - options?: AxiosRequestConfig, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { const localVarAxiosArgs = await localVarAxiosParamCreator.queryTaskStatesTasksGet( taskId, @@ -9008,38 +10285,57 @@ export const TasksApiFp = function (configuration?: Configuration) { limit, offset, orderBy, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.queryTaskStatesTasksGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** * * @summary Update Schedule Task * @param {number} taskId * @param {PostScheduledTaskRequest} postScheduledTaskRequest - * @param {string} [exceptDate] + * @param {string | null} [exceptDate] + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ async updateScheduleTaskScheduledTasksTaskIdUpdatePost( taskId: number, postScheduledTaskRequest: PostScheduledTaskRequest, - exceptDate?: string, - options?: AxiosRequestConfig, - ): Promise< - ( - axios?: AxiosInstance, - basePath?: string, - ) => AxiosPromise - > { + exceptDate?: string | null, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.updateScheduleTaskScheduledTasksTaskIdUpdatePost( taskId, postScheduledTaskRequest, exceptDate, + authorization, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['TasksApi.updateScheduleTaskScheduledTasksTaskIdUpdatePost']?.[ + localVarOperationServerIndex + ]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; @@ -9060,69 +10356,89 @@ export const TasksApiFactory = function ( * @summary Del Scheduled Tasks Event * @param {number} taskId * @param {string} eventDate + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ delScheduledTasksEventScheduledTasksTaskIdClearPut( taskId: number, eventDate: string, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .delScheduledTasksEventScheduledTasksTaskIdClearPut(taskId, eventDate, options) + .delScheduledTasksEventScheduledTasksTaskIdClearPut( + taskId, + eventDate, + authorization, + options, + ) .then((request) => request(axios, basePath)); }, /** * * @summary Del Scheduled Tasks * @param {number} taskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - delScheduledTasksScheduledTasksTaskIdDelete(taskId: number, options?: any): AxiosPromise { + delScheduledTasksScheduledTasksTaskIdDelete( + taskId: number, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .delScheduledTasksScheduledTasksTaskIdDelete(taskId, options) + .delScheduledTasksScheduledTasksTaskIdDelete(taskId, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Delete Favorite Task * @param {string} favoriteTaskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete( favoriteTaskId: string, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete(favoriteTaskId, options) + .deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete(favoriteTaskId, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Favorites Tasks + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getFavoritesTasksFavoriteTasksGet(options?: any): AxiosPromise> { + getFavoritesTasksFavoriteTasksGet( + authorization?: string | null, + options?: any, + ): AxiosPromise> { return localVarFp - .getFavoritesTasksFavoriteTasksGet(options) + .getFavoritesTasksFavoriteTasksGet(authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Scheduled Task * @param {number} taskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getScheduledTaskScheduledTasksTaskIdGet( taskId: number, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .getScheduledTaskScheduledTasksTaskIdGet(taskId, options) + .getScheduledTaskScheduledTasksTaskIdGet(taskId, authorization, options) .then((request) => request(axios, basePath)); }, /** @@ -9130,20 +10446,22 @@ export const TasksApiFactory = function ( * @summary Get Scheduled Tasks * @param {string} startBefore Only return scheduled tasks that start before given timestamp * @param {string} untilAfter Only return scheduled tasks that stop after given timestamp - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getScheduledTasksScheduledTasksGet( startBefore: string, untilAfter: string, - limit?: number, - offset?: number, - orderBy?: string, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, options?: any, - ): AxiosPromise> { + ): AxiosPromise> { return localVarFp .getScheduledTasksScheduledTasksGet( startBefore, @@ -9151,6 +10469,7 @@ export const TasksApiFactory = function ( limit, offset, orderBy, + authorization, options, ) .then((request) => request(axios, basePath)); @@ -9160,262 +10479,306 @@ export const TasksApiFactory = function ( * @summary Get Task Log * @param {string} taskId task_id * @param {string} [between] The period of time to fetch, in unix millis. This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ getTaskLogTasksTaskIdLogGet( taskId: string, between?: string, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .getTaskLogTasksTaskIdLogGet(taskId, between, options) + .getTaskLogTasksTaskIdLogGet(taskId, between, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Get Task Request * @param {string} taskId task_id + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTaskRequestTasksTaskIdRequestGet(taskId: string, options?: any): AxiosPromise { + getTaskRequestTasksTaskIdRequestGet( + taskId: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .getTaskRequestTasksTaskIdRequestGet(taskId, options) + .getTaskRequestTasksTaskIdRequestGet(taskId, authorization, options) .then((request) => request(axios, basePath)); }, /** * Available in socket.io * @summary Get Task State * @param {string} taskId task_id + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTaskStateTasksTaskIdStateGet(taskId: string, options?: any): AxiosPromise { + getTaskStateTasksTaskIdStateGet( + taskId: string, + authorization?: string | null, + options?: any, + ): AxiosPromise { return localVarFp - .getTaskStateTasksTaskIdStateGet(taskId, options) + .getTaskStateTasksTaskIdStateGet(taskId, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Activity Discovery * @param {ActivityDiscoveryRequest} activityDiscoveryRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postActivityDiscoveryTasksActivityDiscoveryPost( activityDiscoveryRequest: ActivityDiscoveryRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postActivityDiscoveryTasksActivityDiscoveryPost(activityDiscoveryRequest, options) + .postActivityDiscoveryTasksActivityDiscoveryPost( + activityDiscoveryRequest, + authorization, + options, + ) .then((request) => request(axios, basePath)); }, /** * * @summary Post Cancel Task * @param {CancelTaskRequest} cancelTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postCancelTaskTasksCancelTaskPost( cancelTaskRequest: CancelTaskRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postCancelTaskTasksCancelTaskPost(cancelTaskRequest, options) + .postCancelTaskTasksCancelTaskPost(cancelTaskRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Dispatch Task * @param {DispatchTaskRequest} dispatchTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postDispatchTaskTasksDispatchTaskPost( dispatchTaskRequest: DispatchTaskRequest, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .postDispatchTaskTasksDispatchTaskPost(dispatchTaskRequest, options) + .postDispatchTaskTasksDispatchTaskPost(dispatchTaskRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Favorite Task * @param {TaskFavoritePydantic} taskFavoritePydantic + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postFavoriteTaskFavoriteTasksPost( taskFavoritePydantic: TaskFavoritePydantic, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .postFavoriteTaskFavoriteTasksPost(taskFavoritePydantic, options) + .postFavoriteTaskFavoriteTasksPost(taskFavoritePydantic, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Interrupt Task * @param {TaskInterruptionRequest} taskInterruptionRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postInterruptTaskTasksInterruptTaskPost( taskInterruptionRequest: TaskInterruptionRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postInterruptTaskTasksInterruptTaskPost(taskInterruptionRequest, options) + .postInterruptTaskTasksInterruptTaskPost(taskInterruptionRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Kill Task * @param {TaskKillRequest} taskKillRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postKillTaskTasksKillTaskPost( taskKillRequest: TaskKillRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postKillTaskTasksKillTaskPost(taskKillRequest, options) + .postKillTaskTasksKillTaskPost(taskKillRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Resume Task * @param {TaskResumeRequest} taskResumeRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postResumeTaskTasksResumeTaskPost( taskResumeRequest: TaskResumeRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postResumeTaskTasksResumeTaskPost(taskResumeRequest, options) + .postResumeTaskTasksResumeTaskPost(taskResumeRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Rewind Task * @param {TaskRewindRequest} taskRewindRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postRewindTaskTasksRewindTaskPost( taskRewindRequest: TaskRewindRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postRewindTaskTasksRewindTaskPost(taskRewindRequest, options) + .postRewindTaskTasksRewindTaskPost(taskRewindRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Robot Task * @param {RobotTaskRequest} robotTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postRobotTaskTasksRobotTaskPost( robotTaskRequest: RobotTaskRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postRobotTaskTasksRobotTaskPost(robotTaskRequest, options) + .postRobotTaskTasksRobotTaskPost(robotTaskRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * Create a scheduled task. Below are some examples of how the schedules are represented. For more examples, check the docs of the underlying library used [here](https://github.com/dbader/schedule/blob/6eb0b5346b1ce35ece5050e65789fa6e44368175/docs/examples.rst). | every | to | period | at | description | | - | - | - | - | - | | 10 | - | minutes | - | Every 10 minutes | | - | - | hour | - | Every hour | | - | - | day | 10:30 | Every day at 10:30am | | - | - | monday | - | Every monday | | - | - | wednesday | 13:15 | Every wednesday at 01:15pm | | - | - | minute | :17 | Every 17th sec of a mintue | | 5 | 10 | seconds | - | Every 5-10 seconds (randomly) | * @summary Post Scheduled Task * @param {PostScheduledTaskRequest} postScheduledTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postScheduledTaskScheduledTasksPost( postScheduledTaskRequest: PostScheduledTaskRequest, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp - .postScheduledTaskScheduledTasksPost(postScheduledTaskRequest, options) + .postScheduledTaskScheduledTasksPost(postScheduledTaskRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Skip Phase * @param {TaskPhaseSkipRequest} taskPhaseSkipRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postSkipPhaseTasksSkipPhasePost( taskPhaseSkipRequest: TaskPhaseSkipRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postSkipPhaseTasksSkipPhasePost(taskPhaseSkipRequest, options) + .postSkipPhaseTasksSkipPhasePost(taskPhaseSkipRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Task Discovery * @param {TaskDiscoveryRequest} taskDiscoveryRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postTaskDiscoveryTasksTaskDiscoveryPost( taskDiscoveryRequest: TaskDiscoveryRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postTaskDiscoveryTasksTaskDiscoveryPost(taskDiscoveryRequest, options) + .postTaskDiscoveryTasksTaskDiscoveryPost(taskDiscoveryRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Post Undo Skip Phase * @param {UndoPhaseSkipRequest} undoPhaseSkipRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ postUndoSkipPhaseTasksUndoSkipPhasePost( undoPhaseSkipRequest: UndoPhaseSkipRequest, + authorization?: string | null, options?: any, ): AxiosPromise { return localVarFp - .postUndoSkipPhaseTasksUndoSkipPhasePost(undoPhaseSkipRequest, options) + .postUndoSkipPhaseTasksUndoSkipPhasePost(undoPhaseSkipRequest, authorization, options) .then((request) => request(axios, basePath)); }, /** * * @summary Query Task States - * @param {string} [taskId] comma separated list of task ids - * @param {string} [category] comma separated list of task categories - * @param {string} [assignedTo] comma separated list of assigned robot names - * @param {string} [status] comma separated list of statuses + * @param {string | null} [taskId] comma separated list of task ids + * @param {string | null} [category] comma separated list of task categories + * @param {string | null} [assignedTo] comma separated list of assigned robot names + * @param {string | null} [status] comma separated list of statuses * @param {string} [startTimeBetween] The period of starting time to fetch, in unix millis. This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. * @param {string} [finishTimeBetween] The period of finishing time to fetch, in unix millis. This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ queryTaskStatesTasksGet( - taskId?: string, - category?: string, - assignedTo?: string, - status?: string, + taskId?: string | null, + category?: string | null, + assignedTo?: string | null, + status?: string | null, startTimeBetween?: string, finishTimeBetween?: string, - limit?: number, - offset?: number, - orderBy?: string, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, options?: any, ): AxiosPromise> { return localVarFp @@ -9429,6 +10792,7 @@ export const TasksApiFactory = function ( limit, offset, orderBy, + authorization, options, ) .then((request) => request(axios, basePath)); @@ -9438,21 +10802,24 @@ export const TasksApiFactory = function ( * @summary Update Schedule Task * @param {number} taskId * @param {PostScheduledTaskRequest} postScheduledTaskRequest - * @param {string} [exceptDate] + * @param {string | null} [exceptDate] + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} */ updateScheduleTaskScheduledTasksTaskIdUpdatePost( taskId: number, postScheduledTaskRequest: PostScheduledTaskRequest, - exceptDate?: string, + exceptDate?: string | null, + authorization?: string | null, options?: any, - ): AxiosPromise { + ): AxiosPromise { return localVarFp .updateScheduleTaskScheduledTasksTaskIdUpdatePost( taskId, postScheduledTaskRequest, exceptDate, + authorization, options, ) .then((request) => request(axios, basePath)); @@ -9472,6 +10839,7 @@ export class TasksApi extends BaseAPI { * @summary Del Scheduled Tasks Event * @param {number} taskId * @param {string} eventDate + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi @@ -9479,10 +10847,11 @@ export class TasksApi extends BaseAPI { public delScheduledTasksEventScheduledTasksTaskIdClearPut( taskId: number, eventDate: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .delScheduledTasksEventScheduledTasksTaskIdClearPut(taskId, eventDate, options) + .delScheduledTasksEventScheduledTasksTaskIdClearPut(taskId, eventDate, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9490,13 +10859,18 @@ export class TasksApi extends BaseAPI { * * @summary Del Scheduled Tasks * @param {number} taskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ - public delScheduledTasksScheduledTasksTaskIdDelete(taskId: number, options?: AxiosRequestConfig) { + public delScheduledTasksScheduledTasksTaskIdDelete( + taskId: number, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return TasksApiFp(this.configuration) - .delScheduledTasksScheduledTasksTaskIdDelete(taskId, options) + .delScheduledTasksScheduledTasksTaskIdDelete(taskId, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9504,29 +10878,35 @@ export class TasksApi extends BaseAPI { * * @summary Delete Favorite Task * @param {string} favoriteTaskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete( favoriteTaskId: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete(favoriteTaskId, options) + .deleteFavoriteTaskFavoriteTasksFavoriteTaskIdDelete(favoriteTaskId, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Get Favorites Tasks + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ - public getFavoritesTasksFavoriteTasksGet(options?: AxiosRequestConfig) { + public getFavoritesTasksFavoriteTasksGet( + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return TasksApiFp(this.configuration) - .getFavoritesTasksFavoriteTasksGet(options) + .getFavoritesTasksFavoriteTasksGet(authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9534,13 +10914,18 @@ export class TasksApi extends BaseAPI { * * @summary Get Scheduled Task * @param {number} taskId + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ - public getScheduledTaskScheduledTasksTaskIdGet(taskId: number, options?: AxiosRequestConfig) { + public getScheduledTaskScheduledTasksTaskIdGet( + taskId: number, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return TasksApiFp(this.configuration) - .getScheduledTaskScheduledTasksTaskIdGet(taskId, options) + .getScheduledTaskScheduledTasksTaskIdGet(taskId, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9549,9 +10934,10 @@ export class TasksApi extends BaseAPI { * @summary Get Scheduled Tasks * @param {string} startBefore Only return scheduled tasks that start before given timestamp * @param {string} untilAfter Only return scheduled tasks that stop after given timestamp - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi @@ -9559,13 +10945,22 @@ export class TasksApi extends BaseAPI { public getScheduledTasksScheduledTasksGet( startBefore: string, untilAfter: string, - limit?: number, - offset?: number, - orderBy?: string, - options?: AxiosRequestConfig, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .getScheduledTasksScheduledTasksGet(startBefore, untilAfter, limit, offset, orderBy, options) + .getScheduledTasksScheduledTasksGet( + startBefore, + untilAfter, + limit, + offset, + orderBy, + authorization, + options, + ) .then((request) => request(this.axios, this.basePath)); } @@ -9574,6 +10969,7 @@ export class TasksApi extends BaseAPI { * @summary Get Task Log * @param {string} taskId task_id * @param {string} [between] The period of time to fetch, in unix millis. This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi @@ -9581,10 +10977,11 @@ export class TasksApi extends BaseAPI { public getTaskLogTasksTaskIdLogGet( taskId: string, between?: string, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .getTaskLogTasksTaskIdLogGet(taskId, between, options) + .getTaskLogTasksTaskIdLogGet(taskId, between, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9592,13 +10989,18 @@ export class TasksApi extends BaseAPI { * * @summary Get Task Request * @param {string} taskId task_id + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ - public getTaskRequestTasksTaskIdRequestGet(taskId: string, options?: AxiosRequestConfig) { + public getTaskRequestTasksTaskIdRequestGet( + taskId: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return TasksApiFp(this.configuration) - .getTaskRequestTasksTaskIdRequestGet(taskId, options) + .getTaskRequestTasksTaskIdRequestGet(taskId, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9606,13 +11008,18 @@ export class TasksApi extends BaseAPI { * Available in socket.io * @summary Get Task State * @param {string} taskId task_id + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ - public getTaskStateTasksTaskIdStateGet(taskId: string, options?: AxiosRequestConfig) { + public getTaskStateTasksTaskIdStateGet( + taskId: string, + authorization?: string | null, + options?: RawAxiosRequestConfig, + ) { return TasksApiFp(this.configuration) - .getTaskStateTasksTaskIdStateGet(taskId, options) + .getTaskStateTasksTaskIdStateGet(taskId, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9620,16 +11027,22 @@ export class TasksApi extends BaseAPI { * * @summary Post Activity Discovery * @param {ActivityDiscoveryRequest} activityDiscoveryRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postActivityDiscoveryTasksActivityDiscoveryPost( activityDiscoveryRequest: ActivityDiscoveryRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postActivityDiscoveryTasksActivityDiscoveryPost(activityDiscoveryRequest, options) + .postActivityDiscoveryTasksActivityDiscoveryPost( + activityDiscoveryRequest, + authorization, + options, + ) .then((request) => request(this.axios, this.basePath)); } @@ -9637,16 +11050,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Cancel Task * @param {CancelTaskRequest} cancelTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postCancelTaskTasksCancelTaskPost( cancelTaskRequest: CancelTaskRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postCancelTaskTasksCancelTaskPost(cancelTaskRequest, options) + .postCancelTaskTasksCancelTaskPost(cancelTaskRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9654,16 +11069,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Dispatch Task * @param {DispatchTaskRequest} dispatchTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postDispatchTaskTasksDispatchTaskPost( dispatchTaskRequest: DispatchTaskRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postDispatchTaskTasksDispatchTaskPost(dispatchTaskRequest, options) + .postDispatchTaskTasksDispatchTaskPost(dispatchTaskRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9671,16 +11088,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Favorite Task * @param {TaskFavoritePydantic} taskFavoritePydantic + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postFavoriteTaskFavoriteTasksPost( taskFavoritePydantic: TaskFavoritePydantic, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postFavoriteTaskFavoriteTasksPost(taskFavoritePydantic, options) + .postFavoriteTaskFavoriteTasksPost(taskFavoritePydantic, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9688,16 +11107,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Interrupt Task * @param {TaskInterruptionRequest} taskInterruptionRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postInterruptTaskTasksInterruptTaskPost( taskInterruptionRequest: TaskInterruptionRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postInterruptTaskTasksInterruptTaskPost(taskInterruptionRequest, options) + .postInterruptTaskTasksInterruptTaskPost(taskInterruptionRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9705,16 +11126,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Kill Task * @param {TaskKillRequest} taskKillRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postKillTaskTasksKillTaskPost( taskKillRequest: TaskKillRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postKillTaskTasksKillTaskPost(taskKillRequest, options) + .postKillTaskTasksKillTaskPost(taskKillRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9722,16 +11145,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Resume Task * @param {TaskResumeRequest} taskResumeRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postResumeTaskTasksResumeTaskPost( taskResumeRequest: TaskResumeRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postResumeTaskTasksResumeTaskPost(taskResumeRequest, options) + .postResumeTaskTasksResumeTaskPost(taskResumeRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9739,16 +11164,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Rewind Task * @param {TaskRewindRequest} taskRewindRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postRewindTaskTasksRewindTaskPost( taskRewindRequest: TaskRewindRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postRewindTaskTasksRewindTaskPost(taskRewindRequest, options) + .postRewindTaskTasksRewindTaskPost(taskRewindRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9756,16 +11183,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Robot Task * @param {RobotTaskRequest} robotTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postRobotTaskTasksRobotTaskPost( robotTaskRequest: RobotTaskRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postRobotTaskTasksRobotTaskPost(robotTaskRequest, options) + .postRobotTaskTasksRobotTaskPost(robotTaskRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9773,16 +11202,18 @@ export class TasksApi extends BaseAPI { * Create a scheduled task. Below are some examples of how the schedules are represented. For more examples, check the docs of the underlying library used [here](https://github.com/dbader/schedule/blob/6eb0b5346b1ce35ece5050e65789fa6e44368175/docs/examples.rst). | every | to | period | at | description | | - | - | - | - | - | | 10 | - | minutes | - | Every 10 minutes | | - | - | hour | - | Every hour | | - | - | day | 10:30 | Every day at 10:30am | | - | - | monday | - | Every monday | | - | - | wednesday | 13:15 | Every wednesday at 01:15pm | | - | - | minute | :17 | Every 17th sec of a mintue | | 5 | 10 | seconds | - | Every 5-10 seconds (randomly) | * @summary Post Scheduled Task * @param {PostScheduledTaskRequest} postScheduledTaskRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postScheduledTaskScheduledTasksPost( postScheduledTaskRequest: PostScheduledTaskRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postScheduledTaskScheduledTasksPost(postScheduledTaskRequest, options) + .postScheduledTaskScheduledTasksPost(postScheduledTaskRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9790,16 +11221,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Skip Phase * @param {TaskPhaseSkipRequest} taskPhaseSkipRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postSkipPhaseTasksSkipPhasePost( taskPhaseSkipRequest: TaskPhaseSkipRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postSkipPhaseTasksSkipPhasePost(taskPhaseSkipRequest, options) + .postSkipPhaseTasksSkipPhasePost(taskPhaseSkipRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9807,16 +11240,18 @@ export class TasksApi extends BaseAPI { * * @summary Post Task Discovery * @param {TaskDiscoveryRequest} taskDiscoveryRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postTaskDiscoveryTasksTaskDiscoveryPost( taskDiscoveryRequest: TaskDiscoveryRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postTaskDiscoveryTasksTaskDiscoveryPost(taskDiscoveryRequest, options) + .postTaskDiscoveryTasksTaskDiscoveryPost(taskDiscoveryRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } @@ -9824,46 +11259,50 @@ export class TasksApi extends BaseAPI { * * @summary Post Undo Skip Phase * @param {UndoPhaseSkipRequest} undoPhaseSkipRequest + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public postUndoSkipPhaseTasksUndoSkipPhasePost( undoPhaseSkipRequest: UndoPhaseSkipRequest, - options?: AxiosRequestConfig, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) - .postUndoSkipPhaseTasksUndoSkipPhasePost(undoPhaseSkipRequest, options) + .postUndoSkipPhaseTasksUndoSkipPhasePost(undoPhaseSkipRequest, authorization, options) .then((request) => request(this.axios, this.basePath)); } /** * * @summary Query Task States - * @param {string} [taskId] comma separated list of task ids - * @param {string} [category] comma separated list of task categories - * @param {string} [assignedTo] comma separated list of assigned robot names - * @param {string} [status] comma separated list of statuses + * @param {string | null} [taskId] comma separated list of task ids + * @param {string | null} [category] comma separated list of task categories + * @param {string | null} [assignedTo] comma separated list of assigned robot names + * @param {string | null} [status] comma separated list of statuses * @param {string} [startTimeBetween] The period of starting time to fetch, in unix millis. This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. * @param {string} [finishTimeBetween] The period of finishing time to fetch, in unix millis. This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive. Example: \"1000,2000\" - Fetches logs between unix millis 1000 and 2000. \"-60000\" - Fetches logs in the last minute. - * @param {number} [limit] defaults to 100 - * @param {number} [offset] defaults to 0 - * @param {string} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {number | null} [limit] defaults to 100 + * @param {number | null} [offset] defaults to 0 + * @param {string | null} [orderBy] common separated list of fields to order by, prefix with \'-\' to sort descendingly. + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi */ public queryTaskStatesTasksGet( - taskId?: string, - category?: string, - assignedTo?: string, - status?: string, + taskId?: string | null, + category?: string | null, + assignedTo?: string | null, + status?: string | null, startTimeBetween?: string, finishTimeBetween?: string, - limit?: number, - offset?: number, - orderBy?: string, - options?: AxiosRequestConfig, + limit?: number | null, + offset?: number | null, + orderBy?: string | null, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) .queryTaskStatesTasksGet( @@ -9876,6 +11315,7 @@ export class TasksApi extends BaseAPI { limit, offset, orderBy, + authorization, options, ) .then((request) => request(this.axios, this.basePath)); @@ -9886,7 +11326,8 @@ export class TasksApi extends BaseAPI { * @summary Update Schedule Task * @param {number} taskId * @param {PostScheduledTaskRequest} postScheduledTaskRequest - * @param {string} [exceptDate] + * @param {string | null} [exceptDate] + * @param {string | null} [authorization] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TasksApi @@ -9894,14 +11335,16 @@ export class TasksApi extends BaseAPI { public updateScheduleTaskScheduledTasksTaskIdUpdatePost( taskId: number, postScheduledTaskRequest: PostScheduledTaskRequest, - exceptDate?: string, - options?: AxiosRequestConfig, + exceptDate?: string | null, + authorization?: string | null, + options?: RawAxiosRequestConfig, ) { return TasksApiFp(this.configuration) .updateScheduleTaskScheduledTasksTaskIdUpdatePost( taskId, postScheduledTaskRequest, exceptDate, + authorization, options, ) .then((request) => request(this.axios, this.basePath)); diff --git a/packages/api-client/lib/openapi/base.ts b/packages/api-client/lib/openapi/base.ts index d68780e5d..fc79e1388 100644 --- a/packages/api-client/lib/openapi/base.ts +++ b/packages/api-client/lib/openapi/base.ts @@ -12,10 +12,11 @@ * Do not edit the class manually. */ -import { Configuration } from './configuration'; +import type { Configuration } from './configuration'; // Some imports not used depending on template conditions // @ts-ignore -import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; +import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; export const BASE_PATH = 'http://localhost'.replace(/\/+$/, ''); @@ -37,7 +38,7 @@ export const COLLECTION_FORMATS = { */ export interface RequestArgs { url: string; - options: AxiosRequestConfig; + options: RawAxiosRequestConfig; } /** @@ -55,7 +56,7 @@ export class BaseAPI { ) { if (configuration) { this.configuration = configuration; - this.basePath = configuration.basePath || this.basePath; + this.basePath = configuration.basePath ?? basePath; } } } @@ -67,8 +68,21 @@ export class BaseAPI { * @extends {Error} */ export class RequiredError extends Error { - name: 'RequiredError' = 'RequiredError'; constructor(public field: string, msg?: string) { super(msg); + this.name = 'RequiredError'; } } + +interface ServerMap { + [key: string]: { + url: string; + description: string; + }[]; +} + +/** + * + * @export + */ +export const operationServerMap: ServerMap = {}; diff --git a/packages/api-client/lib/openapi/common.ts b/packages/api-client/lib/openapi/common.ts index 4dce51f90..3770a2f6c 100644 --- a/packages/api-client/lib/openapi/common.ts +++ b/packages/api-client/lib/openapi/common.ts @@ -12,9 +12,10 @@ * Do not edit the class manually. */ -import { Configuration } from './configuration'; -import { RequiredError, RequestArgs } from './base'; -import { AxiosInstance, AxiosResponse } from 'axios'; +import type { Configuration } from './configuration'; +import type { RequestArgs } from './base'; +import type { AxiosInstance, AxiosResponse } from 'axios'; +import { RequiredError } from './base'; /** * @@ -106,6 +107,7 @@ function setFlattenedQueryParams( parameter: any, key: string = '', ): void { + if (parameter == null) return; if (typeof parameter === 'object') { if (Array.isArray(parameter)) { (parameter as any[]).forEach((item) => setFlattenedQueryParams(urlSearchParams, item, key)); @@ -178,7 +180,7 @@ export const createRequestFunction = function ( ) => { const axiosRequestArgs = { ...axiosArgs.options, - url: (configuration?.basePath || basePath) + axiosArgs.url, + url: (axios.defaults.baseURL ? '' : configuration?.basePath ?? basePath) + axiosArgs.url, }; return axios.request(axiosRequestArgs); }; diff --git a/packages/api-client/lib/openapi/configuration.ts b/packages/api-client/lib/openapi/configuration.ts index 333cb602b..aadddbeb6 100644 --- a/packages/api-client/lib/openapi/configuration.ts +++ b/packages/api-client/lib/openapi/configuration.ts @@ -26,6 +26,7 @@ export interface ConfigurationParameters { | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); basePath?: string; + serverIndex?: number; baseOptions?: any; formDataCtor?: new () => any; } @@ -73,6 +74,13 @@ export class Configuration { * @memberof Configuration */ basePath?: string; + /** + * override server index + * + * @type {number} + * @memberof Configuration + */ + serverIndex?: number; /** * base options for axios calls * @@ -95,6 +103,7 @@ export class Configuration { this.password = param.password; this.accessToken = param.accessToken; this.basePath = param.basePath; + this.serverIndex = param.serverIndex; this.baseOptions = param.baseOptions; this.formDataCtor = param.formDataCtor; } diff --git a/packages/api-client/lib/version.ts b/packages/api-client/lib/version.ts index b14e3132a..d7c528695 100644 --- a/packages/api-client/lib/version.ts +++ b/packages/api-client/lib/version.ts @@ -3,6 +3,6 @@ import { version as rmfModelVer } from 'rmf-models'; export const version = { rmfModels: rmfModelVer, - rmfServer: 'd6099b09fb9f13e06e029014f35a8ff1c4810abf', - openapiGenerator: '6.2.1', + rmfServer: '0c773dc3f4b1a5df8bccb1b9da9d66fc3b075b28', + openapiGenerator: '', }; diff --git a/packages/api-client/openapi-generator.json b/packages/api-client/openapi-generator.json deleted file mode 100644 index d756a1752..000000000 --- a/packages/api-client/openapi-generator.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modelPropertyNaming": "original" -} diff --git a/packages/api-client/openapitools.json b/packages/api-client/openapitools.json new file mode 100644 index 000000000..dc38c6c5c --- /dev/null +++ b/packages/api-client/openapitools.json @@ -0,0 +1,15 @@ +{ + "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "7.4.0", + "generators": { + "typescript-axios": { + "generatorName": "typescript-axios", + "inputSpec": "build/openapi.json", + "output": "lib/openapi", + "skipValidateSpec": true + } + } + } +} diff --git a/packages/api-client/package.json b/packages/api-client/package.json index ea2bb8f2d..5064324c6 100644 --- a/packages/api-client/package.json +++ b/packages/api-client/package.json @@ -7,7 +7,7 @@ "build": "tsc --build", "clean": "tsc --build --clean", "prepack": "pnpm run clean && pnpm run --filter {.}... build && pnpm run lint", - "lint": "eslint --max-warnings 0 --ext ts,tsx lib", + "lint": "eslint --max-warnings 0 lib", "test": "jasmine" }, "author": "koonpeng@openrobotics.org", @@ -19,17 +19,17 @@ "socket.io-client": "^3.1.3" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.33.0", + "@openapitools/openapi-generator-cli": "^2.13.1", "@types/jasmine": "^3.8.2", - "axios": "^0.21.1", - "eslint": "^7.26.0", + "@typescript-eslint/eslint-plugin": "^7.5.0", + "@typescript-eslint/parser": "^7.5.0", + "eslint": "^8.57.0", "jasmine": "^3.6.6", "ts-node": "^9.1.1", - "typescript": "~4.4.4" + "typescript": "~5.4.3" }, "peerDependencies": { - "axios": "^0.21.1" + "axios": "^1.6.8" }, "files": [ "dist/", diff --git a/packages/api-client/schema/index.ts b/packages/api-client/schema/index.ts index 8f8820739..36e796e52 100644 --- a/packages/api-client/schema/index.ts +++ b/packages/api-client/schema/index.ts @@ -1,12 +1,12 @@ export default { - openapi: '3.0.2', + openapi: '3.0.3', info: { title: 'RMF API Server', version: '0.1.0' }, paths: { '/socket.io': { get: { summary: 'Socket.io endpoint', description: - '\n# NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint.\n\n## About\nThis exposes a minimal pubsub system built on top of socket.io.\nIt works similar to a normal socket.io endpoint, except that are 2 special\nrooms which control subscriptions.\n\n## Rooms\n### subscribe\nClients must send a message to this room to start receiving messages on other rooms.\nThe message must be of the form:\n\n```\n{\n "room": ""\n}\n```\n\n### unsubscribe\nClients can send a message to this room to stop receiving messages on other rooms.\nThe message must be of the form:\n\n```\n{\n "room": ""\n}\n```\n \n### /alerts\n\n\n```\n{\n "title": "Alert",\n "description": "General alert that can be triggered by events.",\n "type": "object",\n "properties": {\n "id": {\n "title": "Id",\n "maxLength": 255,\n "type": "string"\n },\n "original_id": {\n "title": "Original Id",\n "maxLength": 255,\n "type": "string"\n },\n "category": {\n "title": "Category",\n "description": "Default: default
Task: task
Fleet: fleet
Robot: robot",\n "maxLength": 7,\n "type": "string"\n },\n "unix_millis_created_time": {\n "title": "Unix Millis Created Time",\n "minimum": -9223372036854775808,\n "maximum": 9223372036854775807,\n "type": "integer"\n },\n "acknowledged_by": {\n "title": "Acknowledged By",\n "maxLength": 255,\n "nullable": true,\n "type": "string"\n },\n "unix_millis_acknowledged_time": {\n "title": "Unix Millis Acknowledged Time",\n "minimum": -9223372036854775808,\n "maximum": 9223372036854775807,\n "nullable": true,\n "type": "integer"\n }\n },\n "required": [\n "id",\n "original_id",\n "category",\n "unix_millis_created_time"\n ],\n "additionalProperties": false\n}\n```\n\n\n### /beacons\n\n\n```\n{\n "title": "BeaconState",\n "type": "object",\n "properties": {\n "id": {\n "title": "Id",\n "maxLength": 255,\n "type": "string"\n },\n "online": {\n "title": "Online",\n "type": "boolean"\n },\n "category": {\n "title": "Category",\n "maxLength": 255,\n "nullable": true,\n "type": "string"\n },\n "activated": {\n "title": "Activated",\n "type": "boolean"\n },\n "level": {\n "title": "Level",\n "maxLength": 255,\n "nullable": true,\n "type": "string"\n }\n },\n "required": [\n "id",\n "online",\n "activated"\n ],\n "additionalProperties": false\n}\n```\n\n\n### /building_map\n\n\n```\n{\n "title": "BuildingMap",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "levels": {\n "title": "Levels",\n "type": "array",\n "items": {\n "$ref": "#/definitions/Level"\n }\n },\n "lifts": {\n "title": "Lifts",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/Lift"\n }\n }\n },\n "required": [\n "name",\n "levels",\n "lifts"\n ],\n "definitions": {\n "AffineImage": {\n "title": "AffineImage",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "x_offset": {\n "title": "X Offset",\n "default": 0,\n "type": "number"\n },\n "y_offset": {\n "title": "Y Offset",\n "default": 0,\n "type": "number"\n },\n "yaw": {\n "title": "Yaw",\n "default": 0,\n "type": "number"\n },\n "scale": {\n "title": "Scale",\n "default": 0,\n "type": "number"\n },\n "encoding": {\n "title": "Encoding",\n "default": "",\n "type": "string"\n },\n "data": {\n "title": "Data",\n "type": "string"\n }\n },\n "required": [\n "name",\n "x_offset",\n "y_offset",\n "yaw",\n "scale",\n "encoding",\n "data"\n ]\n },\n "Place": {\n "title": "Place",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "x": {\n "title": "X",\n "default": 0,\n "type": "number"\n },\n "y": {\n "title": "Y",\n "default": 0,\n "type": "number"\n },\n "yaw": {\n "title": "Yaw",\n "default": 0,\n "type": "number"\n },\n "position_tolerance": {\n "title": "Position Tolerance",\n "default": 0,\n "type": "number"\n },\n "yaw_tolerance": {\n "title": "Yaw Tolerance",\n "default": 0,\n "type": "number"\n }\n },\n "required": [\n "name",\n "x",\n "y",\n "yaw",\n "position_tolerance",\n "yaw_tolerance"\n ]\n },\n "Door": {\n "title": "Door",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "v1_x": {\n "title": "V1 X",\n "default": 0,\n "type": "number"\n },\n "v1_y": {\n "title": "V1 Y",\n "default": 0,\n "type": "number"\n },\n "v2_x": {\n "title": "V2 X",\n "default": 0,\n "type": "number"\n },\n "v2_y": {\n "title": "V2 Y",\n "default": 0,\n "type": "number"\n },\n "door_type": {\n "title": "Door Type",\n "default": 0,\n "minimum": 0,\n "maximum": 255,\n "type": "integer"\n },\n "motion_range": {\n "title": "Motion Range",\n "default": 0,\n "type": "number"\n },\n "motion_direction": {\n "title": "Motion Direction",\n "default": 0,\n "minimum": -2147483648,\n "maximum": 2147483647,\n "type": "integer"\n }\n },\n "required": [\n "name",\n "v1_x",\n "v1_y",\n "v2_x",\n "v2_y",\n "door_type",\n "motion_range",\n "motion_direction"\n ]\n },\n "Param": {\n "title": "Param",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "type": {\n "title": "Type",\n "default": 0,\n "minimum": 0,\n "maximum": 4294967295,\n "type": "integer"\n },\n "value_int": {\n "title": "Value Int",\n "default": 0,\n "minimum": -2147483648,\n "maximum": 2147483647,\n "type": "integer"\n },\n "value_float": {\n "title": "Value Float",\n "default": 0,\n "type": "number"\n },\n "value_string": {\n "title": "Value String",\n "default": "",\n "type": "string"\n },\n "value_bool": {\n "title": "Value Bool",\n "default": false,\n "type": "boolean"\n }\n },\n "required": [\n "name",\n "type",\n "value_int",\n "value_float",\n "value_string",\n "value_bool"\n ]\n },\n "GraphNode": {\n "title": "GraphNode",\n "type": "object",\n "properties": {\n "x": {\n "title": "X",\n "default": 0,\n "type": "number"\n },\n "y": {\n "title": "Y",\n "default": 0,\n "type": "number"\n },\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "params": {\n "title": "Params",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/Param"\n }\n }\n },\n "required": [\n "x",\n "y",\n "name",\n "params"\n ]\n },\n "GraphEdge": {\n "title": "GraphEdge",\n "type": "object",\n "properties": {\n "v1_idx": {\n "title": "V1 Idx",\n "default": 0,\n "minimum": 0,\n "maximum": 4294967295,\n "type": "integer"\n },\n "v2_idx": {\n "title": "V2 Idx",\n "default": 0,\n "minimum": 0,\n "maximum": 4294967295,\n "type": "integer"\n },\n "params": {\n "title": "Params",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/Param"\n }\n },\n "edge_type": {\n "title": "Edge Type",\n "default": 0,\n "minimum": 0,\n "maximum": 255,\n "type": "integer"\n }\n },\n "required": [\n "v1_idx",\n "v2_idx",\n "params",\n "edge_type"\n ]\n },\n "Graph": {\n "title": "Graph",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "vertices": {\n "title": "Vertices",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/GraphNode"\n }\n },\n "edges": {\n "title": "Edges",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/GraphEdge"\n }\n },\n "params": {\n "title": "Params",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/Param"\n }\n }\n },\n "required": [\n "name",\n "vertices",\n "edges",\n "params"\n ]\n },\n "Level": {\n "title": "Level",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "elevation": {\n "title": "Elevation",\n "default": 0,\n "type": "number"\n },\n "images": {\n "title": "Images",\n "type": "array",\n "items": {\n "$ref": "#/definitions/AffineImage"\n }\n },\n "places": {\n "title": "Places",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/Place"\n }\n },\n "doors": {\n "title": "Doors",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/Door"\n }\n },\n "nav_graphs": {\n "title": "Nav Graphs",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/Graph"\n }\n },\n "wall_graph": {\n "title": "Wall Graph",\n "default": {\n "name": "",\n "vertices": [],\n "edges": [],\n "params": []\n },\n "allOf": [\n {\n "$ref": "#/definitions/Graph"\n }\n ]\n }\n },\n "required": [\n "name",\n "elevation",\n "images",\n "places",\n "doors",\n "nav_graphs",\n "wall_graph"\n ]\n },\n "Lift": {\n "title": "Lift",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "default": "",\n "type": "string"\n },\n "levels": {\n "title": "Levels",\n "default": [],\n "type": "array",\n "items": {\n "type": "string"\n }\n },\n "doors": {\n "title": "Doors",\n "default": [],\n "type": "array",\n "items": {\n "$ref": "#/definitions/Door"\n }\n },\n "wall_graph": {\n "title": "Wall Graph",\n "default": {\n "name": "",\n "vertices": [],\n "edges": [],\n "params": []\n },\n "allOf": [\n {\n "$ref": "#/definitions/Graph"\n }\n ]\n },\n "ref_x": {\n "title": "Ref X",\n "default": 0,\n "type": "number"\n },\n "ref_y": {\n "title": "Ref Y",\n "default": 0,\n "type": "number"\n },\n "ref_yaw": {\n "title": "Ref Yaw",\n "default": 0,\n "type": "number"\n },\n "width": {\n "title": "Width",\n "default": 0,\n "type": "number"\n },\n "depth": {\n "title": "Depth",\n "default": 0,\n "type": "number"\n }\n },\n "required": [\n "name",\n "levels",\n "doors",\n "wall_graph",\n "ref_x",\n "ref_y",\n "ref_yaw",\n "width",\n "depth"\n ]\n }\n }\n}\n```\n\n\n### /doors/{door_name}/state\n\n\n```\n{\n "title": "DoorState",\n "type": "object",\n "properties": {\n "door_time": {\n "title": "Door Time",\n "default": {\n "sec": 0,\n "nanosec": 0\n },\n "allOf": [\n {\n "$ref": "#/definitions/Time"\n }\n ]\n },\n "door_name": {\n "title": "Door Name",\n "default": "",\n "type": "string"\n },\n "current_mode": {\n "title": "Current Mode",\n "default": {\n "value": 0\n },\n "allOf": [\n {\n "$ref": "#/definitions/DoorMode"\n }\n ]\n }\n },\n "required": [\n "door_time",\n "door_name",\n "current_mode"\n ],\n "definitions": {\n "Time": {\n "title": "Time",\n "type": "object",\n "properties": {\n "sec": {\n "title": "Sec",\n "default": 0,\n "minimum": -2147483648,\n "maximum": 2147483647,\n "type": "integer"\n },\n "nanosec": {\n "title": "Nanosec",\n "default": 0,\n "minimum": 0,\n "maximum": 4294967295,\n "type": "integer"\n }\n },\n "required": [\n "sec",\n "nanosec"\n ]\n },\n "DoorMode": {\n "title": "DoorMode",\n "type": "object",\n "properties": {\n "value": {\n "title": "Value",\n "default": 0,\n "minimum": 0,\n "maximum": 4294967295,\n "type": "integer"\n }\n },\n "required": [\n "value"\n ]\n }\n }\n}\n```\n\n\n### /doors/{door_name}/health\n\n\n```\n{\n "title": "DoorHealth",\n "type": "object",\n "properties": {\n "health_status": {\n "title": "Health Status",\n "maxLength": 255,\n "nullable": true,\n "type": "string"\n },\n "health_message": {\n "title": "Health Message",\n "nullable": true,\n "type": "string"\n },\n "id_": {\n "title": "Id ",\n "maxLength": 255,\n "type": "string"\n }\n },\n "required": [\n "health_status",\n "id_"\n ],\n "additionalProperties": false\n}\n```\n\n\n### /lifts/{lift_name}/state\n\n\n```\n{\n "title": "LiftState",\n "type": "object",\n "properties": {\n "lift_time": {\n "title": "Lift Time",\n "default": {\n "sec": 0,\n "nanosec": 0\n },\n "allOf": [\n {\n "$ref": "#/definitions/Time"\n }\n ]\n },\n "lift_name": {\n "title": "Lift Name",\n "default": "",\n "type": "string"\n },\n "available_floors": {\n "title": "Available Floors",\n "default": [],\n "type": "array",\n "items": {\n "type": "string"\n }\n },\n "current_floor": {\n "title": "Current Floor",\n "default": "",\n "type": "string"\n },\n "destination_floor": {\n "title": "Destination Floor",\n "default": "",\n "type": "string"\n },\n "door_state": {\n "title": "Door State",\n "default": 0,\n "minimum": 0,\n "maximum": 255,\n "type": "integer"\n },\n "motion_state": {\n "title": "Motion State",\n "default": 0,\n "minimum": 0,\n "maximum": 255,\n "type": "integer"\n },\n "available_modes": {\n "title": "Available Modes",\n "type": "array",\n "items": {\n "type": "integer"\n }\n },\n "current_mode": {\n "title": "Current Mode",\n "default": 0,\n "minimum": 0,\n "maximum": 255,\n "type": "integer"\n },\n "session_id": {\n "title": "Session Id",\n "default": "",\n "type": "string"\n }\n },\n "required": [\n "lift_time",\n "lift_name",\n "available_floors",\n "current_floor",\n "destination_floor",\n "door_state",\n "motion_state",\n "available_modes",\n "current_mode",\n "session_id"\n ],\n "definitions": {\n "Time": {\n "title": "Time",\n "type": "object",\n "properties": {\n "sec": {\n "title": "Sec",\n "default": 0,\n "minimum": -2147483648,\n "maximum": 2147483647,\n "type": "integer"\n },\n "nanosec": {\n "title": "Nanosec",\n "default": 0,\n "minimum": 0,\n "maximum": 4294967295,\n "type": "integer"\n }\n },\n "required": [\n "sec",\n "nanosec"\n ]\n }\n }\n}\n```\n\n\n### /lifts/{lift_name}/health\n\n\n```\n{\n "title": "LiftHealth",\n "type": "object",\n "properties": {\n "health_status": {\n "title": "Health Status",\n "maxLength": 255,\n "nullable": true,\n "type": "string"\n },\n "health_message": {\n "title": "Health Message",\n "nullable": true,\n "type": "string"\n },\n "id_": {\n "title": "Id ",\n "maxLength": 255,\n "type": "string"\n }\n },\n "required": [\n "health_status",\n "id_"\n ],\n "additionalProperties": false\n}\n```\n\n\n### /tasks/{task_id}/state\n\n\n```\n{\n "title": "TaskState",\n "type": "object",\n "properties": {\n "booking": {\n "$ref": "#/definitions/Booking"\n },\n "category": {\n "$ref": "#/definitions/Category"\n },\n "detail": {\n "$ref": "#/definitions/Detail"\n },\n "unix_millis_start_time": {\n "title": "Unix Millis Start Time",\n "type": "integer"\n },\n "unix_millis_finish_time": {\n "title": "Unix Millis Finish Time",\n "type": "integer"\n },\n "original_estimate_millis": {\n "$ref": "#/definitions/EstimateMillis"\n },\n "estimate_millis": {\n "$ref": "#/definitions/EstimateMillis"\n },\n "assigned_to": {\n "title": "Assigned To",\n "description": "Which agent (robot) is the task assigned to",\n "allOf": [\n {\n "$ref": "#/definitions/AssignedTo"\n }\n ]\n },\n "status": {\n "$ref": "#/definitions/Status"\n },\n "dispatch": {\n "$ref": "#/definitions/Dispatch"\n },\n "phases": {\n "title": "Phases",\n "description": "A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.",\n "type": "object",\n "additionalProperties": {\n "$ref": "#/definitions/Phase"\n }\n },\n "completed": {\n "title": "Completed",\n "description": "An array of the IDs of completed phases of this task",\n "type": "array",\n "items": {\n "$ref": "#/definitions/Id"\n }\n },\n "active": {\n "title": "Active",\n "description": "The ID of the active phase for this task",\n "allOf": [\n {\n "$ref": "#/definitions/Id"\n }\n ]\n },\n "pending": {\n "title": "Pending",\n "description": "An array of the pending phases of this task",\n "type": "array",\n "items": {\n "$ref": "#/definitions/Id"\n }\n },\n "interruptions": {\n "title": "Interruptions",\n "description": "A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.",\n "type": "object",\n "additionalProperties": {\n "$ref": "#/definitions/Interruption"\n }\n },\n "cancellation": {\n "title": "Cancellation",\n "description": "If the task was cancelled, this will describe information about the request.",\n "allOf": [\n {\n "$ref": "#/definitions/Cancellation"\n }\n ]\n },\n "killed": {\n "title": "Killed",\n "description": "If the task was killed, this will describe information about the request.",\n "allOf": [\n {\n "$ref": "#/definitions/Killed"\n }\n ]\n }\n },\n "required": [\n "booking"\n ],\n "definitions": {\n "Booking": {\n "title": "Booking",\n "type": "object",\n "properties": {\n "id": {\n "title": "Id",\n "description": "The unique identifier for this task",\n "type": "string"\n },\n "unix_millis_earliest_start_time": {\n "title": "Unix Millis Earliest Start Time",\n "type": "integer"\n },\n "unix_millis_request_time": {\n "title": "Unix Millis Request Time",\n "type": "integer"\n },\n "priority": {\n "title": "Priority",\n "description": "Priority information about this task",\n "anyOf": [\n {\n "type": "object"\n },\n {\n "type": "string"\n }\n ]\n },\n "labels": {\n "title": "Labels",\n "description": "Information about how and why this task was booked",\n "type": "array",\n "items": {\n "type": "string"\n }\n },\n "requester": {\n "title": "Requester",\n "description": "(Optional) An identifier for the entity that requested this task",\n "type": "string"\n }\n },\n "required": [\n "id"\n ]\n },\n "Category": {\n "title": "Category",\n "description": "The category of this task or phase",\n "type": "string"\n },\n "Detail": {\n "title": "Detail",\n "description": "Detailed information about a task, phase, or event",\n "anyOf": [\n {\n "type": "object"\n },\n {\n "type": "array",\n "items": {}\n },\n {\n "type": "string"\n }\n ]\n },\n "EstimateMillis": {\n "title": "EstimateMillis",\n "description": "An estimate, in milliseconds, of how long the subject will take to complete",\n "minimum": 0,\n "type": "integer"\n },\n "AssignedTo": {\n "title": "AssignedTo",\n "type": "object",\n "properties": {\n "group": {\n "title": "Group",\n "type": "string"\n },\n "name": {\n "title": "Name",\n "type": "string"\n }\n },\n "required": [\n "group",\n "name"\n ]\n },\n "Status": {\n "title": "Status",\n "description": "An enumeration.",\n "enum": [\n "uninitialized",\n "blocked",\n "error",\n "failed",\n "queued",\n "standby",\n "underway",\n "delayed",\n "skipped",\n "canceled",\n "killed",\n "completed"\n ]\n },\n "Status1": {\n "title": "Status1",\n "description": "An enumeration.",\n "enum": [\n "queued",\n "selected",\n "dispatched",\n "failed_to_assign",\n "canceled_in_flight"\n ]\n },\n "Assignment": {\n "title": "Assignment",\n "type": "object",\n "properties": {\n "fleet_name": {\n "title": "Fleet Name",\n "type": "string"\n },\n "expected_robot_name": {\n "title": "Expected Robot Name",\n "type": "string"\n }\n }\n },\n "Error": {\n "title": "Error",\n "type": "object",\n "properties": {\n "code": {\n "title": "Code",\n "description": "A standard code for the kind of error that has occurred",\n "minimum": 0,\n "type": "integer"\n },\n "category": {\n "title": "Category",\n "description": "The category of the error",\n "type": "string"\n },\n "detail": {\n "title": "Detail",\n "description": "Details about the error",\n "type": "string"\n }\n }\n },\n "Dispatch": {\n "title": "Dispatch",\n "type": "object",\n "properties": {\n "status": {\n "$ref": "#/definitions/Status1"\n },\n "assignment": {\n "$ref": "#/definitions/Assignment"\n },\n "errors": {\n "title": "Errors",\n "type": "array",\n "items": {\n "$ref": "#/definitions/Error"\n }\n }\n },\n "required": [\n "status"\n ]\n },\n "Id": {\n "title": "Id",\n "minimum": 0,\n "type": "integer"\n },\n "EventState": {\n "title": "EventState",\n "type": "object",\n "properties": {\n "id": {\n "$ref": "#/definitions/Id"\n },\n "status": {\n "$ref": "#/definitions/Status"\n },\n "name": {\n "title": "Name",\n "description": "The brief name of the event",\n "type": "string"\n },\n "detail": {\n "title": "Detail",\n "description": "Detailed information about the event",\n "allOf": [\n {\n "$ref": "#/definitions/Detail"\n }\n ]\n },\n "deps": {\n "title": "Deps",\n "description": "This event may depend on other events. This array contains the IDs of those other event dependencies.",\n "type": "array",\n "items": {\n "type": "integer",\n "minimum": 0\n }\n }\n },\n "required": [\n "id"\n ]\n },\n "Undo": {\n "title": "Undo",\n "type": "object",\n "properties": {\n "unix_millis_request_time": {\n "title": "Unix Millis Request Time",\n "description": "The time that the undo skip request arrived",\n "type": "integer"\n },\n "labels": {\n "title": "Labels",\n "description": "Labels to describe the undo skip request",\n "type": "array",\n "items": {\n "type": "string"\n }\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ]\n },\n "SkipPhaseRequest": {\n "title": "SkipPhaseRequest",\n "type": "object",\n "properties": {\n "unix_millis_request_time": {\n "title": "Unix Millis Request Time",\n "description": "The time that the skip request arrived",\n "type": "integer"\n },\n "labels": {\n "title": "Labels",\n "description": "Labels to describe the purpose of the skip request",\n "type": "array",\n "items": {\n "type": "string"\n }\n },\n "undo": {\n "title": "Undo",\n "description": "Information about an undo skip request that applied to this request",\n "allOf": [\n {\n "$ref": "#/definitions/Undo"\n }\n ]\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ]\n },\n "Phase": {\n "title": "Phase",\n "type": "object",\n "properties": {\n "id": {\n "$ref": "#/definitions/Id"\n },\n "category": {\n "$ref": "#/definitions/Category"\n },\n "detail": {\n "$ref": "#/definitions/Detail"\n },\n "unix_millis_start_time": {\n "title": "Unix Millis Start Time",\n "type": "integer"\n },\n "unix_millis_finish_time": {\n "title": "Unix Millis Finish Time",\n "type": "integer"\n },\n "original_estimate_millis": {\n "$ref": "#/definitions/EstimateMillis"\n },\n "estimate_millis": {\n "$ref": "#/definitions/EstimateMillis"\n },\n "final_event_id": {\n "$ref": "#/definitions/Id"\n },\n "events": {\n "title": "Events",\n "description": "A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.",\n "type": "object",\n "additionalProperties": {\n "$ref": "#/definitions/EventState"\n }\n },\n "skip_requests": {\n "title": "Skip Requests",\n "description": "Information about any skip requests that have been received",\n "type": "object",\n "additionalProperties": {\n "$ref": "#/definitions/SkipPhaseRequest"\n }\n }\n },\n "required": [\n "id"\n ]\n },\n "ResumedBy": {\n "title": "ResumedBy",\n "type": "object",\n "properties": {\n "unix_millis_request_time": {\n "title": "Unix Millis Request Time",\n "description": "The time that the resume request arrived",\n "type": "integer"\n },\n "labels": {\n "title": "Labels",\n "description": "Labels to describe the resume request",\n "type": "array",\n "items": {\n "type": "string"\n }\n }\n },\n "required": [\n "labels"\n ]\n },\n "Interruption": {\n "title": "Interruption",\n "type": "object",\n "properties": {\n "unix_millis_request_time": {\n "title": "Unix Millis Request Time",\n "description": "The time that the interruption request arrived",\n "type": "integer"\n },\n "labels": {\n "title": "Labels",\n "description": "Labels to describe the purpose of the interruption",\n "type": "array",\n "items": {\n "type": "string"\n }\n },\n "resumed_by": {\n "title": "Resumed By",\n "description": "Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.",\n "allOf": [\n {\n "$ref": "#/definitions/ResumedBy"\n }\n ]\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ]\n },\n "Cancellation": {\n "title": "Cancellation",\n "type": "object",\n "properties": {\n "unix_millis_request_time": {\n "title": "Unix Millis Request Time",\n "description": "The time that the cancellation request arrived",\n "type": "integer"\n },\n "labels": {\n "title": "Labels",\n "description": "Labels to describe the cancel request",\n "type": "array",\n "items": {\n "type": "string"\n }\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ]\n },\n "Killed": {\n "title": "Killed",\n "type": "object",\n "properties": {\n "unix_millis_request_time": {\n "title": "Unix Millis Request Time",\n "description": "The time that the cancellation request arrived",\n "type": "integer"\n },\n "labels": {\n "title": "Labels",\n "description": "Labels to describe the kill request",\n "type": "array",\n "items": {\n "type": "string"\n }\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ]\n }\n }\n}\n```\n\n\n### /tasks/{task_id}/log\n\n\n```\n{\n "title": "TaskEventLog",\n "type": "object",\n "properties": {\n "task_id": {\n "title": "Task Id",\n "type": "string"\n },\n "log": {\n "title": "Log",\n "description": "Log entries related to the overall task",\n "type": "array",\n "items": {\n "$ref": "#/definitions/LogEntry"\n }\n },\n "phases": {\n "title": "Phases",\n "description": "A dictionary whose keys (property names) are the indices of a phase",\n "type": "object",\n "additionalProperties": {\n "$ref": "#/definitions/Phases"\n }\n }\n },\n "required": [\n "task_id"\n ],\n "additionalProperties": false,\n "definitions": {\n "Tier": {\n "title": "Tier",\n "description": "An enumeration.",\n "enum": [\n "uninitialized",\n "info",\n "warning",\n "error"\n ]\n },\n "LogEntry": {\n "title": "LogEntry",\n "type": "object",\n "properties": {\n "seq": {\n "title": "Seq",\n "description": "Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.",\n "exclusiveMaximum": 4294967296,\n "minimum": 0,\n "type": "integer"\n },\n "tier": {\n "description": "The importance level of the log entry",\n "allOf": [\n {\n "$ref": "#/definitions/Tier"\n }\n ]\n },\n "unix_millis_time": {\n "title": "Unix Millis Time",\n "type": "integer"\n },\n "text": {\n "title": "Text",\n "description": "The text of the log entry",\n "type": "string"\n }\n },\n "required": [\n "seq",\n "tier",\n "unix_millis_time",\n "text"\n ]\n },\n "Phases": {\n "title": "Phases",\n "type": "object",\n "properties": {\n "log": {\n "title": "Log",\n "description": "Log entries related to the overall phase",\n "type": "array",\n "items": {\n "$ref": "#/definitions/LogEntry"\n }\n },\n "events": {\n "title": "Events",\n "description": "A dictionary whose keys (property names) are the indices of an event in the phase",\n "type": "object",\n "additionalProperties": {\n "type": "array",\n "items": {\n "$ref": "#/definitions/LogEntry"\n }\n }\n }\n },\n "additionalProperties": false\n }\n }\n}\n```\n\n\n### /dispensers/{guid}/state\n\n\n```\n{\n "title": "DispenserState",\n "type": "object",\n "properties": {\n "time": {\n "title": "Time",\n "default": {\n "sec": 0,\n "nanosec": 0\n },\n "allOf": [\n {\n "$ref": "#/definitions/Time"\n }\n ]\n },\n "guid": {\n "title": "Guid",\n "default": "",\n "type": "string"\n },\n "mode": {\n "title": "Mode",\n "default": 0,\n "minimum": -2147483648,\n "maximum": 2147483647,\n "type": "integer"\n },\n "request_guid_queue": {\n "title": "Request Guid Queue",\n "default": [],\n "type": "array",\n "items": {\n "type": "string"\n }\n },\n "seconds_remaining": {\n "title": "Seconds Remaining",\n "default": 0,\n "type": "number"\n }\n },\n "required": [\n "time",\n "guid",\n "mode",\n "request_guid_queue",\n "seconds_remaining"\n ],\n "definitions": {\n "Time": {\n "title": "Time",\n "type": "object",\n "properties": {\n "sec": {\n "title": "Sec",\n "default": 0,\n "minimum": -2147483648,\n "maximum": 2147483647,\n "type": "integer"\n },\n "nanosec": {\n "title": "Nanosec",\n "default": 0,\n "minimum": 0,\n "maximum": 4294967295,\n "type": "integer"\n }\n },\n "required": [\n "sec",\n "nanosec"\n ]\n }\n }\n}\n```\n\n\n### /dispensers/{guid}/health\n\n\n```\n{\n "title": "DispenserHealth",\n "type": "object",\n "properties": {\n "health_status": {\n "title": "Health Status",\n "maxLength": 255,\n "nullable": true,\n "type": "string"\n },\n "health_message": {\n "title": "Health Message",\n "nullable": true,\n "type": "string"\n },\n "id_": {\n "title": "Id ",\n "maxLength": 255,\n "type": "string"\n }\n },\n "required": [\n "health_status",\n "id_"\n ],\n "additionalProperties": false\n}\n```\n\n\n### /ingestors/{guid}/state\n\n\n```\n{\n "title": "IngestorState",\n "type": "object",\n "properties": {\n "time": {\n "title": "Time",\n "default": {\n "sec": 0,\n "nanosec": 0\n },\n "allOf": [\n {\n "$ref": "#/definitions/Time"\n }\n ]\n },\n "guid": {\n "title": "Guid",\n "default": "",\n "type": "string"\n },\n "mode": {\n "title": "Mode",\n "default": 0,\n "minimum": -2147483648,\n "maximum": 2147483647,\n "type": "integer"\n },\n "request_guid_queue": {\n "title": "Request Guid Queue",\n "default": [],\n "type": "array",\n "items": {\n "type": "string"\n }\n },\n "seconds_remaining": {\n "title": "Seconds Remaining",\n "default": 0,\n "type": "number"\n }\n },\n "required": [\n "time",\n "guid",\n "mode",\n "request_guid_queue",\n "seconds_remaining"\n ],\n "definitions": {\n "Time": {\n "title": "Time",\n "type": "object",\n "properties": {\n "sec": {\n "title": "Sec",\n "default": 0,\n "minimum": -2147483648,\n "maximum": 2147483647,\n "type": "integer"\n },\n "nanosec": {\n "title": "Nanosec",\n "default": 0,\n "minimum": 0,\n "maximum": 4294967295,\n "type": "integer"\n }\n },\n "required": [\n "sec",\n "nanosec"\n ]\n }\n }\n}\n```\n\n\n### /ingestors/{guid}/health\n\n\n```\n{\n "title": "IngestorHealth",\n "type": "object",\n "properties": {\n "health_status": {\n "title": "Health Status",\n "maxLength": 255,\n "nullable": true,\n "type": "string"\n },\n "health_message": {\n "title": "Health Message",\n "nullable": true,\n "type": "string"\n },\n "id_": {\n "title": "Id ",\n "maxLength": 255,\n "type": "string"\n }\n },\n "required": [\n "health_status",\n "id_"\n ],\n "additionalProperties": false\n}\n```\n\n\n### /fleets/{name}/state\n\n\n```\n{\n "title": "FleetState",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "robots": {\n "title": "Robots",\n "description": "A dictionary of the states of the robots that belong to this fleet",\n "type": "object",\n "additionalProperties": {\n "$ref": "#/definitions/RobotState"\n }\n }\n },\n "definitions": {\n "Status2": {\n "title": "Status2",\n "description": "An enumeration.",\n "enum": [\n "uninitialized",\n "offline",\n "shutdown",\n "idle",\n "charging",\n "working",\n "error"\n ]\n },\n "Location2D": {\n "title": "Location2D",\n "type": "object",\n "properties": {\n "map": {\n "title": "Map",\n "type": "string"\n },\n "x": {\n "title": "X",\n "type": "number"\n },\n "y": {\n "title": "Y",\n "type": "number"\n },\n "yaw": {\n "title": "Yaw",\n "type": "number"\n }\n },\n "required": [\n "map",\n "x",\n "y",\n "yaw"\n ]\n },\n "Issue": {\n "title": "Issue",\n "type": "object",\n "properties": {\n "category": {\n "title": "Category",\n "description": "Category of the robot\'s issue",\n "type": "string"\n },\n "detail": {\n "title": "Detail",\n "description": "Detailed information about the issue",\n "anyOf": [\n {\n "type": "object"\n },\n {\n "type": "array",\n "items": {}\n },\n {\n "type": "string"\n }\n ]\n }\n }\n },\n "RobotState": {\n "title": "RobotState",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "status": {\n "description": "A simple token representing the status of the robot",\n "allOf": [\n {\n "$ref": "#/definitions/Status2"\n }\n ]\n },\n "task_id": {\n "title": "Task Id",\n "description": "The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.",\n "type": "string"\n },\n "unix_millis_time": {\n "title": "Unix Millis Time",\n "type": "integer"\n },\n "location": {\n "$ref": "#/definitions/Location2D"\n },\n "battery": {\n "title": "Battery",\n "description": "State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)",\n "minimum": 0.0,\n "maximum": 1.0,\n "type": "number"\n },\n "issues": {\n "title": "Issues",\n "description": "A list of issues with the robot that operators need to address",\n "type": "array",\n "items": {\n "$ref": "#/definitions/Issue"\n }\n }\n }\n }\n }\n}\n```\n\n\n### /fleets/{name}/log\n\n\n```\n{\n "title": "FleetState",\n "type": "object",\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "log": {\n "title": "Log",\n "description": "Log for the overall fleet",\n "type": "array",\n "items": {\n "$ref": "#/definitions/LogEntry"\n }\n },\n "robots": {\n "title": "Robots",\n "description": "Dictionary of logs for the individual robots. The keys (property names) are the robot names.",\n "type": "object",\n "additionalProperties": {\n "type": "array",\n "items": {\n "$ref": "#/definitions/LogEntry"\n }\n }\n }\n },\n "definitions": {\n "Tier": {\n "title": "Tier",\n "description": "An enumeration.",\n "enum": [\n "uninitialized",\n "info",\n "warning",\n "error"\n ]\n },\n "LogEntry": {\n "title": "LogEntry",\n "type": "object",\n "properties": {\n "seq": {\n "title": "Seq",\n "description": "Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.",\n "exclusiveMaximum": 4294967296,\n "minimum": 0,\n "type": "integer"\n },\n "tier": {\n "description": "The importance level of the log entry",\n "allOf": [\n {\n "$ref": "#/definitions/Tier"\n }\n ]\n },\n "unix_millis_time": {\n "title": "Unix Millis Time",\n "type": "integer"\n },\n "text": {\n "title": "Text",\n "description": "The text of the log entry",\n "type": "string"\n }\n },\n "required": [\n "seq",\n "tier",\n "unix_millis_time",\n "text"\n ]\n }\n }\n}\n```\n\n', + '# NOTE: This endpoint is here for documentation purposes only, this is _not_ a REST endpoint.\n\n## About\nThis exposes a minimal pubsub system built on top of socket.io.\nIt works similar to a normal socket.io endpoint, except that are 2 special\nrooms which control subscriptions.\n\n## Rooms\n### subscribe\nClients must send a message to this room to start receiving messages on other rooms.\nThe message must be of the form:\n\n```\n{\n "room": ""\n}\n```\n\n### unsubscribe\nClients can send a message to this room to stop receiving messages on other rooms.\nThe message must be of the form:\n\n```\n{\n "room": ""\n}\n```\n### /alerts\n\n\n```\n{\n "additionalProperties": false,\n "description": "General alert that can be triggered by events.",\n "properties": {\n "id": {\n "maxLength": 255,\n "title": "Id",\n "type": "string"\n },\n "original_id": {\n "maxLength": 255,\n "title": "Original Id",\n "type": "string"\n },\n "category": {\n "description": "Default: default
Task: task
Fleet: fleet
Robot: robot",\n "maxLength": 7,\n "title": "Category",\n "type": "string"\n },\n "unix_millis_created_time": {\n "maximum": 9223372036854775807,\n "minimum": -9223372036854775808,\n "title": "Unix Millis Created Time",\n "type": "integer"\n },\n "acknowledged_by": {\n "anyOf": [\n {\n "maxLength": 255,\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "nullable": true,\n "title": "Acknowledged By"\n },\n "unix_millis_acknowledged_time": {\n "anyOf": [\n {\n "maximum": 9223372036854775807,\n "minimum": -9223372036854775808,\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "nullable": true,\n "title": "Unix Millis Acknowledged Time"\n }\n },\n "required": [\n "id",\n "original_id",\n "category",\n "unix_millis_created_time",\n "acknowledged_by",\n "unix_millis_acknowledged_time"\n ],\n "title": "Alert",\n "type": "object"\n}\n```\n\n\n### /beacons\n\n\n```\n{\n "additionalProperties": false,\n "properties": {\n "id": {\n "maxLength": 255,\n "title": "Id",\n "type": "string"\n },\n "online": {\n "title": "Online",\n "type": "boolean"\n },\n "category": {\n "anyOf": [\n {\n "maxLength": 255,\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "nullable": true,\n "title": "Category"\n },\n "activated": {\n "title": "Activated",\n "type": "boolean"\n },\n "level": {\n "anyOf": [\n {\n "maxLength": 255,\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "nullable": true,\n "title": "Level"\n }\n },\n "required": [\n "id",\n "online",\n "category",\n "activated",\n "level"\n ],\n "title": "BeaconState",\n "type": "object"\n}\n```\n\n\n### /building_map\n\n\n```\n{\n "$defs": {\n "AffineImage": {\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "x_offset": {\n "title": "X Offset",\n "type": "number"\n },\n "y_offset": {\n "title": "Y Offset",\n "type": "number"\n },\n "yaw": {\n "title": "Yaw",\n "type": "number"\n },\n "scale": {\n "title": "Scale",\n "type": "number"\n },\n "encoding": {\n "title": "Encoding",\n "type": "string"\n },\n "data": {\n "title": "Data",\n "type": "string"\n }\n },\n "required": [\n "name",\n "x_offset",\n "y_offset",\n "yaw",\n "scale",\n "encoding",\n "data"\n ],\n "title": "AffineImage",\n "type": "object"\n },\n "Door": {\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "v1_x": {\n "title": "V1 X",\n "type": "number"\n },\n "v1_y": {\n "title": "V1 Y",\n "type": "number"\n },\n "v2_x": {\n "title": "V2 X",\n "type": "number"\n },\n "v2_y": {\n "title": "V2 Y",\n "type": "number"\n },\n "door_type": {\n "maximum": 255,\n "minimum": 0,\n "title": "Door Type",\n "type": "integer"\n },\n "motion_range": {\n "title": "Motion Range",\n "type": "number"\n },\n "motion_direction": {\n "maximum": 2147483647,\n "minimum": -2147483648,\n "title": "Motion Direction",\n "type": "integer"\n }\n },\n "required": [\n "name",\n "v1_x",\n "v1_y",\n "v2_x",\n "v2_y",\n "door_type",\n "motion_range",\n "motion_direction"\n ],\n "title": "Door",\n "type": "object"\n },\n "Graph": {\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "vertices": {\n "items": {\n "$ref": "#/$defs/GraphNode"\n },\n "title": "Vertices",\n "type": "array"\n },\n "edges": {\n "items": {\n "$ref": "#/$defs/GraphEdge"\n },\n "title": "Edges",\n "type": "array"\n },\n "params": {\n "items": {\n "$ref": "#/$defs/Param"\n },\n "title": "Params",\n "type": "array"\n }\n },\n "required": [\n "name",\n "vertices",\n "edges",\n "params"\n ],\n "title": "Graph",\n "type": "object"\n },\n "GraphEdge": {\n "properties": {\n "v1_idx": {\n "maximum": 4294967295,\n "minimum": 0,\n "title": "V1 Idx",\n "type": "integer"\n },\n "v2_idx": {\n "maximum": 4294967295,\n "minimum": 0,\n "title": "V2 Idx",\n "type": "integer"\n },\n "params": {\n "items": {\n "$ref": "#/$defs/Param"\n },\n "title": "Params",\n "type": "array"\n },\n "edge_type": {\n "maximum": 255,\n "minimum": 0,\n "title": "Edge Type",\n "type": "integer"\n }\n },\n "required": [\n "v1_idx",\n "v2_idx",\n "params",\n "edge_type"\n ],\n "title": "GraphEdge",\n "type": "object"\n },\n "GraphNode": {\n "properties": {\n "x": {\n "title": "X",\n "type": "number"\n },\n "y": {\n "title": "Y",\n "type": "number"\n },\n "name": {\n "title": "Name",\n "type": "string"\n },\n "params": {\n "items": {\n "$ref": "#/$defs/Param"\n },\n "title": "Params",\n "type": "array"\n }\n },\n "required": [\n "x",\n "y",\n "name",\n "params"\n ],\n "title": "GraphNode",\n "type": "object"\n },\n "Level": {\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "elevation": {\n "title": "Elevation",\n "type": "number"\n },\n "images": {\n "items": {\n "$ref": "#/$defs/AffineImage"\n },\n "title": "Images",\n "type": "array"\n },\n "places": {\n "items": {\n "$ref": "#/$defs/Place"\n },\n "title": "Places",\n "type": "array"\n },\n "doors": {\n "items": {\n "$ref": "#/$defs/Door"\n },\n "title": "Doors",\n "type": "array"\n },\n "nav_graphs": {\n "items": {\n "$ref": "#/$defs/Graph"\n },\n "title": "Nav Graphs",\n "type": "array"\n },\n "wall_graph": {\n "$ref": "#/$defs/Graph"\n }\n },\n "required": [\n "name",\n "elevation",\n "images",\n "places",\n "doors",\n "nav_graphs",\n "wall_graph"\n ],\n "title": "Level",\n "type": "object"\n },\n "Lift": {\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "levels": {\n "items": {\n "type": "string"\n },\n "title": "Levels",\n "type": "array"\n },\n "doors": {\n "items": {\n "$ref": "#/$defs/Door"\n },\n "title": "Doors",\n "type": "array"\n },\n "wall_graph": {\n "$ref": "#/$defs/Graph"\n },\n "ref_x": {\n "title": "Ref X",\n "type": "number"\n },\n "ref_y": {\n "title": "Ref Y",\n "type": "number"\n },\n "ref_yaw": {\n "title": "Ref Yaw",\n "type": "number"\n },\n "width": {\n "title": "Width",\n "type": "number"\n },\n "depth": {\n "title": "Depth",\n "type": "number"\n }\n },\n "required": [\n "name",\n "levels",\n "doors",\n "wall_graph",\n "ref_x",\n "ref_y",\n "ref_yaw",\n "width",\n "depth"\n ],\n "title": "Lift",\n "type": "object"\n },\n "Param": {\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "type": {\n "maximum": 4294967295,\n "minimum": 0,\n "title": "Type",\n "type": "integer"\n },\n "value_int": {\n "maximum": 2147483647,\n "minimum": -2147483648,\n "title": "Value Int",\n "type": "integer"\n },\n "value_float": {\n "title": "Value Float",\n "type": "number"\n },\n "value_string": {\n "title": "Value String",\n "type": "string"\n },\n "value_bool": {\n "title": "Value Bool",\n "type": "boolean"\n }\n },\n "required": [\n "name",\n "type",\n "value_int",\n "value_float",\n "value_string",\n "value_bool"\n ],\n "title": "Param",\n "type": "object"\n },\n "Place": {\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "x": {\n "title": "X",\n "type": "number"\n },\n "y": {\n "title": "Y",\n "type": "number"\n },\n "yaw": {\n "title": "Yaw",\n "type": "number"\n },\n "position_tolerance": {\n "title": "Position Tolerance",\n "type": "number"\n },\n "yaw_tolerance": {\n "title": "Yaw Tolerance",\n "type": "number"\n }\n },\n "required": [\n "name",\n "x",\n "y",\n "yaw",\n "position_tolerance",\n "yaw_tolerance"\n ],\n "title": "Place",\n "type": "object"\n }\n },\n "properties": {\n "name": {\n "title": "Name",\n "type": "string"\n },\n "levels": {\n "items": {\n "$ref": "#/$defs/Level"\n },\n "title": "Levels",\n "type": "array"\n },\n "lifts": {\n "items": {\n "$ref": "#/$defs/Lift"\n },\n "title": "Lifts",\n "type": "array"\n }\n },\n "required": [\n "name",\n "levels",\n "lifts"\n ],\n "title": "BuildingMap",\n "type": "object"\n}\n```\n\n\n### /doors/{door_name}/state\n\n\n```\n{\n "$defs": {\n "DoorMode": {\n "properties": {\n "value": {\n "maximum": 4294967295,\n "minimum": 0,\n "title": "Value",\n "type": "integer"\n }\n },\n "required": [\n "value"\n ],\n "title": "DoorMode",\n "type": "object"\n },\n "Time": {\n "properties": {\n "sec": {\n "maximum": 2147483647,\n "minimum": -2147483648,\n "title": "Sec",\n "type": "integer"\n },\n "nanosec": {\n "maximum": 4294967295,\n "minimum": 0,\n "title": "Nanosec",\n "type": "integer"\n }\n },\n "required": [\n "sec",\n "nanosec"\n ],\n "title": "Time",\n "type": "object"\n }\n },\n "properties": {\n "door_time": {\n "$ref": "#/$defs/Time"\n },\n "door_name": {\n "title": "Door Name",\n "type": "string"\n },\n "current_mode": {\n "$ref": "#/$defs/DoorMode"\n }\n },\n "required": [\n "door_time",\n "door_name",\n "current_mode"\n ],\n "title": "DoorState",\n "type": "object"\n}\n```\n\n\n### /doors/{door_name}/health\n\n\n```\n{\n "$defs": {\n "HealthStatus": {\n "enum": [\n "Healthy",\n "Unhealthy",\n "Dead"\n ],\n "title": "HealthStatus",\n "type": "string"\n }\n },\n "properties": {\n "id_": {\n "title": "Id ",\n "type": "string"\n },\n "health_status": {\n "$ref": "#/$defs/HealthStatus"\n },\n "health_message": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "title": "Health Message"\n }\n },\n "required": [\n "id_",\n "health_status",\n "health_message"\n ],\n "title": "DoorHealth",\n "type": "object"\n}\n```\n\n\n### /lifts/{lift_name}/state\n\n\n```\n{\n "$defs": {\n "Time": {\n "properties": {\n "sec": {\n "maximum": 2147483647,\n "minimum": -2147483648,\n "title": "Sec",\n "type": "integer"\n },\n "nanosec": {\n "maximum": 4294967295,\n "minimum": 0,\n "title": "Nanosec",\n "type": "integer"\n }\n },\n "required": [\n "sec",\n "nanosec"\n ],\n "title": "Time",\n "type": "object"\n }\n },\n "properties": {\n "lift_time": {\n "$ref": "#/$defs/Time"\n },\n "lift_name": {\n "title": "Lift Name",\n "type": "string"\n },\n "available_floors": {\n "items": {\n "type": "string"\n },\n "title": "Available Floors",\n "type": "array"\n },\n "current_floor": {\n "title": "Current Floor",\n "type": "string"\n },\n "destination_floor": {\n "title": "Destination Floor",\n "type": "string"\n },\n "door_state": {\n "maximum": 255,\n "minimum": 0,\n "title": "Door State",\n "type": "integer"\n },\n "motion_state": {\n "maximum": 255,\n "minimum": 0,\n "title": "Motion State",\n "type": "integer"\n },\n "available_modes": {\n "items": {\n "type": "integer"\n },\n "title": "Available Modes",\n "type": "array"\n },\n "current_mode": {\n "maximum": 255,\n "minimum": 0,\n "title": "Current Mode",\n "type": "integer"\n },\n "session_id": {\n "title": "Session Id",\n "type": "string"\n }\n },\n "required": [\n "lift_time",\n "lift_name",\n "available_floors",\n "current_floor",\n "destination_floor",\n "door_state",\n "motion_state",\n "available_modes",\n "current_mode",\n "session_id"\n ],\n "title": "LiftState",\n "type": "object"\n}\n```\n\n\n### /lifts/{lift_name}/health\n\n\n```\n{\n "$defs": {\n "HealthStatus": {\n "enum": [\n "Healthy",\n "Unhealthy",\n "Dead"\n ],\n "title": "HealthStatus",\n "type": "string"\n }\n },\n "properties": {\n "id_": {\n "title": "Id ",\n "type": "string"\n },\n "health_status": {\n "$ref": "#/$defs/HealthStatus"\n },\n "health_message": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "title": "Health Message"\n }\n },\n "required": [\n "id_",\n "health_status",\n "health_message"\n ],\n "title": "LiftHealth",\n "type": "object"\n}\n```\n\n\n### /tasks/{task_id}/state\n\n\n```\n{\n "$defs": {\n "AssignedTo": {\n "properties": {\n "group": {\n "title": "Group",\n "type": "string"\n },\n "name": {\n "title": "Name",\n "type": "string"\n }\n },\n "required": [\n "group",\n "name"\n ],\n "title": "AssignedTo",\n "type": "object"\n },\n "Assignment": {\n "properties": {\n "fleet_name": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Fleet Name"\n },\n "expected_robot_name": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Expected Robot Name"\n }\n },\n "title": "Assignment",\n "type": "object"\n },\n "Booking": {\n "properties": {\n "id": {\n "description": "The unique identifier for this task",\n "title": "Id",\n "type": "string"\n },\n "unix_millis_earliest_start_time": {\n "anyOf": [\n {\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Unix Millis Earliest Start Time"\n },\n "unix_millis_request_time": {\n "anyOf": [\n {\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Unix Millis Request Time"\n },\n "priority": {\n "anyOf": [\n {\n "type": "object"\n },\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Priority information about this task",\n "title": "Priority"\n },\n "labels": {\n "anyOf": [\n {\n "items": {\n "type": "string"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Information about how and why this task was booked",\n "title": "Labels"\n },\n "requester": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "(Optional) An identifier for the entity that requested this task",\n "title": "Requester"\n }\n },\n "required": [\n "id"\n ],\n "title": "Booking",\n "type": "object"\n },\n "Cancellation": {\n "properties": {\n "unix_millis_request_time": {\n "description": "The time that the cancellation request arrived",\n "title": "Unix Millis Request Time",\n "type": "integer"\n },\n "labels": {\n "description": "Labels to describe the cancel request",\n "items": {\n "type": "string"\n },\n "title": "Labels",\n "type": "array"\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ],\n "title": "Cancellation",\n "type": "object"\n },\n "Category": {\n "title": "Category",\n "type": "string"\n },\n "Detail": {\n "anyOf": [\n {\n "type": "object"\n },\n {\n "items": {},\n "type": "array"\n },\n {\n "type": "string"\n }\n ],\n "title": "Detail"\n },\n "Dispatch": {\n "properties": {\n "status": {\n "$ref": "#/$defs/Status2"\n },\n "assignment": {\n "anyOf": [\n {\n "$ref": "#/$defs/Assignment"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "errors": {\n "anyOf": [\n {\n "items": {\n "$ref": "#/$defs/Error"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Errors"\n }\n },\n "required": [\n "status"\n ],\n "title": "Dispatch",\n "type": "object"\n },\n "Error": {\n "properties": {\n "code": {\n "anyOf": [\n {\n "minimum": 0,\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A standard code for the kind of error that has occurred",\n "title": "Code"\n },\n "category": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "The category of the error",\n "title": "Category"\n },\n "detail": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Details about the error",\n "title": "Detail"\n }\n },\n "title": "Error",\n "type": "object"\n },\n "EstimateMillis": {\n "minimum": 0,\n "title": "EstimateMillis",\n "type": "integer"\n },\n "EventState": {\n "properties": {\n "id": {\n "$ref": "#/$defs/Id"\n },\n "status": {\n "anyOf": [\n {\n "$ref": "#/$defs/Status"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "name": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "The brief name of the event",\n "title": "Name"\n },\n "detail": {\n "anyOf": [\n {\n "$ref": "#/$defs/Detail"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Detailed information about the event"\n },\n "deps": {\n "anyOf": [\n {\n "items": {\n "minimum": 0,\n "type": "integer"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "This event may depend on other events. This array contains the IDs of those other event dependencies.",\n "title": "Deps"\n }\n },\n "required": [\n "id"\n ],\n "title": "EventState",\n "type": "object"\n },\n "Id": {\n "minimum": 0,\n "title": "Id",\n "type": "integer"\n },\n "Interruption": {\n "properties": {\n "unix_millis_request_time": {\n "description": "The time that the interruption request arrived",\n "title": "Unix Millis Request Time",\n "type": "integer"\n },\n "labels": {\n "description": "Labels to describe the purpose of the interruption",\n "items": {\n "type": "string"\n },\n "title": "Labels",\n "type": "array"\n },\n "resumed_by": {\n "anyOf": [\n {\n "$ref": "#/$defs/ResumedBy"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Information about the resume request that ended this interruption. This field will be missing if the interruption is still active."\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ],\n "title": "Interruption",\n "type": "object"\n },\n "Killed": {\n "properties": {\n "unix_millis_request_time": {\n "description": "The time that the cancellation request arrived",\n "title": "Unix Millis Request Time",\n "type": "integer"\n },\n "labels": {\n "description": "Labels to describe the kill request",\n "items": {\n "type": "string"\n },\n "title": "Labels",\n "type": "array"\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ],\n "title": "Killed",\n "type": "object"\n },\n "Phase": {\n "properties": {\n "id": {\n "$ref": "#/$defs/Id"\n },\n "category": {\n "anyOf": [\n {\n "$ref": "#/$defs/Category"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "detail": {\n "anyOf": [\n {\n "$ref": "#/$defs/Detail"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "unix_millis_start_time": {\n "anyOf": [\n {\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Unix Millis Start Time"\n },\n "unix_millis_finish_time": {\n "anyOf": [\n {\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Unix Millis Finish Time"\n },\n "original_estimate_millis": {\n "anyOf": [\n {\n "$ref": "#/$defs/EstimateMillis"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "estimate_millis": {\n "anyOf": [\n {\n "$ref": "#/$defs/EstimateMillis"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "final_event_id": {\n "anyOf": [\n {\n "$ref": "#/$defs/Id"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "events": {\n "anyOf": [\n {\n "additionalProperties": {\n "$ref": "#/$defs/EventState"\n },\n "type": "object"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.",\n "title": "Events"\n },\n "skip_requests": {\n "anyOf": [\n {\n "additionalProperties": {\n "$ref": "#/$defs/SkipPhaseRequest"\n },\n "type": "object"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Information about any skip requests that have been received",\n "title": "Skip Requests"\n }\n },\n "required": [\n "id"\n ],\n "title": "Phase",\n "type": "object"\n },\n "ResumedBy": {\n "properties": {\n "unix_millis_request_time": {\n "anyOf": [\n {\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "The time that the resume request arrived",\n "title": "Unix Millis Request Time"\n },\n "labels": {\n "description": "Labels to describe the resume request",\n "items": {\n "type": "string"\n },\n "title": "Labels",\n "type": "array"\n }\n },\n "required": [\n "labels"\n ],\n "title": "ResumedBy",\n "type": "object"\n },\n "SkipPhaseRequest": {\n "properties": {\n "unix_millis_request_time": {\n "description": "The time that the skip request arrived",\n "title": "Unix Millis Request Time",\n "type": "integer"\n },\n "labels": {\n "description": "Labels to describe the purpose of the skip request",\n "items": {\n "type": "string"\n },\n "title": "Labels",\n "type": "array"\n },\n "undo": {\n "anyOf": [\n {\n "$ref": "#/$defs/Undo"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Information about an undo skip request that applied to this request"\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ],\n "title": "SkipPhaseRequest",\n "type": "object"\n },\n "Status": {\n "enum": [\n "uninitialized",\n "blocked",\n "error",\n "failed",\n "queued",\n "standby",\n "underway",\n "delayed",\n "skipped",\n "canceled",\n "killed",\n "completed"\n ],\n "title": "Status",\n "type": "string"\n },\n "Status2": {\n "enum": [\n "queued",\n "selected",\n "dispatched",\n "failed_to_assign",\n "canceled_in_flight"\n ],\n "title": "Status2",\n "type": "string"\n },\n "Undo": {\n "properties": {\n "unix_millis_request_time": {\n "description": "The time that the undo skip request arrived",\n "title": "Unix Millis Request Time",\n "type": "integer"\n },\n "labels": {\n "description": "Labels to describe the undo skip request",\n "items": {\n "type": "string"\n },\n "title": "Labels",\n "type": "array"\n }\n },\n "required": [\n "unix_millis_request_time",\n "labels"\n ],\n "title": "Undo",\n "type": "object"\n }\n },\n "properties": {\n "booking": {\n "$ref": "#/$defs/Booking"\n },\n "category": {\n "anyOf": [\n {\n "$ref": "#/$defs/Category"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "detail": {\n "anyOf": [\n {\n "$ref": "#/$defs/Detail"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "unix_millis_start_time": {\n "anyOf": [\n {\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Unix Millis Start Time"\n },\n "unix_millis_finish_time": {\n "anyOf": [\n {\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Unix Millis Finish Time"\n },\n "original_estimate_millis": {\n "anyOf": [\n {\n "$ref": "#/$defs/EstimateMillis"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "estimate_millis": {\n "anyOf": [\n {\n "$ref": "#/$defs/EstimateMillis"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "assigned_to": {\n "anyOf": [\n {\n "$ref": "#/$defs/AssignedTo"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Which agent (robot) is the task assigned to"\n },\n "status": {\n "anyOf": [\n {\n "$ref": "#/$defs/Status"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "dispatch": {\n "anyOf": [\n {\n "$ref": "#/$defs/Dispatch"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "phases": {\n "anyOf": [\n {\n "additionalProperties": {\n "$ref": "#/$defs/Phase"\n },\n "type": "object"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.",\n "title": "Phases"\n },\n "completed": {\n "anyOf": [\n {\n "items": {\n "$ref": "#/$defs/Id"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "An array of the IDs of completed phases of this task",\n "title": "Completed"\n },\n "active": {\n "anyOf": [\n {\n "$ref": "#/$defs/Id"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "The ID of the active phase for this task"\n },\n "pending": {\n "anyOf": [\n {\n "items": {\n "$ref": "#/$defs/Id"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "An array of the pending phases of this task",\n "title": "Pending"\n },\n "interruptions": {\n "anyOf": [\n {\n "additionalProperties": {\n "$ref": "#/$defs/Interruption"\n },\n "type": "object"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.",\n "title": "Interruptions"\n },\n "cancellation": {\n "anyOf": [\n {\n "$ref": "#/$defs/Cancellation"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "If the task was cancelled, this will describe information about the request."\n },\n "killed": {\n "anyOf": [\n {\n "$ref": "#/$defs/Killed"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "If the task was killed, this will describe information about the request."\n }\n },\n "required": [\n "booking"\n ],\n "title": "TaskState",\n "type": "object"\n}\n```\n\n\n### /tasks/{task_id}/log\n\n\n```\n{\n "$defs": {\n "LogEntry": {\n "properties": {\n "seq": {\n "description": "Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.",\n "exclusiveMaximum": 4294967296,\n "minimum": 0,\n "title": "Seq",\n "type": "integer"\n },\n "tier": {\n "allOf": [\n {\n "$ref": "#/$defs/Tier"\n }\n ],\n "description": "The importance level of the log entry"\n },\n "unix_millis_time": {\n "title": "Unix Millis Time",\n "type": "integer"\n },\n "text": {\n "description": "The text of the log entry",\n "title": "Text",\n "type": "string"\n }\n },\n "required": [\n "seq",\n "tier",\n "unix_millis_time",\n "text"\n ],\n "title": "LogEntry",\n "type": "object"\n },\n "Phases": {\n "additionalProperties": false,\n "properties": {\n "log": {\n "anyOf": [\n {\n "items": {\n "$ref": "#/$defs/LogEntry"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Log entries related to the overall phase",\n "title": "Log"\n },\n "events": {\n "anyOf": [\n {\n "additionalProperties": {\n "items": {\n "$ref": "#/$defs/LogEntry"\n },\n "type": "array"\n },\n "type": "object"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A dictionary whose keys (property names) are the indices of an event in the phase",\n "title": "Events"\n }\n },\n "title": "Phases",\n "type": "object"\n },\n "Tier": {\n "enum": [\n "uninitialized",\n "info",\n "warning",\n "error"\n ],\n "title": "Tier",\n "type": "string"\n }\n },\n "additionalProperties": false,\n "properties": {\n "task_id": {\n "title": "Task Id",\n "type": "string"\n },\n "log": {\n "anyOf": [\n {\n "items": {\n "$ref": "#/$defs/LogEntry"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Log entries related to the overall task",\n "title": "Log"\n },\n "phases": {\n "anyOf": [\n {\n "additionalProperties": {\n "$ref": "#/$defs/Phases"\n },\n "type": "object"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A dictionary whose keys (property names) are the indices of a phase",\n "title": "Phases"\n }\n },\n "required": [\n "task_id"\n ],\n "title": "TaskEventLog",\n "type": "object"\n}\n```\n\n\n### /dispensers/{guid}/state\n\n\n```\n{\n "$defs": {\n "Time": {\n "properties": {\n "sec": {\n "maximum": 2147483647,\n "minimum": -2147483648,\n "title": "Sec",\n "type": "integer"\n },\n "nanosec": {\n "maximum": 4294967295,\n "minimum": 0,\n "title": "Nanosec",\n "type": "integer"\n }\n },\n "required": [\n "sec",\n "nanosec"\n ],\n "title": "Time",\n "type": "object"\n }\n },\n "properties": {\n "time": {\n "$ref": "#/$defs/Time"\n },\n "guid": {\n "title": "Guid",\n "type": "string"\n },\n "mode": {\n "maximum": 2147483647,\n "minimum": -2147483648,\n "title": "Mode",\n "type": "integer"\n },\n "request_guid_queue": {\n "items": {\n "type": "string"\n },\n "title": "Request Guid Queue",\n "type": "array"\n },\n "seconds_remaining": {\n "title": "Seconds Remaining",\n "type": "number"\n }\n },\n "required": [\n "time",\n "guid",\n "mode",\n "request_guid_queue",\n "seconds_remaining"\n ],\n "title": "DispenserState",\n "type": "object"\n}\n```\n\n\n### /dispensers/{guid}/health\n\n\n```\n{\n "$defs": {\n "HealthStatus": {\n "enum": [\n "Healthy",\n "Unhealthy",\n "Dead"\n ],\n "title": "HealthStatus",\n "type": "string"\n }\n },\n "properties": {\n "id_": {\n "title": "Id ",\n "type": "string"\n },\n "health_status": {\n "$ref": "#/$defs/HealthStatus"\n },\n "health_message": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "title": "Health Message"\n }\n },\n "required": [\n "id_",\n "health_status",\n "health_message"\n ],\n "title": "DispenserHealth",\n "type": "object"\n}\n```\n\n\n### /ingestors/{guid}/state\n\n\n```\n{\n "$defs": {\n "Time": {\n "properties": {\n "sec": {\n "maximum": 2147483647,\n "minimum": -2147483648,\n "title": "Sec",\n "type": "integer"\n },\n "nanosec": {\n "maximum": 4294967295,\n "minimum": 0,\n "title": "Nanosec",\n "type": "integer"\n }\n },\n "required": [\n "sec",\n "nanosec"\n ],\n "title": "Time",\n "type": "object"\n }\n },\n "properties": {\n "time": {\n "$ref": "#/$defs/Time"\n },\n "guid": {\n "title": "Guid",\n "type": "string"\n },\n "mode": {\n "maximum": 2147483647,\n "minimum": -2147483648,\n "title": "Mode",\n "type": "integer"\n },\n "request_guid_queue": {\n "items": {\n "type": "string"\n },\n "title": "Request Guid Queue",\n "type": "array"\n },\n "seconds_remaining": {\n "title": "Seconds Remaining",\n "type": "number"\n }\n },\n "required": [\n "time",\n "guid",\n "mode",\n "request_guid_queue",\n "seconds_remaining"\n ],\n "title": "IngestorState",\n "type": "object"\n}\n```\n\n\n### /ingestors/{guid}/health\n\n\n```\n{\n "$defs": {\n "HealthStatus": {\n "enum": [\n "Healthy",\n "Unhealthy",\n "Dead"\n ],\n "title": "HealthStatus",\n "type": "string"\n }\n },\n "properties": {\n "id_": {\n "title": "Id ",\n "type": "string"\n },\n "health_status": {\n "$ref": "#/$defs/HealthStatus"\n },\n "health_message": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "title": "Health Message"\n }\n },\n "required": [\n "id_",\n "health_status",\n "health_message"\n ],\n "title": "IngestorHealth",\n "type": "object"\n}\n```\n\n\n### /fleets/{name}/state\n\n\n```\n{\n "$defs": {\n "Issue": {\n "properties": {\n "category": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Category of the robot\'s issue",\n "title": "Category"\n },\n "detail": {\n "anyOf": [\n {\n "type": "object"\n },\n {\n "items": {},\n "type": "array"\n },\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Detailed information about the issue",\n "title": "Detail"\n }\n },\n "title": "Issue",\n "type": "object"\n },\n "Location2D": {\n "properties": {\n "map": {\n "title": "Map",\n "type": "string"\n },\n "x": {\n "title": "X",\n "type": "number"\n },\n "y": {\n "title": "Y",\n "type": "number"\n },\n "yaw": {\n "title": "Yaw",\n "type": "number"\n }\n },\n "required": [\n "map",\n "x",\n "y",\n "yaw"\n ],\n "title": "Location2D",\n "type": "object"\n },\n "RobotState": {\n "properties": {\n "name": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Name"\n },\n "status": {\n "anyOf": [\n {\n "$ref": "#/$defs/Status"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A simple token representing the status of the robot"\n },\n "task_id": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.",\n "title": "Task Id"\n },\n "unix_millis_time": {\n "anyOf": [\n {\n "type": "integer"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Unix Millis Time"\n },\n "location": {\n "anyOf": [\n {\n "$ref": "#/$defs/Location2D"\n },\n {\n "type": "null"\n }\n ],\n "default": null\n },\n "battery": {\n "anyOf": [\n {\n "maximum": 1.0,\n "minimum": 0.0,\n "type": "number"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)",\n "title": "Battery"\n },\n "issues": {\n "anyOf": [\n {\n "items": {\n "$ref": "#/$defs/Issue"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A list of issues with the robot that operators need to address",\n "title": "Issues"\n }\n },\n "title": "RobotState",\n "type": "object"\n },\n "Status": {\n "enum": [\n "uninitialized",\n "offline",\n "shutdown",\n "idle",\n "charging",\n "working",\n "error"\n ],\n "title": "Status",\n "type": "string"\n }\n },\n "properties": {\n "name": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Name"\n },\n "robots": {\n "anyOf": [\n {\n "additionalProperties": {\n "$ref": "#/$defs/RobotState"\n },\n "type": "object"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "A dictionary of the states of the robots that belong to this fleet",\n "title": "Robots"\n }\n },\n "title": "FleetState",\n "type": "object"\n}\n```\n\n\n### /fleets/{name}/log\n\n\n```\n{\n "$defs": {\n "LogEntry": {\n "properties": {\n "seq": {\n "description": "Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.",\n "exclusiveMaximum": 4294967296,\n "minimum": 0,\n "title": "Seq",\n "type": "integer"\n },\n "tier": {\n "allOf": [\n {\n "$ref": "#/$defs/Tier"\n }\n ],\n "description": "The importance level of the log entry"\n },\n "unix_millis_time": {\n "title": "Unix Millis Time",\n "type": "integer"\n },\n "text": {\n "description": "The text of the log entry",\n "title": "Text",\n "type": "string"\n }\n },\n "required": [\n "seq",\n "tier",\n "unix_millis_time",\n "text"\n ],\n "title": "LogEntry",\n "type": "object"\n },\n "Tier": {\n "enum": [\n "uninitialized",\n "info",\n "warning",\n "error"\n ],\n "title": "Tier",\n "type": "string"\n }\n },\n "properties": {\n "name": {\n "anyOf": [\n {\n "type": "string"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "title": "Name"\n },\n "log": {\n "anyOf": [\n {\n "items": {\n "$ref": "#/$defs/LogEntry"\n },\n "type": "array"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Log for the overall fleet",\n "title": "Log"\n },\n "robots": {\n "anyOf": [\n {\n "additionalProperties": {\n "items": {\n "$ref": "#/$defs/LogEntry"\n },\n "type": "array"\n },\n "type": "object"\n },\n {\n "type": "null"\n }\n ],\n "default": null,\n "description": "Dictionary of logs for the individual robots. The keys (property names) are the robot names.",\n "title": "Robots"\n }\n },\n "title": "FleetLog",\n "type": "object"\n}\n```\n\n', operationId: '_lambda__socket_io_get', responses: { '200': { @@ -21,11 +21,25 @@ export default { summary: 'Get User', description: 'Get the currently logged in user', operationId: 'get_user_user_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { $ref: '#/components/schemas/User' } } }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, }, @@ -34,19 +48,33 @@ export default { summary: 'Get Effective Permissions', description: 'Get the effective permissions of the current user', operationId: 'get_effective_permissions_permissions_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Effective Permissions Permissions Get', type: 'array', items: { $ref: '#/components/schemas/Permission' }, + title: 'Response Get Effective Permissions Permissions Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, }, @@ -60,7 +88,7 @@ export default { description: 'Successful Response', content: { 'application/json': { - schema: { title: 'Response Get Time Time Get', type: 'integer' }, + schema: { type: 'integer', title: 'Response Get Time Time Get' }, }, }, }, @@ -72,21 +100,35 @@ export default { tags: ['Alerts'], summary: 'Get Alerts', operationId: 'get_alerts_alerts_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Alerts Alerts Get', type: 'array', items: { - $ref: '#/components/schemas/api_server.models.tortoise_models.alerts.Alert.leaf', + $ref: '#/components/schemas/tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__alerts__Alert__leaf', }, + title: 'Response Get Alerts Alerts Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, post: { @@ -95,16 +137,22 @@ export default { operationId: 'create_alert_alerts_post', parameters: [ { - required: true, - schema: { title: 'Alert Id', type: 'string' }, name: 'alert_id', in: 'query', + required: true, + schema: { type: 'string', title: 'Alert Id' }, }, { - required: true, - schema: { title: 'Category', type: 'string' }, name: 'category', in: 'query', + required: true, + schema: { type: 'string', title: 'Category' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -113,7 +161,7 @@ export default { content: { 'application/json': { schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.alerts.Alert.leaf', + $ref: '#/components/schemas/tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__alerts__Alert__leaf', }, }, }, @@ -134,10 +182,16 @@ export default { operationId: 'get_alert_alerts__alert_id__get', parameters: [ { - required: true, - schema: { title: 'Alert Id', type: 'string' }, name: 'alert_id', in: 'path', + required: true, + schema: { type: 'string', title: 'Alert Id' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -146,7 +200,7 @@ export default { content: { 'application/json': { schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.alerts.Alert.leaf', + $ref: '#/components/schemas/tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__alerts__Alert__leaf', }, }, }, @@ -165,10 +219,16 @@ export default { operationId: 'acknowledge_alert_alerts__alert_id__post', parameters: [ { - required: true, - schema: { title: 'Alert Id', type: 'string' }, name: 'alert_id', in: 'path', + required: true, + schema: { type: 'string', title: 'Alert Id' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -177,7 +237,7 @@ export default { content: { 'application/json': { schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.alerts.Alert.leaf', + $ref: '#/components/schemas/tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__alerts__Alert__leaf', }, }, }, @@ -196,21 +256,35 @@ export default { tags: ['Beacons'], summary: 'Get Beacons', operationId: 'get_beacons_beacons_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Beacons Beacons Get', type: 'array', items: { - $ref: '#/components/schemas/api_server.models.tortoise_models.beacons.BeaconState.leaf', + $ref: '#/components/schemas/tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__beacons__BeaconState__leaf', }, + title: 'Response Get Beacons Beacons Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, post: { @@ -219,34 +293,40 @@ export default { operationId: 'save_beacon_state_beacons_post', parameters: [ { - required: true, - schema: { title: 'Beacon Id', type: 'string' }, name: 'beacon_id', in: 'query', + required: true, + schema: { type: 'string', title: 'Beacon Id' }, }, { - required: true, - schema: { title: 'Online', type: 'boolean' }, name: 'online', in: 'query', + required: true, + schema: { type: 'boolean', title: 'Online' }, }, { - required: true, - schema: { title: 'Category', type: 'string' }, name: 'category', in: 'query', + required: true, + schema: { type: 'string', title: 'Category' }, }, { - required: true, - schema: { title: 'Activated', type: 'boolean' }, name: 'activated', in: 'query', + required: true, + schema: { type: 'boolean', title: 'Activated' }, }, { - required: true, - schema: { title: 'Level', type: 'string' }, name: 'level', in: 'query', + required: true, + schema: { type: 'string', title: 'Level' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -255,7 +335,7 @@ export default { content: { 'application/json': { schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.beacons.BeaconState.leaf', + $ref: '#/components/schemas/tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__beacons__BeaconState__leaf', }, }, }, @@ -276,10 +356,16 @@ export default { operationId: 'get_beacon_beacons__beacon_id__get', parameters: [ { - required: true, - schema: { title: 'Beacon Id', type: 'string' }, name: 'beacon_id', in: 'path', + required: true, + schema: { type: 'string', title: 'Beacon Id' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -288,7 +374,7 @@ export default { content: { 'application/json': { schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.beacons.BeaconState.leaf', + $ref: '#/components/schemas/tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__beacons__BeaconState__leaf', }, }, }, @@ -308,6 +394,14 @@ export default { summary: 'Get Building Map', description: 'Available in socket.io', operationId: 'get_building_map_building_map_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', @@ -315,6 +409,12 @@ export default { 'application/json': { schema: { $ref: '#/components/schemas/BuildingMap' } }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, }, @@ -323,19 +423,33 @@ export default { tags: ['Doors'], summary: 'Get Doors', operationId: 'get_doors_doors_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Doors Doors Get', type: 'array', items: { $ref: '#/components/schemas/Door' }, + title: 'Response Get Doors Doors Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, }, @@ -347,10 +461,16 @@ export default { operationId: 'get_door_state_doors__door_name__state_get', parameters: [ { - required: true, - schema: { title: 'Door Name', type: 'string' }, name: 'door_name', in: 'path', + required: true, + schema: { type: 'string', title: 'Door Name' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -375,10 +495,16 @@ export default { operationId: 'get_door_health_doors__door_name__health_get', parameters: [ { - required: true, - schema: { title: 'Door Name', type: 'string' }, name: 'door_name', in: 'path', + required: true, + schema: { type: 'string', title: 'Door Name' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -404,15 +530,21 @@ export default { operationId: 'post_door_request_doors__door_name__request_post', parameters: [ { - required: true, - schema: { title: 'Door Name', type: 'string' }, name: 'door_name', in: 'path', + required: true, + schema: { type: 'string', title: 'Door Name' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], requestBody: { - content: { 'application/json': { schema: { $ref: '#/components/schemas/DoorRequest' } } }, required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/DoorRequest' } } }, }, responses: { '200': { @@ -433,19 +565,33 @@ export default { tags: ['Lifts'], summary: 'Get Lifts', operationId: 'get_lifts_lifts_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Lifts Lifts Get', type: 'array', items: { $ref: '#/components/schemas/Lift' }, + title: 'Response Get Lifts Lifts Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, }, @@ -457,10 +603,16 @@ export default { operationId: 'get_lift_state_lifts__lift_name__state_get', parameters: [ { - required: true, - schema: { title: 'Lift Name', type: 'string' }, name: 'lift_name', in: 'path', + required: true, + schema: { type: 'string', title: 'Lift Name' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -485,10 +637,16 @@ export default { operationId: 'get_lift_health_lifts__lift_name__health_get', parameters: [ { - required: true, - schema: { title: 'Lift Name', type: 'string' }, name: 'lift_name', in: 'path', + required: true, + schema: { type: 'string', title: 'Lift Name' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -514,15 +672,21 @@ export default { operationId: '_post_lift_request_lifts__lift_name__request_post', parameters: [ { - required: true, - schema: { title: 'Lift Name', type: 'string' }, name: 'lift_name', in: 'path', + required: true, + schema: { type: 'string', title: 'Lift Name' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], requestBody: { - content: { 'application/json': { schema: { $ref: '#/components/schemas/LiftRequest' } } }, required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/LiftRequest' } } }, }, responses: { '200': { @@ -545,11 +709,17 @@ export default { operationId: 'get_task_request_tasks__task_id__request_get', parameters: [ { - description: 'task_id', - required: true, - schema: { title: 'Task Id', type: 'string', description: 'task_id' }, name: 'task_id', in: 'path', + required: true, + schema: { type: 'string', description: 'task_id', title: 'Task Id' }, + description: 'task_id', + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -575,112 +745,115 @@ export default { operationId: 'query_task_states_tasks_get', parameters: [ { - description: 'comma separated list of task ids', + name: 'task_id', + in: 'query', required: false, schema: { - title: 'Task Id', - type: 'string', + anyOf: [{ type: 'string' }, { type: 'null' }], description: 'comma separated list of task ids', + title: 'Task Id', }, - name: 'task_id', - in: 'query', + description: 'comma separated list of task ids', }, { - description: 'comma separated list of task categories', + name: 'category', + in: 'query', required: false, schema: { - title: 'Category', - type: 'string', + anyOf: [{ type: 'string' }, { type: 'null' }], description: 'comma separated list of task categories', + title: 'Category', }, - name: 'category', - in: 'query', + description: 'comma separated list of task categories', }, { - description: 'comma separated list of assigned robot names', + name: 'assigned_to', + in: 'query', required: false, schema: { - title: 'Assigned To', - type: 'string', + anyOf: [{ type: 'string' }, { type: 'null' }], description: 'comma separated list of assigned robot names', + title: 'Assigned To', }, - name: 'assigned_to', - in: 'query', + description: 'comma separated list of assigned robot names', }, { - description: 'comma separated list of statuses', + name: 'status', + in: 'query', required: false, schema: { - title: 'Status', - type: 'string', + anyOf: [{ type: 'string' }, { type: 'null' }], description: 'comma separated list of statuses', + title: 'Status', }, - name: 'status', - in: 'query', + description: 'comma separated list of statuses', }, { - description: - '\n The period of starting time to fetch, in unix millis.\n\n This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n ', + name: 'start_time_between', + in: 'query', required: false, schema: { - title: 'Start Time Between', type: 'string', description: '\n The period of starting time to fetch, in unix millis.\n\n This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n ', + title: 'Start Time Between', }, - name: 'start_time_between', - in: 'query', + description: + '\n The period of starting time to fetch, in unix millis.\n\n This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n ', }, { - description: - '\n The period of finishing time to fetch, in unix millis.\n\n This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', + name: 'finish_time_between', + in: 'query', required: false, schema: { - title: 'Finish Time Between', type: 'string', description: '\n The period of finishing time to fetch, in unix millis.\n\n This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', + title: 'Finish Time Between', }, - name: 'finish_time_between', - in: 'query', + description: + '\n The period of finishing time to fetch, in unix millis.\n\n This must be a comma separated string, \'X,Y\' to fetch between X millis and Y millis inclusive.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', }, { - description: 'defaults to 100', + name: 'limit', + in: 'query', required: false, schema: { - title: 'Limit', - maximum: 1000.0, - exclusiveMinimum: 0.0, - type: 'integer', + anyOf: [{ type: 'integer', maximum: 1000, exclusiveMinimum: 0 }, { type: 'null' }], description: 'defaults to 100', + title: 'Limit', }, - name: 'limit', - in: 'query', + description: 'defaults to 100', }, { - description: 'defaults to 0', + name: 'offset', + in: 'query', required: false, schema: { - title: 'Offset', - minimum: 0.0, - type: 'integer', + anyOf: [{ type: 'integer', minimum: 0 }, { type: 'null' }], description: 'defaults to 0', + title: 'Offset', }, - name: 'offset', - in: 'query', + description: 'defaults to 0', }, { - description: - "common separated list of fields to order by, prefix with '-' to sort descendingly.", + name: 'order_by', + in: 'query', required: false, schema: { - title: 'Order By', - type: 'string', + anyOf: [{ type: 'string' }, { type: 'null' }], description: "common separated list of fields to order by, prefix with '-' to sort descendingly.", + title: 'Order By', }, - name: 'order_by', - in: 'query', + description: + "common separated list of fields to order by, prefix with '-' to sort descendingly.", + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -689,9 +862,9 @@ export default { content: { 'application/json': { schema: { - title: 'Response Query Task States Tasks Get', type: 'array', items: { $ref: '#/components/schemas/TaskState' }, + title: 'Response Query Task States Tasks Get', }, }, }, @@ -713,12 +886,18 @@ export default { operationId: 'get_task_state_tasks__task_id__state_get', parameters: [ { - description: 'task_id', - required: true, - schema: { title: 'Task Id', type: 'string', description: 'task_id' }, name: 'task_id', in: 'path', - }, + required: true, + schema: { type: 'string', description: 'task_id', title: 'Task Id' }, + description: 'task_id', + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], responses: { '200': { @@ -742,25 +921,31 @@ export default { operationId: 'get_task_log_tasks__task_id__log_get', parameters: [ { - description: 'task_id', - required: true, - schema: { title: 'Task Id', type: 'string', description: 'task_id' }, name: 'task_id', in: 'path', + required: true, + schema: { type: 'string', description: 'task_id', title: 'Task Id' }, + description: 'task_id', }, { - description: - '\n The period of time to fetch, in unix millis.\n\n This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', + name: 'between', + in: 'query', required: false, schema: { - title: 'Between', type: 'string', description: '\n The period of time to fetch, in unix millis.\n\n This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', default: '-60000', + title: 'Between', }, - name: 'between', - in: 'query', + description: + '\n The period of time to fetch, in unix millis.\n\n This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -784,13 +969,21 @@ export default { tags: ['Tasks'], summary: 'Post Activity Discovery', operationId: 'post_activity_discovery_tasks_activity_discovery_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/ActivityDiscoveryRequest' }, }, }, - required: true, }, responses: { '200': { @@ -813,11 +1006,19 @@ export default { tags: ['Tasks'], summary: 'Post Cancel Task', operationId: 'post_cancel_task_tasks_cancel_task_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/CancelTaskRequest' } }, }, - required: true, }, responses: { '200': { @@ -840,28 +1041,32 @@ export default { tags: ['Tasks'], summary: 'Post Dispatch Task', operationId: 'post_dispatch_task_tasks_dispatch_task_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/DispatchTaskRequest' } }, }, - required: true, }, responses: { '200': { description: 'Successful Response', content: { - 'application/json': { - schema: { $ref: '#/components/schemas/TaskDispatchResponseItem' }, - }, + 'application/json': { schema: { $ref: '#/components/schemas/TaskDispatchResponse' } }, }, }, '400': { - description: 'Bad Request', content: { - 'application/json': { - schema: { $ref: '#/components/schemas/TaskDispatchResponseItem1' }, - }, + 'application/json': { schema: { $ref: '#/components/schemas/TaskDispatchResponse' } }, }, + description: 'Bad Request', }, '422': { description: 'Validation Error', @@ -877,11 +1082,19 @@ export default { tags: ['Tasks'], summary: 'Post Robot Task', operationId: 'post_robot_task_tasks_robot_task_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/RobotTaskRequest' } }, }, - required: true, }, responses: { '200': { @@ -891,10 +1104,10 @@ export default { }, }, '400': { - description: 'Bad Request', content: { 'application/json': { schema: { $ref: '#/components/schemas/RobotTaskResponse' } }, }, + description: 'Bad Request', }, '422': { description: 'Validation Error', @@ -910,13 +1123,21 @@ export default { tags: ['Tasks'], summary: 'Post Interrupt Task', operationId: 'post_interrupt_task_tasks_interrupt_task_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/TaskInterruptionRequest' }, }, }, - required: true, }, responses: { '200': { @@ -941,11 +1162,19 @@ export default { tags: ['Tasks'], summary: 'Post Kill Task', operationId: 'post_kill_task_tasks_kill_task_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/TaskKillRequest' } }, }, - required: true, }, responses: { '200': { @@ -968,11 +1197,19 @@ export default { tags: ['Tasks'], summary: 'Post Resume Task', operationId: 'post_resume_task_tasks_resume_task_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/TaskResumeRequest' } }, }, - required: true, }, responses: { '200': { @@ -995,11 +1232,19 @@ export default { tags: ['Tasks'], summary: 'Post Rewind Task', operationId: 'post_rewind_task_tasks_rewind_task_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/TaskRewindRequest' } }, }, - required: true, }, responses: { '200': { @@ -1022,11 +1267,19 @@ export default { tags: ['Tasks'], summary: 'Post Skip Phase', operationId: 'post_skip_phase_tasks_skip_phase_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/TaskPhaseSkipRequest' } }, }, - required: true, }, responses: { '200': { @@ -1049,11 +1302,19 @@ export default { tags: ['Tasks'], summary: 'Post Task Discovery', operationId: 'post_task_discovery_tasks_task_discovery_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/TaskDiscoveryRequest' } }, }, - required: true, }, responses: { '200': { @@ -1076,11 +1337,19 @@ export default { tags: ['Tasks'], summary: 'Post Undo Skip Phase', operationId: 'post_undo_skip_phase_tasks_undo_skip_phase_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/UndoPhaseSkipRequest' } }, }, - required: true, }, responses: { '200': { @@ -1101,72 +1370,112 @@ export default { }, }, '/scheduled_tasks': { + post: { + tags: ['Tasks'], + summary: 'Post Scheduled Task', + description: + 'Create a scheduled task. Below are some examples of how the schedules are represented.\nFor more examples, check the docs of the underlying library used [here](https://github.com/dbader/schedule/blob/6eb0b5346b1ce35ece5050e65789fa6e44368175/docs/examples.rst).\n\n| every | to | period | at | description |\n| - | - | - | - | - |\n| 10 | - | minutes | - | Every 10 minutes |\n| - | - | hour | - | Every hour |\n| - | - | day | 10:30 | Every day at 10:30am |\n| - | - | monday | - | Every monday |\n| - | - | wednesday | 13:15 | Every wednesday at 01:15pm |\n| - | - | minute | :17 | Every 17th sec of a mintue |\n| 5 | 10 | seconds | - | Every 5-10 seconds (randomly) |', + operationId: 'post_scheduled_task_scheduled_tasks_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], + requestBody: { + required: true, + content: { + 'application/json': { + schema: { $ref: '#/components/schemas/PostScheduledTaskRequest' }, + }, + }, + }, + responses: { + '201': { + description: 'Successful Response', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/ScheduledTask' } }, + }, + }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, + }, + }, get: { tags: ['Tasks'], summary: 'Get Scheduled Tasks', operationId: 'get_scheduled_tasks_scheduled_tasks_get', parameters: [ { - description: 'Only return scheduled tasks that start before given timestamp', + name: 'start_before', + in: 'query', required: true, schema: { - title: 'Start Before', type: 'string', - description: 'Only return scheduled tasks that start before given timestamp', format: 'date-time', + description: 'Only return scheduled tasks that start before given timestamp', + title: 'Start Before', }, - name: 'start_before', - in: 'query', + description: 'Only return scheduled tasks that start before given timestamp', }, { - description: 'Only return scheduled tasks that stop after given timestamp', + name: 'until_after', + in: 'query', required: true, schema: { - title: 'Until After', type: 'string', - description: 'Only return scheduled tasks that stop after given timestamp', format: 'date-time', + description: 'Only return scheduled tasks that stop after given timestamp', + title: 'Until After', }, - name: 'until_after', - in: 'query', + description: 'Only return scheduled tasks that stop after given timestamp', }, { - description: 'defaults to 100', + name: 'limit', + in: 'query', required: false, schema: { - title: 'Limit', - maximum: 1000.0, - exclusiveMinimum: 0.0, - type: 'integer', + anyOf: [{ type: 'integer', maximum: 1000, exclusiveMinimum: 0 }, { type: 'null' }], description: 'defaults to 100', + title: 'Limit', }, - name: 'limit', - in: 'query', + description: 'defaults to 100', }, { - description: 'defaults to 0', + name: 'offset', + in: 'query', required: false, schema: { - title: 'Offset', - minimum: 0.0, - type: 'integer', + anyOf: [{ type: 'integer', minimum: 0 }, { type: 'null' }], description: 'defaults to 0', + title: 'Offset', }, - name: 'offset', - in: 'query', + description: 'defaults to 0', }, { - description: - "common separated list of fields to order by, prefix with '-' to sort descendingly.", + name: 'order_by', + in: 'query', required: false, schema: { - title: 'Order By', - type: 'string', + anyOf: [{ type: 'string' }, { type: 'null' }], description: "common separated list of fields to order by, prefix with '-' to sort descendingly.", + title: 'Order By', }, - name: 'order_by', - in: 'query', + description: + "common separated list of fields to order by, prefix with '-' to sort descendingly.", + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -1175,40 +1484,9 @@ export default { content: { 'application/json': { schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask_list', - }, - }, - }, - }, - '422': { - description: 'Validation Error', - content: { - 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, - }, - }, - }, - }, - post: { - tags: ['Tasks'], - summary: 'Post Scheduled Task', - description: - 'Create a scheduled task. Below are some examples of how the schedules are represented.\nFor more examples, check the docs of the underlying library used [here](https://github.com/dbader/schedule/blob/6eb0b5346b1ce35ece5050e65789fa6e44368175/docs/examples.rst).\n\n| every | to | period | at | description |\n| - | - | - | - | - |\n| 10 | - | minutes | - | Every 10 minutes |\n| - | - | hour | - | Every hour |\n| - | - | day | 10:30 | Every day at 10:30am |\n| - | - | monday | - | Every monday |\n| - | - | wednesday | 13:15 | Every wednesday at 01:15pm |\n| - | - | minute | :17 | Every 17th sec of a mintue |\n| 5 | 10 | seconds | - | Every 5-10 seconds (randomly) |', - operationId: 'post_scheduled_task_scheduled_tasks_post', - requestBody: { - content: { - 'application/json': { - schema: { $ref: '#/components/schemas/PostScheduledTaskRequest' }, - }, - }, - required: true, - }, - responses: { - '201': { - description: 'Successful Response', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask', + type: 'array', + items: { $ref: '#/components/schemas/ScheduledTask' }, + title: 'Response Get Scheduled Tasks Scheduled Tasks Get', }, }, }, @@ -1229,21 +1507,23 @@ export default { operationId: 'get_scheduled_task_scheduled_tasks__task_id__get', parameters: [ { - required: true, - schema: { title: 'Task Id', type: 'integer' }, name: 'task_id', in: 'path', + required: true, + schema: { type: 'integer', title: 'Task Id' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { '200': { description: 'Successful Response', content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask', - }, - }, + 'application/json': { schema: { $ref: '#/components/schemas/ScheduledTask' } }, }, }, '422': { @@ -1260,10 +1540,16 @@ export default { operationId: 'del_scheduled_tasks_scheduled_tasks__task_id__delete', parameters: [ { - required: true, - schema: { title: 'Task Id', type: 'integer' }, name: 'task_id', in: 'path', + required: true, + schema: { type: 'integer', title: 'Task Id' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -1287,16 +1573,22 @@ export default { operationId: 'del_scheduled_tasks_event_scheduled_tasks__task_id__clear_put', parameters: [ { - required: true, - schema: { title: 'Task Id', type: 'integer' }, name: 'task_id', in: 'path', + required: true, + schema: { type: 'integer', title: 'Task Id' }, }, { - required: true, - schema: { title: 'Event Date', type: 'string', format: 'date-time' }, name: 'event_date', in: 'query', + required: true, + schema: { type: 'string', format: 'date-time', title: 'Event Date' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -1320,35 +1612,40 @@ export default { operationId: 'update_schedule_task_scheduled_tasks__task_id__update_post', parameters: [ { - required: true, - schema: { title: 'Task Id', type: 'integer' }, name: 'task_id', in: 'path', + required: true, + schema: { type: 'integer', title: 'Task Id' }, }, { - required: false, - schema: { title: 'Except Date', type: 'string', format: 'date-time' }, name: 'except_date', in: 'query', + required: false, + schema: { + anyOf: [{ type: 'string', format: 'date-time' }, { type: 'null' }], + title: 'Except Date', + }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/PostScheduledTaskRequest' }, }, }, - required: true, }, responses: { '201': { description: 'Successful Response', content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask', - }, - }, + 'application/json': { schema: { $ref: '#/components/schemas/ScheduledTask' } }, }, }, '422': { @@ -1361,42 +1658,58 @@ export default { }, }, '/favorite_tasks': { - get: { + post: { tags: ['Tasks'], - summary: 'Get Favorites Tasks', - operationId: 'get_favorites_tasks_favorite_tasks_get', + summary: 'Post Favorite Task', + operationId: 'post_favorite_task_favorite_tasks_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], + requestBody: { + required: true, + content: { + 'application/json': { schema: { $ref: '#/components/schemas/TaskFavoritePydantic' } }, + }, + }, responses: { '200': { description: 'Successful Response', + content: { 'application/json': { schema: {} } }, + }, + '422': { + description: 'Validation Error', content: { - 'application/json': { - schema: { - title: 'Response Get Favorites Tasks Favorite Tasks Get', - type: 'array', - items: { $ref: '#/components/schemas/TaskFavoritePydantic' }, - }, - }, + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, }, }, }, }, - post: { + get: { tags: ['Tasks'], - summary: 'Post Favorite Task', - operationId: 'post_favorite_task_favorite_tasks_post', - requestBody: { - content: { - 'application/json': { schema: { $ref: '#/components/schemas/TaskFavoritePydantic' } }, + summary: 'Get Favorites Tasks', + operationId: 'get_favorites_tasks_favorite_tasks_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, - required: true, - }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - $ref: '#/components/schemas/api_server.models.tortoise_models.tasks.TaskFavorite.leaf', + type: 'array', + items: { $ref: '#/components/schemas/TaskFavoritePydantic' }, + title: 'Response Get Favorites Tasks Favorite Tasks Get', }, }, }, @@ -1417,10 +1730,16 @@ export default { operationId: 'delete_favorite_task_favorite_tasks__favorite_task_id__delete', parameters: [ { - required: true, - schema: { title: 'Favorite Task Id', type: 'string' }, name: 'favorite_task_id', in: 'path', + required: true, + schema: { type: 'string', title: 'Favorite Task Id' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -1442,19 +1761,33 @@ export default { tags: ['Dispensers'], summary: 'Get Dispensers', operationId: 'get_dispensers_dispensers_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Dispensers Dispensers Get', type: 'array', items: { $ref: '#/components/schemas/Dispenser' }, + title: 'Response Get Dispensers Dispensers Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, }, @@ -1465,7 +1798,13 @@ export default { description: 'Available in socket.io', operationId: 'get_dispenser_state_dispensers__guid__state_get', parameters: [ - { required: true, schema: { title: 'Guid', type: 'string' }, name: 'guid', in: 'path' }, + { name: 'guid', in: 'path', required: true, schema: { type: 'string', title: 'Guid' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], responses: { '200': { @@ -1490,7 +1829,13 @@ export default { description: 'Available in socket.io', operationId: 'get_dispenser_health_dispensers__guid__health_get', parameters: [ - { required: true, schema: { title: 'Guid', type: 'string' }, name: 'guid', in: 'path' }, + { name: 'guid', in: 'path', required: true, schema: { type: 'string', title: 'Guid' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], responses: { '200': { @@ -1513,19 +1858,33 @@ export default { tags: ['Ingestors'], summary: 'Get Ingestors', operationId: 'get_ingestors_ingestors_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Ingestors Ingestors Get', type: 'array', items: { $ref: '#/components/schemas/Ingestor' }, + title: 'Response Get Ingestors Ingestors Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, }, @@ -1536,7 +1895,13 @@ export default { description: 'Available in socket.io', operationId: 'get_ingestor_state_ingestors__guid__state_get', parameters: [ - { required: true, schema: { title: 'Guid', type: 'string' }, name: 'guid', in: 'path' }, + { name: 'guid', in: 'path', required: true, schema: { type: 'string', title: 'Guid' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], responses: { '200': { @@ -1561,7 +1926,13 @@ export default { description: 'Available in socket.io', operationId: 'get_ingestor_health_ingestors__guid__health_get', parameters: [ - { required: true, schema: { title: 'Guid', type: 'string' }, name: 'guid', in: 'path' }, + { name: 'guid', in: 'path', required: true, schema: { type: 'string', title: 'Guid' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], responses: { '200': { @@ -1584,21 +1955,33 @@ export default { tags: ['Fleets'], summary: 'Get Fleets', operationId: 'get_fleets_fleets_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Fleets Fleets Get', type: 'array', - items: { - $ref: '#/components/schemas/api_server__models__rmf_api__fleet_state__FleetState', - }, + items: { $ref: '#/components/schemas/FleetState' }, + title: 'Response Get Fleets Fleets Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, }, @@ -1609,17 +1992,19 @@ export default { description: 'Available in socket.io', operationId: 'get_fleet_state_fleets__name__state_get', parameters: [ - { required: true, schema: { title: 'Name', type: 'string' }, name: 'name', in: 'path' }, + { name: 'name', in: 'path', required: true, schema: { type: 'string', title: 'Name' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], responses: { '200': { description: 'Successful Response', content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/api_server__models__rmf_api__fleet_state__FleetState', - }, - }, + 'application/json': { schema: { $ref: '#/components/schemas/FleetState' } }, }, }, '422': { @@ -1638,32 +2023,32 @@ export default { description: 'Available in socket.io', operationId: 'get_fleet_log_fleets__name__log_get', parameters: [ - { required: true, schema: { title: 'Name', type: 'string' }, name: 'name', in: 'path' }, + { name: 'name', in: 'path', required: true, schema: { type: 'string', title: 'Name' } }, { - description: - '\n The period of time to fetch, in unix millis.\n\n This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', + name: 'between', + in: 'query', required: false, schema: { - title: 'Between', type: 'string', description: '\n The period of time to fetch, in unix millis.\n\n This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', default: '-60000', + title: 'Between', }, - name: 'between', - in: 'query', + description: + '\n The period of time to fetch, in unix millis.\n\n This can be either a comma separated string or a string prefixed with \'-\' to fetch the last X millis.\n\n Example:\n "1000,2000" - Fetches logs between unix millis 1000 and 2000.\n "-60000" - Fetches logs in the last minute.\n ', + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { '200': { description: 'Successful Response', - content: { - 'application/json': { - schema: { - $ref: '#/components/schemas/api_server__models__rmf_api__fleet_log__FleetState', - }, - }, - }, + content: { 'application/json': { schema: { $ref: '#/components/schemas/FleetLog' } } }, }, '422': { description: 'Validation Error', @@ -1682,59 +2067,62 @@ export default { operationId: 'get_users_admin_users_get', parameters: [ { - description: 'filters username that starts with the value', + name: 'username', + in: 'query', required: false, schema: { - title: 'Username', - type: 'string', + anyOf: [{ type: 'string' }, { type: 'null' }], description: 'filters username that starts with the value', + title: 'Username', }, - name: 'username', - in: 'query', + description: 'filters username that starts with the value', }, { - required: false, - schema: { title: 'Is Admin', type: 'boolean' }, name: 'is_admin', in: 'query', + required: false, + schema: { anyOf: [{ type: 'boolean' }, { type: 'null' }], title: 'Is Admin' }, }, { - description: 'defaults to 100', + name: 'limit', + in: 'query', required: false, schema: { - title: 'Limit', - maximum: 1000.0, - exclusiveMinimum: 0.0, - type: 'integer', + anyOf: [{ type: 'integer', maximum: 1000, exclusiveMinimum: 0 }, { type: 'null' }], description: 'defaults to 100', + title: 'Limit', }, - name: 'limit', - in: 'query', + description: 'defaults to 100', }, { - description: 'defaults to 0', + name: 'offset', + in: 'query', required: false, schema: { - title: 'Offset', - minimum: 0.0, - type: 'integer', + anyOf: [{ type: 'integer', minimum: 0 }, { type: 'null' }], description: 'defaults to 0', + title: 'Offset', }, - name: 'offset', - in: 'query', + description: 'defaults to 0', }, { - description: - "common separated list of fields to order by, prefix with '-' to sort descendingly.", + name: 'order_by', + in: 'query', required: false, schema: { - title: 'Order By', - type: 'string', + anyOf: [{ type: 'string' }, { type: 'null' }], description: "common separated list of fields to order by, prefix with '-' to sort descendingly.", + title: 'Order By', }, - name: 'order_by', - in: 'query', + description: + "common separated list of fields to order by, prefix with '-' to sort descendingly.", + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -1743,9 +2131,9 @@ export default { content: { 'application/json': { schema: { - title: 'Response Get Users Admin Users Get', type: 'array', items: { type: 'string' }, + title: 'Response Get Users Admin Users Get', }, }, }, @@ -1763,9 +2151,17 @@ export default { summary: 'Create User', description: 'Create a user', operationId: 'create_user_admin_users_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { - content: { 'application/json': { schema: { $ref: '#/components/schemas/PostUsers' } } }, required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/PostUsers' } } }, }, responses: { '200': { @@ -1789,10 +2185,16 @@ export default { operationId: 'get_user_admin_users__username__get', parameters: [ { - required: true, - schema: { title: 'Username', type: 'string' }, name: 'username', in: 'path', + required: true, + schema: { type: 'string', title: 'Username' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -1816,10 +2218,16 @@ export default { operationId: 'delete_user_admin_users__username__delete', parameters: [ { - required: true, - schema: { title: 'Username', type: 'string' }, name: 'username', in: 'path', + required: true, + schema: { type: 'string', title: 'Username' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], responses: { @@ -1844,17 +2252,23 @@ export default { operationId: 'make_admin_admin_users__username__make_admin_post', parameters: [ { - required: true, - schema: { title: 'Username', type: 'string' }, name: 'username', in: 'path', + required: true, + schema: { type: 'string', title: 'Username' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], requestBody: { + required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/PostMakeAdmin' } }, }, - required: true, }, responses: { '200': { @@ -1871,30 +2285,28 @@ export default { }, }, '/admin/users/{username}/roles': { - put: { + post: { tags: ['Admin'], - summary: 'Set User Roles', - description: 'Set the roles of a user', - operationId: 'set_user_roles_admin_users__username__roles_put', + summary: 'Add User Role', + description: 'Add role to a user', + operationId: 'add_user_role_admin_users__username__roles_post', parameters: [ { - required: true, - schema: { title: 'Username', type: 'string' }, name: 'username', in: 'path', + required: true, + schema: { type: 'string', title: 'Username' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], requestBody: { - content: { - 'application/json': { - schema: { - title: 'Body', - type: 'array', - items: { $ref: '#/components/schemas/PostRoles' }, - }, - }, - }, required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/PostRoles' } } }, }, responses: { '200': { @@ -1909,22 +2321,36 @@ export default { }, }, }, - post: { + put: { tags: ['Admin'], - summary: 'Add User Role', - description: 'Add role to a user', - operationId: 'add_user_role_admin_users__username__roles_post', + summary: 'Set User Roles', + description: 'Set the roles of a user', + operationId: 'set_user_roles_admin_users__username__roles_put', parameters: [ { - required: true, - schema: { title: 'Username', type: 'string' }, name: 'username', in: 'path', + required: true, + schema: { type: 'string', title: 'Username' }, + }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, }, ], requestBody: { - content: { 'application/json': { schema: { $ref: '#/components/schemas/PostRoles' } } }, required: true, + content: { + 'application/json': { + schema: { + type: 'array', + items: { $ref: '#/components/schemas/PostRoles' }, + title: 'Body', + }, + }, + }, }, responses: { '200': { @@ -1948,14 +2374,20 @@ export default { operationId: 'delete_user_role_admin_users__username__roles__role__delete', parameters: [ { - required: true, - schema: { title: 'Username', type: 'string' }, name: 'username', in: 'path', + required: true, + schema: { type: 'string', title: 'Username' }, }, - { required: true, schema: { title: 'Role', type: 'string' }, name: 'role', in: 'path' }, - ], - responses: { + { name: 'role', in: 'path', required: true, schema: { type: 'string', title: 'Role' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], + responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: {} } }, @@ -1975,19 +2407,33 @@ export default { summary: 'Get Roles', description: 'Get all roles', operationId: 'get_roles_admin_roles_get', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], responses: { '200': { description: 'Successful Response', content: { 'application/json': { schema: { - title: 'Response Get Roles Admin Roles Get', type: 'array', items: { type: 'string' }, + title: 'Response Get Roles Admin Roles Get', }, }, }, }, + '422': { + description: 'Validation Error', + content: { + 'application/json': { schema: { $ref: '#/components/schemas/HTTPValidationError' } }, + }, + }, }, }, post: { @@ -1995,9 +2441,17 @@ export default { summary: 'Create Role', description: 'Create a new role', operationId: 'create_role_admin_roles_post', + parameters: [ + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, + ], requestBody: { - content: { 'application/json': { schema: { $ref: '#/components/schemas/PostRoles' } } }, required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/PostRoles' } } }, }, responses: { '200': { @@ -2020,7 +2474,13 @@ export default { description: 'Delete a role', operationId: 'delete_role_admin_roles__role__delete', parameters: [ - { required: true, schema: { title: 'Role', type: 'string' }, name: 'role', in: 'path' }, + { name: 'role', in: 'path', required: true, schema: { type: 'string', title: 'Role' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], responses: { '200': { @@ -2043,7 +2503,13 @@ export default { description: 'Get all permissions of a role', operationId: 'get_role_permissions_admin_roles__role__permissions_get', parameters: [ - { required: true, schema: { title: 'Role', type: 'string' }, name: 'role', in: 'path' }, + { name: 'role', in: 'path', required: true, schema: { type: 'string', title: 'Role' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], responses: { '200': { @@ -2051,9 +2517,9 @@ export default { content: { 'application/json': { schema: { - title: 'Response Get Role Permissions Admin Roles Role Permissions Get', type: 'array', items: { $ref: '#/components/schemas/Permission' }, + title: 'Response Get Role Permissions Admin Roles Role Permissions Get', }, }, }, @@ -2072,11 +2538,17 @@ export default { description: 'Add a permission to a role', operationId: 'add_role_permission_admin_roles__role__permissions_post', parameters: [ - { required: true, schema: { title: 'Role', type: 'string' }, name: 'role', in: 'path' }, + { name: 'role', in: 'path', required: true, schema: { type: 'string', title: 'Role' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], requestBody: { - content: { 'application/json': { schema: { $ref: '#/components/schemas/Permission' } } }, required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/Permission' } } }, }, responses: { '200': { @@ -2099,11 +2571,17 @@ export default { description: 'Delete a permission from a role', operationId: 'remove_role_permission_admin_roles__role__permissions_remove_post', parameters: [ - { required: true, schema: { title: 'Role', type: 'string' }, name: 'role', in: 'path' }, + { name: 'role', in: 'path', required: true, schema: { type: 'string', title: 'Role' } }, + { + name: 'authorization', + in: 'header', + required: false, + schema: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Authorization' }, + }, ], requestBody: { - content: { 'application/json': { schema: { $ref: '#/components/schemas/Permission' } } }, required: true, + content: { 'application/json': { schema: { $ref: '#/components/schemas/Permission' } } }, }, responses: { '200': { @@ -2123,280 +2601,291 @@ export default { components: { schemas: { Activity: { - title: 'Activity', - required: ['category', 'detail'], - type: 'object', properties: { category: { - title: 'Category', type: 'string', + title: 'Category', description: 'The category of this activity. There must not be any duplicate activity categories per fleet.', }, detail: { - title: 'Detail', type: 'string', + title: 'Detail', description: 'Details about the behavior of the activity.', }, description_schema: { + anyOf: [{ type: 'object' }, { type: 'null' }], title: 'Description Schema', - type: 'object', description: 'The schema for this activity description', }, }, + type: 'object', + required: ['category', 'detail'], + title: 'Activity', }, ActivityDiscovery: { - title: 'ActivityDiscovery', - type: 'object', properties: { - data: { title: 'Data', type: 'array', items: { $ref: '#/components/schemas/Datum' } }, + data: { + anyOf: [ + { items: { $ref: '#/components/schemas/Datum' }, type: 'array' }, + { type: 'null' }, + ], + title: 'Data', + }, }, + type: 'object', + title: 'ActivityDiscovery', }, ActivityDiscoveryRequest: { - title: 'ActivityDiscoveryRequest', - required: ['type'], - type: 'object', properties: { type: { + const: 'activitiy_discovery_request', title: 'Type', - enum: ['activitiy_discovery_request'], - type: 'string', description: 'Indicate that this is an activity discovery request', }, }, + type: 'object', + required: ['type'], + title: 'ActivityDiscoveryRequest', }, AffineImage: { - title: 'AffineImage', - required: ['name', 'x_offset', 'y_offset', 'yaw', 'scale', 'encoding', 'data'], - type: 'object', properties: { - name: { title: 'Name', type: 'string', default: '' }, - x_offset: { title: 'X Offset', type: 'number', default: 0 }, - y_offset: { title: 'Y Offset', type: 'number', default: 0 }, - yaw: { title: 'Yaw', type: 'number', default: 0 }, - scale: { title: 'Scale', type: 'number', default: 0 }, - encoding: { title: 'Encoding', type: 'string', default: '' }, - data: { title: 'Data', type: 'string' }, + name: { type: 'string', title: 'Name' }, + x_offset: { type: 'number', title: 'X Offset' }, + y_offset: { type: 'number', title: 'Y Offset' }, + yaw: { type: 'number', title: 'Yaw' }, + scale: { type: 'number', title: 'Scale' }, + encoding: { type: 'string', title: 'Encoding' }, + data: { type: 'string', title: 'Data' }, }, + type: 'object', + required: ['name', 'x_offset', 'y_offset', 'yaw', 'scale', 'encoding', 'data'], + title: 'AffineImage', }, AssignedTo: { - title: 'AssignedTo', - required: ['group', 'name'], - type: 'object', properties: { - group: { title: 'Group', type: 'string' }, - name: { title: 'Name', type: 'string' }, + group: { type: 'string', title: 'Group' }, + name: { type: 'string', title: 'Name' }, }, + type: 'object', + required: ['group', 'name'], + title: 'AssignedTo', }, Assignment: { - title: 'Assignment', - type: 'object', properties: { - fleet_name: { title: 'Fleet Name', type: 'string' }, - expected_robot_name: { title: 'Expected Robot Name', type: 'string' }, + fleet_name: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Fleet Name' }, + expected_robot_name: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Expected Robot Name', + }, }, + type: 'object', + title: 'Assignment', }, Booking: { - title: 'Booking', - required: ['id'], - type: 'object', properties: { - id: { title: 'Id', type: 'string', description: 'The unique identifier for this task' }, + id: { type: 'string', title: 'Id', description: 'The unique identifier for this task' }, unix_millis_earliest_start_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], title: 'Unix Millis Earliest Start Time', - type: 'integer', }, - unix_millis_request_time: { title: 'Unix Millis Request Time', type: 'integer' }, + unix_millis_request_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], + title: 'Unix Millis Request Time', + }, priority: { + anyOf: [{ type: 'object' }, { type: 'string' }, { type: 'null' }], title: 'Priority', - anyOf: [{ type: 'object' }, { type: 'string' }], description: 'Priority information about this task', }, labels: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], title: 'Labels', - type: 'array', - items: { type: 'string' }, description: 'Information about how and why this task was booked', }, requester: { + anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Requester', - type: 'string', description: '(Optional) An identifier for the entity that requested this task', }, }, + type: 'object', + required: ['id'], + title: 'Booking', }, BuildingMap: { - title: 'BuildingMap', - required: ['name', 'levels', 'lifts'], - type: 'object', properties: { - name: { title: 'Name', type: 'string', default: '' }, - levels: { title: 'Levels', type: 'array', items: { $ref: '#/components/schemas/Level' } }, - lifts: { - title: 'Lifts', - type: 'array', - items: { $ref: '#/components/schemas/Lift' }, - default: [], - }, + name: { type: 'string', title: 'Name' }, + levels: { items: { $ref: '#/components/schemas/Level' }, type: 'array', title: 'Levels' }, + lifts: { items: { $ref: '#/components/schemas/Lift' }, type: 'array', title: 'Lifts' }, }, + type: 'object', + required: ['name', 'levels', 'lifts'], + title: 'BuildingMap', }, CancelTaskRequest: { - title: 'CancelTaskRequest', - required: ['type', 'task_id'], - type: 'object', properties: { type: { + const: 'cancel_task_request', title: 'Type', - enum: ['cancel_task_request'], - type: 'string', description: 'Indicate that this is a task cancellation request', }, task_id: { - title: 'Task Id', type: 'string', + title: 'Task Id', description: 'Specify the task ID to cancel', }, labels: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], title: 'Labels', - type: 'array', - items: { type: 'string' }, description: 'Labels to describe the purpose of the cancellation', }, }, + type: 'object', + required: ['type', 'task_id'], + title: 'CancelTaskRequest', }, Cancellation: { - title: 'Cancellation', - required: ['unix_millis_request_time', 'labels'], - type: 'object', properties: { unix_millis_request_time: { - title: 'Unix Millis Request Time', type: 'integer', + title: 'Unix Millis Request Time', description: 'The time that the cancellation request arrived', }, labels: { - title: 'Labels', - type: 'array', items: { type: 'string' }, + type: 'array', + title: 'Labels', description: 'Labels to describe the cancel request', }, }, + type: 'object', + required: ['unix_millis_request_time', 'labels'], + title: 'Cancellation', }, - Category: { - title: 'Category', - type: 'string', - description: 'The category of this task or phase', - }, + Category: { type: 'string', title: 'Category' }, Data: { - title: 'Data', - type: 'object', properties: { fleet_name: { + anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Fleet Name', - type: 'string', description: 'Name of the fleet that supports these tasks', }, tasks: { + anyOf: [ + { items: { $ref: '#/components/schemas/Task' }, type: 'array' }, + { type: 'null' }, + ], title: 'Tasks', - type: 'array', - items: { $ref: '#/components/schemas/Task' }, description: '(list:replace) List of tasks that the fleet supports', }, }, + type: 'object', + title: 'Data', }, Datum: { - title: 'Datum', - required: ['fleet_name', 'activities'], - type: 'object', properties: { fleet_name: { - title: 'Fleet Name', type: 'string', + title: 'Fleet Name', description: 'Name of the fleet that supports these activities', }, activities: { - title: 'Activities', - type: 'array', items: { $ref: '#/components/schemas/Activity' }, + type: 'array', + title: 'Activities', description: 'List of activities that the fleet supports', }, }, + type: 'object', + required: ['fleet_name', 'activities'], + title: 'Datum', }, Detail: { + anyOf: [{ type: 'object' }, { items: {}, type: 'array' }, { type: 'string' }], title: 'Detail', - anyOf: [{ type: 'object' }, { type: 'array', items: {} }, { type: 'string' }], - description: 'Detailed information about a task, phase, or event', }, Dispatch: { - title: 'Dispatch', - required: ['status'], - type: 'object', properties: { - status: { $ref: '#/components/schemas/Status1' }, - assignment: { $ref: '#/components/schemas/Assignment' }, - errors: { title: 'Errors', type: 'array', items: { $ref: '#/components/schemas/Error' } }, + status: { $ref: '#/components/schemas/Status2' }, + assignment: { anyOf: [{ $ref: '#/components/schemas/Assignment' }, { type: 'null' }] }, + errors: { + anyOf: [ + { items: { $ref: '#/components/schemas/Error' }, type: 'array' }, + { type: 'null' }, + ], + title: 'Errors', + }, }, + type: 'object', + required: ['status'], + title: 'Dispatch', }, DispatchTaskRequest: { - title: 'DispatchTaskRequest', - required: ['type', 'request'], - type: 'object', properties: { type: { + const: 'dispatch_task_request', title: 'Type', - enum: ['dispatch_task_request'], - type: 'string', description: 'Indicate that this is a task dispatch request', }, request: { $ref: '#/components/schemas/TaskRequest' }, }, + type: 'object', + required: ['type', 'request'], + title: 'DispatchTaskRequest', }, Dispenser: { - title: 'Dispenser', - required: ['guid'], + properties: { guid: { type: 'string', title: 'Guid' } }, type: 'object', - properties: { guid: { title: 'Guid', type: 'string' } }, + required: ['guid'], + title: 'Dispenser', }, DispenserHealth: { - title: 'DispenserHealth', - required: ['health_status', 'id_'], - type: 'object', properties: { - health_status: { title: 'Health Status', maxLength: 255, type: 'string', nullable: true }, - health_message: { title: 'Health Message', type: 'string', nullable: true }, - id_: { title: 'Id ', maxLength: 255, type: 'string' }, + id_: { type: 'string', title: 'Id ' }, + health_status: { $ref: '#/components/schemas/HealthStatus' }, + health_message: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Health Message', + }, }, - additionalProperties: false, + type: 'object', + required: ['id_', 'health_status', 'health_message'], + title: 'DispenserHealth', }, DispenserState: { - title: 'DispenserState', - required: ['time', 'guid', 'mode', 'request_guid_queue', 'seconds_remaining'], - type: 'object', properties: { - time: { - title: 'Time', - allOf: [{ $ref: '#/components/schemas/Time' }], - default: { sec: 0, nanosec: 0 }, - }, - guid: { title: 'Guid', type: 'string', default: '' }, - mode: { - title: 'Mode', - maximum: 2147483647.0, - minimum: -2147483648.0, - type: 'integer', - default: 0, - }, + time: { $ref: '#/components/schemas/Time' }, + guid: { type: 'string', title: 'Guid' }, + mode: { type: 'integer', maximum: 2147483647.0, minimum: -2147483648.0, title: 'Mode' }, request_guid_queue: { - title: 'Request Guid Queue', - type: 'array', items: { type: 'string' }, - default: [], + type: 'array', + title: 'Request Guid Queue', }, - seconds_remaining: { title: 'Seconds Remaining', type: 'number', default: 0 }, + seconds_remaining: { type: 'number', title: 'Seconds Remaining' }, }, + type: 'object', + required: ['time', 'guid', 'mode', 'request_guid_queue', 'seconds_remaining'], + title: 'DispenserState', }, Door: { - title: 'Door', + properties: { + name: { type: 'string', title: 'Name' }, + v1_x: { type: 'number', title: 'V1 X' }, + v1_y: { type: 'number', title: 'V1 Y' }, + v2_x: { type: 'number', title: 'V2 X' }, + v2_y: { type: 'number', title: 'V2 Y' }, + door_type: { type: 'integer', maximum: 255.0, minimum: 0.0, title: 'Door Type' }, + motion_range: { type: 'number', title: 'Motion Range' }, + motion_direction: { + type: 'integer', + maximum: 2147483647.0, + minimum: -2147483648.0, + title: 'Motion Direction', + }, + }, + type: 'object', required: [ 'name', 'v1_x', @@ -2407,357 +2896,339 @@ export default { 'motion_range', 'motion_direction', ], - type: 'object', - properties: { - name: { title: 'Name', type: 'string', default: '' }, - v1_x: { title: 'V1 X', type: 'number', default: 0 }, - v1_y: { title: 'V1 Y', type: 'number', default: 0 }, - v2_x: { title: 'V2 X', type: 'number', default: 0 }, - v2_y: { title: 'V2 Y', type: 'number', default: 0 }, - door_type: { - title: 'Door Type', - maximum: 255.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, - motion_range: { title: 'Motion Range', type: 'number', default: 0 }, - motion_direction: { - title: 'Motion Direction', - maximum: 2147483647.0, - minimum: -2147483648.0, - type: 'integer', - default: 0, - }, - }, + title: 'Door', }, DoorHealth: { - title: 'DoorHealth', - required: ['health_status', 'id_'], - type: 'object', properties: { - health_status: { title: 'Health Status', maxLength: 255, type: 'string', nullable: true }, - health_message: { title: 'Health Message', type: 'string', nullable: true }, - id_: { title: 'Id ', maxLength: 255, type: 'string' }, + id_: { type: 'string', title: 'Id ' }, + health_status: { $ref: '#/components/schemas/HealthStatus' }, + health_message: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Health Message', + }, }, - additionalProperties: false, + type: 'object', + required: ['id_', 'health_status', 'health_message'], + title: 'DoorHealth', }, DoorMode: { - title: 'DoorMode', - required: ['value'], - type: 'object', properties: { - value: { - title: 'Value', - maximum: 4294967295.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, + value: { type: 'integer', maximum: 4294967295.0, minimum: 0.0, title: 'Value' }, }, + type: 'object', + required: ['value'], + title: 'DoorMode', }, DoorRequest: { - title: 'DoorRequest', - required: ['mode'], - type: 'object', properties: { mode: { - title: 'Mode', type: 'integer', + title: 'Mode', description: 'https://github.com/open-rmf/rmf_internal_msgs/blob/main/rmf_door_msgs/msg/DoorMode.msg', }, }, + type: 'object', + required: ['mode'], + title: 'DoorRequest', }, DoorState: { - title: 'DoorState', - required: ['door_time', 'door_name', 'current_mode'], - type: 'object', properties: { - door_time: { - title: 'Door Time', - allOf: [{ $ref: '#/components/schemas/Time' }], - default: { sec: 0, nanosec: 0 }, - }, - door_name: { title: 'Door Name', type: 'string', default: '' }, - current_mode: { - title: 'Current Mode', - allOf: [{ $ref: '#/components/schemas/DoorMode' }], - default: { value: 0 }, - }, + door_time: { $ref: '#/components/schemas/Time' }, + door_name: { type: 'string', title: 'Door Name' }, + current_mode: { $ref: '#/components/schemas/DoorMode' }, }, + type: 'object', + required: ['door_time', 'door_name', 'current_mode'], + title: 'DoorState', }, Error: { - title: 'Error', - type: 'object', properties: { code: { + anyOf: [{ type: 'integer', minimum: 0.0 }, { type: 'null' }], title: 'Code', - minimum: 0.0, - type: 'integer', description: 'A standard code for the kind of error that has occurred', }, - category: { title: 'Category', type: 'string', description: 'The category of the error' }, - detail: { title: 'Detail', type: 'string', description: 'Details about the error' }, + category: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Category', + description: 'The category of the error', + }, + detail: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Detail', + description: 'Details about the error', + }, }, + type: 'object', + title: 'Error', }, - EstimateMillis: { - title: 'EstimateMillis', - minimum: 0.0, - type: 'integer', - description: 'An estimate, in milliseconds, of how long the subject will take to complete', - }, + EstimateMillis: { type: 'integer', minimum: 0.0, title: 'EstimateMillis' }, EventState: { - title: 'EventState', - required: ['id'], - type: 'object', properties: { id: { $ref: '#/components/schemas/Id' }, - status: { $ref: '#/components/schemas/Status' }, - name: { title: 'Name', type: 'string', description: 'The brief name of the event' }, + status: { + anyOf: [ + { $ref: '#/components/schemas/api_server__models__rmf_api__task_state__Status' }, + { type: 'null' }, + ], + }, + name: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Name', + description: 'The brief name of the event', + }, detail: { - title: 'Detail', - allOf: [{ $ref: '#/components/schemas/Detail' }], + anyOf: [{ $ref: '#/components/schemas/Detail' }, { type: 'null' }], description: 'Detailed information about the event', }, deps: { + anyOf: [{ items: { type: 'integer', minimum: 0.0 }, type: 'array' }, { type: 'null' }], title: 'Deps', - type: 'array', - items: { minimum: 0.0, type: 'integer' }, description: 'This event may depend on other events. This array contains the IDs of those other event dependencies.', }, }, + type: 'object', + required: ['id'], + title: 'EventState', }, - Graph: { - title: 'Graph', - required: ['name', 'vertices', 'edges', 'params'], + Failure: { const: false, title: 'Failure' }, + FleetLog: { + properties: { + name: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Name' }, + log: { + anyOf: [ + { items: { $ref: '#/components/schemas/LogEntry' }, type: 'array' }, + { type: 'null' }, + ], + title: 'Log', + description: 'Log for the overall fleet', + }, + robots: { + anyOf: [ + { + additionalProperties: { + items: { $ref: '#/components/schemas/LogEntry' }, + type: 'array', + }, + type: 'object', + }, + { type: 'null' }, + ], + title: 'Robots', + description: + 'Dictionary of logs for the individual robots. The keys (property names) are the robot names.', + }, + }, + type: 'object', + title: 'FleetLog', + }, + FleetState: { + properties: { + name: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Name' }, + robots: { + anyOf: [ + { additionalProperties: { $ref: '#/components/schemas/RobotState' }, type: 'object' }, + { type: 'null' }, + ], + title: 'Robots', + description: 'A dictionary of the states of the robots that belong to this fleet', + }, + }, type: 'object', + title: 'FleetState', + }, + Graph: { properties: { - name: { title: 'Name', type: 'string', default: '' }, + name: { type: 'string', title: 'Name' }, vertices: { - title: 'Vertices', - type: 'array', items: { $ref: '#/components/schemas/GraphNode' }, - default: [], + type: 'array', + title: 'Vertices', }, edges: { - title: 'Edges', - type: 'array', items: { $ref: '#/components/schemas/GraphEdge' }, - default: [], - }, - params: { - title: 'Params', type: 'array', - items: { $ref: '#/components/schemas/Param' }, - default: [], + title: 'Edges', }, + params: { items: { $ref: '#/components/schemas/Param' }, type: 'array', title: 'Params' }, }, + type: 'object', + required: ['name', 'vertices', 'edges', 'params'], + title: 'Graph', }, GraphEdge: { - title: 'GraphEdge', - required: ['v1_idx', 'v2_idx', 'params', 'edge_type'], - type: 'object', properties: { - v1_idx: { - title: 'V1 Idx', - maximum: 4294967295.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, - v2_idx: { - title: 'V2 Idx', - maximum: 4294967295.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, - params: { - title: 'Params', - type: 'array', - items: { $ref: '#/components/schemas/Param' }, - default: [], - }, - edge_type: { - title: 'Edge Type', - maximum: 255.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, + v1_idx: { type: 'integer', maximum: 4294967295.0, minimum: 0.0, title: 'V1 Idx' }, + v2_idx: { type: 'integer', maximum: 4294967295.0, minimum: 0.0, title: 'V2 Idx' }, + params: { items: { $ref: '#/components/schemas/Param' }, type: 'array', title: 'Params' }, + edge_type: { type: 'integer', maximum: 255.0, minimum: 0.0, title: 'Edge Type' }, }, + type: 'object', + required: ['v1_idx', 'v2_idx', 'params', 'edge_type'], + title: 'GraphEdge', }, GraphNode: { - title: 'GraphNode', - required: ['x', 'y', 'name', 'params'], - type: 'object', properties: { - x: { title: 'X', type: 'number', default: 0 }, - y: { title: 'Y', type: 'number', default: 0 }, - name: { title: 'Name', type: 'string', default: '' }, - params: { - title: 'Params', - type: 'array', - items: { $ref: '#/components/schemas/Param' }, - default: [], - }, + x: { type: 'number', title: 'X' }, + y: { type: 'number', title: 'Y' }, + name: { type: 'string', title: 'Name' }, + params: { items: { $ref: '#/components/schemas/Param' }, type: 'array', title: 'Params' }, }, + type: 'object', + required: ['x', 'y', 'name', 'params'], + title: 'GraphNode', }, HTTPValidationError: { - title: 'HTTPValidationError', - type: 'object', properties: { detail: { - title: 'Detail', - type: 'array', items: { $ref: '#/components/schemas/ValidationError' }, + type: 'array', + title: 'Detail', }, }, + type: 'object', + title: 'HTTPValidationError', }, - Id: { title: 'Id', minimum: 0.0, type: 'integer' }, + HealthStatus: { + type: 'string', + enum: ['Healthy', 'Unhealthy', 'Dead'], + title: 'HealthStatus', + }, + Id: { type: 'integer', minimum: 0.0, title: 'Id' }, Ingestor: { - title: 'Ingestor', - required: ['guid'], + properties: { guid: { type: 'string', title: 'Guid' } }, type: 'object', - properties: { guid: { title: 'Guid', type: 'string' } }, + required: ['guid'], + title: 'Ingestor', }, IngestorHealth: { - title: 'IngestorHealth', - required: ['health_status', 'id_'], - type: 'object', properties: { - health_status: { title: 'Health Status', maxLength: 255, type: 'string', nullable: true }, - health_message: { title: 'Health Message', type: 'string', nullable: true }, - id_: { title: 'Id ', maxLength: 255, type: 'string' }, + id_: { type: 'string', title: 'Id ' }, + health_status: { $ref: '#/components/schemas/HealthStatus' }, + health_message: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Health Message', + }, }, - additionalProperties: false, + type: 'object', + required: ['id_', 'health_status', 'health_message'], + title: 'IngestorHealth', }, IngestorState: { - title: 'IngestorState', - required: ['time', 'guid', 'mode', 'request_guid_queue', 'seconds_remaining'], - type: 'object', properties: { - time: { - title: 'Time', - allOf: [{ $ref: '#/components/schemas/Time' }], - default: { sec: 0, nanosec: 0 }, - }, - guid: { title: 'Guid', type: 'string', default: '' }, - mode: { - title: 'Mode', - maximum: 2147483647.0, - minimum: -2147483648.0, - type: 'integer', - default: 0, - }, + time: { $ref: '#/components/schemas/Time' }, + guid: { type: 'string', title: 'Guid' }, + mode: { type: 'integer', maximum: 2147483647.0, minimum: -2147483648.0, title: 'Mode' }, request_guid_queue: { - title: 'Request Guid Queue', - type: 'array', items: { type: 'string' }, - default: [], + type: 'array', + title: 'Request Guid Queue', }, - seconds_remaining: { title: 'Seconds Remaining', type: 'number', default: 0 }, + seconds_remaining: { type: 'number', title: 'Seconds Remaining' }, }, + type: 'object', + required: ['time', 'guid', 'mode', 'request_guid_queue', 'seconds_remaining'], + title: 'IngestorState', }, Interruption: { - title: 'Interruption', - required: ['unix_millis_request_time', 'labels'], - type: 'object', properties: { unix_millis_request_time: { - title: 'Unix Millis Request Time', type: 'integer', + title: 'Unix Millis Request Time', description: 'The time that the interruption request arrived', }, labels: { - title: 'Labels', - type: 'array', items: { type: 'string' }, + type: 'array', + title: 'Labels', description: 'Labels to describe the purpose of the interruption', }, resumed_by: { - title: 'Resumed By', - allOf: [{ $ref: '#/components/schemas/ResumedBy' }], + anyOf: [{ $ref: '#/components/schemas/ResumedBy' }, { type: 'null' }], description: 'Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.', }, }, + type: 'object', + required: ['unix_millis_request_time', 'labels'], + title: 'Interruption', }, Issue: { - title: 'Issue', - type: 'object', properties: { category: { + anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Category', - type: 'string', description: "Category of the robot's issue", }, detail: { + anyOf: [ + { type: 'object' }, + { items: {}, type: 'array' }, + { type: 'string' }, + { type: 'null' }, + ], title: 'Detail', - anyOf: [{ type: 'object' }, { type: 'array', items: {} }, { type: 'string' }], description: 'Detailed information about the issue', }, }, + type: 'object', + title: 'Issue', }, Killed: { - title: 'Killed', - required: ['unix_millis_request_time', 'labels'], - type: 'object', properties: { unix_millis_request_time: { - title: 'Unix Millis Request Time', type: 'integer', + title: 'Unix Millis Request Time', description: 'The time that the cancellation request arrived', }, labels: { - title: 'Labels', - type: 'array', items: { type: 'string' }, + type: 'array', + title: 'Labels', description: 'Labels to describe the kill request', }, }, + type: 'object', + required: ['unix_millis_request_time', 'labels'], + title: 'Killed', }, Level: { - title: 'Level', - required: ['name', 'elevation', 'images', 'places', 'doors', 'nav_graphs', 'wall_graph'], - type: 'object', properties: { - name: { title: 'Name', type: 'string', default: '' }, - elevation: { title: 'Elevation', type: 'number', default: 0 }, + name: { type: 'string', title: 'Name' }, + elevation: { type: 'number', title: 'Elevation' }, images: { - title: 'Images', - type: 'array', items: { $ref: '#/components/schemas/AffineImage' }, - }, - places: { - title: 'Places', type: 'array', - items: { $ref: '#/components/schemas/Place' }, - default: [], - }, - doors: { - title: 'Doors', - type: 'array', - items: { $ref: '#/components/schemas/Door' }, - default: [], + title: 'Images', }, + places: { items: { $ref: '#/components/schemas/Place' }, type: 'array', title: 'Places' }, + doors: { items: { $ref: '#/components/schemas/Door' }, type: 'array', title: 'Doors' }, nav_graphs: { - title: 'Nav Graphs', - type: 'array', items: { $ref: '#/components/schemas/Graph' }, - default: [], - }, - wall_graph: { - title: 'Wall Graph', - allOf: [{ $ref: '#/components/schemas/Graph' }], - default: { name: '', vertices: [], edges: [], params: [] }, + type: 'array', + title: 'Nav Graphs', }, + wall_graph: { $ref: '#/components/schemas/Graph' }, }, + type: 'object', + required: ['name', 'elevation', 'images', 'places', 'doors', 'nav_graphs', 'wall_graph'], + title: 'Level', }, Lift: { - title: 'Lift', + properties: { + name: { type: 'string', title: 'Name' }, + levels: { items: { type: 'string' }, type: 'array', title: 'Levels' }, + doors: { items: { $ref: '#/components/schemas/Door' }, type: 'array', title: 'Doors' }, + wall_graph: { $ref: '#/components/schemas/Graph' }, + ref_x: { type: 'number', title: 'Ref X' }, + ref_y: { type: 'number', title: 'Ref Y' }, + ref_yaw: { type: 'number', title: 'Ref Yaw' }, + width: { type: 'number', title: 'Width' }, + depth: { type: 'number', title: 'Depth' }, + }, + type: 'object', required: [ 'name', 'levels', @@ -2769,61 +3240,55 @@ export default { 'width', 'depth', ], - type: 'object', - properties: { - name: { title: 'Name', type: 'string', default: '' }, - levels: { title: 'Levels', type: 'array', items: { type: 'string' }, default: [] }, - doors: { - title: 'Doors', - type: 'array', - items: { $ref: '#/components/schemas/Door' }, - default: [], - }, - wall_graph: { - title: 'Wall Graph', - allOf: [{ $ref: '#/components/schemas/Graph' }], - default: { name: '', vertices: [], edges: [], params: [] }, - }, - ref_x: { title: 'Ref X', type: 'number', default: 0 }, - ref_y: { title: 'Ref Y', type: 'number', default: 0 }, - ref_yaw: { title: 'Ref Yaw', type: 'number', default: 0 }, - width: { title: 'Width', type: 'number', default: 0 }, - depth: { title: 'Depth', type: 'number', default: 0 }, - }, + title: 'Lift', }, LiftHealth: { - title: 'LiftHealth', - required: ['health_status', 'id_'], - type: 'object', properties: { - health_status: { title: 'Health Status', maxLength: 255, type: 'string', nullable: true }, - health_message: { title: 'Health Message', type: 'string', nullable: true }, - id_: { title: 'Id ', maxLength: 255, type: 'string' }, + id_: { type: 'string', title: 'Id ' }, + health_status: { $ref: '#/components/schemas/HealthStatus' }, + health_message: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Health Message', + }, }, - additionalProperties: false, + type: 'object', + required: ['id_', 'health_status', 'health_message'], + title: 'LiftHealth', }, LiftRequest: { - title: 'LiftRequest', - required: ['request_type', 'door_mode', 'destination'], - type: 'object', properties: { request_type: { - title: 'Request Type', type: 'integer', + title: 'Request Type', description: 'https://github.com/open-rmf/rmf_internal_msgs/blob/main/rmf_lift_msgs/msg/LiftRequest.msg', }, door_mode: { - title: 'Door Mode', type: 'integer', + title: 'Door Mode', description: 'https://github.com/open-rmf/rmf_internal_msgs/blob/main/rmf_lift_msgs/msg/LiftRequest.msg', }, - destination: { title: 'Destination', type: 'string' }, + destination: { type: 'string', title: 'Destination' }, }, + type: 'object', + required: ['request_type', 'door_mode', 'destination'], + title: 'LiftRequest', }, LiftState: { - title: 'LiftState', + properties: { + lift_time: { $ref: '#/components/schemas/Time' }, + lift_name: { type: 'string', title: 'Lift Name' }, + available_floors: { items: { type: 'string' }, type: 'array', title: 'Available Floors' }, + current_floor: { type: 'string', title: 'Current Floor' }, + destination_floor: { type: 'string', title: 'Destination Floor' }, + door_state: { type: 'integer', maximum: 255.0, minimum: 0.0, title: 'Door State' }, + motion_state: { type: 'integer', maximum: 255.0, minimum: 0.0, title: 'Motion State' }, + available_modes: { items: { type: 'integer' }, type: 'array', title: 'Available Modes' }, + current_mode: { type: 'integer', maximum: 255.0, minimum: 0.0, title: 'Current Mode' }, + session_id: { type: 'string', title: 'Session Id' }, + }, + type: 'object', required: [ 'lift_time', 'lift_name', @@ -2836,68 +3301,26 @@ export default { 'current_mode', 'session_id', ], - type: 'object', - properties: { - lift_time: { - title: 'Lift Time', - allOf: [{ $ref: '#/components/schemas/Time' }], - default: { sec: 0, nanosec: 0 }, - }, - lift_name: { title: 'Lift Name', type: 'string', default: '' }, - available_floors: { - title: 'Available Floors', - type: 'array', - items: { type: 'string' }, - default: [], - }, - current_floor: { title: 'Current Floor', type: 'string', default: '' }, - destination_floor: { title: 'Destination Floor', type: 'string', default: '' }, - door_state: { - title: 'Door State', - maximum: 255.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, - motion_state: { - title: 'Motion State', - maximum: 255.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, - available_modes: { title: 'Available Modes', type: 'array', items: { type: 'integer' } }, - current_mode: { - title: 'Current Mode', - maximum: 255.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, - session_id: { title: 'Session Id', type: 'string', default: '' }, - }, + title: 'LiftState', }, Location2D: { - title: 'Location2D', - required: ['map', 'x', 'y', 'yaw'], - type: 'object', properties: { - map: { title: 'Map', type: 'string' }, - x: { title: 'X', type: 'number' }, - y: { title: 'Y', type: 'number' }, - yaw: { title: 'Yaw', type: 'number' }, + map: { type: 'string', title: 'Map' }, + x: { type: 'number', title: 'X' }, + y: { type: 'number', title: 'Y' }, + yaw: { type: 'number', title: 'Yaw' }, }, + type: 'object', + required: ['map', 'x', 'y', 'yaw'], + title: 'Location2D', }, LogEntry: { - title: 'LogEntry', - required: ['seq', 'tier', 'unix_millis_time', 'text'], - type: 'object', properties: { seq: { - title: 'Seq', + type: 'integer', exclusiveMaximum: 4294967296.0, minimum: 0.0, - type: 'integer', + title: 'Seq', description: 'Sequence number for this entry. Each entry has a unique sequence number which monotonically increase, until integer overflow causes a wrap around.', }, @@ -2905,1001 +3328,960 @@ export default { allOf: [{ $ref: '#/components/schemas/Tier' }], description: 'The importance level of the log entry', }, - unix_millis_time: { title: 'Unix Millis Time', type: 'integer' }, - text: { title: 'Text', type: 'string', description: 'The text of the log entry' }, + unix_millis_time: { type: 'integer', title: 'Unix Millis Time' }, + text: { type: 'string', title: 'Text', description: 'The text of the log entry' }, }, + type: 'object', + required: ['seq', 'tier', 'unix_millis_time', 'text'], + title: 'LogEntry', }, Param: { - title: 'Param', - required: ['name', 'type', 'value_int', 'value_float', 'value_string', 'value_bool'], - type: 'object', properties: { - name: { title: 'Name', type: 'string', default: '' }, - type: { title: 'Type', maximum: 4294967295.0, minimum: 0.0, type: 'integer', default: 0 }, + name: { type: 'string', title: 'Name' }, + type: { type: 'integer', maximum: 4294967295.0, minimum: 0.0, title: 'Type' }, value_int: { - title: 'Value Int', + type: 'integer', maximum: 2147483647.0, minimum: -2147483648.0, - type: 'integer', - default: 0, + title: 'Value Int', }, - value_float: { title: 'Value Float', type: 'number', default: 0 }, - value_string: { title: 'Value String', type: 'string', default: '' }, - value_bool: { title: 'Value Bool', type: 'boolean', default: false }, + value_float: { type: 'number', title: 'Value Float' }, + value_string: { type: 'string', title: 'Value String' }, + value_bool: { type: 'boolean', title: 'Value Bool' }, }, + type: 'object', + required: ['name', 'type', 'value_int', 'value_float', 'value_string', 'value_bool'], + title: 'Param', + }, + Period: { + type: 'string', + enum: [ + 'monday', + 'tuesday', + 'wednesday', + 'thursday', + 'friday', + 'saturday', + 'sunday', + 'day', + 'hour', + 'minute', + ], + title: 'Period', }, Permission: { - title: 'Permission', - required: ['authz_grp', 'action'], - type: 'object', properties: { - authz_grp: { title: 'Authz Grp', type: 'string' }, - action: { title: 'Action', type: 'string' }, + authz_grp: { type: 'string', title: 'Authz Grp' }, + action: { type: 'string', title: 'Action' }, }, + type: 'object', + required: ['authz_grp', 'action'], + title: 'Permission', }, Phase: { - title: 'Phase', - required: ['id'], - type: 'object', properties: { id: { $ref: '#/components/schemas/Id' }, - category: { $ref: '#/components/schemas/Category' }, - detail: { $ref: '#/components/schemas/Detail' }, - unix_millis_start_time: { title: 'Unix Millis Start Time', type: 'integer' }, - unix_millis_finish_time: { title: 'Unix Millis Finish Time', type: 'integer' }, - original_estimate_millis: { $ref: '#/components/schemas/EstimateMillis' }, - estimate_millis: { $ref: '#/components/schemas/EstimateMillis' }, - final_event_id: { $ref: '#/components/schemas/Id' }, + category: { anyOf: [{ $ref: '#/components/schemas/Category' }, { type: 'null' }] }, + detail: { anyOf: [{ $ref: '#/components/schemas/Detail' }, { type: 'null' }] }, + unix_millis_start_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], + title: 'Unix Millis Start Time', + }, + unix_millis_finish_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], + title: 'Unix Millis Finish Time', + }, + original_estimate_millis: { + anyOf: [{ $ref: '#/components/schemas/EstimateMillis' }, { type: 'null' }], + }, + estimate_millis: { + anyOf: [{ $ref: '#/components/schemas/EstimateMillis' }, { type: 'null' }], + }, + final_event_id: { anyOf: [{ $ref: '#/components/schemas/Id' }, { type: 'null' }] }, events: { + anyOf: [ + { additionalProperties: { $ref: '#/components/schemas/EventState' }, type: 'object' }, + { type: 'null' }, + ], title: 'Events', - type: 'object', - additionalProperties: { $ref: '#/components/schemas/EventState' }, description: 'A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.', }, skip_requests: { + anyOf: [ + { + additionalProperties: { $ref: '#/components/schemas/SkipPhaseRequest' }, + type: 'object', + }, + { type: 'null' }, + ], title: 'Skip Requests', - type: 'object', - additionalProperties: { $ref: '#/components/schemas/SkipPhaseRequest' }, description: 'Information about any skip requests that have been received', }, }, + type: 'object', + required: ['id'], + title: 'Phase', }, Phases: { - title: 'Phases', - type: 'object', properties: { log: { + anyOf: [ + { items: { $ref: '#/components/schemas/LogEntry' }, type: 'array' }, + { type: 'null' }, + ], title: 'Log', - type: 'array', - items: { $ref: '#/components/schemas/LogEntry' }, description: 'Log entries related to the overall phase', }, events: { + anyOf: [ + { + additionalProperties: { + items: { $ref: '#/components/schemas/LogEntry' }, + type: 'array', + }, + type: 'object', + }, + { type: 'null' }, + ], title: 'Events', - type: 'object', - additionalProperties: { - type: 'array', - items: { $ref: '#/components/schemas/LogEntry' }, - }, description: 'A dictionary whose keys (property names) are the indices of an event in the phase', }, }, additionalProperties: false, + type: 'object', + title: 'Phases', }, Place: { - title: 'Place', - required: ['name', 'x', 'y', 'yaw', 'position_tolerance', 'yaw_tolerance'], - type: 'object', properties: { - name: { title: 'Name', type: 'string', default: '' }, - x: { title: 'X', type: 'number', default: 0 }, - y: { title: 'Y', type: 'number', default: 0 }, - yaw: { title: 'Yaw', type: 'number', default: 0 }, - position_tolerance: { title: 'Position Tolerance', type: 'number', default: 0 }, - yaw_tolerance: { title: 'Yaw Tolerance', type: 'number', default: 0 }, + name: { type: 'string', title: 'Name' }, + x: { type: 'number', title: 'X' }, + y: { type: 'number', title: 'Y' }, + yaw: { type: 'number', title: 'Yaw' }, + position_tolerance: { type: 'number', title: 'Position Tolerance' }, + yaw_tolerance: { type: 'number', title: 'Yaw Tolerance' }, }, + type: 'object', + required: ['name', 'x', 'y', 'yaw', 'position_tolerance', 'yaw_tolerance'], + title: 'Place', }, PostMakeAdmin: { - title: 'PostMakeAdmin', - required: ['admin'], + properties: { admin: { type: 'boolean', title: 'Admin' } }, type: 'object', - properties: { admin: { title: 'Admin', type: 'boolean' } }, + required: ['admin'], + title: 'PostMakeAdmin', }, PostRoles: { - title: 'PostRoles', - required: ['name'], + properties: { name: { type: 'string', title: 'Name' } }, type: 'object', - properties: { name: { title: 'Name', type: 'string' } }, + required: ['name'], + title: 'PostRoles', }, PostScheduledTaskRequest: { - title: 'PostScheduledTaskRequest', - required: ['task_request', 'schedules'], - type: 'object', properties: { task_request: { $ref: '#/components/schemas/TaskRequest' }, schedules: { - title: 'Schedules', + items: { $ref: '#/components/schemas/ScheduledTaskSchedule' }, type: 'array', - items: { - $ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTaskSchedule.leaf', - }, + title: 'Schedules', }, }, + type: 'object', + required: ['task_request', 'schedules'], + title: 'PostScheduledTaskRequest', }, PostUsers: { - title: 'PostUsers', - required: ['username'], - type: 'object', properties: { - username: { title: 'Username', type: 'string' }, - is_admin: { title: 'Is Admin', type: 'boolean', default: false }, + username: { type: 'string', title: 'Username' }, + is_admin: { type: 'boolean', title: 'Is Admin', default: false }, }, + type: 'object', + required: ['username'], + title: 'PostUsers', }, ResumedBy: { - title: 'ResumedBy', - required: ['labels'], - type: 'object', properties: { unix_millis_request_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], title: 'Unix Millis Request Time', - type: 'integer', description: 'The time that the resume request arrived', }, labels: { - title: 'Labels', - type: 'array', items: { type: 'string' }, + type: 'array', + title: 'Labels', description: 'Labels to describe the resume request', }, }, + type: 'object', + required: ['labels'], + title: 'ResumedBy', }, RobotState: { - title: 'RobotState', - type: 'object', properties: { - name: { title: 'Name', type: 'string' }, + name: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Name' }, status: { - allOf: [{ $ref: '#/components/schemas/Status2' }], + anyOf: [ + { $ref: '#/components/schemas/api_server__models__rmf_api__robot_state__Status' }, + { type: 'null' }, + ], description: 'A simple token representing the status of the robot', }, task_id: { + anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Task Id', - type: 'string', description: 'The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.', }, - unix_millis_time: { title: 'Unix Millis Time', type: 'integer' }, - location: { $ref: '#/components/schemas/Location2D' }, + unix_millis_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], + title: 'Unix Millis Time', + }, + location: { anyOf: [{ $ref: '#/components/schemas/Location2D' }, { type: 'null' }] }, battery: { + anyOf: [{ type: 'number', maximum: 1.0, minimum: 0.0 }, { type: 'null' }], title: 'Battery', - maximum: 1.0, - minimum: 0.0, - type: 'number', description: 'State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)', }, issues: { + anyOf: [ + { items: { $ref: '#/components/schemas/Issue' }, type: 'array' }, + { type: 'null' }, + ], title: 'Issues', - type: 'array', - items: { $ref: '#/components/schemas/Issue' }, description: 'A list of issues with the robot that operators need to address', }, }, + type: 'object', + title: 'RobotState', }, RobotTaskRequest: { - title: 'RobotTaskRequest', - required: ['type', 'robot', 'fleet', 'request'], - type: 'object', properties: { type: { - title: 'Type', type: 'string', + title: 'Type', description: 'Indicate that this is a task dispatch request', }, - robot: { title: 'Robot', type: 'string', description: 'The name of the robot' }, - fleet: { title: 'Fleet', type: 'string', description: 'The fleet the robot belongs to' }, + robot: { type: 'string', title: 'Robot', description: 'The name of the robot' }, + fleet: { type: 'string', title: 'Fleet', description: 'The fleet the robot belongs to' }, request: { $ref: '#/components/schemas/TaskRequest' }, }, + type: 'object', + required: ['type', 'robot', 'fleet', 'request'], + title: 'RobotTaskRequest', }, RobotTaskResponse: { - title: 'RobotTaskResponse', allOf: [{ $ref: '#/components/schemas/TaskDispatchResponse' }], - description: 'Response to a robot task request', - }, - SimpleResponse: { - title: 'SimpleResponse', - anyOf: [ - { $ref: '#/components/schemas/SimpleResponseItem' }, - { $ref: '#/components/schemas/SimpleResponseItem1' }, - ], - description: - 'Template for defining a response message that only indicates success and describes any errors', + title: 'RobotTaskResponse', }, - SimpleResponseItem: { - title: 'SimpleResponseItem', - required: ['success'], + ScheduledTask: { + properties: { + id: { type: 'integer', title: 'Id' }, + task_request: { $ref: '#/components/schemas/TaskRequest' }, + created_by: { type: 'string', title: 'Created By' }, + schedules: { + items: { $ref: '#/components/schemas/ScheduledTaskSchedule' }, + type: 'array', + title: 'Schedules', + }, + last_ran: { + anyOf: [{ type: 'string', format: 'date-time' }, { type: 'null' }], + title: 'Last Ran', + }, + except_dates: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], + title: 'Except Dates', + }, + }, type: 'object', + required: ['id', 'task_request', 'created_by', 'schedules'], + title: 'ScheduledTask', + }, + ScheduledTaskSchedule: { properties: { - success: { - $ref: '#/components/schemas/api_server__models__rmf_api__simple_response__Success', + every: { anyOf: [{ type: 'integer' }, { type: 'null' }], title: 'Every' }, + start_from: { + anyOf: [{ type: 'string', format: 'date-time' }, { type: 'null' }], + title: 'Start From', }, + until: { + anyOf: [{ type: 'string', format: 'date-time' }, { type: 'null' }], + title: 'Until', + }, + period: { $ref: '#/components/schemas/Period' }, + at: { anyOf: [{ type: 'string' }, { type: 'null' }], title: 'At' }, }, + type: 'object', + required: ['period'], + title: 'ScheduledTaskSchedule', }, - SimpleResponseItem1: { - title: 'SimpleResponseItem1', - required: ['success', 'errors'], + SimpleResponse: { + anyOf: [ + { $ref: '#/components/schemas/SimpleResponse1' }, + { $ref: '#/components/schemas/SimpleResponse2' }, + ], + title: 'SimpleResponse', + }, + SimpleResponse1: { + properties: { success: { $ref: '#/components/schemas/Success' } }, type: 'object', + required: ['success'], + title: 'SimpleResponse1', + }, + SimpleResponse2: { properties: { - success: { - $ref: '#/components/schemas/api_server__models__rmf_api__simple_response__Failure', - }, + success: { $ref: '#/components/schemas/Failure' }, errors: { - title: 'Errors', - type: 'array', items: { $ref: '#/components/schemas/Error' }, + type: 'array', + title: 'Errors', description: 'If the request failed, these error messages will explain why', }, }, + type: 'object', + required: ['success', 'errors'], + title: 'SimpleResponse2', }, SkipPhaseRequest: { - title: 'SkipPhaseRequest', - required: ['unix_millis_request_time', 'labels'], - type: 'object', properties: { unix_millis_request_time: { - title: 'Unix Millis Request Time', type: 'integer', + title: 'Unix Millis Request Time', description: 'The time that the skip request arrived', }, labels: { - title: 'Labels', - type: 'array', items: { type: 'string' }, + type: 'array', + title: 'Labels', description: 'Labels to describe the purpose of the skip request', }, undo: { - title: 'Undo', - allOf: [{ $ref: '#/components/schemas/Undo' }], + anyOf: [{ $ref: '#/components/schemas/Undo' }, { type: 'null' }], description: 'Information about an undo skip request that applied to this request', }, }, + type: 'object', + required: ['unix_millis_request_time', 'labels'], + title: 'SkipPhaseRequest', }, SkipPhaseResponse: { - title: 'SkipPhaseResponse', allOf: [{ $ref: '#/components/schemas/TokenResponse' }], - description: 'Response to a request for a phase to be skipped', - }, - Status: { - title: 'Status', - enum: [ - 'uninitialized', - 'blocked', - 'error', - 'failed', - 'queued', - 'standby', - 'underway', - 'delayed', - 'skipped', - 'canceled', - 'killed', - 'completed', - ], - description: 'An enumeration.', - }, - Status1: { - title: 'Status1', - enum: ['queued', 'selected', 'dispatched', 'failed_to_assign', 'canceled_in_flight'], - description: 'An enumeration.', + title: 'SkipPhaseResponse', }, Status2: { + type: 'string', + enum: ['queued', 'selected', 'dispatched', 'failed_to_assign', 'canceled_in_flight'], title: 'Status2', - enum: ['uninitialized', 'offline', 'shutdown', 'idle', 'charging', 'working', 'error'], - description: 'An enumeration.', }, + Success: { const: true, title: 'Success' }, Task: { - title: 'Task', - required: ['category', 'detail'], - type: 'object', properties: { category: { - title: 'Category', type: 'string', + title: 'Category', description: 'The category of this task. There must not be any duplicate task categories per fleet.', }, detail: { - title: 'Detail', type: 'string', + title: 'Detail', description: 'Details about the behavior of the task.', }, description_schema: { + anyOf: [{ type: 'object' }, { type: 'null' }], title: 'Description Schema', - type: 'object', description: 'The schema for this task description', }, }, + type: 'object', + required: ['category', 'detail'], + title: 'Task', }, TaskCancelResponse: { - title: 'TaskCancelResponse', allOf: [{ $ref: '#/components/schemas/SimpleResponse' }], - description: 'Response to a request to cancel a task', + title: 'TaskCancelResponse', }, TaskDiscovery: { - title: 'TaskDiscovery', - required: ['type', 'data'], - type: 'object', properties: { type: { + const: 'task_discovery_update', title: 'Type', - enum: ['task_discovery_update'], - type: 'string', description: 'Indicate that this is an task discovery update', }, data: { $ref: '#/components/schemas/Data' }, }, + type: 'object', + required: ['type', 'data'], + title: 'TaskDiscovery', }, TaskDiscoveryRequest: { - title: 'TaskDiscoveryRequest', - required: ['type'], - type: 'object', properties: { type: { + const: 'task_discovery_request', title: 'Type', - enum: ['task_discovery_request'], - type: 'string', description: 'Indicate that this is a task discovery request', }, }, + type: 'object', + required: ['type'], + title: 'TaskDiscoveryRequest', }, TaskDispatchResponse: { - title: 'TaskDispatchResponse', anyOf: [ - { $ref: '#/components/schemas/TaskDispatchResponseItem' }, - { $ref: '#/components/schemas/TaskDispatchResponseItem1' }, + { $ref: '#/components/schemas/TaskDispatchResponse1' }, + { $ref: '#/components/schemas/TaskDispatchResponse2' }, ], - description: 'Response to a task dispatch request', + title: 'TaskDispatchResponse', }, - TaskDispatchResponseItem: { - title: 'TaskDispatchResponseItem', - required: ['success', 'state'], - type: 'object', + TaskDispatchResponse1: { properties: { - success: { title: 'Success', enum: [true], type: 'boolean' }, + success: { const: true, title: 'Success' }, state: { $ref: '#/components/schemas/TaskState' }, }, - }, - TaskDispatchResponseItem1: { - title: 'TaskDispatchResponseItem1', type: 'object', + required: ['success', 'state'], + title: 'TaskDispatchResponse1', + }, + TaskDispatchResponse2: { properties: { - success: { title: 'Success', enum: [false], type: 'boolean' }, + success: { anyOf: [{ const: false }, { type: 'null' }], title: 'Success' }, errors: { + anyOf: [ + { items: { $ref: '#/components/schemas/Error' }, type: 'array' }, + { type: 'null' }, + ], title: 'Errors', - type: 'array', - items: { $ref: '#/components/schemas/Error' }, description: 'Any error messages explaining why the request failed', }, }, + type: 'object', + title: 'TaskDispatchResponse2', }, TaskEventLog: { - title: 'TaskEventLog', - required: ['task_id'], - type: 'object', properties: { - task_id: { title: 'Task Id', type: 'string' }, + task_id: { type: 'string', title: 'Task Id' }, log: { + anyOf: [ + { items: { $ref: '#/components/schemas/LogEntry' }, type: 'array' }, + { type: 'null' }, + ], title: 'Log', - type: 'array', - items: { $ref: '#/components/schemas/LogEntry' }, description: 'Log entries related to the overall task', }, phases: { + anyOf: [ + { additionalProperties: { $ref: '#/components/schemas/Phases' }, type: 'object' }, + { type: 'null' }, + ], title: 'Phases', - type: 'object', - additionalProperties: { $ref: '#/components/schemas/Phases' }, description: 'A dictionary whose keys (property names) are the indices of a phase', }, }, additionalProperties: false, + type: 'object', + required: ['task_id'], + title: 'TaskEventLog', }, TaskFavoritePydantic: { - title: 'TaskFavoritePydantic', - required: ['id', 'name', 'unix_millis_earliest_start_time', 'category', 'user'], - type: 'object', properties: { - id: { title: 'Id', type: 'string' }, - name: { title: 'Name', type: 'string' }, + id: { type: 'string', title: 'Id' }, + name: { type: 'string', title: 'Name' }, unix_millis_earliest_start_time: { - title: 'Unix Millis Earliest Start Time', type: 'integer', + title: 'Unix Millis Earliest Start Time', }, - priority: { title: 'Priority', type: 'object' }, - category: { title: 'Category', type: 'string' }, - description: { title: 'Description', type: 'object' }, - user: { title: 'User', type: 'string' }, + priority: { anyOf: [{ type: 'object' }, { type: 'null' }], title: 'Priority' }, + category: { type: 'string', title: 'Category' }, + description: { anyOf: [{ type: 'object' }, { type: 'null' }], title: 'Description' }, + user: { type: 'string', title: 'User' }, }, + type: 'object', + required: [ + 'id', + 'name', + 'unix_millis_earliest_start_time', + 'priority', + 'category', + 'description', + 'user', + ], + title: 'TaskFavoritePydantic', }, TaskInterruptionRequest: { - title: 'TaskInterruptionRequest', - required: ['type', 'task_id'], - type: 'object', properties: { type: { + const: 'interrupt_task_request', title: 'Type', - enum: ['interrupt_task_request'], - type: 'string', description: 'Indicate that this is a task interruption request', }, task_id: { - title: 'Task Id', type: 'string', + title: 'Task Id', description: 'Specify the task ID to interrupt', }, labels: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], title: 'Labels', - type: 'array', - items: { type: 'string' }, description: 'Labels to describe the purpose of the interruption', }, }, + type: 'object', + required: ['type', 'task_id'], + title: 'TaskInterruptionRequest', }, TaskInterruptionResponse: { - title: 'TaskInterruptionResponse', allOf: [{ $ref: '#/components/schemas/TokenResponse' }], - description: 'Response to a request for a task to be interrupted', + title: 'TaskInterruptionResponse', }, TaskKillRequest: { - title: 'TaskKillRequest', - required: ['type', 'task_id'], - type: 'object', properties: { type: { + const: 'kill_task_request', title: 'Type', - enum: ['kill_task_request'], - type: 'string', description: 'Indicate that this is a task kill request', }, - task_id: { title: 'Task Id', type: 'string', description: 'Specify the task ID to kill' }, + task_id: { type: 'string', title: 'Task Id', description: 'Specify the task ID to kill' }, labels: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], title: 'Labels', - type: 'array', - items: { type: 'string' }, description: 'Labels to describe the purpose of the kill', }, }, + type: 'object', + required: ['type', 'task_id'], + title: 'TaskKillRequest', }, TaskKillResponse: { - title: 'TaskKillResponse', allOf: [{ $ref: '#/components/schemas/SimpleResponse' }], - description: 'Response to a request to kill a task', + title: 'TaskKillResponse', }, TaskPhaseSkipRequest: { - title: 'TaskPhaseSkipRequest', - required: ['type', 'task_id', 'phase_id'], - type: 'object', properties: { type: { + const: 'skip_phase_request', title: 'Type', - enum: ['skip_phase_request'], - type: 'string', description: 'Indicate that this is a phase skip request', }, task_id: { - title: 'Task Id', type: 'string', + title: 'Task Id', description: 'Specify the task ID whose phase should be skipped', }, phase_id: { - title: 'Phase Id', - minimum: 0.0, type: 'integer', + minimum: 0.0, + title: 'Phase Id', description: 'Specify the phase that should be skipped', }, labels: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], title: 'Labels', - type: 'array', - items: { type: 'string' }, description: 'Labels to describe the purpose of the skip', }, }, + type: 'object', + required: ['type', 'task_id', 'phase_id'], + title: 'TaskPhaseSkipRequest', }, TaskRequest: { - title: 'TaskRequest', - required: ['category', 'description'], - type: 'object', properties: { unix_millis_earliest_start_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], title: 'Unix Millis Earliest Start Time', - type: 'integer', description: '(Optional) The earliest time that this task may start', }, unix_millis_request_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], title: 'Unix Millis Request Time', - type: 'integer', description: '(Optional) The time that this request was initiated', }, priority: { + anyOf: [{ type: 'object' }, { type: 'null' }], title: 'Priority', - type: 'object', description: '(Optional) The priority of this task. This must match a priority schema supported by a fleet.', }, - category: { title: 'Category', type: 'string' }, + category: { type: 'string', title: 'Category' }, description: { title: 'Description', description: 'A description of the task. This must match a schema supported by a fleet for the category of this task request.', }, labels: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], title: 'Labels', - type: 'array', - items: { type: 'string' }, description: 'Labels to describe the purpose of the task dispatch request', }, requester: { + anyOf: [{ type: 'string' }, { type: 'null' }], title: 'Requester', - type: 'string', description: '(Optional) An identifier for the entity that requested this task', }, + fleet_name: { + anyOf: [{ type: 'string' }, { type: 'null' }], + title: 'Fleet Name', + description: + '(Optional) The name of the fleet that should perform this task. If specified, other fleets will not bid for this task.', + }, }, + type: 'object', + required: ['category', 'description'], + title: 'TaskRequest', }, TaskResumeRequest: { - title: 'TaskResumeRequest', - type: 'object', properties: { type: { + anyOf: [{ const: 'resume_task_request' }, { type: 'null' }], title: 'Type', - enum: ['resume_task_request'], - type: 'string', description: 'Indicate that this is a task resuming request', }, for_task: { + anyOf: [{ type: 'string' }, { type: 'null' }], title: 'For Task', - type: 'string', description: 'Specify task ID to resume.', }, for_tokens: { + anyOf: [{ items: { type: 'string' }, type: 'array', minItems: 1 }, { type: 'null' }], title: 'For Tokens', - minItems: 1, - type: 'array', - items: { type: 'string' }, description: 'A list of tokens of interruption requests which should be resumed. The interruption request associated with each token will be discarded.', }, labels: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], title: 'Labels', - type: 'array', - items: { type: 'string' }, description: 'Labels describing this request', }, }, + type: 'object', + title: 'TaskResumeRequest', }, TaskResumeResponse: { - title: 'TaskResumeResponse', allOf: [{ $ref: '#/components/schemas/SimpleResponse' }], - description: 'Response to a request to resume a task', + title: 'TaskResumeResponse', }, TaskRewindRequest: { - title: 'TaskRewindRequest', - required: ['type', 'task_id', 'phase_id'], - type: 'object', properties: { type: { + const: 'rewind_task_request', title: 'Type', - enum: ['rewind_task_request'], - type: 'string', description: 'Indicate that this is a task rewind request', }, task_id: { - title: 'Task Id', type: 'string', + title: 'Task Id', description: 'Specify the ID of the task that should rewind', }, phase_id: { - title: 'Phase Id', - minimum: 0.0, type: 'integer', + minimum: 0.0, + title: 'Phase Id', description: 'Specify the phase that should be rewound to. The task will restart at the beginning of this phase.', }, }, + type: 'object', + required: ['type', 'task_id', 'phase_id'], + title: 'TaskRewindRequest', }, TaskRewindResponse: { - title: 'TaskRewindResponse', allOf: [{ $ref: '#/components/schemas/SimpleResponse' }], - description: 'Response to a request to rewind a task', + title: 'TaskRewindResponse', }, TaskState: { - title: 'TaskState', - required: ['booking'], - type: 'object', properties: { booking: { $ref: '#/components/schemas/Booking' }, - category: { $ref: '#/components/schemas/Category' }, - detail: { $ref: '#/components/schemas/Detail' }, - unix_millis_start_time: { title: 'Unix Millis Start Time', type: 'integer' }, - unix_millis_finish_time: { title: 'Unix Millis Finish Time', type: 'integer' }, - original_estimate_millis: { $ref: '#/components/schemas/EstimateMillis' }, - estimate_millis: { $ref: '#/components/schemas/EstimateMillis' }, + category: { anyOf: [{ $ref: '#/components/schemas/Category' }, { type: 'null' }] }, + detail: { anyOf: [{ $ref: '#/components/schemas/Detail' }, { type: 'null' }] }, + unix_millis_start_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], + title: 'Unix Millis Start Time', + }, + unix_millis_finish_time: { + anyOf: [{ type: 'integer' }, { type: 'null' }], + title: 'Unix Millis Finish Time', + }, + original_estimate_millis: { + anyOf: [{ $ref: '#/components/schemas/EstimateMillis' }, { type: 'null' }], + }, + estimate_millis: { + anyOf: [{ $ref: '#/components/schemas/EstimateMillis' }, { type: 'null' }], + }, assigned_to: { - title: 'Assigned To', - allOf: [{ $ref: '#/components/schemas/AssignedTo' }], + anyOf: [{ $ref: '#/components/schemas/AssignedTo' }, { type: 'null' }], description: 'Which agent (robot) is the task assigned to', }, - status: { $ref: '#/components/schemas/Status' }, - dispatch: { $ref: '#/components/schemas/Dispatch' }, + status: { + anyOf: [ + { $ref: '#/components/schemas/api_server__models__rmf_api__task_state__Status' }, + { type: 'null' }, + ], + }, + dispatch: { anyOf: [{ $ref: '#/components/schemas/Dispatch' }, { type: 'null' }] }, phases: { + anyOf: [ + { additionalProperties: { $ref: '#/components/schemas/Phase' }, type: 'object' }, + { type: 'null' }, + ], title: 'Phases', - type: 'object', - additionalProperties: { $ref: '#/components/schemas/Phase' }, description: 'A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.', }, completed: { + anyOf: [ + { items: { $ref: '#/components/schemas/Id' }, type: 'array' }, + { type: 'null' }, + ], title: 'Completed', - type: 'array', - items: { $ref: '#/components/schemas/Id' }, description: 'An array of the IDs of completed phases of this task', }, active: { - title: 'Active', - allOf: [{ $ref: '#/components/schemas/Id' }], + anyOf: [{ $ref: '#/components/schemas/Id' }, { type: 'null' }], description: 'The ID of the active phase for this task', }, pending: { + anyOf: [ + { items: { $ref: '#/components/schemas/Id' }, type: 'array' }, + { type: 'null' }, + ], title: 'Pending', - type: 'array', - items: { $ref: '#/components/schemas/Id' }, description: 'An array of the pending phases of this task', }, interruptions: { + anyOf: [ + { + additionalProperties: { $ref: '#/components/schemas/Interruption' }, + type: 'object', + }, + { type: 'null' }, + ], title: 'Interruptions', - type: 'object', - additionalProperties: { $ref: '#/components/schemas/Interruption' }, description: 'A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.', }, cancellation: { - title: 'Cancellation', - allOf: [{ $ref: '#/components/schemas/Cancellation' }], + anyOf: [{ $ref: '#/components/schemas/Cancellation' }, { type: 'null' }], description: 'If the task was cancelled, this will describe information about the request.', }, killed: { - title: 'Killed', - allOf: [{ $ref: '#/components/schemas/Killed' }], + anyOf: [{ $ref: '#/components/schemas/Killed' }, { type: 'null' }], description: 'If the task was killed, this will describe information about the request.', }, }, + type: 'object', + required: ['booking'], + title: 'TaskState', }, - Tier: { - title: 'Tier', - enum: ['uninitialized', 'info', 'warning', 'error'], - description: 'An enumeration.', - }, + Tier: { type: 'string', enum: ['uninitialized', 'info', 'warning', 'error'], title: 'Tier' }, Time: { - title: 'Time', - required: ['sec', 'nanosec'], - type: 'object', properties: { - sec: { - title: 'Sec', - maximum: 2147483647.0, - minimum: -2147483648.0, - type: 'integer', - default: 0, - }, - nanosec: { - title: 'Nanosec', - maximum: 4294967295.0, - minimum: 0.0, - type: 'integer', - default: 0, - }, + sec: { type: 'integer', maximum: 2147483647.0, minimum: -2147483648.0, title: 'Sec' }, + nanosec: { type: 'integer', maximum: 4294967295.0, minimum: 0.0, title: 'Nanosec' }, }, + type: 'object', + required: ['sec', 'nanosec'], + title: 'Time', }, TokenResponse: { - title: 'TokenResponse', anyOf: [ - { $ref: '#/components/schemas/TokenResponseItem' }, - { $ref: '#/components/schemas/TokenResponseItem1' }, + { $ref: '#/components/schemas/TokenResponse1' }, + { $ref: '#/components/schemas/TokenResponse2' }, ], - description: - 'Template for defining a response message that provides a token upon success or errors upon failure', + title: 'TokenResponse', }, - TokenResponseItem: { - title: 'TokenResponseItem', - required: ['success', 'token'], - type: 'object', + TokenResponse1: { properties: { - success: { - $ref: '#/components/schemas/api_server__models__rmf_api__token_response__Success', - }, + success: { $ref: '#/components/schemas/Success' }, token: { - title: 'Token', type: 'string', + title: 'Token', description: 'A token for the request. The value of this token is unique within the scope of this request and can be used by other requests to reference this request.', }, }, - }, - TokenResponseItem1: { - title: 'TokenResponseItem1', - required: ['success', 'errors'], type: 'object', + required: ['success', 'token'], + title: 'TokenResponse1', + }, + TokenResponse2: { properties: { - success: { - $ref: '#/components/schemas/api_server__models__rmf_api__token_response__Failure', - }, + success: { $ref: '#/components/schemas/Failure' }, errors: { - title: 'Errors', - type: 'array', items: { $ref: '#/components/schemas/Error' }, + type: 'array', + title: 'Errors', description: 'Any error messages explaining why the request failed.', }, }, + type: 'object', + required: ['success', 'errors'], + title: 'TokenResponse2', }, Undo: { - title: 'Undo', - required: ['unix_millis_request_time', 'labels'], - type: 'object', properties: { unix_millis_request_time: { - title: 'Unix Millis Request Time', type: 'integer', + title: 'Unix Millis Request Time', description: 'The time that the undo skip request arrived', }, labels: { - title: 'Labels', - type: 'array', items: { type: 'string' }, + type: 'array', + title: 'Labels', description: 'Labels to describe the undo skip request', }, }, + type: 'object', + required: ['unix_millis_request_time', 'labels'], + title: 'Undo', }, UndoPhaseSkipRequest: { - title: 'UndoPhaseSkipRequest', - type: 'object', properties: { type: { + anyOf: [{ const: 'undo_phase_skip_request' }, { type: 'null' }], title: 'Type', - enum: ['undo_phase_skip_request'], - type: 'string', description: 'Indicate that this is a request to undo a phase skip request', }, for_task: { + anyOf: [{ type: 'string' }, { type: 'null' }], title: 'For Task', - type: 'string', description: 'Specify the relevant task ID', }, for_tokens: { + anyOf: [{ items: { type: 'string' }, type: 'array', minItems: 1 }, { type: 'null' }], title: 'For Tokens', - minItems: 1, - type: 'array', - items: { type: 'string' }, description: 'A list of the tokens of skip requests which should be undone. The skips associated with each token will be discarded.', }, labels: { + anyOf: [{ items: { type: 'string' }, type: 'array' }, { type: 'null' }], title: 'Labels', - type: 'array', - items: { type: 'string' }, description: 'Labels describing this request', }, }, + type: 'object', + title: 'UndoPhaseSkipRequest', }, UndoPhaseSkipResponse: { - title: 'UndoPhaseSkipResponse', allOf: [{ $ref: '#/components/schemas/SimpleResponse' }], - description: 'Response to an undo phase skip request', + title: 'UndoPhaseSkipResponse', }, User: { - title: 'User', - required: ['username', 'is_admin', 'roles'], - type: 'object', properties: { - username: { title: 'Username', type: 'string' }, - is_admin: { title: 'Is Admin', type: 'boolean', default: false }, - roles: { title: 'Roles', type: 'array', items: { type: 'string' }, default: [] }, + username: { type: 'string', title: 'Username' }, + is_admin: { type: 'boolean', title: 'Is Admin', default: false }, + roles: { items: { type: 'string' }, type: 'array', title: 'Roles', default: [] }, }, + type: 'object', + required: ['username', 'is_admin', 'roles'], + title: 'User', }, ValidationError: { - title: 'ValidationError', - required: ['loc', 'msg', 'type'], - type: 'object', properties: { loc: { - title: 'Location', - type: 'array', items: { anyOf: [{ type: 'string' }, { type: 'integer' }] }, - }, - msg: { title: 'Message', type: 'string' }, - type: { title: 'Error Type', type: 'string' }, - }, - }, - 'api_server.models.tortoise_models.alerts.Alert.leaf': { - title: 'Alert', - required: ['id', 'original_id', 'category', 'unix_millis_created_time'], - type: 'object', - properties: { - id: { title: 'Id', maxLength: 255, type: 'string' }, - original_id: { title: 'Original Id', maxLength: 255, type: 'string' }, - category: { - title: 'Category', - maxLength: 7, - type: 'string', - description: 'Default: default
Task: task
Fleet: fleet
Robot: robot', - }, - unix_millis_created_time: { - title: 'Unix Millis Created Time', - maximum: 9.223372036854776e18, - minimum: -9.223372036854776e18, - type: 'integer', - }, - acknowledged_by: { - title: 'Acknowledged By', - maxLength: 255, - type: 'string', - nullable: true, - }, - unix_millis_acknowledged_time: { - title: 'Unix Millis Acknowledged Time', - maximum: 9.223372036854776e18, - minimum: -9.223372036854776e18, - type: 'integer', - nullable: true, - }, - }, - additionalProperties: false, - description: 'General alert that can be triggered by events.', - }, - 'api_server.models.tortoise_models.beacons.BeaconState.leaf': { - title: 'BeaconState', - required: ['id', 'online', 'activated'], - type: 'object', - properties: { - id: { title: 'Id', maxLength: 255, type: 'string' }, - online: { title: 'Online', type: 'boolean' }, - category: { title: 'Category', maxLength: 255, type: 'string', nullable: true }, - activated: { title: 'Activated', type: 'boolean' }, - level: { title: 'Level', maxLength: 255, type: 'string', nullable: true }, - }, - additionalProperties: false, - }, - 'api_server.models.tortoise_models.scheduled_task.ScheduledTask': { - title: 'ScheduledTask', - required: ['id', 'created_by', 'schedules'], - type: 'object', - properties: { - id: { title: 'Id', maximum: 2147483647.0, minimum: 1.0, type: 'integer' }, - task_request: { title: 'Task Request' }, - created_by: { title: 'Created By', maxLength: 255, type: 'string' }, - last_ran: { title: 'Last Ran', type: 'string', format: 'date-time', nullable: true }, - except_dates: { title: 'Except Dates' }, - schedules: { - title: 'Schedules', type: 'array', - items: { - $ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTaskSchedule.leaf', - }, + title: 'Location', }, + msg: { type: 'string', title: 'Message' }, + type: { type: 'string', title: 'Error Type' }, }, - additionalProperties: false, - }, - 'api_server.models.tortoise_models.scheduled_task.ScheduledTaskSchedule.leaf': { - title: 'ScheduledTaskSchedule', - required: ['period'], type: 'object', - properties: { - every: { - title: 'Every', - maximum: 32767.0, - minimum: -32768.0, - type: 'integer', - nullable: true, - }, - start_from: { title: 'Start From', type: 'string', format: 'date-time', nullable: true }, - until: { title: 'Until', type: 'string', format: 'date-time', nullable: true }, - period: { - title: 'Period', - maxLength: 9, - type: 'string', - description: - 'Monday: monday
Tuesday: tuesday
Wednesday: wednesday
Thursday: thursday
Friday: friday
Saturday: saturday
Sunday: sunday
Day: day
Hour: hour
Minute: minute', - }, - at: { title: 'At', maxLength: 255, type: 'string', nullable: true }, - }, - additionalProperties: false, - description: - 'The schedules for a scheduled task request.
A scheduled task may have multiple schedules.', + required: ['loc', 'msg', 'type'], + title: 'ValidationError', }, - 'api_server.models.tortoise_models.scheduled_task.ScheduledTask_list': { - title: 'ScheduledTask_list', - type: 'array', - items: { - $ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask', - }, + api_server__models__rmf_api__robot_state__Status: { + type: 'string', + enum: ['uninitialized', 'offline', 'shutdown', 'idle', 'charging', 'working', 'error'], + title: 'Status', }, - 'api_server.models.tortoise_models.tasks.TaskFavorite.leaf': { - title: 'TaskFavorite', - required: ['id', 'name', 'category', 'user'], - type: 'object', - properties: { - id: { title: 'Id', maxLength: 255, type: 'string' }, - name: { title: 'Name', maxLength: 255, type: 'string' }, - unix_millis_earliest_start_time: { - title: 'Unix Millis Earliest Start Time', - type: 'string', - format: 'date-time', - nullable: true, - }, - priority: { title: 'Priority' }, - category: { title: 'Category', maxLength: 255, type: 'string' }, - description: { title: 'Description' }, - user: { title: 'User', maxLength: 255, type: 'string' }, - }, - additionalProperties: false, + api_server__models__rmf_api__task_state__Status: { + type: 'string', + enum: [ + 'uninitialized', + 'blocked', + 'error', + 'failed', + 'queued', + 'standby', + 'underway', + 'delayed', + 'skipped', + 'canceled', + 'killed', + 'completed', + ], + title: 'Status', }, - api_server__models__rmf_api__fleet_log__FleetState: { - title: 'FleetState', - type: 'object', - properties: { - name: { title: 'Name', type: 'string' }, - log: { - title: 'Log', - type: 'array', - items: { $ref: '#/components/schemas/LogEntry' }, - description: 'Log for the overall fleet', - }, - robots: { - title: 'Robots', - type: 'object', - additionalProperties: { - type: 'array', - items: { $ref: '#/components/schemas/LogEntry' }, + tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__alerts__Alert__leaf: + { + properties: { + id: { type: 'string', maxLength: 255, title: 'Id' }, + original_id: { type: 'string', maxLength: 255, title: 'Original Id' }, + category: { + type: 'string', + maxLength: 7, + title: 'Category', + description: 'Default: default
Task: task
Fleet: fleet
Robot: robot', + }, + unix_millis_created_time: { + type: 'integer', + maximum: 9.223372036854776e18, + minimum: -9.223372036854776e18, + title: 'Unix Millis Created Time', + }, + acknowledged_by: { + anyOf: [{ type: 'string', maxLength: 255 }, { type: 'null' }], + title: 'Acknowledged By', + nullable: true, + }, + unix_millis_acknowledged_time: { + anyOf: [ + { type: 'integer', maximum: 9.223372036854776e18, minimum: -9.223372036854776e18 }, + { type: 'null' }, + ], + title: 'Unix Millis Acknowledged Time', + nullable: true, + }, + }, + additionalProperties: false, + type: 'object', + required: [ + 'id', + 'original_id', + 'category', + 'unix_millis_created_time', + 'acknowledged_by', + 'unix_millis_acknowledged_time', + ], + title: 'Alert', + description: 'General alert that can be triggered by events.', + }, + tortoise__contrib__pydantic__creator__api_server__models__tortoise_models__beacons__BeaconState__leaf: + { + properties: { + id: { type: 'string', maxLength: 255, title: 'Id' }, + online: { type: 'boolean', title: 'Online' }, + category: { + anyOf: [{ type: 'string', maxLength: 255 }, { type: 'null' }], + title: 'Category', + nullable: true, + }, + activated: { type: 'boolean', title: 'Activated' }, + level: { + anyOf: [{ type: 'string', maxLength: 255 }, { type: 'null' }], + title: 'Level', + nullable: true, }, - description: - 'Dictionary of logs for the individual robots. The keys (property names) are the robot names.', - }, - }, - }, - api_server__models__rmf_api__fleet_state__FleetState: { - title: 'FleetState', - type: 'object', - properties: { - name: { title: 'Name', type: 'string' }, - robots: { - title: 'Robots', - type: 'object', - additionalProperties: { $ref: '#/components/schemas/RobotState' }, - description: 'A dictionary of the states of the robots that belong to this fleet', }, + additionalProperties: false, + type: 'object', + required: ['id', 'online', 'category', 'activated', 'level'], + title: 'BeaconState', }, - }, - api_server__models__rmf_api__simple_response__Failure: { - title: 'Failure', - enum: [false], - description: 'An enumeration.', - }, - api_server__models__rmf_api__simple_response__Success: { - title: 'Success', - enum: [true], - description: 'An enumeration.', - }, - api_server__models__rmf_api__token_response__Failure: { - title: 'Failure', - enum: [false], - description: 'An enumeration.', - }, - api_server__models__rmf_api__token_response__Success: { - title: 'Success', - enum: [true], - description: 'An enumeration.', - }, }, }, }; diff --git a/packages/api-server/.pylintrc b/packages/api-server/.pylintrc deleted file mode 100644 index b06a1ba75..000000000 --- a/packages/api-server/.pylintrc +++ /dev/null @@ -1,603 +0,0 @@ -[MASTER] - -# A comma-separated list of package or module names from where C extensions may -# be loaded. Extensions are loading into the active Python interpreter and may -# run arbitrary code. -extension-pkg-whitelist=pydantic - -# Specify a score threshold to be exceeded before program exits with error. -fail-under=10.0 - -# Add files or directories to the blacklist. They should be base names, not -# paths. -ignore=CVS - -# Add files or directories matching the regex patterns to the blacklist. The -# regex matches against base names, not paths. -ignore-patterns= - -# Python code to execute, usually for sys.path manipulation such as -# pygtk.require(). -#init-hook= - -# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the -# number of processors available to use. -jobs=1 - -# Control the amount of potential inferred values when inferring a single -# object. This can help the performance when dealing with large functions or -# complex, nested conditions. -limit-inference-results=100 - -# List of plugins (as comma separated values of python module names) to load, -# usually to register additional checkers. -load-plugins= - -# Pickle collected data for later comparisons. -persistent=yes - -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages. -suggestion-mode=yes - -# Allow loading of arbitrary C extensions. Extensions are imported into the -# active Python interpreter and may run arbitrary code. -unsafe-load-any-extension=no - - -[MESSAGES CONTROL] - -# Only show warnings with the listed confidence levels. Leave empty to show -# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. -confidence= - -# Disable the message, report, category or checker with the given id(s). You -# can either give multiple identifiers separated by comma (,) or put this -# option multiple times (only on the command line, not in the configuration -# file where it should appear only once). You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if -# you want to run only the similarities checker, you can use "--disable=all -# --enable=similarities". If you want to run only the classes checker, but have -# no Warning level messages displayed, use "--disable=all --enable=classes -# --disable=W". -disable=print-statement, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - use-symbolic-message-instead, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, - deprecated-operator-function, - deprecated-urllib-function, - xreadlines-attribute, - deprecated-sys-function, - exception-escape, - comprehension-escape, - -# added disables - design, - similarities, - invalid-name, - missing-module-docstring, - missing-class-docstring, - missing-function-docstring, - attribute-defined-outside-init, - fixme, - logging-fstring-interpolation, - line-too-long, -# fastapi heavily uses singletons, disallowing global statements just ends up with things -# using nonlocal as singletons which are functionally the same as globals. - global-statement, - -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). See also the "--disable" option for examples. -enable=c-extension-no-member - - -[REPORTS] - -# Python expression which should return a score less than or equal to 10. You -# have access to the variables 'error', 'warning', 'refactor', and 'convention' -# which contain the number of messages in each category, as well as 'statement' -# which is the total number of statements analyzed. This score is used by the -# global evaluation report (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details. -#msg-template= - -# Set the output format. Available formats are text, parseable, colorized, json -# and msvs (visual studio). You can also give a reporter class, e.g. -# mypackage.mymodule.MyReporterClass. -output-format=text - -# Tells whether to display a full report or only the messages. -reports=no - -# Activate the evaluation score. -score=yes - - -[REFACTORING] - -# Maximum number of nested blocks for function / method body -max-nested-blocks=5 - -# Complete name of functions that never returns. When checking for -# inconsistent-return-statements if a never returning function is called then -# it will be considered as an explicit return statement and no message will be -# printed. -never-returning-functions=sys.exit - - -[LOGGING] - -# The type of string formatting that logging methods do. `old` means using % -# formatting, `new` is for `{}` formatting. -logging-format-style=old - -# Logging modules to check that the string format arguments are in logging -# function parameter format. -logging-modules=logging - - -[TYPECHECK] - -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators=contextlib.contextmanager - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -generated-members= - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# Tells whether to warn about missing members when the owner of the attribute -# is inferred to be None. -ignore-none=yes - -# This flag controls whether pylint should warn about no-member and similar -# checks whenever an opaque object is returned when inferring. The inference -# can return multiple potential results while evaluating a Python object, but -# some branches might not be evaluated, which results in partial inference. In -# that case, it might be useful to still emit no-member and other checks for -# the rest of the inferred objects. -ignore-on-opaque-inference=yes - -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes=optparse.Values,thread._local,_thread._local - -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis). It -# supports qualified module names, as well as Unix pattern matching. -ignored-modules= - -# Show a hint with possible names when a member name was not found. The aspect -# of finding the hint is based on edit distance. -missing-member-hint=yes - -# The minimum edit distance a name should have in order to be considered a -# similar match for a missing member name. -missing-member-hint-distance=1 - -# The total number of similar names that should be taken in consideration when -# showing a hint for a missing member. -missing-member-max-choices=1 - -# List of decorators that change the signature of a decorated function. -signature-mutators= - - -[BASIC] - -# Naming style matching correct argument names. -argument-naming-style=snake_case - -# Regular expression matching correct argument names. Overrides argument- -# naming-style. -#argument-rgx= - -# Naming style matching correct attribute names. -attr-naming-style=snake_case - -# Regular expression matching correct attribute names. Overrides attr-naming- -# style. -#attr-rgx= - -# Bad variable names which should always be refused, separated by a comma. -bad-names=foo, - bar, - baz, - toto, - tutu, - tata - -# Bad variable names regexes, separated by a comma. If names match any regex, -# they will always be refused -bad-names-rgxs= - -# Naming style matching correct class attribute names. -class-attribute-naming-style=any - -# Regular expression matching correct class attribute names. Overrides class- -# attribute-naming-style. -#class-attribute-rgx= - -# Naming style matching correct class names. -class-naming-style=PascalCase - -# Regular expression matching correct class names. Overrides class-naming- -# style. -#class-rgx= - -# Naming style matching correct constant names. -const-naming-style=UPPER_CASE - -# Regular expression matching correct constant names. Overrides const-naming- -# style. -#const-rgx= - -# Minimum line length for functions/classes that require docstrings, shorter -# ones are exempt. -docstring-min-length=-1 - -# Naming style matching correct function names. -function-naming-style=snake_case - -# Regular expression matching correct function names. Overrides function- -# naming-style. -#function-rgx= - -# Good variable names which should always be accepted, separated by a comma. -good-names=i, - j, - k, - ex, - Run, - _ - -# Good variable names regexes, separated by a comma. If names match any regex, -# they will always be accepted -good-names-rgxs= - -# Include a hint for the correct naming format with invalid-name. -include-naming-hint=no - -# Naming style matching correct inline iteration names. -inlinevar-naming-style=any - -# Regular expression matching correct inline iteration names. Overrides -# inlinevar-naming-style. -#inlinevar-rgx= - -# Naming style matching correct method names. -method-naming-style=snake_case - -# Regular expression matching correct method names. Overrides method-naming- -# style. -#method-rgx= - -# Naming style matching correct module names. -module-naming-style=snake_case - -# Regular expression matching correct module names. Overrides module-naming- -# style. -#module-rgx= - -# Colon-delimited sets of names that determine each other's naming style when -# the name regexes allow several styles. -name-group= - -# Regular expression which should only match function or class names that do -# not require a docstring. -no-docstring-rgx=^_ - -# List of decorators that produce properties, such as abc.abstractproperty. Add -# to this list to register other decorators that produce valid properties. -# These decorators are taken in consideration only for invalid-name. -property-classes=abc.abstractproperty - -# Naming style matching correct variable names. -variable-naming-style=snake_case - -# Regular expression matching correct variable names. Overrides variable- -# naming-style. -#variable-rgx= - - -[FORMAT] - -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= - -# Regexp for a line that is allowed to be longer than the limit. -ignore-long-lines=^\s*(# )??$ - -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 - -# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 -# tab). -indent-string=' ' - -# Maximum number of characters on a single line. -max-line-length=100 - -# Maximum number of lines in a module. -max-module-lines=1000 - -# Allow the body of a class to be on the same line as the declaration if body -# contains single statement. -single-line-class-stmt=no - -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=no - - -[SIMILARITIES] - -# Ignore comments when computing similarities. -ignore-comments=yes - -# Ignore docstrings when computing similarities. -ignore-docstrings=yes - -# Ignore imports when computing similarities. -ignore-imports=no - -# Minimum lines number of a similarity. -min-similarity-lines=4 - - -[STRING] - -# This flag controls whether inconsistent-quotes generates a warning when the -# character used as a quote delimiter is used inconsistently within a module. -check-quote-consistency=no - -# This flag controls whether the implicit-str-concat should generate a warning -# on implicit string concatenation in sequences defined over several lines. -check-str-concat-over-line-jumps=no - - -[SPELLING] - -# Limits count of emitted suggestions for spelling mistakes. -max-spelling-suggestions=4 - -# Spelling dictionary name. Available dictionaries: none. To make it work, -# install the python-enchant package. -spelling-dict= - -# List of comma separated words that should not be checked. -spelling-ignore-words= - -# A path to a file that contains the private dictionary; one word per line. -spelling-private-dict-file= - -# Tells whether to store unknown words to the private dictionary (see the -# --spelling-private-dict-file option) instead of raising a message. -spelling-store-unknown-words=no - - -[MISCELLANEOUS] - -# List of note tags to take in consideration, separated by a comma. -notes=FIXME, - XXX, - TODO - -# Regular expression of note tags to take in consideration. -#notes-rgx= - - -[VARIABLES] - -# List of additional names supposed to be defined in builtins. Remember that -# you should avoid defining new builtins when possible. -additional-builtins= - -# Tells whether unused global variables should be treated as a violation. -allow-global-unused-variables=yes - -# List of strings which can identify a callback function by name. A callback -# name must start or end with one of those strings. -callbacks=cb_, - _cb - -# A regular expression matching the name of dummy variables (i.e. expected to -# not be used). -dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ - -# Argument names that match this expression will be ignored. Default to name -# with leading underscore. -ignored-argument-names=_.*|^ignored_|^unused_ - -# Tells whether we should check for unused import in __init__ files. -init-import=no - -# List of qualified module names which can have objects that can redefine -# builtins. -redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io - - -[IMPORTS] - -# List of modules that can be imported at any level, not just the top level -# one. -allow-any-import-level= - -# Allow wildcard imports from modules that define __all__. -allow-wildcard-with-all=no - -# Analyse import fallback blocks. This can be used to support both Python 2 and -# 3 compatible code, which means that the block might have code that exists -# only in one or another interpreter, leading to false positives when analysed. -analyse-fallback-blocks=no - -# Deprecated modules which should not be used, separated by a comma. -deprecated-modules=optparse,tkinter.tix - -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled). -ext-import-graph= - -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled). -import-graph= - -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled). -int-import-graph= - -# Force import order to recognize a module as part of the standard -# compatibility libraries. -known-standard-library= - -# Force import order to recognize a module as part of a third party library. -known-third-party=enchant - -# Couples of modules and preferred modules, separated by a comma. -preferred-modules= - - -[DESIGN] - -# Maximum number of arguments for function / method. -max-args=5 - -# Maximum number of attributes for a class (see R0902). -max-attributes=7 - -# Maximum number of boolean expressions in an if statement (see R0916). -max-bool-expr=5 - -# Maximum number of branch for function / method body. -max-branches=12 - -# Maximum number of locals for function / method body. -max-locals=15 - -# Maximum number of parents for a class (see R0901). -max-parents=7 - -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 - -# Maximum number of return / yield for function / method body. -max-returns=6 - -# Maximum number of statements in function / method body. -max-statements=50 - -# Minimum number of public methods for a class (see R0903). -min-public-methods=2 - - -[CLASSES] - -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__, - __new__, - setUp, - __post_init__ - -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict, - _fields, - _replace, - _source, - _make - -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg=cls - -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg=cls - - -[EXCEPTIONS] - -# Exceptions that will emit a warning when being caught. Defaults to -# "BaseException, Exception". -overgeneral-exceptions=BaseException, - Exception diff --git a/packages/api-server/api_server/__init__.py b/packages/api-server/api_server/__init__.py index 2fdfa2ba8..e69de29bb 100644 --- a/packages/api-server/api_server/__init__.py +++ b/packages/api-server/api_server/__init__.py @@ -1,4 +0,0 @@ -from tortoise import Tortoise - -# need to init models before calling `pydantic_model_creator` https://tortoise-orm.readthedocs.io/en/latest/examples/pydantic.html?highlight=serializer#relations-early-init -Tortoise.init_models(["api_server.models.tortoise_models"], "models") diff --git a/packages/api-server/api_server/app.py b/packages/api-server/api_server/app.py index 00ac20d55..ff0dbcda2 100644 --- a/packages/api-server/api_server/app.py +++ b/packages/api-server/api_server/app.py @@ -1,4 +1,5 @@ import asyncio +import contextlib import os import signal import threading @@ -51,88 +52,24 @@ async def on_sio_connect(sid: str, _environ: dict, auth: dict | None = None) -> return False -app = FastIO( - title="RMF API Server", - socketio_connect=on_sio_connect, - docs_url=None, - redoc_url=None, -) - - -app.add_middleware( - CORSMiddleware, - allow_origins=["*"], - allow_credentials=False, - allow_methods=["*"], - allow_headers=["*"], -) - -app.mount( - "/static", - StaticFiles( - directory=os.path.join(os.path.dirname(os.path.abspath(__file__)), "static") - ), - name="static", -) - -os.makedirs(app_config.cache_directory, exist_ok=True) -app.mount( - "/cache", - StaticFiles(directory=app_config.cache_directory), - name="cache", -) - # will be called in reverse order on app shutdown +# TODO: convert them all to contexts shutdown_cbs: list[Union[Coroutine[Any, Any, Any], Callable[[], None]]] = [] -rmf_bookkeeper = RmfBookKeeper(rmf_events, logger=logger.getChild("BookKeeper")) -app.include_router(routes.main_router) -app.include_router( - routes.alerts_router, prefix="/alerts", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.beacons_router, prefix="/beacons", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.building_map_router, prefix="/building_map", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.doors_router, prefix="/doors", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.lifts_router, prefix="/lifts", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.tasks_router, prefix="/tasks", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.scheduled_tasks.router, - prefix="/scheduled_tasks", - dependencies=[Depends(user_dep)], -) -app.include_router( - routes.favorite_tasks_router, - prefix="/favorite_tasks", - dependencies=[Depends(user_dep)], -) -app.include_router( - routes.dispensers_router, prefix="/dispensers", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.ingestors_router, prefix="/ingestors", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.fleets_router, prefix="/fleets", dependencies=[Depends(user_dep)] -) -app.include_router( - routes.admin_router, prefix="/admin", dependencies=[Depends(user_dep)] -) -app.include_router(routes.internal_router, prefix="/_internal") +async def shutdown(): + while shutdown_cbs: + cb = shutdown_cbs.pop() + if is_coroutine(cb): + await cb + elif callable(cb): + cb() + logger.info("shutdown app") -@app.on_event("startup") -async def on_startup(): + +@contextlib.asynccontextmanager +async def lifespan(_app: FastIO): loop = asyncio.get_event_loop() await Tortoise.init( @@ -152,7 +89,7 @@ async def on_startup(): # "locked up" as some dependencies like tortoise does not allow python to exit until # it is closed "gracefully". def on_signal(sig, frame): - task = loop.create_task(on_shutdown()) + task = loop.create_task(shutdown()) if not loop.is_running(): loop.run_until_complete(task) if sig == signal.SIGINT and callable(prev_sigint): @@ -202,17 +139,88 @@ def on_signal(sig, frame): ros.spin_background() logger.info("started app") + yield -@app.on_event("shutdown") -async def on_shutdown(): - while shutdown_cbs: - cb = shutdown_cbs.pop() - if is_coroutine(cb): - await cb - elif callable(cb): - cb() + await shutdown() - logger.info("shutdown app") + +app = FastIO( + title="RMF API Server", + lifespan=lifespan, + socketio_connect=on_sio_connect, + docs_url=None, + redoc_url=None, + separate_input_output_schemas=False, +) + + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=False, + allow_methods=["*"], + allow_headers=["*"], +) + +app.mount( + "/static", + StaticFiles( + directory=os.path.join(os.path.dirname(os.path.abspath(__file__)), "static") + ), + name="static", +) + +os.makedirs(app_config.cache_directory, exist_ok=True) +app.mount( + "/cache", + StaticFiles(directory=app_config.cache_directory), + name="cache", +) + +rmf_bookkeeper = RmfBookKeeper(rmf_events, logger=logger.getChild("BookKeeper")) + +app.include_router(routes.main_router) +app.include_router( + routes.alerts_router, prefix="/alerts", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.beacons_router, prefix="/beacons", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.building_map_router, prefix="/building_map", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.doors_router, prefix="/doors", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.lifts_router, prefix="/lifts", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.tasks_router, prefix="/tasks", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.scheduled_tasks.router, + prefix="/scheduled_tasks", + dependencies=[Depends(user_dep)], +) +app.include_router( + routes.favorite_tasks_router, + prefix="/favorite_tasks", + dependencies=[Depends(user_dep)], +) +app.include_router( + routes.dispensers_router, prefix="/dispensers", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.ingestors_router, prefix="/ingestors", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.fleets_router, prefix="/fleets", dependencies=[Depends(user_dep)] +) +app.include_router( + routes.admin_router, prefix="/admin", dependencies=[Depends(user_dep)] +) +app.include_router(routes.internal_router, prefix="/_internal") @app.get("/docs", include_in_schema=False) diff --git a/packages/api-server/api_server/fast_io/__init__.py b/packages/api-server/api_server/fast_io/__init__.py index 70889c199..331ae4b85 100644 --- a/packages/api-server/api_server/fast_io/__init__.py +++ b/packages/api-server/api_server/fast_io/__init__.py @@ -17,16 +17,17 @@ import pydantic import socketio -import socketio.packet from fastapi import APIRouter, FastAPI from fastapi.exceptions import HTTPException from fastapi.routing import APIRoute +from pydantic import BaseModel from reactivex import Observable from starlette.routing import compile_path from api_server.logger import logger from .errors import * +from .pydantic_json_serializer import PydanticJsonSerializer @dataclass @@ -102,7 +103,10 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.sub_routes: List[SubRoute] = [] - def include_router(self, router: "FastIORouter", **kwargs): + def include_router(self, router: APIRouter, **kwargs): + if not isinstance(router, FastIORouter): + raise ValueError("router must be an instance of FastIORouter") + super().include_router(router, **kwargs) prefix = kwargs.get("prefix", "") @@ -128,21 +132,6 @@ def decorator(func: OnSubscribe) -> OnSubscribe: return decorator -class FastIOPacket(socketio.packet.Packet): - class PacketData(pydantic.BaseModel): - __root__: Tuple[str, pydantic.BaseModel] - - def encode(self): - if ( - isinstance(self.data, list) - and len(self.data) == 2 - and isinstance(self.data[1], pydantic.BaseModel) - ): - pkt_data = FastIOPacket.PacketData.construct(__root__=self.data) - return str(self.packet_type) + pkt_data.json(exclude_none=True) - return super().encode() - - class FastIO(FastAPI): def __init__( self, @@ -157,7 +146,7 @@ def __init__( if self.swagger_ui_oauth2_redirect_url is None: self.swagger_ui_oauth2_redirect_url = "docs/oauth2-redirect" self.sio = socketio.AsyncServer( - async_mode="asgi", cors_allowed_origins=[], serializer=FastIOPacket + async_mode="asgi", cors_allowed_origins=[], json=PydanticJsonSerializer() ) self.sio.on("connect", socketio_connect) self.sio.on("subscribe", self._on_subscribe) @@ -281,10 +270,7 @@ async def _on_subscribe(self, sid: str, data: dict): loop = asyncio.get_event_loop() def on_next(data): - async def emit(): - await self.sio.emit(sub_data.room, data, to=sid) - - loop.create_task(emit()) + loop.create_task(self.sio.emit(sub_data.room, data, to=sid)) sub = obs.subscribe(on_next) session.setdefault("_subscriptions", {})[sub_data.room] = sub diff --git a/packages/api-server/api_server/fast_io/pydantic_json_serializer.py b/packages/api-server/api_server/fast_io/pydantic_json_serializer.py new file mode 100644 index 000000000..9266ea23e --- /dev/null +++ b/packages/api-server/api_server/fast_io/pydantic_json_serializer.py @@ -0,0 +1,23 @@ +import pydantic +from socketio.packet import _json as default_json + + +class PydanticJsonSerializer: + def loads(self, *args, **kwargs): + return default_json.loads(*args, **kwargs) + + def dumps(self, obj, *args, **kwargs): + # Hacky workaround to allow pydantic objects to be serialized. + # The problem is that the default json serializer cannot serialize some + # pydantic objects. We also cannot use a custom `JSONEncoder` as the + # design is flawed, it requires an incompatible object to be converted to an + # compatible one, so to serialize a pydantic object, it needs to be converted + # to a dict, letting pydantic do the serialization will cause it to be + # encoded as a string. + # + # In this workaround, we are assuming all payloads which involves pydantic objects + # is in a 2 item tuple with the room name and the data. We then build the json + # manually (if the assumption is broken, then it will broken invalid json!). + if isinstance(obj, list) and isinstance(obj[1], pydantic.BaseModel): + return f'["{obj[0]}",{obj[1].model_dump_json()}]' + return default_json.dumps(obj, *args, **kwargs) diff --git a/packages/api-server/api_server/gateway.py b/packages/api-server/api_server/gateway.py index ee78ce969..81b12a7da 100644 --- a/packages/api-server/api_server/gateway.py +++ b/packages/api-server/api_server/gateway.py @@ -4,7 +4,7 @@ import base64 import hashlib import logging -from typing import Any, List, Optional +from typing import Any, List, Optional, cast import rclpy import rclpy.client @@ -47,13 +47,13 @@ def process_building_map( for i, level in enumerate(rmf_building_map.levels): level: RmfLevel for j, image in enumerate(level.images): - image: RmfAffineImage + image = cast(RmfAffineImage, image) # look at non-crypto hashes if we need more performance sha1_hash = hashlib.sha1() sha1_hash.update(image.data) fingerprint = base64.b32encode(sha1_hash.digest()).lower().decode() relpath = f"{rmf_building_map.name}/{level.name}-{image.name}.{fingerprint}.{image.encoding}" # pylint: disable=line-too-long - urlpath = cached_files.add_file(image.data, relpath) + urlpath = cached_files.add_file(cast(bytes, image.data), relpath) processed_map["levels"][i]["images"][j]["data"] = urlpath return BuildingMap(**processed_map) @@ -116,7 +116,9 @@ def convert_lift_state(lift_state: RmfLiftState): lift_states_sub = ros_node().create_subscription( RmfLiftState, "lift_states", - lambda msg: rmf_events.lift_states.on_next(convert_lift_state(msg)), + lambda msg: rmf_events.lift_states.on_next( + convert_lift_state(cast(RmfLiftState, msg)) + ), 10, ) self._subscriptions.append(lift_states_sub) @@ -143,7 +145,7 @@ def convert_lift_state(lift_state: RmfLiftState): RmfBuildingMap, "map", lambda msg: rmf_events.building_map.on_next( - process_building_map(msg, self.cached_files) + process_building_map(cast(RmfBuildingMap, msg), self.cached_files) ), rclpy.qos.QoSProfile( history=rclpy.qos.HistoryPolicy.KEEP_ALL, diff --git a/packages/api-server/api_server/models/__init__.py b/packages/api-server/api_server/models/__init__.py index 27b891b46..eec658272 100644 --- a/packages/api-server/api_server/models/__init__.py +++ b/packages/api-server/api_server/models/__init__.py @@ -13,7 +13,7 @@ from .rmf_api.cancel_task_response import TaskCancelResponse from .rmf_api.dispatch_task_request import DispatchTaskRequest from .rmf_api.dispatch_task_response import * -from .rmf_api.fleet_log import FleetState as FleetLog +from .rmf_api.fleet_log import FleetLog from .rmf_api.fleet_log_request import FleetLogRequest from .rmf_api.fleet_log_response import FleetLogResponse from .rmf_api.fleet_log_update import TaskEventLogUpdate as FleetLogUpdate @@ -28,7 +28,7 @@ from .rmf_api.resume_task_response import TaskResumeResponse from .rmf_api.rewind_task_request import TaskRewindRequest from .rmf_api.rewind_task_response import TaskRewindResponse -from .rmf_api.robot_state import Status2 +from .rmf_api.robot_state import RobotState from .rmf_api.robot_task_request import RobotTaskRequest from .rmf_api.robot_task_response import * from .rmf_api.skip_phase_request import TaskPhaseSkipRequest @@ -40,8 +40,10 @@ from .rmf_api.task_log_response import TaskLogResponse from .rmf_api.task_log_update import TaskEventLogUpdate from .rmf_api.task_request import TaskRequest -from .rmf_api.task_state import Status, TaskState +from .rmf_api.task_state import Status as TaskStatus +from .rmf_api.task_state import TaskState from .rmf_api.task_state_update import TaskStateUpdate from .rmf_api.undo_skip_phase_request import UndoPhaseSkipRequest from .rmf_api.undo_skip_phase_response import UndoPhaseSkipResponse +from .tasks import * from .user import * diff --git a/packages/api-server/api_server/models/building_map.py b/packages/api-server/api_server/models/building_map.py index 4f73a7f9b..badcc8e7f 100644 --- a/packages/api-server/api_server/models/building_map.py +++ b/packages/api-server/api_server/models/building_map.py @@ -3,23 +3,25 @@ class AffineImage(rmf_building_map_msgs.AffineImage): - data: str + data: str # pyright: ignore [reportIncompatibleVariableOverride] class Level(rmf_building_map_msgs.Level): - images: list[AffineImage] + images: list[AffineImage] # pyright: ignore [reportIncompatibleVariableOverride] class BuildingMap(rmf_building_map_msgs.BuildingMap): - levels: list[Level] + levels: list[Level] # pyright: ignore [reportIncompatibleVariableOverride] @staticmethod def from_tortoise(tortoise: ttm.BuildingMap) -> "BuildingMap": - return BuildingMap(**tortoise.data) + return BuildingMap(**dict(tortoise.data)) async def save(self) -> None: existing_maps = await ttm.BuildingMap.all() for m in existing_maps: if m.id_ != self.name: await m.delete() - await ttm.BuildingMap.update_or_create({"data": self.dict()}, id_=self.name) + await ttm.BuildingMap.update_or_create( + {"data": self.model_dump()}, id_=self.name + ) diff --git a/packages/api-server/api_server/models/dispensers.py b/packages/api-server/api_server/models/dispensers.py index 9f7f00d26..b6a916553 100644 --- a/packages/api-server/api_server/models/dispensers.py +++ b/packages/api-server/api_server/models/dispensers.py @@ -25,4 +25,6 @@ def from_tortoise(tortoise: ttm.DispenserState) -> "DispenserState": return DispenserState(**tortoise.data) async def save(self) -> None: - await ttm.DispenserState.update_or_create({"data": self.dict()}, id_=self.guid) + await ttm.DispenserState.update_or_create( + {"data": self.model_dump()}, id_=self.guid + ) diff --git a/packages/api-server/api_server/models/doors.py b/packages/api-server/api_server/models/doors.py index 9b475e394..0f50a83f0 100644 --- a/packages/api-server/api_server/models/doors.py +++ b/packages/api-server/api_server/models/doors.py @@ -24,7 +24,9 @@ def from_tortoise(tortoise: ttm.DoorState) -> "DoorState": return DoorState(**tortoise.data) async def save(self) -> None: - await ttm.DoorState.update_or_create({"data": self.dict()}, id_=self.door_name) + await ttm.DoorState.update_or_create( + {"data": self.model_dump()}, id_=self.door_name + ) class DoorRequest(BaseModel): diff --git a/packages/api-server/api_server/models/ingestors.py b/packages/api-server/api_server/models/ingestors.py index cdd5e4c9a..3ae6cf836 100644 --- a/packages/api-server/api_server/models/ingestors.py +++ b/packages/api-server/api_server/models/ingestors.py @@ -25,4 +25,6 @@ def from_tortoise(tortoise: ttm.IngestorState) -> "IngestorState": return IngestorState(**tortoise.data) async def save(self) -> None: - await ttm.IngestorState.update_or_create({"data": self.dict()}, id_=self.guid) + await ttm.IngestorState.update_or_create( + {"data": self.model_dump()}, id_=self.guid + ) diff --git a/packages/api-server/api_server/models/lifts.py b/packages/api-server/api_server/models/lifts.py index ea6d8651c..ff9492bb5 100644 --- a/packages/api-server/api_server/models/lifts.py +++ b/packages/api-server/api_server/models/lifts.py @@ -18,14 +18,16 @@ async def from_tortoise_orm(cls, obj: ttm.LiftHealth) -> "LiftHealth": class LiftState(rmf_lift_msgs.LiftState): - available_modes: list[int] + available_modes: list[int] # pyright: ignore [reportIncompatibleVariableOverride] @staticmethod def from_tortoise(tortoise: ttm.LiftState) -> "LiftState": return LiftState(**tortoise.data) async def save(self) -> None: - await ttm.LiftState.update_or_create({"data": self.dict()}, id_=self.lift_name) + await ttm.LiftState.update_or_create( + {"data": self.model_dump()}, id_=self.lift_name + ) class LiftRequest(BaseModel): diff --git a/packages/api-server/api_server/models/rmf_api/activity_discovery_response.py b/packages/api-server/api_server/models/rmf_api/activity_discovery_response.py index 8ee2bb8ef..d56e18782 100644 --- a/packages/api-server/api_server/models/rmf_api/activity_discovery_response.py +++ b/packages/api-server/api_server/models/rmf_api/activity_discovery_response.py @@ -15,7 +15,7 @@ class Activity(BaseModel): ) detail: str = Field(..., description="Details about the behavior of the activity.") description_schema: Optional[Dict[str, Any]] = Field( - None, description="The schema for this activity description" + default=None, description="The schema for this activity description" ) diff --git a/packages/api-server/api_server/models/rmf_api/cancel_task_request.py b/packages/api-server/api_server/models/rmf_api/cancel_task_request.py index 389d5914c..289f6faaa 100644 --- a/packages/api-server/api_server/models/rmf_api/cancel_task_request.py +++ b/packages/api-server/api_server/models/rmf_api/cancel_task_request.py @@ -15,5 +15,5 @@ class CancelTaskRequest(BaseModel): ) task_id: str = Field(..., description="Specify the task ID to cancel") labels: Optional[List[str]] = Field( - None, description="Labels to describe the purpose of the cancellation" + default=None, description="Labels to describe the purpose of the cancellation" ) diff --git a/packages/api-server/api_server/models/rmf_api/cancel_task_response.py b/packages/api-server/api_server/models/rmf_api/cancel_task_response.py index bf47ad7e2..5caa58ba8 100644 --- a/packages/api-server/api_server/models/rmf_api/cancel_task_response.py +++ b/packages/api-server/api_server/models/rmf_api/cancel_task_response.py @@ -3,13 +3,13 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import simple_response -class TaskCancelResponse(BaseModel): - __root__: simple_response.SimpleResponse = Field( +class TaskCancelResponse(RootModel[simple_response.SimpleResponse]): + root: simple_response.SimpleResponse = Field( ..., description="Response to a request to cancel a task", title="Task Cancel Response", diff --git a/packages/api-server/api_server/models/rmf_api/dispatch_task_response.py b/packages/api-server/api_server/models/rmf_api/dispatch_task_response.py index a9bd493cc..d7180ffe2 100644 --- a/packages/api-server/api_server/models/rmf_api/dispatch_task_response.py +++ b/packages/api-server/api_server/models/rmf_api/dispatch_task_response.py @@ -5,26 +5,28 @@ from typing import List, Optional, Union -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, RootModel from typing_extensions import Literal from . import error, task_state -class TaskDispatchResponseItem1(BaseModel): +class TaskDispatchResponse2(BaseModel): success: Optional[Literal[False]] = None errors: Optional[List[error.Error]] = Field( - None, description="Any error messages explaining why the request failed" + default=None, description="Any error messages explaining why the request failed" ) -class TaskDispatchResponseItem(BaseModel): +class TaskDispatchResponse1(BaseModel): success: Literal[True] state: task_state.TaskState -class TaskDispatchResponse(BaseModel): - __root__: Union[TaskDispatchResponseItem, TaskDispatchResponseItem1] = Field( +class TaskDispatchResponse( + RootModel[Union[TaskDispatchResponse1, TaskDispatchResponse2]] +): + root: Union[TaskDispatchResponse1, TaskDispatchResponse2] = Field( ..., description="Response to a task dispatch request", title="Task Dispatch Response", diff --git a/packages/api-server/api_server/models/rmf_api/error.py b/packages/api-server/api_server/models/rmf_api/error.py index 158fc946d..83efd4326 100644 --- a/packages/api-server/api_server/models/rmf_api/error.py +++ b/packages/api-server/api_server/models/rmf_api/error.py @@ -10,7 +10,10 @@ class Error(BaseModel): code: Optional[conint(ge=0)] = Field( - None, description="A standard code for the kind of error that has occurred" + default=None, + description="A standard code for the kind of error that has occurred", ) - category: Optional[str] = Field(None, description="The category of the error") - detail: Optional[str] = Field(None, description="Details about the error") + category: Optional[str] = Field( + default=None, description="The category of the error" + ) + detail: Optional[str] = Field(default=None, description="Details about the error") diff --git a/packages/api-server/api_server/models/rmf_api/fleet_log.py b/packages/api-server/api_server/models/rmf_api/fleet_log.py index 42c9a3aac..9bf95780e 100644 --- a/packages/api-server/api_server/models/rmf_api/fleet_log.py +++ b/packages/api-server/api_server/models/rmf_api/fleet_log.py @@ -10,12 +10,12 @@ from . import log_entry -class FleetState(BaseModel): +class FleetLog(BaseModel): name: Optional[str] = None log: Optional[List[log_entry.LogEntry]] = Field( - None, description="Log for the overall fleet" + default=None, description="Log for the overall fleet" ) robots: Optional[Dict[str, List[log_entry.LogEntry]]] = Field( - None, + default=None, description="Dictionary of logs for the individual robots. The keys (property names) are the robot names.", ) diff --git a/packages/api-server/api_server/models/rmf_api/fleet_log_response.py b/packages/api-server/api_server/models/rmf_api/fleet_log_response.py index 874c9fb52..b98e795df 100644 --- a/packages/api-server/api_server/models/rmf_api/fleet_log_response.py +++ b/packages/api-server/api_server/models/rmf_api/fleet_log_response.py @@ -3,35 +3,35 @@ from __future__ import annotations -from enum import Enum from typing import List, Union -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, RootModel +from typing_extensions import Literal from . import error, fleet_log -class Failure(Enum): - boolean_False = False +class Success(RootModel[Literal[True]]): + root: Literal[True] = Field(..., description="The request was successful") -class Success(Enum): - boolean_True = True +class Failure(RootModel[Literal[False]]): + root: Literal[False] = Field(..., description="The request failed") -class FleetLogResponseItem(BaseModel): +class FleetLogResponse1(BaseModel): success: Success - data: fleet_log.FleetState + data: fleet_log.FleetLog -class FleetLogResponseItem1(BaseModel): +class FleetLogResponse2(BaseModel): success: Failure errors: List[error.Error] = Field( ..., description="Any error messages explaining why the request failed" ) -class FleetLogResponse(BaseModel): - __root__: Union[FleetLogResponseItem, FleetLogResponseItem1] = Field( +class FleetLogResponse(RootModel[Union[FleetLogResponse1, FleetLogResponse2]]): + root: Union[FleetLogResponse1, FleetLogResponse2] = Field( ..., description="Responding to a fleet log request", title="Fleet Log Response" ) diff --git a/packages/api-server/api_server/models/rmf_api/fleet_log_update.py b/packages/api-server/api_server/models/rmf_api/fleet_log_update.py index 06a691004..f250bfc2a 100644 --- a/packages/api-server/api_server/models/rmf_api/fleet_log_update.py +++ b/packages/api-server/api_server/models/rmf_api/fleet_log_update.py @@ -13,4 +13,4 @@ class TaskEventLogUpdate(BaseModel): type: Literal["fleet_log_update"] = Field( ..., description="Indicate that this is a fleet log update" ) - data: fleet_log.FleetState + data: fleet_log.FleetLog diff --git a/packages/api-server/api_server/models/rmf_api/fleet_state.py b/packages/api-server/api_server/models/rmf_api/fleet_state.py index 569919567..7a83b2171 100644 --- a/packages/api-server/api_server/models/rmf_api/fleet_state.py +++ b/packages/api-server/api_server/models/rmf_api/fleet_state.py @@ -13,6 +13,6 @@ class FleetState(BaseModel): name: Optional[str] = None robots: Optional[Dict[str, robot_state.RobotState]] = Field( - None, + default=None, description="A dictionary of the states of the robots that belong to this fleet", ) diff --git a/packages/api-server/api_server/models/rmf_api/interrupt_task_request.py b/packages/api-server/api_server/models/rmf_api/interrupt_task_request.py index c816602c2..d58d1420c 100644 --- a/packages/api-server/api_server/models/rmf_api/interrupt_task_request.py +++ b/packages/api-server/api_server/models/rmf_api/interrupt_task_request.py @@ -15,5 +15,5 @@ class TaskInterruptionRequest(BaseModel): ) task_id: str = Field(..., description="Specify the task ID to interrupt") labels: Optional[List[str]] = Field( - None, description="Labels to describe the purpose of the interruption" + default=None, description="Labels to describe the purpose of the interruption" ) diff --git a/packages/api-server/api_server/models/rmf_api/interrupt_task_response.py b/packages/api-server/api_server/models/rmf_api/interrupt_task_response.py index bbb828790..5cb90fff2 100644 --- a/packages/api-server/api_server/models/rmf_api/interrupt_task_response.py +++ b/packages/api-server/api_server/models/rmf_api/interrupt_task_response.py @@ -3,13 +3,13 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import token_response -class TaskInterruptionResponse(BaseModel): - __root__: token_response.TokenResponse = Field( +class TaskInterruptionResponse(RootModel[token_response.TokenResponse]): + root: token_response.TokenResponse = Field( ..., description="Response to a request for a task to be interrupted", title="Task Interruption Response", diff --git a/packages/api-server/api_server/models/rmf_api/kill_task_request.py b/packages/api-server/api_server/models/rmf_api/kill_task_request.py index 12d11af5b..9f3d9f2a7 100644 --- a/packages/api-server/api_server/models/rmf_api/kill_task_request.py +++ b/packages/api-server/api_server/models/rmf_api/kill_task_request.py @@ -15,5 +15,5 @@ class TaskKillRequest(BaseModel): ) task_id: str = Field(..., description="Specify the task ID to kill") labels: Optional[List[str]] = Field( - None, description="Labels to describe the purpose of the kill" + default=None, description="Labels to describe the purpose of the kill" ) diff --git a/packages/api-server/api_server/models/rmf_api/kill_task_response.py b/packages/api-server/api_server/models/rmf_api/kill_task_response.py index 7ca7b6ffb..8f08ff408 100644 --- a/packages/api-server/api_server/models/rmf_api/kill_task_response.py +++ b/packages/api-server/api_server/models/rmf_api/kill_task_response.py @@ -3,13 +3,13 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import simple_response -class TaskKillResponse(BaseModel): - __root__: simple_response.SimpleResponse = Field( +class TaskKillResponse(RootModel[simple_response.SimpleResponse]): + root: simple_response.SimpleResponse = Field( ..., description="Response to a request to kill a task", title="Task Kill Response", diff --git a/packages/api-server/api_server/models/rmf_api/resume_task_request.py b/packages/api-server/api_server/models/rmf_api/resume_task_request.py index ad4f354e8..33dd15186 100644 --- a/packages/api-server/api_server/models/rmf_api/resume_task_request.py +++ b/packages/api-server/api_server/models/rmf_api/resume_task_request.py @@ -11,14 +11,16 @@ class TaskResumeRequest(BaseModel): type: Optional[Literal["resume_task_request"]] = Field( - None, description="Indicate that this is a task resuming request" + default=None, description="Indicate that this is a task resuming request" + ) + for_task: Optional[str] = Field( + default=None, description="Specify task ID to resume." ) - for_task: Optional[str] = Field(None, description="Specify task ID to resume.") for_tokens: Optional[List[str]] = Field( - None, + default=None, description="A list of tokens of interruption requests which should be resumed. The interruption request associated with each token will be discarded.", - min_items=1, + min_length=1, ) labels: Optional[List[str]] = Field( - None, description="Labels describing this request" + default=None, description="Labels describing this request" ) diff --git a/packages/api-server/api_server/models/rmf_api/resume_task_response.py b/packages/api-server/api_server/models/rmf_api/resume_task_response.py index 0f26f80f1..ad6e53c1b 100644 --- a/packages/api-server/api_server/models/rmf_api/resume_task_response.py +++ b/packages/api-server/api_server/models/rmf_api/resume_task_response.py @@ -3,13 +3,13 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import simple_response -class TaskResumeResponse(BaseModel): - __root__: simple_response.SimpleResponse = Field( +class TaskResumeResponse(RootModel[simple_response.SimpleResponse]): + root: simple_response.SimpleResponse = Field( ..., description="Response to a request to resume a task", title="Task Resume Response", diff --git a/packages/api-server/api_server/models/rmf_api/rewind_task_response.py b/packages/api-server/api_server/models/rmf_api/rewind_task_response.py index 18781fee4..51ed2364b 100644 --- a/packages/api-server/api_server/models/rmf_api/rewind_task_response.py +++ b/packages/api-server/api_server/models/rmf_api/rewind_task_response.py @@ -3,13 +3,13 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import simple_response -class TaskRewindResponse(BaseModel): - __root__: simple_response.SimpleResponse = Field( +class TaskRewindResponse(RootModel[simple_response.SimpleResponse]): + root: simple_response.SimpleResponse = Field( ..., description="Response to a request to rewind a task", title="Task Rewind Response", diff --git a/packages/api-server/api_server/models/rmf_api/robot_state.py b/packages/api-server/api_server/models/rmf_api/robot_state.py index b16fff479..297968ba7 100644 --- a/packages/api-server/api_server/models/rmf_api/robot_state.py +++ b/packages/api-server/api_server/models/rmf_api/robot_state.py @@ -11,7 +11,7 @@ from . import location_2D -class Status2(Enum): +class Status(Enum): uninitialized = "uninitialized" offline = "offline" shutdown = "shutdown" @@ -22,28 +22,30 @@ class Status2(Enum): class Issue(BaseModel): - category: Optional[str] = Field(None, description="Category of the robot's issue") + category: Optional[str] = Field( + default=None, description="Category of the robot's issue" + ) detail: Optional[Union[Dict[str, Any], List, str]] = Field( - None, description="Detailed information about the issue" + default=None, description="Detailed information about the issue" ) class RobotState(BaseModel): name: Optional[str] = None - status: Optional[Status2] = Field( - None, description="A simple token representing the status of the robot" + status: Optional[Status] = Field( + default=None, description="A simple token representing the status of the robot" ) task_id: Optional[str] = Field( - None, + default=None, description="The ID of the task this robot is currently working on. Empty string if the robot is not working on a task.", ) unix_millis_time: Optional[int] = None location: Optional[location_2D.Location2D] = None battery: Optional[confloat(ge=0.0, le=1.0)] = Field( - None, + default=None, description="State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)", ) issues: Optional[List[Issue]] = Field( - None, + default=None, description="A list of issues with the robot that operators need to address", ) diff --git a/packages/api-server/api_server/models/rmf_api/robot_task_response.py b/packages/api-server/api_server/models/rmf_api/robot_task_response.py index b4092e8f4..44de301b9 100644 --- a/packages/api-server/api_server/models/rmf_api/robot_task_response.py +++ b/packages/api-server/api_server/models/rmf_api/robot_task_response.py @@ -3,12 +3,12 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import dispatch_task_response -class RobotTaskResponse(BaseModel): - __root__: dispatch_task_response.TaskDispatchResponse = Field( +class RobotTaskResponse(RootModel[dispatch_task_response.TaskDispatchResponse]): + root: dispatch_task_response.TaskDispatchResponse = Field( ..., description="Response to a robot task request", title="Robot Task Response" ) diff --git a/packages/api-server/api_server/models/rmf_api/rtls_tag_state.py b/packages/api-server/api_server/models/rmf_api/rtls_tag_state.py new file mode 100644 index 000000000..416c65263 --- /dev/null +++ b/packages/api-server/api_server/models/rmf_api/rtls_tag_state.py @@ -0,0 +1,65 @@ +# generated by datamodel-codegen: +# filename: rtls_tag_state.json + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field, confloat + +from . import location_2D + + +class Status(Enum): + uninitialized = "uninitialized" + offline = "offline" + shutdown = "shutdown" + idle = "idle" + charging = "charging" + working = "working" + error = "error" + + +class LocationType(Enum): + zone = "zone" + coord = "coord" + + +class AssetType(BaseModel): + asset_type: Optional[str] = Field(default=None, description="type of the asset") + asset_subtype: Optional[str] = Field( + default=None, description="subtype of the asset" + ) + + +class Issue(BaseModel): + category: Optional[str] = Field( + default=None, description="Category of the tag's issue" + ) + detail: Optional[Union[Dict[str, Any], List, str]] = Field( + default=None, description="Detailed information about the issue" + ) + + +class RtlsTagState(BaseModel): + tag_id: str = Field(..., description="The ID of the rtls tag.") + status: Optional[Status] = Field( + default=None, description="A simple token representing the status of the tag" + ) + location_type: Optional[LocationType] = Field( + default=None, description="The type location information provided by the tag." + ) + asset_type: Optional[AssetType] = Field( + default=None, description="The type of the tagged asset." + ) + unix_millis_time: Optional[int] = None + location: Optional[location_2D.Location2D] = None + battery: Optional[confloat(ge=0.0, le=1.0)] = Field( + default=None, + description="State of charge of the battery. Values range from 0.0 (depleted) to 1.0 (fully charged)", + ) + issues: Optional[List[Issue]] = Field( + default=None, + description="A list of issues with the tag that operators need to address", + ) diff --git a/packages/api-server/api_server/models/rmf_api/simple_response.py b/packages/api-server/api_server/models/rmf_api/simple_response.py index 3dd4fad20..cd8dd0126 100644 --- a/packages/api-server/api_server/models/rmf_api/simple_response.py +++ b/packages/api-server/api_server/models/rmf_api/simple_response.py @@ -3,35 +3,35 @@ from __future__ import annotations -from enum import Enum from typing import List, Union -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, RootModel +from typing_extensions import Literal from . import error -class Failure(Enum): - boolean_False = False +class Success(RootModel[Literal[True]]): + root: Literal[True] = Field(..., description="The request was successful") -class Success(Enum): - boolean_True = True +class Failure(RootModel[Literal[False]]): + root: Literal[False] = Field(..., description="The request failed") -class SimpleResponseItem(BaseModel): +class SimpleResponse1(BaseModel): success: Success -class SimpleResponseItem1(BaseModel): +class SimpleResponse2(BaseModel): success: Failure errors: List[error.Error] = Field( ..., description="If the request failed, these error messages will explain why" ) -class SimpleResponse(BaseModel): - __root__: Union[SimpleResponseItem, SimpleResponseItem1] = Field( +class SimpleResponse(RootModel[Union[SimpleResponse1, SimpleResponse2]]): + root: Union[SimpleResponse1, SimpleResponse2] = Field( ..., description="Template for defining a response message that only indicates success and describes any errors", title="Simple Response", diff --git a/packages/api-server/api_server/models/rmf_api/skip_phase_request.py b/packages/api-server/api_server/models/rmf_api/skip_phase_request.py index 9ffea2021..e5e27890a 100644 --- a/packages/api-server/api_server/models/rmf_api/skip_phase_request.py +++ b/packages/api-server/api_server/models/rmf_api/skip_phase_request.py @@ -20,5 +20,5 @@ class TaskPhaseSkipRequest(BaseModel): ..., description="Specify the phase that should be skipped" ) labels: Optional[List[str]] = Field( - None, description="Labels to describe the purpose of the skip" + default=None, description="Labels to describe the purpose of the skip" ) diff --git a/packages/api-server/api_server/models/rmf_api/skip_phase_response.py b/packages/api-server/api_server/models/rmf_api/skip_phase_response.py index 054a0fe02..43f10c422 100644 --- a/packages/api-server/api_server/models/rmf_api/skip_phase_response.py +++ b/packages/api-server/api_server/models/rmf_api/skip_phase_response.py @@ -3,13 +3,13 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import token_response -class SkipPhaseResponse(BaseModel): - __root__: token_response.TokenResponse = Field( +class SkipPhaseResponse(RootModel[token_response.TokenResponse]): + root: token_response.TokenResponse = Field( ..., description="Response to a request for a phase to be skipped", title="Skip Phase Response", diff --git a/packages/api-server/api_server/models/rmf_api/task_discovery_response.py b/packages/api-server/api_server/models/rmf_api/task_discovery_response.py index 961e73994..988f12f19 100644 --- a/packages/api-server/api_server/models/rmf_api/task_discovery_response.py +++ b/packages/api-server/api_server/models/rmf_api/task_discovery_response.py @@ -16,16 +16,16 @@ class Task(BaseModel): ) detail: str = Field(..., description="Details about the behavior of the task.") description_schema: Optional[Dict[str, Any]] = Field( - None, description="The schema for this task description" + default=None, description="The schema for this task description" ) class Data(BaseModel): fleet_name: Optional[str] = Field( - None, description="Name of the fleet that supports these tasks" + default=None, description="Name of the fleet that supports these tasks" ) tasks: Optional[List[Task]] = Field( - None, description="(list:replace) List of tasks that the fleet supports" + default=None, description="(list:replace) List of tasks that the fleet supports" ) diff --git a/packages/api-server/api_server/models/rmf_api/task_log.py b/packages/api-server/api_server/models/rmf_api/task_log.py index 9ff047d53..5f53c030a 100644 --- a/packages/api-server/api_server/models/rmf_api/task_log.py +++ b/packages/api-server/api_server/models/rmf_api/task_log.py @@ -5,33 +5,33 @@ from typing import Dict, List, Optional -from pydantic import BaseModel, Extra, Field +from pydantic import BaseModel, ConfigDict, Field from . import log_entry class Phases(BaseModel): - class Config: - extra = Extra.forbid - + model_config = ConfigDict( + extra="forbid", + ) log: Optional[List[log_entry.LogEntry]] = Field( - None, description="Log entries related to the overall phase" + default=None, description="Log entries related to the overall phase" ) events: Optional[Dict[str, List[log_entry.LogEntry]]] = Field( - None, + default=None, description="A dictionary whose keys (property names) are the indices of an event in the phase", ) class TaskEventLog(BaseModel): - class Config: - extra = Extra.forbid - + model_config = ConfigDict( + extra="forbid", + ) task_id: str log: Optional[List[log_entry.LogEntry]] = Field( - None, description="Log entries related to the overall task" + default=None, description="Log entries related to the overall task" ) phases: Optional[Dict[str, Phases]] = Field( - None, + default=None, description="A dictionary whose keys (property names) are the indices of a phase", ) diff --git a/packages/api-server/api_server/models/rmf_api/task_log_response.py b/packages/api-server/api_server/models/rmf_api/task_log_response.py index 37cc2c5d3..ba6eef6f1 100644 --- a/packages/api-server/api_server/models/rmf_api/task_log_response.py +++ b/packages/api-server/api_server/models/rmf_api/task_log_response.py @@ -3,35 +3,35 @@ from __future__ import annotations -from enum import Enum from typing import List, Union -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, RootModel +from typing_extensions import Literal from . import error, task_log -class Failure(Enum): - boolean_False = False +class Success(RootModel[Literal[True]]): + root: Literal[True] = Field(..., description="The request was successful") -class Success(Enum): - boolean_True = True +class Failure(RootModel[Literal[False]]): + root: Literal[False] = Field(..., description="The request failed") -class TaskLogResponseItem(BaseModel): +class TaskLogResponse1(BaseModel): success: Success data: task_log.TaskEventLog -class TaskLogResponseItem1(BaseModel): +class TaskLogResponse2(BaseModel): success: Failure errors: List[error.Error] = Field( ..., description="Any error messages explaining why the request failed" ) -class TaskLogResponse(BaseModel): - __root__: Union[TaskLogResponseItem, TaskLogResponseItem1] = Field( +class TaskLogResponse(RootModel[Union[TaskLogResponse1, TaskLogResponse2]]): + root: Union[TaskLogResponse1, TaskLogResponse2] = Field( ..., description="Responding to a task log request", title="Task Log Response" ) diff --git a/packages/api-server/api_server/models/rmf_api/task_request.py b/packages/api-server/api_server/models/rmf_api/task_request.py index 14456a2fc..f51e98098 100644 --- a/packages/api-server/api_server/models/rmf_api/task_request.py +++ b/packages/api-server/api_server/models/rmf_api/task_request.py @@ -10,13 +10,14 @@ class TaskRequest(BaseModel): unix_millis_earliest_start_time: Optional[int] = Field( - None, description="(Optional) The earliest time that this task may start" + default=None, + description="(Optional) The earliest time that this task may start", ) unix_millis_request_time: Optional[int] = Field( - None, description="(Optional) The time that this request was initiated" + default=None, description="(Optional) The time that this request was initiated" ) priority: Optional[Dict[str, Any]] = Field( - None, + default=None, description="(Optional) The priority of this task. This must match a priority schema supported by a fleet.", ) category: str @@ -25,9 +26,14 @@ class TaskRequest(BaseModel): description="A description of the task. This must match a schema supported by a fleet for the category of this task request.", ) labels: Optional[List[str]] = Field( - None, description="Labels to describe the purpose of the task dispatch request" + default=None, + description="Labels to describe the purpose of the task dispatch request", ) requester: Optional[str] = Field( - None, + default=None, description="(Optional) An identifier for the entity that requested this task", ) + fleet_name: Optional[str] = Field( + default=None, + description="(Optional) The name of the fleet that should perform this task. If specified, other fleets will not bid for this task.", + ) diff --git a/packages/api-server/api_server/models/rmf_api/task_state.py b/packages/api-server/api_server/models/rmf_api/task_state.py index 997fe1ed2..5f6726076 100644 --- a/packages/api-server/api_server/models/rmf_api/task_state.py +++ b/packages/api-server/api_server/models/rmf_api/task_state.py @@ -6,7 +6,7 @@ from enum import Enum from typing import Any, Dict, List, Optional, Union -from pydantic import BaseModel, Field, conint +from pydantic import BaseModel, Field, RootModel, conint from . import error @@ -35,28 +35,54 @@ class Booking(BaseModel): unix_millis_earliest_start_time: Optional[int] = None unix_millis_request_time: Optional[int] = None priority: Optional[Union[Dict[str, Any], str]] = Field( - None, description="Priority information about this task" + default=None, description="Priority information about this task" ) labels: Optional[List[str]] = Field( - None, description="Information about how and why this task was booked" + default=None, description="Information about how and why this task was booked" ) requester: Optional[str] = Field( - None, + default=None, description="(Optional) An identifier for the entity that requested this task", ) -class Category(BaseModel): - __root__: str = Field(..., description="The category of this task or phase") +class Id(RootModel[conint(ge=0)]): + root: conint(ge=0) -class Detail(BaseModel): - __root__: Union[Dict[str, Any], List, str] = Field( +class Category(RootModel[str]): + root: str = Field(..., description="The category of this task or phase") + + +class Detail(RootModel[Union[Dict[str, Any], List, str]]): + root: Union[Dict[str, Any], List, str] = Field( ..., description="Detailed information about a task, phase, or event" ) -class Status1(Enum): +class EstimateMillis(RootModel[conint(ge=0)]): + root: conint(ge=0) = Field( + ..., + description="An estimate, in milliseconds, of how long the subject will take to complete", + ) + + +class Status(Enum): + uninitialized = "uninitialized" + blocked = "blocked" + error = "error" + failed = "failed" + queued = "queued" + standby = "standby" + underway = "underway" + delayed = "delayed" + skipped = "skipped" + canceled = "canceled" + killed = "killed" + completed = "completed" + + +class Status2(Enum): queued = "queued" selected = "selected" dispatched = "dispatched" @@ -70,25 +96,14 @@ class Assignment(BaseModel): class Dispatch(BaseModel): - status: Status1 + status: Status2 assignment: Optional[Assignment] = None errors: Optional[List[error.Error]] = None -class EstimateMillis(BaseModel): - __root__: conint(ge=0) = Field( - ..., - description="An estimate, in milliseconds, of how long the subject will take to complete", - ) - - -class Id(BaseModel): - __root__: conint(ge=0) - - class ResumedBy(BaseModel): unix_millis_request_time: Optional[int] = Field( - None, description="The time that the resume request arrived" + default=None, description="The time that the resume request arrived" ) labels: List[str] = Field(..., description="Labels to describe the resume request") @@ -101,39 +116,11 @@ class Interruption(BaseModel): ..., description="Labels to describe the purpose of the interruption" ) resumed_by: Optional[ResumedBy] = Field( - None, + default=None, description="Information about the resume request that ended this interruption. This field will be missing if the interruption is still active.", ) -class Status(Enum): - uninitialized = "uninitialized" - blocked = "blocked" - error = "error" - failed = "failed" - queued = "queued" - standby = "standby" - underway = "underway" - delayed = "delayed" - skipped = "skipped" - canceled = "canceled" - killed = "killed" - completed = "completed" - - -class EventState(BaseModel): - id: Id - status: Optional[Status] = None - name: Optional[str] = Field(None, description="The brief name of the event") - detail: Optional[Detail] = Field( - None, description="Detailed information about the event" - ) - deps: Optional[List[conint(ge=0)]] = Field( - None, - description="This event may depend on other events. This array contains the IDs of those other event dependencies.", - ) - - class Undo(BaseModel): unix_millis_request_time: int = Field( ..., description="The time that the undo skip request arrived" @@ -151,11 +138,24 @@ class SkipPhaseRequest(BaseModel): ..., description="Labels to describe the purpose of the skip request" ) undo: Optional[Undo] = Field( - None, + default=None, description="Information about an undo skip request that applied to this request", ) +class EventState(BaseModel): + id: Id + status: Optional[Status] = None + name: Optional[str] = Field(default=None, description="The brief name of the event") + detail: Optional[Detail] = Field( + default=None, description="Detailed information about the event" + ) + deps: Optional[List[conint(ge=0)]] = Field( + default=None, + description="This event may depend on other events. This array contains the IDs of those other event dependencies.", + ) + + class Phase(BaseModel): id: Id category: Optional[Category] = None @@ -166,11 +166,12 @@ class Phase(BaseModel): estimate_millis: Optional[EstimateMillis] = None final_event_id: Optional[Id] = None events: Optional[Dict[str, EventState]] = Field( - None, + default=None, description="A dictionary of events for this phase. The keys (property names) are the event IDs, which are integers.", ) skip_requests: Optional[Dict[str, SkipPhaseRequest]] = Field( - None, description="Information about any skip requests that have been received" + default=None, + description="Information about any skip requests that have been received", ) @@ -183,32 +184,32 @@ class TaskState(BaseModel): original_estimate_millis: Optional[EstimateMillis] = None estimate_millis: Optional[EstimateMillis] = None assigned_to: Optional[AssignedTo] = Field( - None, description="Which agent (robot) is the task assigned to" + default=None, description="Which agent (robot) is the task assigned to" ) status: Optional[Status] = None dispatch: Optional[Dispatch] = None phases: Optional[Dict[str, Phase]] = Field( - None, + default=None, description="A dictionary of the states of the phases of the task. The keys (property names) are phase IDs, which are integers.", ) completed: Optional[List[Id]] = Field( - None, description="An array of the IDs of completed phases of this task" + default=None, description="An array of the IDs of completed phases of this task" ) active: Optional[Id] = Field( - None, description="The ID of the active phase for this task" + default=None, description="The ID of the active phase for this task" ) pending: Optional[List[Id]] = Field( - None, description="An array of the pending phases of this task" + default=None, description="An array of the pending phases of this task" ) interruptions: Optional[Dict[str, Interruption]] = Field( - None, + default=None, description="A dictionary of interruptions that have been applied to this task. The keys (property names) are the unique token of the interruption request.", ) cancellation: Optional[Cancellation] = Field( - None, + default=None, description="If the task was cancelled, this will describe information about the request.", ) killed: Optional[Killed] = Field( - None, + default=None, description="If the task was killed, this will describe information about the request.", ) diff --git a/packages/api-server/api_server/models/rmf_api/token_response.py b/packages/api-server/api_server/models/rmf_api/token_response.py index 569e70e1e..dc2a0b843 100644 --- a/packages/api-server/api_server/models/rmf_api/token_response.py +++ b/packages/api-server/api_server/models/rmf_api/token_response.py @@ -3,23 +3,23 @@ from __future__ import annotations -from enum import Enum from typing import List, Union -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, RootModel +from typing_extensions import Literal from . import error -class Failure(Enum): - boolean_False = False +class Success(RootModel[Literal[True]]): + root: Literal[True] = Field(..., description="The request was successful") -class Success(Enum): - boolean_True = True +class Failure(RootModel[Literal[False]]): + root: Literal[False] = Field(..., description="The request failed") -class TokenResponseItem(BaseModel): +class TokenResponse1(BaseModel): success: Success token: str = Field( ..., @@ -27,15 +27,15 @@ class TokenResponseItem(BaseModel): ) -class TokenResponseItem1(BaseModel): +class TokenResponse2(BaseModel): success: Failure errors: List[error.Error] = Field( ..., description="Any error messages explaining why the request failed." ) -class TokenResponse(BaseModel): - __root__: Union[TokenResponseItem, TokenResponseItem1] = Field( +class TokenResponse(RootModel[Union[TokenResponse1, TokenResponse2]]): + root: Union[TokenResponse1, TokenResponse2] = Field( ..., description="Template for defining a response message that provides a token upon success or errors upon failure", title="Token Response", diff --git a/packages/api-server/api_server/models/rmf_api/transformation_2D.py b/packages/api-server/api_server/models/rmf_api/transformation_2D.py new file mode 100644 index 000000000..bc27d9715 --- /dev/null +++ b/packages/api-server/api_server/models/rmf_api/transformation_2D.py @@ -0,0 +1,15 @@ +# generated by datamodel-codegen: +# filename: transformation_2D.json + +from __future__ import annotations + +from pydantic import BaseModel + + +class Transformation2D(BaseModel): + target_map: str + ref_map: str + x: float + y: float + yaw: float + scale: float diff --git a/packages/api-server/api_server/models/rmf_api/undo_skip_phase_request.py b/packages/api-server/api_server/models/rmf_api/undo_skip_phase_request.py index ed070e834..d51408afa 100644 --- a/packages/api-server/api_server/models/rmf_api/undo_skip_phase_request.py +++ b/packages/api-server/api_server/models/rmf_api/undo_skip_phase_request.py @@ -11,14 +11,17 @@ class UndoPhaseSkipRequest(BaseModel): type: Optional[Literal["undo_phase_skip_request"]] = Field( - None, description="Indicate that this is a request to undo a phase skip request" + default=None, + description="Indicate that this is a request to undo a phase skip request", + ) + for_task: Optional[str] = Field( + default=None, description="Specify the relevant task ID" ) - for_task: Optional[str] = Field(None, description="Specify the relevant task ID") for_tokens: Optional[List[str]] = Field( - None, + default=None, description="A list of the tokens of skip requests which should be undone. The skips associated with each token will be discarded.", - min_items=1, + min_length=1, ) labels: Optional[List[str]] = Field( - None, description="Labels describing this request" + default=None, description="Labels describing this request" ) diff --git a/packages/api-server/api_server/models/rmf_api/undo_skip_phase_response.py b/packages/api-server/api_server/models/rmf_api/undo_skip_phase_response.py index 6d26e98be..5f97ed695 100644 --- a/packages/api-server/api_server/models/rmf_api/undo_skip_phase_response.py +++ b/packages/api-server/api_server/models/rmf_api/undo_skip_phase_response.py @@ -3,13 +3,13 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import simple_response -class UndoPhaseSkipResponse(BaseModel): - __root__: simple_response.SimpleResponse = Field( +class UndoPhaseSkipResponse(RootModel[simple_response.SimpleResponse]): + root: simple_response.SimpleResponse = Field( ..., description="Response to an undo phase skip request", title="Undo Phase Skip Response", diff --git a/packages/api-server/api_server/models/rmf_api/version.py b/packages/api-server/api_server/models/rmf_api/version.py index 79086fc9a..f17af7405 100644 --- a/packages/api-server/api_server/models/rmf_api/version.py +++ b/packages/api-server/api_server/models/rmf_api/version.py @@ -1,5 +1,5 @@ # THIS FILE IS GENERATED version = { - "rmf_api_msgs": "91295892192d24ec73c9a1c6fa54334963586784", - "datamodel-code-generator": "0.11.19", + "rmf_api_msgs": "a77c3a2d53f7f61aa379bf2ba64a41f98998c9f5", + "datamodel-code-generator": "0.25.4", } diff --git a/packages/api-server/api_server/models/rmf_ros2/Place.py b/packages/api-server/api_server/models/rmf_ros2/Place.py index 80782dc22..d38036770 100644 --- a/packages/api-server/api_server/models/rmf_ros2/Place.py +++ b/packages/api-server/api_server/models/rmf_ros2/Place.py @@ -5,20 +5,20 @@ from typing import Optional, Union -from pydantic import BaseModel, Field, conint +from pydantic import BaseModel, Field, RootModel, conint -class Waypoint(BaseModel): - __root__: Union[str, conint(ge=0)] +class Waypoint(RootModel[Union[str, conint(ge=0)]]): + root: Union[str, conint(ge=0)] -class PlaceDescriptionItem(BaseModel): +class PlaceDescription1(BaseModel): waypoint: Waypoint orientation: Optional[float] = None -class PlaceDescription(BaseModel): - __root__: Union[Waypoint, PlaceDescriptionItem] = Field( +class PlaceDescription(RootModel[Union[Waypoint, PlaceDescription1]]): + root: Union[Waypoint, PlaceDescription1] = Field( ..., description="Description of a place that the robot can go to", title="Place Description", diff --git a/packages/api-server/api_server/models/rmf_ros2/event_description_DropOff.py b/packages/api-server/api_server/models/rmf_ros2/event_description_DropOff.py index 1dc181acc..fc8ec79a0 100644 --- a/packages/api-server/api_server/models/rmf_ros2/event_description_DropOff.py +++ b/packages/api-server/api_server/models/rmf_ros2/event_description_DropOff.py @@ -3,12 +3,14 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import event_description_PayloadTransfer -class DropOffEventDescription(BaseModel): - __root__: event_description_PayloadTransfer.ItemTransferEventDescription = Field( +class DropOffEventDescription( + RootModel[event_description_PayloadTransfer.ItemTransferEventDescription] +): + root: event_description_PayloadTransfer.ItemTransferEventDescription = Field( ..., title="Drop Off Event Description" ) diff --git a/packages/api-server/api_server/models/rmf_ros2/event_description_GoToPlace.py b/packages/api-server/api_server/models/rmf_ros2/event_description_GoToPlace.py index f665133e7..156038c11 100644 --- a/packages/api-server/api_server/models/rmf_ros2/event_description_GoToPlace.py +++ b/packages/api-server/api_server/models/rmf_ros2/event_description_GoToPlace.py @@ -3,13 +3,13 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import Place -class GoToPlaceEventDescription(BaseModel): - __root__: Place.PlaceDescription = Field( +class GoToPlaceEventDescription(RootModel[Place.PlaceDescription]): + root: Place.PlaceDescription = Field( ..., description="Have a robot go to a place", title="Go To Place Event Description", diff --git a/packages/api-server/api_server/models/rmf_ros2/event_description_PickUp.py b/packages/api-server/api_server/models/rmf_ros2/event_description_PickUp.py index ef847021e..88d8a08cf 100644 --- a/packages/api-server/api_server/models/rmf_ros2/event_description_PickUp.py +++ b/packages/api-server/api_server/models/rmf_ros2/event_description_PickUp.py @@ -3,12 +3,14 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import event_description_PayloadTransfer -class PickUpEventDescription(BaseModel): - __root__: event_description_PayloadTransfer.ItemTransferEventDescription = Field( +class PickUpEventDescription( + RootModel[event_description_PayloadTransfer.ItemTransferEventDescription] +): + root: event_description_PayloadTransfer.ItemTransferEventDescription = Field( ..., title="Pick Up Event Description" ) diff --git a/packages/api-server/api_server/models/rmf_ros2/event_description_Sequence.py b/packages/api-server/api_server/models/rmf_ros2/event_description_Sequence.py index 9848be4dd..31b5d2761 100644 --- a/packages/api-server/api_server/models/rmf_ros2/event_description_Sequence.py +++ b/packages/api-server/api_server/models/rmf_ros2/event_description_Sequence.py @@ -5,32 +5,34 @@ from typing import Any, List, Optional, Union -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, RootModel class ActivityArrayItem(BaseModel): - category: Optional[str] = Field(None, description="The category of the activity") + category: Optional[str] = Field( + default=None, description="The category of the activity" + ) description: Optional[Any] = Field( - None, + default=None, description="A description of the activity. This must match a schema supported by a fleet for the activity category.", ) -class ActivityArray(BaseModel): - __root__: List[ActivityArrayItem] = Field(..., ge=1.0) +class ActivityArray(RootModel[List[ActivityArrayItem]]): + root: List[ActivityArrayItem] = Field(..., ge=1) -class ActivitySequenceItem(BaseModel): +class ActivitySequence1(BaseModel): activities: ActivityArray category: Optional[str] = Field( - None, description="Customize the category display for this sequence" + default=None, description="Customize the category display for this sequence" ) detail: Optional[Any] = Field( - None, description="Customize the detail display for this sequence" + default=None, description="Customize the detail display for this sequence" ) -class ActivitySequence(BaseModel): - __root__: Union[ActivityArray, ActivitySequenceItem] = Field( +class ActivitySequence(RootModel[Union[ActivityArray, ActivitySequence1]]): + root: Union[ActivityArray, ActivitySequence1] = Field( ..., description="A sequence of activities", title="Activity Sequence" ) diff --git a/packages/api-server/api_server/models/rmf_ros2/task_description_Clean.py b/packages/api-server/api_server/models/rmf_ros2/task_description_Clean.py index 5a8a38ff9..c0349bd35 100644 --- a/packages/api-server/api_server/models/rmf_ros2/task_description_Clean.py +++ b/packages/api-server/api_server/models/rmf_ros2/task_description_Clean.py @@ -3,12 +3,12 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import Field, RootModel from . import event_description_Clean -class CleanTask(BaseModel): - __root__: event_description_Clean.CleanEvent = Field( +class CleanTask(RootModel[event_description_Clean.CleanEvent]): + root: event_description_Clean.CleanEvent = Field( ..., description="Clean a zone", title="Clean Task" ) diff --git a/packages/api-server/api_server/models/rmf_ros2/task_description_Compose.py b/packages/api-server/api_server/models/rmf_ros2/task_description_Compose.py index d888d9f8b..dc64015ef 100644 --- a/packages/api-server/api_server/models/rmf_ros2/task_description_Compose.py +++ b/packages/api-server/api_server/models/rmf_ros2/task_description_Compose.py @@ -19,22 +19,22 @@ class Activity(BaseModel): class Phase(BaseModel): activity: Activity on_cancel: Optional[List[Activity]] = Field( - None, + default=None, description="A list of activities to perform if the task is canceled during this phase. Each activity is given its own phase which can be skipped but not canceled.", ) class ComposeTaskDescription(BaseModel): category: Optional[str] = Field( - None, + default=None, description="Specify the category for this composed task, as the operators should see it.", ) detail: Optional[str] = Field( - None, + default=None, description="Specify the detail for this composed task, as the operators should see it.", ) phases: List[Phase] = Field( ..., description="List the phases of the task in the order that they should be performed.", - ge=1.0, + ge=1, ) diff --git a/packages/api-server/api_server/models/rmf_ros2/task_description_Patrol.py b/packages/api-server/api_server/models/rmf_ros2/task_description_Patrol.py index a026a0a54..16f71f961 100644 --- a/packages/api-server/api_server/models/rmf_ros2/task_description_Patrol.py +++ b/packages/api-server/api_server/models/rmf_ros2/task_description_Patrol.py @@ -15,6 +15,6 @@ class PatrolTaskDescription(BaseModel): ..., description="A list of which places to patrol between" ) rounds: Optional[conint(ge=1)] = Field( - None, + default=None, description="How many times the patrol should be performed. By default this is 1.", ) diff --git a/packages/api-server/api_server/models/rmf_ros2/version.py b/packages/api-server/api_server/models/rmf_ros2/version.py index 63142b6e6..ea58193a0 100644 --- a/packages/api-server/api_server/models/rmf_ros2/version.py +++ b/packages/api-server/api_server/models/rmf_ros2/version.py @@ -1,5 +1,5 @@ # THIS FILE IS GENERATED version = { "rmf_ros2": "bf038461b5b0fb7d4594461a724bc9e5e7cb97c6", - "datamodel-code-generator": "0.11.19", + "datamodel-code-generator": "0.25.4", } diff --git a/packages/api-server/api_server/models/ros_pydantic/builtin_interfaces/Duration.py b/packages/api-server/api_server/models/ros_pydantic/builtin_interfaces/Duration.py index 55c5efe14..6ee553b3f 100644 --- a/packages/api-server/api_server/models/ros_pydantic/builtin_interfaces/Duration.py +++ b/packages/api-server/api_server/models/ros_pydantic/builtin_interfaces/Duration.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Duration(pydantic.BaseModel): - sec: pydantic.conint(ge=-2147483648, le=2147483647) = 0 # int32 - nanosec: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "sec", - "nanosec", - ], - } + sec: Annotated[int, pydantic.Field(ge=-2147483648, le=2147483647)] # int32 + nanosec: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 # # Duration defines a period between two time points. diff --git a/packages/api-server/api_server/models/ros_pydantic/builtin_interfaces/Time.py b/packages/api-server/api_server/models/ros_pydantic/builtin_interfaces/Time.py index b0cdb8506..6cc71d769 100644 --- a/packages/api-server/api_server/models/ros_pydantic/builtin_interfaces/Time.py +++ b/packages/api-server/api_server/models/ros_pydantic/builtin_interfaces/Time.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Time(pydantic.BaseModel): - sec: pydantic.conint(ge=-2147483648, le=2147483647) = 0 # int32 - nanosec: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "sec", - "nanosec", - ], - } + sec: Annotated[int, pydantic.Field(ge=-2147483648, le=2147483647)] # int32 + nanosec: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 # # This message communicates ROS Time defined here: diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/AffineImage.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/AffineImage.py index ecb1bf926..7517ce376 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/AffineImage.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/AffineImage.py @@ -1,32 +1,20 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class AffineImage(pydantic.BaseModel): - name: str = "" # string - x_offset: float = 0 # float32 - y_offset: float = 0 # float32 - yaw: float = 0 # float32 - scale: float = 0 # float32 - encoding: str = "" # string - data: bytes = bytes() # uint8 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "x_offset", - "y_offset", - "yaw", - "scale", - "encoding", - "data", - ], - } + name: str # string + x_offset: float # float32 + y_offset: float # float32 + yaw: float # float32 + scale: float # float32 + encoding: str # string + data: bytes # uint8 # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/BuildingMap.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/BuildingMap.py index e0a97b4e3..ae7998082 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/BuildingMap.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/BuildingMap.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,19 +9,11 @@ class BuildingMap(pydantic.BaseModel): - name: str = "" # string - levels: List[Level] = [] # rmf_building_map_msgs/Level - lifts: List[Lift] = [] # rmf_building_map_msgs/Lift - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "levels", - "lifts", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + name: str # string + levels: list[Level] # rmf_building_map_msgs/Level + lifts: list[Lift] # rmf_building_map_msgs/Lift # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Door.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Door.py index 7edd4ef7c..1c0f1dbcd 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Door.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Door.py @@ -1,34 +1,23 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Door(pydantic.BaseModel): - name: str = "" # string - v1_x: float = 0 # float32 - v1_y: float = 0 # float32 - v2_x: float = 0 # float32 - v2_y: float = 0 # float32 - door_type: pydantic.conint(ge=0, le=255) = 0 # uint8 - motion_range: float = 0 # float32 - motion_direction: pydantic.conint(ge=-2147483648, le=2147483647) = 0 # int32 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "v1_x", - "v1_y", - "v2_x", - "v2_y", - "door_type", - "motion_range", - "motion_direction", - ], - } + name: str # string + v1_x: float # float32 + v1_y: float # float32 + v2_x: float # float32 + v2_y: float # float32 + door_type: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 + motion_range: float # float32 + motion_direction: Annotated[ + int, pydantic.Field(ge=-2147483648, le=2147483647) + ] # int32 # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GetBuildingMap_Request.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GetBuildingMap_Request.py index c3089834e..cf7adca70 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GetBuildingMap_Request.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GetBuildingMap_Request.py @@ -1,15 +1,11 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class GetBuildingMap_Request(pydantic.BaseModel): - pass + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [], - } + pass diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GetBuildingMap_Response.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GetBuildingMap_Response.py index cea2faea2..ecdb3a529 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GetBuildingMap_Response.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GetBuildingMap_Response.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,15 +8,9 @@ class GetBuildingMap_Response(pydantic.BaseModel): - building_map: BuildingMap = BuildingMap() # rmf_building_map_msgs/BuildingMap - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "building_map", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + building_map: BuildingMap # rmf_building_map_msgs/BuildingMap # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Graph.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Graph.py index 4b25c281a..7381d112e 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Graph.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Graph.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -10,21 +10,12 @@ class Graph(pydantic.BaseModel): - name: str = "" # string - vertices: List[GraphNode] = [] # rmf_building_map_msgs/GraphNode - edges: List[GraphEdge] = [] # rmf_building_map_msgs/GraphEdge - params: List[Param] = [] # rmf_building_map_msgs/Param - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "vertices", - "edges", - "params", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + name: str # string + vertices: list[GraphNode] # rmf_building_map_msgs/GraphNode + edges: list[GraphEdge] # rmf_building_map_msgs/GraphEdge + params: list[Param] # rmf_building_map_msgs/Param # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GraphEdge.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GraphEdge.py index 0dd09b255..6bd85a249 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GraphEdge.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GraphEdge.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,21 +8,12 @@ class GraphEdge(pydantic.BaseModel): - v1_idx: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 - v2_idx: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 - params: List[Param] = [] # rmf_building_map_msgs/Param - edge_type: pydantic.conint(ge=0, le=255) = 0 # uint8 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "v1_idx", - "v2_idx", - "params", - "edge_type", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + v1_idx: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 + v2_idx: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 + params: list[Param] # rmf_building_map_msgs/Param + edge_type: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 # uint32 v1_idx diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GraphNode.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GraphNode.py index 43663b25e..647b6a774 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GraphNode.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/GraphNode.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,21 +8,12 @@ class GraphNode(pydantic.BaseModel): - x: float = 0 # float32 - y: float = 0 # float32 - name: str = "" # string - params: List[Param] = [] # rmf_building_map_msgs/Param - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "x", - "y", - "name", - "params", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + x: float # float32 + y: float # float32 + name: str # string + params: list[Param] # rmf_building_map_msgs/Param # float32 x diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Level.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Level.py index c287a54af..e21bf57cc 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Level.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Level.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -11,27 +11,15 @@ class Level(pydantic.BaseModel): - name: str = "" # string - elevation: float = 0 # float32 - images: List[AffineImage] = [] # rmf_building_map_msgs/AffineImage - places: List[Place] = [] # rmf_building_map_msgs/Place - doors: List[Door] = [] # rmf_building_map_msgs/Door - nav_graphs: List[Graph] = [] # rmf_building_map_msgs/Graph - wall_graph: Graph = Graph() # rmf_building_map_msgs/Graph - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "elevation", - "images", - "places", - "doors", - "nav_graphs", - "wall_graph", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + name: str # string + elevation: float # float32 + images: list[AffineImage] # rmf_building_map_msgs/AffineImage + places: list[Place] # rmf_building_map_msgs/Place + doors: list[Door] # rmf_building_map_msgs/Door + nav_graphs: list[Graph] # rmf_building_map_msgs/Graph + wall_graph: Graph # rmf_building_map_msgs/Graph # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Lift.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Lift.py index b4cf4bee0..0b4223557 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Lift.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Lift.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,31 +9,17 @@ class Lift(pydantic.BaseModel): - name: str = "" # string - levels: List[str] = [] # string - doors: List[Door] = [] # rmf_building_map_msgs/Door - wall_graph: Graph = Graph() # rmf_building_map_msgs/Graph - ref_x: float = 0 # float32 - ref_y: float = 0 # float32 - ref_yaw: float = 0 # float32 - width: float = 0 # float32 - depth: float = 0 # float32 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "levels", - "doors", - "wall_graph", - "ref_x", - "ref_y", - "ref_yaw", - "width", - "depth", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + name: str # string + levels: list[str] # string + doors: list[Door] # rmf_building_map_msgs/Door + wall_graph: Graph # rmf_building_map_msgs/Graph + ref_x: float # float32 + ref_y: float # float32 + ref_yaw: float # float32 + width: float # float32 + depth: float # float32 # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Param.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Param.py index 0241f13b8..052d289a3 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Param.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Param.py @@ -1,30 +1,19 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Param(pydantic.BaseModel): - name: str = "" # string - type: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 - value_int: pydantic.conint(ge=-2147483648, le=2147483647) = 0 # int32 - value_float: float = 0 # float32 - value_string: str = "" # string - value_bool: bool = False # bool + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "type", - "value_int", - "value_float", - "value_string", - "value_bool", - ], - } + name: str # string + type: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 + value_int: Annotated[int, pydantic.Field(ge=-2147483648, le=2147483647)] # int32 + value_float: float # float32 + value_string: str # string + value_bool: bool # bool # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Place.py b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Place.py index 173b41a02..84e9746d8 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Place.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_building_map_msgs/Place.py @@ -1,30 +1,19 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Place(pydantic.BaseModel): - name: str = "" # string - x: float = 0 # float32 - y: float = 0 # float32 - yaw: float = 0 # float32 - position_tolerance: float = 0 # float32 - yaw_tolerance: float = 0 # float32 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "x", - "y", - "yaw", - "position_tolerance", - "yaw_tolerance", - ], - } + name: str # string + x: float # float32 + y: float # float32 + yaw: float # float32 + position_tolerance: float # float32 + yaw_tolerance: float # float32 # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerCancel.py b/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerCancel.py index a1cfcd8ff..17c9ddfe3 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerCancel.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerCancel.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class ChargerCancel(pydantic.BaseModel): - charger_name: str = "" # string - request_id: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "charger_name", - "request_id", - ], - } + charger_name: str # string + request_id: str # string # string charger_name # the charger that should process this message diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerRequest.py index 10610c762..ed6c2d32f 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,23 +8,13 @@ class ChargerRequest(pydantic.BaseModel): - charger_name: str = "" # string - fleet_name: str = "" # string - robot_name: str = "" # string - start_timeout: Duration = Duration() # builtin_interfaces/Duration - request_id: str = "" # string - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "charger_name", - "fleet_name", - "robot_name", - "start_timeout", - "request_id", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + charger_name: str # string + fleet_name: str # string + robot_name: str # string + start_timeout: Duration # builtin_interfaces/Duration + request_id: str # string # # The name of the charger that should process this message diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerState.py b/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerState.py index a53f2403e..f3e484252 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerState.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_charger_msgs/ChargerState.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,29 +9,16 @@ class ChargerState(pydantic.BaseModel): - charger_time: Time = Time() # builtin_interfaces/Time - state: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 - charger_name: str = "" # string - error_message: str = "" # string - request_id: str = "" # string - robot_fleet: str = "" # string - robot_name: str = "" # string - time_to_fully_charged: Duration = Duration() # builtin_interfaces/Duration - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "charger_time", - "state", - "charger_name", - "error_message", - "request_id", - "robot_fleet", - "robot_name", - "time_to_fully_charged", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + charger_time: Time # builtin_interfaces/Time + state: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 + charger_name: str # string + error_message: str # string + request_id: str # string + robot_fleet: str # string + robot_name: str # string + time_to_fully_charged: Duration # builtin_interfaces/Duration # # Time when this state message was created diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserRequest.py index eb6c70fe4..92a0daa66 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,23 +9,13 @@ class DispenserRequest(pydantic.BaseModel): - time: Time = Time() # builtin_interfaces/Time - request_guid: str = "" # string - target_guid: str = "" # string - transporter_type: str = "" # string - items: List[DispenserRequestItem] = [] # rmf_dispenser_msgs/DispenserRequestItem - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "time", - "request_guid", - "target_guid", - "transporter_type", - "items", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + time: Time # builtin_interfaces/Time + request_guid: str # string + target_guid: str # string + transporter_type: str # string + items: list[DispenserRequestItem] # rmf_dispenser_msgs/DispenserRequestItem # builtin_interfaces/Time time diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserRequestItem.py b/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserRequestItem.py index e3604681d..88498fa95 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserRequestItem.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserRequestItem.py @@ -1,24 +1,16 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class DispenserRequestItem(pydantic.BaseModel): - type_guid: str = "" # string - quantity: pydantic.conint(ge=-2147483648, le=2147483647) = 0 # int32 - compartment_name: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "type_guid", - "quantity", - "compartment_name", - ], - } + type_guid: str # string + quantity: Annotated[int, pydantic.Field(ge=-2147483648, le=2147483647)] # int32 + compartment_name: str # string # string type_guid diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserResult.py b/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserResult.py index 5dc8236f9..71d046dc4 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserResult.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserResult.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,21 +8,12 @@ class DispenserResult(pydantic.BaseModel): - time: Time = Time() # builtin_interfaces/Time - request_guid: str = "" # string - source_guid: str = "" # string - status: pydantic.conint(ge=0, le=255) = 0 # uint8 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "time", - "request_guid", - "source_guid", - "status", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + time: Time # builtin_interfaces/Time + request_guid: str # string + source_guid: str # string + status: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 # builtin_interfaces/Time time diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserState.py b/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserState.py index 3305ec0f3..ebef304a2 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserState.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_dispenser_msgs/DispenserState.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,23 +8,13 @@ class DispenserState(pydantic.BaseModel): - time: Time = Time() # builtin_interfaces/Time - guid: str = "" # string - mode: pydantic.conint(ge=-2147483648, le=2147483647) = 0 # int32 - request_guid_queue: List[str] = [] # string - seconds_remaining: float = 0 # float32 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "time", - "guid", - "mode", - "request_guid_queue", - "seconds_remaining", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + time: Time # builtin_interfaces/Time + guid: str # string + mode: Annotated[int, pydantic.Field(ge=-2147483648, le=2147483647)] # int32 + request_guid_queue: list[str] # string + seconds_remaining: float # float32 # builtin_interfaces/Time time diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorMode.py b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorMode.py index 4795ddb3b..78f970689 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorMode.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorMode.py @@ -1,20 +1,14 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class DoorMode(pydantic.BaseModel): - value: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "value", - ], - } + value: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 # # The DoorMode message captures the "mode" of an automatic door controller. diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorRequest.py index 370d33177..232ee82c1 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,21 +9,12 @@ class DoorRequest(pydantic.BaseModel): - request_time: Time = Time() # builtin_interfaces/Time - requester_id: str = "" # string - door_name: str = "" # string - requested_mode: DoorMode = DoorMode() # rmf_door_msgs/DoorMode - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "request_time", - "requester_id", - "door_name", - "requested_mode", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + request_time: Time # builtin_interfaces/Time + requester_id: str # string + door_name: str # string + requested_mode: DoorMode # rmf_door_msgs/DoorMode # builtin_interfaces/Time request_time diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorSessions.py b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorSessions.py index a3104e738..0b5570a47 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorSessions.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorSessions.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,17 +8,10 @@ class DoorSessions(pydantic.BaseModel): - door_name: str = "" # string - sessions: List[Session] = [] # rmf_door_msgs/Session - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "door_name", - "sessions", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + door_name: str # string + sessions: list[Session] # rmf_door_msgs/Session # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorState.py b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorState.py index 3b4fc2a63..53bed609b 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorState.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/DoorState.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,19 +9,11 @@ class DoorState(pydantic.BaseModel): - door_time: Time = Time() # builtin_interfaces/Time - door_name: str = "" # string - current_mode: DoorMode = DoorMode() # rmf_door_msgs/DoorMode - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "door_time", - "door_name", - "current_mode", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + door_time: Time # builtin_interfaces/Time + door_name: str # string + current_mode: DoorMode # rmf_door_msgs/DoorMode # builtin_interfaces/Time door_time diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/Session.py b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/Session.py index cc2deaf5b..80241f199 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/Session.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/Session.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,17 +8,10 @@ class Session(pydantic.BaseModel): - request_time: Time = Time() # builtin_interfaces/Time - requester_id: str = "" # string - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "request_time", - "requester_id", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + request_time: Time # builtin_interfaces/Time + requester_id: str # string # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/SupervisorHeartbeat.py b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/SupervisorHeartbeat.py index 65258c6f3..cf0364d7d 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/SupervisorHeartbeat.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_door_msgs/SupervisorHeartbeat.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,15 +8,9 @@ class SupervisorHeartbeat(pydantic.BaseModel): - all_sessions: List[DoorSessions] = [] # rmf_door_msgs/DoorSessions - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "all_sessions", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + all_sessions: list[DoorSessions] # rmf_door_msgs/DoorSessions # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ClosedLanes.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ClosedLanes.py index 3192f1633..4c1c399a9 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ClosedLanes.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ClosedLanes.py @@ -1,22 +1,17 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class ClosedLanes(pydantic.BaseModel): - fleet_name: str = "" # string - closed_lanes: List[pydantic.conint(ge=0, le=18446744073709551615)] = [] # uint64 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "closed_lanes", - ], - } + fleet_name: str # string + closed_lanes: list[ + Annotated[int, pydantic.Field(ge=0, le=18446744073709551615)] + ] # uint64 # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DestinationRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DestinationRequest.py index ffa53241a..e9a304cb6 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DestinationRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DestinationRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,21 +8,12 @@ class DestinationRequest(pydantic.BaseModel): - fleet_name: str = "" # string - robot_name: str = "" # string - destination: Location = Location() # rmf_fleet_msgs/Location - task_id: str = "" # string - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "robot_name", - "destination", - "task_id", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + fleet_name: str # string + robot_name: str # string + destination: Location # rmf_fleet_msgs/Location + task_id: str # string # string fleet_name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/Dock.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/Dock.py index 22ed3f16e..d66f5d6b4 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/Dock.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/Dock.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,17 +8,10 @@ class Dock(pydantic.BaseModel): - fleet_name: str = "" # string - params: List[DockParameter] = [] # rmf_fleet_msgs/DockParameter - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "params", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + fleet_name: str # string + params: list[DockParameter] # rmf_fleet_msgs/DockParameter # string fleet_name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DockParameter.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DockParameter.py index 1b44e262a..1decc7f26 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DockParameter.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DockParameter.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,19 +8,11 @@ class DockParameter(pydantic.BaseModel): - start: str = "" # string - finish: str = "" # string - path: List[Location] = [] # rmf_fleet_msgs/Location - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "start", - "finish", - "path", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + start: str # string + finish: str # string + path: list[Location] # rmf_fleet_msgs/Location # # The name of the waypoint where the docking begins diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DockSummary.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DockSummary.py index 7cdfb089a..0a245ca36 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DockSummary.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/DockSummary.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,15 +8,9 @@ class DockSummary(pydantic.BaseModel): - docks: List[Dock] = [] # rmf_fleet_msgs/Dock - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "docks", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + docks: list[Dock] # rmf_fleet_msgs/Dock # Dock[] docks diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/FleetState.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/FleetState.py index 3a1f24a38..60106723d 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/FleetState.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/FleetState.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,17 +8,10 @@ class FleetState(pydantic.BaseModel): - name: str = "" # string - robots: List[RobotState] = [] # rmf_fleet_msgs/RobotState - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "robots", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + name: str # string + robots: list[RobotState] # rmf_fleet_msgs/RobotState # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LaneRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LaneRequest.py index f5717c107..df624a818 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LaneRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LaneRequest.py @@ -1,24 +1,20 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class LaneRequest(pydantic.BaseModel): - fleet_name: str = "" # string - open_lanes: List[pydantic.conint(ge=0, le=18446744073709551615)] = [] # uint64 - close_lanes: List[pydantic.conint(ge=0, le=18446744073709551615)] = [] # uint64 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "open_lanes", - "close_lanes", - ], - } + fleet_name: str # string + open_lanes: list[ + Annotated[int, pydantic.Field(ge=0, le=18446744073709551615)] + ] # uint64 + close_lanes: list[ + Annotated[int, pydantic.Field(ge=0, le=18446744073709551615)] + ] # uint64 # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LiftClearance_Request.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LiftClearance_Request.py index 9e7b2862b..d536ccc96 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LiftClearance_Request.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LiftClearance_Request.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class LiftClearance_Request(pydantic.BaseModel): - robot_name: str = "" # string - lift_name: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "robot_name", - "lift_name", - ], - } + robot_name: str # string + lift_name: str # string # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LiftClearance_Response.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LiftClearance_Response.py index 0b110244f..4af2c6412 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LiftClearance_Response.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/LiftClearance_Response.py @@ -1,20 +1,14 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class LiftClearance_Response(pydantic.BaseModel): - decision: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "decision", - ], - } + decision: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/Location.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/Location.py index 4fc597f72..ff1d6d3ab 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/Location.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/Location.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,29 +8,16 @@ class Location(pydantic.BaseModel): - t: Time = Time() # builtin_interfaces/Time - x: float = 0 # float32 - y: float = 0 # float32 - yaw: float = 0 # float32 - obey_approach_speed_limit: bool = False # bool - approach_speed_limit: float = 0 # float32 - level_name: str = "" # string - index: pydantic.conint(ge=0, le=18446744073709551615) = 0 # uint64 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "t", - "x", - "y", - "yaw", - "obey_approach_speed_limit", - "approach_speed_limit", - "level_name", - "index", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + t: Time # builtin_interfaces/Time + x: float # float32 + y: float # float32 + yaw: float # float32 + obey_approach_speed_limit: bool # bool + approach_speed_limit: float # float32 + level_name: str # string + index: Annotated[int, pydantic.Field(ge=0, le=18446744073709551615)] # uint64 # builtin_interfaces/Time t diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ModeParameter.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ModeParameter.py index 90f6c26de..6391828fa 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ModeParameter.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ModeParameter.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class ModeParameter(pydantic.BaseModel): - name: str = "" # string - value: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "value", - ], - } + name: str # string + value: str # string # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ModeRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ModeRequest.py index 50ceb241f..86ef2e41f 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ModeRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/ModeRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,23 +9,13 @@ class ModeRequest(pydantic.BaseModel): - fleet_name: str = "" # string - robot_name: str = "" # string - mode: RobotMode = RobotMode() # rmf_fleet_msgs/RobotMode - task_id: str = "" # string - parameters: List[ModeParameter] = [] # rmf_fleet_msgs/ModeParameter - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "robot_name", - "mode", - "task_id", - "parameters", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + fleet_name: str # string + robot_name: str # string + mode: RobotMode # rmf_fleet_msgs/RobotMode + task_id: str # string + parameters: list[ModeParameter] # rmf_fleet_msgs/ModeParameter # string fleet_name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/PathRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/PathRequest.py index 008ac7c99..103fbcd80 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/PathRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/PathRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,21 +8,12 @@ class PathRequest(pydantic.BaseModel): - fleet_name: str = "" # string - robot_name: str = "" # string - path: List[Location] = [] # rmf_fleet_msgs/Location - task_id: str = "" # string - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "robot_name", - "path", - "task_id", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + fleet_name: str # string + robot_name: str # string + path: list[Location] # rmf_fleet_msgs/Location + task_id: str # string # string fleet_name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/PauseRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/PauseRequest.py index 1a6a4795a..833ee5ab8 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/PauseRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/PauseRequest.py @@ -1,28 +1,20 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class PauseRequest(pydantic.BaseModel): - fleet_name: str = "" # string - robot_name: str = "" # string - mode_request_id: pydantic.conint(ge=0, le=18446744073709551615) = 0 # uint64 - type: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 - at_checkpoint: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "robot_name", - "mode_request_id", - "type", - "at_checkpoint", - ], - } + fleet_name: str # string + robot_name: str # string + mode_request_id: Annotated[ + int, pydantic.Field(ge=0, le=18446744073709551615) + ] # uint64 + type: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 + at_checkpoint: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 # string fleet_name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/RobotMode.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/RobotMode.py index 20e13587c..f51ff70b5 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/RobotMode.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/RobotMode.py @@ -1,22 +1,17 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class RobotMode(pydantic.BaseModel): - mode: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 - mode_request_id: pydantic.conint(ge=0, le=18446744073709551615) = 0 # uint64 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "mode", - "mode_request_id", - ], - } + mode: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 + mode_request_id: Annotated[ + int, pydantic.Field(ge=0, le=18446744073709551615) + ] # uint64 # uint32 mode diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/RobotState.py b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/RobotState.py index 35969b942..5e1f3ac0a 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/RobotState.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_fleet_msgs/RobotState.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,29 +9,16 @@ class RobotState(pydantic.BaseModel): - name: str = "" # string - model: str = "" # string - task_id: str = "" # string - seq: pydantic.conint(ge=0, le=18446744073709551615) = 0 # uint64 - mode: RobotMode = RobotMode() # rmf_fleet_msgs/RobotMode - battery_percent: float = 0 # float32 - location: Location = Location() # rmf_fleet_msgs/Location - path: List[Location] = [] # rmf_fleet_msgs/Location - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "model", - "task_id", - "seq", - "mode", - "battery_percent", - "location", - "path", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + name: str # string + model: str # string + task_id: str # string + seq: Annotated[int, pydantic.Field(ge=0, le=18446744073709551615)] # uint64 + mode: RobotMode # rmf_fleet_msgs/RobotMode + battery_percent: float # float32 + location: Location # rmf_fleet_msgs/Location + path: list[Location] # rmf_fleet_msgs/Location # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorRequest.py index 639eb1177..cf63a3b9f 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,23 +9,13 @@ class IngestorRequest(pydantic.BaseModel): - time: Time = Time() # builtin_interfaces/Time - request_guid: str = "" # string - target_guid: str = "" # string - transporter_type: str = "" # string - items: List[IngestorRequestItem] = [] # rmf_ingestor_msgs/IngestorRequestItem - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "time", - "request_guid", - "target_guid", - "transporter_type", - "items", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + time: Time # builtin_interfaces/Time + request_guid: str # string + target_guid: str # string + transporter_type: str # string + items: list[IngestorRequestItem] # rmf_ingestor_msgs/IngestorRequestItem # builtin_interfaces/Time time diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorRequestItem.py b/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorRequestItem.py index b74fb2af7..4ca2e51f1 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorRequestItem.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorRequestItem.py @@ -1,24 +1,16 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class IngestorRequestItem(pydantic.BaseModel): - type_guid: str = "" # string - quantity: pydantic.conint(ge=-2147483648, le=2147483647) = 0 # int32 - compartment_name: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "type_guid", - "quantity", - "compartment_name", - ], - } + type_guid: str # string + quantity: Annotated[int, pydantic.Field(ge=-2147483648, le=2147483647)] # int32 + compartment_name: str # string # string type_guid diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorResult.py b/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorResult.py index bdd07a894..673e794c7 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorResult.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorResult.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,21 +8,12 @@ class IngestorResult(pydantic.BaseModel): - time: Time = Time() # builtin_interfaces/Time - request_guid: str = "" # string - source_guid: str = "" # string - status: pydantic.conint(ge=0, le=255) = 0 # uint8 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "time", - "request_guid", - "source_guid", - "status", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + time: Time # builtin_interfaces/Time + request_guid: str # string + source_guid: str # string + status: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 # builtin_interfaces/Time time diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorState.py b/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorState.py index 7ce6ce823..9744a2c45 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorState.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_ingestor_msgs/IngestorState.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,23 +8,13 @@ class IngestorState(pydantic.BaseModel): - time: Time = Time() # builtin_interfaces/Time - guid: str = "" # string - mode: pydantic.conint(ge=-2147483648, le=2147483647) = 0 # int32 - request_guid_queue: List[str] = [] # string - seconds_remaining: float = 0 # float32 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "time", - "guid", - "mode", - "request_guid_queue", - "seconds_remaining", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + time: Time # builtin_interfaces/Time + guid: str # string + mode: Annotated[int, pydantic.Field(ge=-2147483648, le=2147483647)] # int32 + request_guid_queue: list[str] # string + seconds_remaining: float # float32 # builtin_interfaces/Time time diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_lift_msgs/LiftRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_lift_msgs/LiftRequest.py index 79750d40f..97f91c905 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_lift_msgs/LiftRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_lift_msgs/LiftRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,25 +8,14 @@ class LiftRequest(pydantic.BaseModel): - lift_name: str = "" # string - request_time: Time = Time() # builtin_interfaces/Time - session_id: str = "" # string - request_type: pydantic.conint(ge=0, le=255) = 0 # uint8 - destination_floor: str = "" # string - door_state: pydantic.conint(ge=0, le=255) = 0 # uint8 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "lift_name", - "request_time", - "session_id", - "request_type", - "destination_floor", - "door_state", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + lift_name: str # string + request_time: Time # builtin_interfaces/Time + session_id: str # string + request_type: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 + destination_floor: str # string + door_state: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 # string lift_name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_lift_msgs/LiftState.py b/packages/api-server/api_server/models/ros_pydantic/rmf_lift_msgs/LiftState.py index db7d1c3e5..21cc4c12d 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_lift_msgs/LiftState.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_lift_msgs/LiftState.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,33 +8,18 @@ class LiftState(pydantic.BaseModel): - lift_time: Time = Time() # builtin_interfaces/Time - lift_name: str = "" # string - available_floors: List[str] = [] # string - current_floor: str = "" # string - destination_floor: str = "" # string - door_state: pydantic.conint(ge=0, le=255) = 0 # uint8 - motion_state: pydantic.conint(ge=0, le=255) = 0 # uint8 - available_modes: bytes = bytes() # uint8 - current_mode: pydantic.conint(ge=0, le=255) = 0 # uint8 - session_id: str = "" # string - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "lift_time", - "lift_name", - "available_floors", - "current_floor", - "destination_floor", - "door_state", - "motion_state", - "available_modes", - "current_mode", - "session_id", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + lift_time: Time # builtin_interfaces/Time + lift_name: str # string + available_floors: list[str] # string + current_floor: str # string + destination_floor: str # string + door_state: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 + motion_state: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 + available_modes: bytes # uint8 + current_mode: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 + session_id: str # string # # lift_time records when the information in this message was generated diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Behavior.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Behavior.py index 1ce00540b..3f082e59b 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Behavior.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Behavior.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,17 +8,10 @@ class Behavior(pydantic.BaseModel): - name: str = "" # string - parameters: List[BehaviorParameter] = [] # rmf_task_msgs/BehaviorParameter - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "parameters", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + name: str # string + parameters: list[BehaviorParameter] # rmf_task_msgs/BehaviorParameter # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BehaviorParameter.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BehaviorParameter.py index a54d3c372..220ea203c 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BehaviorParameter.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BehaviorParameter.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class BehaviorParameter(pydantic.BaseModel): - name: str = "" # string - value: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "name", - "value", - ], - } + name: str # string + value: str # string # string name diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BidNotice.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BidNotice.py index d6e2eb08c..f8a65247d 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BidNotice.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BidNotice.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,17 +9,10 @@ class BidNotice(pydantic.BaseModel): - task_profile: TaskProfile = TaskProfile() # rmf_task_msgs/TaskProfile - time_window: Duration = Duration() # builtin_interfaces/Duration - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "task_profile", - "time_window", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + task_profile: TaskProfile # rmf_task_msgs/TaskProfile + time_window: Duration # builtin_interfaces/Duration # # This message is published by the Task Dispatcher node to notify all diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BidProposal.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BidProposal.py index da0a392a7..2b36491b2 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BidProposal.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/BidProposal.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,25 +9,14 @@ class BidProposal(pydantic.BaseModel): - fleet_name: str = "" # string - task_profile: TaskProfile = TaskProfile() # rmf_task_msgs/TaskProfile - prev_cost: float = 0 # float64 - new_cost: float = 0 # float64 - finish_time: Time = Time() # builtin_interfaces/Time - robot_name: str = "" # string - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "task_profile", - "prev_cost", - "new_cost", - "finish_time", - "robot_name", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + fleet_name: str # string + task_profile: TaskProfile # rmf_task_msgs/TaskProfile + prev_cost: float # float64 + new_cost: float # float64 + finish_time: Time # builtin_interfaces/Time + robot_name: str # string # # This message is published by a Fleet Adapter in response to a BidNotice diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/CancelTask_Request.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/CancelTask_Request.py index 90a2a938b..e58c6ca48 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/CancelTask_Request.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/CancelTask_Request.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class CancelTask_Request(pydantic.BaseModel): - requester: str = "" # string - task_id: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "requester", - "task_id", - ], - } + requester: str # string + task_id: str # string # # Cancel Task | "Delete" service call diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/CancelTask_Response.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/CancelTask_Response.py index 7f6e762ff..55c2e8bf0 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/CancelTask_Response.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/CancelTask_Response.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class CancelTask_Response(pydantic.BaseModel): - success: bool = False # bool - message: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "success", - "message", - ], - } + success: bool # bool + message: str # string # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Clean.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Clean.py index 14e42da4d..3c15c06de 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Clean.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Clean.py @@ -1,20 +1,14 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Clean(pydantic.BaseModel): - start_waypoint: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "start_waypoint", - ], - } + start_waypoint: str # string # # The name of the waypoint where the robot should begin its pre-configured diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Delivery.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Delivery.py index 4d4ac58e2..90f1d5f84 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Delivery.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Delivery.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,29 +9,16 @@ class Delivery(pydantic.BaseModel): - task_id: str = "" # string - items: List[DispenserRequestItem] = [] # rmf_dispenser_msgs/DispenserRequestItem - pickup_place_name: str = "" # string - pickup_dispenser: str = "" # string - pickup_behavior: Behavior = Behavior() # rmf_task_msgs/Behavior - dropoff_place_name: str = "" # string - dropoff_ingestor: str = "" # string - dropoff_behavior: Behavior = Behavior() # rmf_task_msgs/Behavior - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "task_id", - "items", - "pickup_place_name", - "pickup_dispenser", - "pickup_behavior", - "dropoff_place_name", - "dropoff_ingestor", - "dropoff_behavior", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + task_id: str # string + items: list[DispenserRequestItem] # rmf_dispenser_msgs/DispenserRequestItem + pickup_place_name: str # string + pickup_dispenser: str # string + pickup_behavior: Behavior # rmf_task_msgs/Behavior + dropoff_place_name: str # string + dropoff_ingestor: str # string + dropoff_behavior: Behavior # rmf_task_msgs/Behavior # # task_id is intended to be a pseudo-random string generated diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/DispatchAck.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/DispatchAck.py index 4482ef002..9fec8c4a5 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/DispatchAck.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/DispatchAck.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,19 +8,10 @@ class DispatchAck(pydantic.BaseModel): - dispatch_request: DispatchRequest = ( - DispatchRequest() - ) # rmf_task_msgs/DispatchRequest - success: bool = False # bool - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "dispatch_request", - "success", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + dispatch_request: DispatchRequest # rmf_task_msgs/DispatchRequest + success: bool # bool # # This message is published by the fleet adapter in response to a diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/DispatchRequest.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/DispatchRequest.py index 0a5db1096..b3a7363e5 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/DispatchRequest.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/DispatchRequest.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,19 +8,11 @@ class DispatchRequest(pydantic.BaseModel): - fleet_name: str = "" # string - task_profile: TaskProfile = TaskProfile() # rmf_task_msgs/TaskProfile - method: pydantic.conint(ge=0, le=255) = 0 # uint8 - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "task_profile", - "method", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + fleet_name: str # string + task_profile: TaskProfile # rmf_task_msgs/TaskProfile + method: Annotated[int, pydantic.Field(ge=0, le=255)] # uint8 # # This message is published by Task Dispatcher Node to either award or cancel a diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/GetTaskList_Request.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/GetTaskList_Request.py index 492fb294f..a9c19e8a5 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/GetTaskList_Request.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/GetTaskList_Request.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class GetTaskList_Request(pydantic.BaseModel): - requester: str = "" # string - task_id: List[str] = [] # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "requester", - "task_id", - ], - } + requester: str # string + task_id: list[str] # string # # Query list of submitted tasks | Get service call diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/GetTaskList_Response.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/GetTaskList_Response.py index b5e796167..86209de60 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/GetTaskList_Response.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/GetTaskList_Response.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,19 +8,11 @@ class GetTaskList_Response(pydantic.BaseModel): - success: bool = False # bool - active_tasks: List[TaskSummary] = [] # rmf_task_msgs/TaskSummary - terminated_tasks: List[TaskSummary] = [] # rmf_task_msgs/TaskSummary - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "success", - "active_tasks", - "terminated_tasks", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + success: bool # bool + active_tasks: list[TaskSummary] # rmf_task_msgs/TaskSummary + terminated_tasks: list[TaskSummary] # rmf_task_msgs/TaskSummary # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Loop.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Loop.py index e2bd31251..4e681a82b 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Loop.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Loop.py @@ -1,28 +1,18 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Loop(pydantic.BaseModel): - task_id: str = "" # string - robot_type: str = "" # string - num_loops: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 - start_name: str = "" # string - finish_name: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "task_id", - "robot_type", - "num_loops", - "start_name", - "finish_name", - ], - } + task_id: str # string + robot_type: str # string + num_loops: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 + start_name: str # string + finish_name: str # string # # task_id is intended to be a pseudo-random string generated diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Priority.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Priority.py index 711f13ca4..57f74aa0a 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Priority.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Priority.py @@ -1,20 +1,14 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Priority(pydantic.BaseModel): - value: pydantic.conint(ge=0, le=18446744073709551615) = 0 # uint64 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "value", - ], - } + value: Annotated[int, pydantic.Field(ge=0, le=18446744073709551615)] # uint64 # uint64 value 0 diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/ReviveTask_Request.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/ReviveTask_Request.py index 502581140..6cc867b75 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/ReviveTask_Request.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/ReviveTask_Request.py @@ -1,22 +1,15 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class ReviveTask_Request(pydantic.BaseModel): - requester: str = "" # string - task_id: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "requester", - "task_id", - ], - } + requester: str # string + task_id: str # string # # Revive a previously cancelled or failed task. This will reinitiate diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/ReviveTask_Response.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/ReviveTask_Response.py index 1b0102872..d8a7bb528 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/ReviveTask_Response.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/ReviveTask_Response.py @@ -1,20 +1,14 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class ReviveTask_Response(pydantic.BaseModel): - success: bool = False # bool + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "success", - ], - } + success: bool # bool # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Station.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Station.py index 91ce948a3..8f469532d 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Station.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Station.py @@ -1,24 +1,16 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Station(pydantic.BaseModel): - task_id: str = "" # string - robot_type: str = "" # string - place_name: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "task_id", - "robot_type", - "place_name", - ], - } + task_id: str # string + robot_type: str # string + place_name: str # string # # task_id is intended to be a pseudo-random string generated diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/SubmitTask_Request.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/SubmitTask_Request.py index 063b76ccd..2fda4e042 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/SubmitTask_Request.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/SubmitTask_Request.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,17 +8,10 @@ class SubmitTask_Request(pydantic.BaseModel): - requester: str = "" # string - description: TaskDescription = TaskDescription() # rmf_task_msgs/TaskDescription - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "requester", - "description", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + requester: str # string + description: TaskDescription # rmf_task_msgs/TaskDescription # # Submit Task | POST service call diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/SubmitTask_Response.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/SubmitTask_Response.py index 7e3828b01..e34f83b5b 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/SubmitTask_Response.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/SubmitTask_Response.py @@ -1,24 +1,16 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class SubmitTask_Response(pydantic.BaseModel): - success: bool = False # bool - task_id: str = "" # string - message: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "success", - "task_id", - "message", - ], - } + success: bool # bool + task_id: str # string + message: str # string # diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskDescription.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskDescription.py index 185f85230..4e06feb10 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskDescription.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskDescription.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -14,27 +14,15 @@ class TaskDescription(pydantic.BaseModel): - start_time: Time = Time() # builtin_interfaces/Time - priority: Priority = Priority() # rmf_task_msgs/Priority - task_type: TaskType = TaskType() # rmf_task_msgs/TaskType - station: Station = Station() # rmf_task_msgs/Station - loop: Loop = Loop() # rmf_task_msgs/Loop - delivery: Delivery = Delivery() # rmf_task_msgs/Delivery - clean: Clean = Clean() # rmf_task_msgs/Clean - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "start_time", - "priority", - "task_type", - "station", - "loop", - "delivery", - "clean", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + start_time: Time # builtin_interfaces/Time + priority: Priority # rmf_task_msgs/Priority + task_type: TaskType # rmf_task_msgs/TaskType + station: Station # rmf_task_msgs/Station + loop: Loop # rmf_task_msgs/Loop + delivery: Delivery # rmf_task_msgs/Delivery + clean: Clean # rmf_task_msgs/Clean # # Desired start time of a task diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskProfile.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskProfile.py index f0226b444..ffc4c5d84 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskProfile.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskProfile.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,19 +9,11 @@ class TaskProfile(pydantic.BaseModel): - task_id: str = "" # string - submission_time: Time = Time() # builtin_interfaces/Time - description: TaskDescription = TaskDescription() # rmf_task_msgs/TaskDescription - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "task_id", - "submission_time", - "description", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + task_id: str # string + submission_time: Time # builtin_interfaces/Time + description: TaskDescription # rmf_task_msgs/TaskDescription # # Unique ID assigned to this task diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskSummary.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskSummary.py index baa15c99f..04144e973 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskSummary.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskSummary.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -9,31 +9,17 @@ class TaskSummary(pydantic.BaseModel): - fleet_name: str = "" # string - task_id: str = "" # string - task_profile: TaskProfile = TaskProfile() # rmf_task_msgs/TaskProfile - state: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 - status: str = "" # string - submission_time: Time = Time() # builtin_interfaces/Time - start_time: Time = Time() # builtin_interfaces/Time - end_time: Time = Time() # builtin_interfaces/Time - robot_name: str = "" # string - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "fleet_name", - "task_id", - "task_profile", - "state", - "status", - "submission_time", - "start_time", - "end_time", - "robot_name", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + fleet_name: str # string + task_id: str # string + task_profile: TaskProfile # rmf_task_msgs/TaskProfile + state: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 + status: str # string + submission_time: Time # builtin_interfaces/Time + start_time: Time # builtin_interfaces/Time + end_time: Time # builtin_interfaces/Time + robot_name: str # string # # Publish by Fleet Adapter (aka DispatchStatus) diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskType.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskType.py index 5157e2f0e..05b4fb377 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskType.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/TaskType.py @@ -1,20 +1,14 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class TaskType(pydantic.BaseModel): - type: pydantic.conint(ge=0, le=4294967295) = 0 # uint32 + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "type", - ], - } + type: Annotated[int, pydantic.Field(ge=0, le=4294967295)] # uint32 # uint32 type diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Tasks.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Tasks.py index d0730906e..2cd654d25 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Tasks.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Tasks.py @@ -1,6 +1,6 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic @@ -8,15 +8,9 @@ class Tasks(pydantic.BaseModel): - tasks: List[TaskSummary] = [] # rmf_task_msgs/TaskSummary - - class Config: - orm_mode = True - schema_extra = { - "required": [ - "tasks", - ], - } + model_config = pydantic.ConfigDict(from_attributes=True) + + tasks: list[TaskSummary] # rmf_task_msgs/TaskSummary # TaskSummary[] tasks diff --git a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Tow.py b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Tow.py index 5634d222b..317c1ea97 100644 --- a/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Tow.py +++ b/packages/api-server/api_server/models/ros_pydantic/rmf_task_msgs/Tow.py @@ -1,32 +1,20 @@ # This is a generated file, do not edit -from typing import List +from typing import Annotated import pydantic class Tow(pydantic.BaseModel): - task_id: str = "" # string - object_type: str = "" # string - is_object_id_known: bool = False # bool - object_id: str = "" # string - pickup_place_name: str = "" # string - is_dropoff_place_known: bool = False # bool - dropoff_place_name: str = "" # string + model_config = pydantic.ConfigDict(from_attributes=True) - class Config: - orm_mode = True - schema_extra = { - "required": [ - "task_id", - "object_type", - "is_object_id_known", - "object_id", - "pickup_place_name", - "is_dropoff_place_known", - "dropoff_place_name", - ], - } + task_id: str # string + object_type: str # string + is_object_id_known: bool # bool + object_id: str # string + pickup_place_name: str # string + is_dropoff_place_known: bool # bool + dropoff_place_name: str # string # # task_id is intended to be a pseudo-random string generated diff --git a/packages/api-server/api_server/models/tasks.py b/packages/api-server/api_server/models/tasks.py new file mode 100644 index 000000000..69e0cc2b0 --- /dev/null +++ b/packages/api-server/api_server/models/tasks.py @@ -0,0 +1,40 @@ +from datetime import datetime +from enum import Enum + +from pydantic import BaseModel, ConfigDict + +from .rmf_api.task_request import TaskRequest +from .tortoise_support import TortoiseReverseRelation + + +class ScheduledTaskSchedule(BaseModel): + model_config = ConfigDict(from_attributes=True) + + class Period(str, Enum): + Monday = "monday" + Tuesday = "tuesday" + Wednesday = "wednesday" + Thursday = "thursday" + Friday = "friday" + Saturday = "saturday" + Sunday = "sunday" + Day = "day" + Hour = "hour" + Minute = "minute" + + every: int | None = None + start_from: datetime | None = None + until: datetime | None = None + period: Period + at: str | None = None + + +class ScheduledTask(BaseModel): + model_config = ConfigDict(from_attributes=True) + + id: int + task_request: TaskRequest + created_by: str + schedules: TortoiseReverseRelation[ScheduledTaskSchedule] + last_ran: datetime | None = None + except_dates: list[str] | None = None diff --git a/packages/api-server/api_server/models/tortoise_models/authorization.py b/packages/api-server/api_server/models/tortoise_models/authorization.py index a96f82182..566d8b115 100644 --- a/packages/api-server/api_server/models/tortoise_models/authorization.py +++ b/packages/api-server/api_server/models/tortoise_models/authorization.py @@ -8,17 +8,17 @@ class Role(Model): - name: str = CharField(255, pk=True) # type: ignore + name = CharField(255, pk=True) permissions: ReverseRelation["ResourcePermission"] class ResourcePermission(Model): # "obj" in casbin speak # This has no foreign key because resources can be given any arbitrary group, sometimes even dynamically. - authz_grp: str = CharField(255, index=True) # type: ignore + authz_grp = CharField(255, index=True) # "sub" in casbin speak role: ForeignKeyRelation[Role] = ForeignKeyField("models.Role") - action: str = CharField(255) # type: ignore + action = CharField(255) class ProtectedResource: diff --git a/packages/api-server/api_server/models/tortoise_models/building_map.py b/packages/api-server/api_server/models/tortoise_models/building_map.py index 88bbb1c99..e0d88f00c 100644 --- a/packages/api-server/api_server/models/tortoise_models/building_map.py +++ b/packages/api-server/api_server/models/tortoise_models/building_map.py @@ -4,4 +4,4 @@ class BuildingMap(Model): id_ = CharField(255, pk=True, source_field="id") - data: dict = JSONField() # type: ignore + data = JSONField() diff --git a/packages/api-server/api_server/models/tortoise_models/fleets.py b/packages/api-server/api_server/models/tortoise_models/fleets.py index 9f06ba434..42a076c4b 100644 --- a/packages/api-server/api_server/models/tortoise_models/fleets.py +++ b/packages/api-server/api_server/models/tortoise_models/fleets.py @@ -12,7 +12,7 @@ class FleetState(Model): name = CharField(255, pk=True) - data: dict = JSONField() # type: ignore + data = JSONField() class FleetLog(Model): @@ -26,7 +26,7 @@ class FleetLogLog(Model, LogMixin): "models.FleetLog", related_name="log" ) - class Meta: + class Meta: # type: ignore unique_together = ("fleet", "seq") @@ -43,5 +43,5 @@ class FleetLogRobotsLog(Model, LogMixin): "models.FleetLogRobots", related_name="log" ) - class Meta: + class Meta: # type: ignore unique_together = ("id", "seq") diff --git a/packages/api-server/api_server/models/tortoise_models/health.py b/packages/api-server/api_server/models/tortoise_models/health.py index 7cf9c0e5a..48243394d 100644 --- a/packages/api-server/api_server/models/tortoise_models/health.py +++ b/packages/api-server/api_server/models/tortoise_models/health.py @@ -3,11 +3,11 @@ class BasicHealthModel(Model): - id_: str = CharField(255, pk=True, source_field="id") # type: ignore - health_status: str = CharField(max_length=255, null=True) # type: ignore - health_message: str = TextField(null=True) # type: ignore + id_ = CharField(255, pk=True, source_field="id") + health_status = CharField(max_length=255, null=True) + health_message = TextField(null=True) - class Meta: + class Meta: # type: ignore abstract = True diff --git a/packages/api-server/api_server/models/tortoise_models/scheduled_task.py b/packages/api-server/api_server/models/tortoise_models/scheduled_task.py index d3ae01a72..82c806c5a 100644 --- a/packages/api-server/api_server/models/tortoise_models/scheduled_task.py +++ b/packages/api-server/api_server/models/tortoise_models/scheduled_task.py @@ -3,11 +3,6 @@ import schedule from schedule import Job -from tortoise import Tortoise -from tortoise.contrib.pydantic.creator import ( - pydantic_model_creator, - pydantic_queryset_creator, -) from tortoise.fields import ( CharEnumField, CharField, @@ -23,11 +18,11 @@ class ScheduledTask(Model): - task_request: dict = JSONField() # type: ignore - created_by: str = CharField(255) # type: ignore + task_request = JSONField() + created_by = CharField(255) schedules: ReverseRelation["ScheduledTaskSchedule"] - last_ran: datetime | None = DatetimeField(null=True) # type: ignore - except_dates: list[str] = JSONField(null=True) # type: ignore + last_ran = DatetimeField(null=True) + except_dates = JSONField(null=True) class ScheduledTaskSchedule(Model): @@ -48,15 +43,15 @@ class Period(str, Enum): Hour = "hour" Minute = "minute" - _id: int = IntField(pk=True, source_field="id") # type: ignore + _id = IntField(pk=True, source_field="id") scheduled_task: ForeignKeyRelation[ScheduledTask] = ForeignKeyField( "models.ScheduledTask", related_name="schedules" ) - every: int | None = SmallIntField(null=True) # type: ignore - start_from: datetime | None = DatetimeField(null=True) # type: ignore - until: datetime | None = DatetimeField(null=True) # type: ignore + every = SmallIntField(null=True) + start_from = DatetimeField(null=True) + until = DatetimeField(null=True) period = CharEnumField(Period) - at: str | None = CharField(255, null=True) # type: ignore + at = CharField(255, null=True) def get_id(self) -> int: return self._id @@ -97,11 +92,3 @@ def to_job(self) -> Job: job = job.at(self.at) return job - - -Tortoise.init_models(["api_server.models.tortoise_models.scheduled_task"], "models") -ScheduledTaskPydantic = pydantic_model_creator(ScheduledTask) -ScheduledTaskPydanticList = pydantic_queryset_creator(ScheduledTask) -ScheduledTaskSchedulePydantic = pydantic_model_creator( - ScheduledTaskSchedule, exclude=("scheduled_task",) -) diff --git a/packages/api-server/api_server/models/tortoise_models/tasks.py b/packages/api-server/api_server/models/tortoise_models/tasks.py index aabcd8d1f..53da68f37 100644 --- a/packages/api-server/api_server/models/tortoise_models/tasks.py +++ b/packages/api-server/api_server/models/tortoise_models/tasks.py @@ -1,5 +1,3 @@ -from datetime import datetime - from tortoise.contrib.pydantic.creator import pydantic_model_creator from tortoise.fields import ( CharField, @@ -16,12 +14,12 @@ class TaskRequest(Model): id_ = CharField(255, pk=True, source_field="id") - request: dict = JSONField() # type: ignore + request = JSONField() class TaskState(Model): id_ = CharField(255, pk=True, source_field="id") - data: dict = JSONField() # type: ignore + data = JSONField() category = CharField(255, null=True, index=True) assigned_to = CharField(255, null=True, index=True) unix_millis_start_time = DatetimeField(null=True, index=True) @@ -42,7 +40,7 @@ class TaskEventLogLog(Model, LogMixin): "models.TaskEventLog", related_name="log" ) - class Meta: + class Meta: # type: ignore unique_together = ("task", "seq") @@ -60,7 +58,7 @@ class TaskEventLogPhasesLog(Model, LogMixin): "models.TaskEventLogPhases", related_name="log" ) - class Meta: + class Meta: # type: ignore unique_together = ("id", "seq") @@ -77,18 +75,18 @@ class TaskEventLogPhasesEventsLog(Model, LogMixin): "models.TaskEventLogPhasesEvents", related_name="log" ) - class Meta: + class Meta: # type: ignore unique_together = ("id", "seq") class TaskFavorite(Model): - id: str = CharField(255, pk=True, source_field="id") # type: ignore - name: str = CharField(255, null=False, index=True) # type: ignore - unix_millis_earliest_start_time: datetime = DatetimeField(null=True, index=True) # type: ignore - priority: dict = JSONField(null=True) # type: ignore - category: str = CharField(255, null=False, index=True) # type: ignore - description: dict = JSONField() # type: ignore - user: str = CharField(255, null=False, index=True) # type: ignore + id = CharField(255, pk=True, source_field="id") + name = CharField(255, null=False, index=True) + unix_millis_earliest_start_time = DatetimeField(null=True, index=True) + priority = JSONField(null=True) + category = CharField(255, null=False, index=True) + description = JSONField() + user = CharField(255, null=False, index=True) TaskFavoritePydantic = pydantic_model_creator(TaskFavorite) diff --git a/packages/api-server/api_server/models/tortoise_models/user.py b/packages/api-server/api_server/models/tortoise_models/user.py index 467f35fc0..865ee7e65 100644 --- a/packages/api-server/api_server/models/tortoise_models/user.py +++ b/packages/api-server/api_server/models/tortoise_models/user.py @@ -6,6 +6,6 @@ class User(Model): - username: str = CharField(255, pk=True) # type: ignore - is_admin: bool = BooleanField() # type: ignore + username = CharField(255, pk=True) + is_admin = BooleanField() roles: ManyToManyRelation[Role] = ManyToManyField("models.Role") diff --git a/packages/api-server/api_server/models/tortoise_support.py b/packages/api-server/api_server/models/tortoise_support.py new file mode 100644 index 000000000..912e675c4 --- /dev/null +++ b/packages/api-server/api_server/models/tortoise_support.py @@ -0,0 +1,16 @@ +from typing import Annotated, TypeVar + +from pydantic import BeforeValidator +from tortoise.fields.relational import ReverseRelation + +T = TypeVar("T") + + +def reverse_relation_to_list(v): + if isinstance(v, ReverseRelation): + return v + return list(v) + + +TortoiseReverseRelation = Annotated[list[T], BeforeValidator(reverse_relation_to_list)] +"""A helper type to validate pydantic models with tortoise models that has a reverse relation""" diff --git a/packages/api-server/api_server/models/user.py b/packages/api-server/api_server/models/user.py index d4f80b375..4eae885ef 100644 --- a/packages/api-server/api_server/models/user.py +++ b/packages/api-server/api_server/models/user.py @@ -1,17 +1,15 @@ -from typing import List - -from pydantic import BaseModel +from pydantic import BaseModel, ConfigDict from . import tortoise_models as ttm class User(BaseModel): + model_config = ConfigDict( + json_schema_extra={"required": ["username", "is_admin", "roles"]} + ) username: str is_admin: bool = False - roles: List[str] = [] - - class Config: - schema_extra = {"required": ["username", "is_admin", "roles"]} + roles: list[str] = [] @staticmethod async def load_or_create_from_db(username: str) -> "User": diff --git a/packages/api-server/api_server/repositories/fleets.py b/packages/api-server/api_server/repositories/fleets.py index 890ec3739..82e942bfa 100644 --- a/packages/api-server/api_server/repositories/fleets.py +++ b/packages/api-server/api_server/repositories/fleets.py @@ -1,6 +1,6 @@ from typing import List, Optional, Sequence, Tuple -from fastapi import Depends +from fastapi import Depends, HTTPException from tortoise.exceptions import IntegrityError from tortoise.query_utils import Prefetch from tortoise.transactions import in_transaction @@ -24,6 +24,9 @@ async def get_fleet_state(self, name: str) -> Optional[FleetState]: result = await ttm.FleetState.get_or_none(name=name) if result is None: return None + if not isinstance(result.data, dict): + logger.error(f"data is not a dict: {type(result.data)}") + raise HTTPException(500) return FleetState(**result.data) async def get_fleet_log( @@ -49,7 +52,7 @@ async def get_fleet_log( for db_robot in result.robots: robot = [LogEntry(**dict(db_log)) for db_log in db_robot.log] robots[db_robot.name] = robot - return FleetLog.construct( + return FleetLog.model_construct( name=result.name, log=[LogEntry(**dict(db_log)) for db_log in result.log], robots=robots, @@ -58,7 +61,7 @@ async def get_fleet_log( async def save_fleet_state(self, fleet_state: FleetState) -> None: await ttm.FleetState.update_or_create( { - "data": fleet_state.json(), + "data": fleet_state.model_dump_json(), }, name=fleet_state.name, ) diff --git a/packages/api-server/api_server/repositories/rmf.py b/packages/api-server/api_server/repositories/rmf.py index b1b1b77cf..722f46ecc 100644 --- a/packages/api-server/api_server/repositories/rmf.py +++ b/packages/api-server/api_server/repositories/rmf.py @@ -1,6 +1,7 @@ -from fastapi import Depends +from fastapi import Depends, HTTPException from api_server.authenticator import user_dep +from api_server.logger import logger from api_server.models import ( BuildingMap, Dispenser, @@ -38,6 +39,9 @@ async def get_bulding_map(self) -> BuildingMap | None: building_map = await ttm.BuildingMap.first() if building_map is None: return None + if not isinstance(building_map.data, dict): + logger.error(f"request is not a dict: {type(building_map.data)}") + raise HTTPException(500) return BuildingMap(**building_map.data) async def get_doors(self) -> list[Door]: diff --git a/packages/api-server/api_server/repositories/tasks.py b/packages/api-server/api_server/repositories/tasks.py index 38c45a5b6..19e64d0c0 100644 --- a/packages/api-server/api_server/repositories/tasks.py +++ b/packages/api-server/api_server/repositories/tasks.py @@ -34,22 +34,23 @@ def __init__(self, user: User): async def save_task_request(self, task_id: str, task_request: TaskRequest) -> None: await DbTaskRequest.update_or_create( - {"request": task_request.json()}, id_=task_id + {"request": task_request.model_dump_json()}, id_=task_id ) async def get_task_request(self, task_id: str) -> Optional[TaskRequest]: result = await DbTaskRequest.get_or_none(id_=task_id) if result is None: return None + if not isinstance(result.request, dict): + logger.error(f"request is not a dict: {type(result.request)}") + raise HTTPException(500) return TaskRequest(**result.request) async def save_task_state(self, task_state: TaskState) -> None: await DbTaskState.update_or_create( { - "data": task_state.json(), - "category": task_state.category.__root__ - if task_state.category - else None, + "data": task_state.model_dump_json(), + "category": task_state.category.root if task_state.category else None, "assigned_to": task_state.assigned_to.name if task_state.assigned_to else None, @@ -86,6 +87,9 @@ async def get_task_state(self, task_id: str) -> Optional[TaskState]: result = await DbTaskState.get_or_none(id_=task_id) if result is None: return None + if not isinstance(result.data, dict): + logger.error(f"data is not a dict: {type(result.data)}") + raise HTTPException(500) return TaskState(**result.data) async def get_task_log( @@ -122,7 +126,7 @@ async def get_task_log( events[db_event.event] = [LogEntry(**dict(x)) for x in db_event.log] phase.events = events phases[db_phase.phase] = phase - return TaskEventLog.construct( + return TaskEventLog.model_construct( task_id=result.task_id, log=[LogEntry(**dict(x)) for x in result.log], phases=phases, @@ -141,7 +145,7 @@ async def _saveEventLogs( )[0] for log in logs: await ttm.TaskEventLogPhasesEventsLog.create( - event=db_event, **log.dict() + event=db_event, **log.model_dump() ) async def _savePhaseLogs( @@ -157,7 +161,7 @@ async def _savePhaseLogs( for log in phase.log: await ttm.TaskEventLogPhasesLog.create( phase=db_phase, - **log.dict(), + **log.model_dump(), ) if phase.events: await self._saveEventLogs(db_phase, phase.events) @@ -207,8 +211,8 @@ async def save_log_acknowledged_task_completion( task_state.phases = { **task_state.phases, next_phase_key: Phase( - id=Id(__root__=next_phase_key), - category=Category(__root__="Task completed"), + id=Id(root=next_phase_key), + category=Category(root="Task completed"), detail=None, unix_millis_start_time=None, unix_millis_finish_time=None, diff --git a/packages/api-server/api_server/rmf_io/book_keeper.py b/packages/api-server/api_server/rmf_io/book_keeper.py index b6afcc912..0061a0c62 100644 --- a/packages/api-server/api_server/rmf_io/book_keeper.py +++ b/packages/api-server/api_server/rmf_io/book_keeper.py @@ -116,7 +116,7 @@ def _create_task(self, coro: Coroutine): @staticmethod def _report_health(health: BasicHealth, logger: logging.Logger): - message = health.json() + message = health.model_dump_json() if health.health_status == HealthStatus.UNHEALTHY: logger.warning(message) elif health.health_status == HealthStatus.DEAD: @@ -129,7 +129,7 @@ async def update(building_map: BuildingMap | None): if not building_map: return await building_map.save() - self._loggers.building_map.info(json.dumps(building_map.dict())) + self._loggers.building_map.info(json.dumps(building_map.model_dump())) self._subscriptions.append( self.rmf.building_map.subscribe(lambda x: self._create_task(update(x))) @@ -138,7 +138,7 @@ async def update(building_map: BuildingMap | None): def _record_door_state(self): async def update(door_state: DoorState): await door_state.save() - self._loggers.door_state.info(json.dumps(door_state.dict())) + self._loggers.door_state.info(json.dumps(door_state.model_dump())) self._subscriptions.append( self.rmf.door_states.subscribe(lambda x: self._create_task(update(x))) @@ -147,7 +147,7 @@ async def update(door_state: DoorState): def _record_door_health(self): async def update(health: DoorHealth): await ttm.DoorHealth.update_or_create( - health.dict(exclude={"id_"}), id_=health.id_ + health.model_dump(exclude={"id_"}), id_=health.id_ ) self._report_health(health, self._loggers.door_health) @@ -158,7 +158,7 @@ async def update(health: DoorHealth): def _record_lift_state(self): async def update(lift_state: LiftState): await lift_state.save() - self._loggers.lift_state.info(lift_state.json()) + self._loggers.lift_state.info(lift_state.model_dump_json()) self._subscriptions.append( self.rmf.lift_states.subscribe(lambda x: self._create_task(update(x))) @@ -167,7 +167,7 @@ async def update(lift_state: LiftState): def _record_lift_health(self): async def update(health: LiftHealth): await ttm.LiftHealth.update_or_create( - health.dict(exclude={"id_"}), id_=health.id_ + health.model_dump(exclude={"id_"}), id_=health.id_ ) self._report_health(health, self._loggers.lift_health) @@ -178,7 +178,7 @@ async def update(health: LiftHealth): def _record_dispenser_state(self): async def update(dispenser_state: DispenserState): await dispenser_state.save() - self._loggers.dispenser_state.info(dispenser_state.json()) + self._loggers.dispenser_state.info(dispenser_state.model_dump_json()) self._subscriptions.append( self.rmf.dispenser_states.subscribe(lambda x: self._create_task(update(x))) @@ -187,7 +187,7 @@ async def update(dispenser_state: DispenserState): def _record_dispenser_health(self): async def update(health: DispenserHealth): await ttm.DispenserHealth.update_or_create( - health.dict(exclude={"id_"}), id_=health.id_ + health.model_dump(exclude={"id_"}), id_=health.id_ ) self._report_health(health, self._loggers.dispenser_health) @@ -198,7 +198,7 @@ async def update(health: DispenserHealth): def _record_ingestor_state(self): async def update(ingestor_state: IngestorState): await ingestor_state.save() - self._loggers.ingestor_state.info(ingestor_state.json()) + self._loggers.ingestor_state.info(ingestor_state.model_dump_json()) self._subscriptions.append( self.rmf.ingestor_states.subscribe(lambda x: self._create_task(update(x))) @@ -207,7 +207,7 @@ async def update(ingestor_state: IngestorState): def _record_ingestor_health(self): async def update(health: IngestorHealth): await ttm.IngestorHealth.update_or_create( - health.dict(exclude={"id_"}), id_=health.id_ + health.model_dump(exclude={"id_"}), id_=health.id_ ) self._report_health(health, self._loggers.ingestor_health) diff --git a/packages/api-server/api_server/rmf_io/operators/health.py b/packages/api-server/api_server/rmf_io/operators/health.py index 6a94a23a3..fd46ab673 100644 --- a/packages/api-server/api_server/rmf_io/operators/health.py +++ b/packages/api-server/api_server/rmf_io/operators/health.py @@ -29,6 +29,8 @@ def criticality(health_status: HealthStatus): return 1 if health_status == HealthStatus.DEAD: return 2 + # FIXME + # pylint: disable=broad-exception-raised raise Exception("unknown health status") def get_most_critical(health_statuses): diff --git a/packages/api-server/api_server/rmf_io/test_rmf_service.py b/packages/api-server/api_server/rmf_io/test_rmf_service.py index dcd97f4d4..8a999f5ea 100644 --- a/packages/api-server/api_server/rmf_io/test_rmf_service.py +++ b/packages/api-server/api_server/rmf_io/test_rmf_service.py @@ -25,7 +25,7 @@ def setUpClass(cls) -> None: cls._client_context.init() cls.client_node = rclpy.node.Node( f"test_client{cls._create_node_id()}", context=cls._client_context - ) + ) # type: ignore rclpy has invalid typing cls._client_executor = rclpy.executors.SingleThreadedExecutor( context=cls._client_context ) @@ -44,7 +44,7 @@ def client(): cls.server_node = rclpy.node.Node( f"test_server_{cls._create_node_id()}", context=cls._server_context, - ) + ) # type: ignore rclpy has invalid typing cls._server_executor = rclpy.executors.SingleThreadedExecutor( context=cls._server_context ) diff --git a/packages/api-server/api_server/ros.py b/packages/api-server/api_server/ros.py index c446dc8c0..42b9fb30c 100644 --- a/packages/api-server/api_server/ros.py +++ b/packages/api-server/api_server/ros.py @@ -33,7 +33,7 @@ def startup(): ) else: rclpy.init(args=["--ros-args"] + app_config.ros_args) - _ros_node = rclpy.node.Node("rmf_api_server") + _ros_node = rclpy.node.Node("rmf_api_server") # type: ignore rclpy has invalid typing def shutdown(): diff --git a/packages/api-server/api_server/routes/admin.py b/packages/api-server/api_server/routes/admin.py index ad7600390..b4dd22b67 100644 --- a/packages/api-server/api_server/routes/admin.py +++ b/packages/api-server/api_server/routes/admin.py @@ -47,7 +47,7 @@ def admin_dep(user: User = Depends(user_dep)): router = APIRouter(tags=["Admin"], dependencies=[Depends(admin_dep)]) -@router.get("/users", response_model=tuple[str]) +@router.get("/users", response_model=list[str]) async def get_users( rmf_repo: RmfRepository = Depends(rmf_repo_dep), pagination: Pagination = Depends(pagination_query), diff --git a/packages/api-server/api_server/routes/internal.py b/packages/api-server/api_server/routes/internal.py index 1493b8697..246a8625f 100644 --- a/packages/api-server/api_server/routes/internal.py +++ b/packages/api-server/api_server/routes/internal.py @@ -57,7 +57,7 @@ async def process_msg(msg: Dict[str, Any], fleet_repo: FleetRepository) -> None: await task_repo.save_task_state(task_state) task_events.task_states.on_next(task_state) - if task_state.status == mdl.Status.completed: + if task_state.status == mdl.TaskStatus.completed: alert = await alert_repo.create_alert(task_state.booking.id, "task") if alert is not None: alert_events.alerts.on_next(alert) diff --git a/packages/api-server/api_server/routes/main.py b/packages/api-server/api_server/routes/main.py index e379640b6..5ed6845de 100644 --- a/packages/api-server/api_server/routes/main.py +++ b/packages/api-server/api_server/routes/main.py @@ -29,7 +29,7 @@ async def get_effective_permissions(user: User = Depends(user_dep)): .values("authz_grp", "action") ) return [ - Permission.construct(authz_grp=p["authz_grp"], action=p["action"]) + Permission.model_construct(authz_grp=p["authz_grp"], action=p["action"]) for p in perms ] diff --git a/packages/api-server/api_server/routes/tasks/favorite_tasks.py b/packages/api-server/api_server/routes/tasks/favorite_tasks.py index b7b18ab47..da07a3f02 100644 --- a/packages/api-server/api_server/routes/tasks/favorite_tasks.py +++ b/packages/api-server/api_server/routes/tasks/favorite_tasks.py @@ -8,6 +8,7 @@ from api_server.authenticator import user_dep from api_server.fast_io import FastIORouter +from api_server.logger import logger from api_server.models import User from api_server.models import tortoise_models as ttm @@ -52,22 +53,35 @@ async def get_favorites_tasks( user: User = Depends(user_dep), ): favorites_tasks = await ttm.TaskFavorite.filter(user=user.username) - return [ - TaskFavoritePydantic( - id=favorite_task.id, - name=favorite_task.name, - unix_millis_earliest_start_time=int( - favorite_task.unix_millis_earliest_start_time.strftime("%Y%m%d%H%M%S") - ), - priority=favorite_task.priority if favorite_task.priority else None, - category=favorite_task.category, - description=favorite_task.description - if favorite_task.description - else None, - user=user.username, + result: list[TaskFavoritePydantic] = [] + for favorite_task in favorites_tasks: + if not isinstance(favorite_task.priority, dict): + logger.error(f"priority is not a dict: {type(favorite_task.priority)}") + raise HTTPException(500) + if not isinstance(favorite_task.description, dict): + logger.error( + f"description is not a dict: {type(favorite_task.description)}" + ) + raise HTTPException(500) + + result.append( + TaskFavoritePydantic( + id=favorite_task.id, + name=favorite_task.name, + unix_millis_earliest_start_time=int( + favorite_task.unix_millis_earliest_start_time.strftime( + "%Y%m%d%H%M%S" + ) + ), + priority=favorite_task.priority if favorite_task.priority else None, + category=favorite_task.category, + description=favorite_task.description + if favorite_task.description + else None, + user=user.username, + ) ) - for favorite_task in favorites_tasks - ] + return result @router.delete("/{favorite_task_id}") diff --git a/packages/api-server/api_server/routes/tasks/scheduled_tasks.py b/packages/api-server/api_server/routes/tasks/scheduled_tasks.py index 992e8f9da..40164d812 100644 --- a/packages/api-server/api_server/routes/tasks/scheduled_tasks.py +++ b/packages/api-server/api_server/routes/tasks/scheduled_tasks.py @@ -12,7 +12,14 @@ from api_server.dependencies import pagination_query from api_server.fast_io import FastIORouter from api_server.logger import logger -from api_server.models import DispatchTaskRequest, Pagination, TaskRequest, User +from api_server.models import ( + DispatchTaskRequest, + Pagination, + ScheduledTask, + ScheduledTaskSchedule, + TaskRequest, + User, +) from api_server.models import tortoise_models as ttm from api_server.repositories import TaskRepository, task_repo_dep @@ -23,7 +30,7 @@ class PostScheduledTaskRequest(BaseModel): task_request: TaskRequest - schedules: list[ttm.ScheduledTaskSchedulePydantic] + schedules: list[ScheduledTaskSchedule] async def schedule_task(task: ttm.ScheduledTask, task_repo: TaskRepository): @@ -38,6 +45,9 @@ async def schedule_task(task: ttm.ScheduledTask, task_repo: TaskRepository): # don't allow creating scheduled tasks that never runs raise HTTPException(422, "Task is never going to run") + if not isinstance(task.task_request, dict): + logger.error(f"task_request is not a dict: {type(task.task_request)}") + raise HTTPException(500) req = DispatchTaskRequest( type="dispatch_task_request", request=TaskRequest(**task.task_request), @@ -60,7 +70,7 @@ def do(): logger.info(f"scheduled task [{task.pk}]") -@router.post("", status_code=201, response_model=ttm.ScheduledTaskPydantic) +@router.post("", status_code=201, response_model=ScheduledTask) async def post_scheduled_task( scheduled_task_request: PostScheduledTaskRequest, user: User = Depends(user_dep), @@ -83,24 +93,26 @@ async def post_scheduled_task( try: async with tortoise.transactions.in_transaction(): scheduled_task = await ttm.ScheduledTask.create( - task_request=scheduled_task_request.task_request.json( + task_request=scheduled_task_request.task_request.model_dump_json( exclude_none=True ), created_by=user.username, ) schedules = [ - ttm.ScheduledTaskSchedule(scheduled_task=scheduled_task, **x.dict()) + ttm.ScheduledTaskSchedule( + scheduled_task=scheduled_task, **x.model_dump() + ) for x in scheduled_task_request.schedules ] await ttm.ScheduledTaskSchedule.bulk_create(schedules) await schedule_task(scheduled_task, task_repo) - return await ttm.ScheduledTaskPydantic.from_tortoise_orm(scheduled_task) + return ScheduledTask.model_validate(scheduled_task) except schedule.ScheduleError as e: raise HTTPException(422, str(e)) from e -@router.get("", response_model=ttm.ScheduledTaskPydanticList) +@router.get("", response_model=list[ScheduledTask]) async def get_scheduled_tasks( start_before: datetime = Query( description="Only return scheduled tasks that start before given timestamp" @@ -116,16 +128,19 @@ async def get_scheduled_tasks( | Q(schedules__start_from__isnull=True), Q(schedules__until__gte=until_after) | Q(schedules__until__isnull=True), ) + .prefetch_related("schedules") .distinct() .limit(pagination.limit) .offset(pagination.offset) ) if pagination.order_by: q.order_by(*pagination.order_by.split(",")) - return await ttm.ScheduledTaskPydanticList.from_queryset(q) + results = await q + await ttm.ScheduledTask.fetch_for_list(results) + return [ScheduledTask.model_validate(x) for x in results] -@router.get("/{task_id}", response_model=ttm.ScheduledTaskPydantic) +@router.get("/{task_id}", response_model=ScheduledTask) async def get_scheduled_task(task_id: int) -> ttm.ScheduledTask: task = await ttm.ScheduledTask.get_or_none(id=task_id).prefetch_related("schedules") if task is None: @@ -144,6 +159,9 @@ async def del_scheduled_tasks_event( raise HTTPException(404) event_date_str = event_date.isoformat() + if not isinstance(task.except_dates, list): + logger.error(f"task.except_dates is not a list: {type(task.except_dates)}") + raise HTTPException(500) task.except_dates.append(event_date_str[:10]) await task.save() @@ -153,9 +171,7 @@ async def del_scheduled_tasks_event( await schedule_task(task, task_repo) -@router.post( - "/{task_id}/update", status_code=201, response_model=ttm.ScheduledTaskPydantic -) +@router.post("/{task_id}/update", status_code=201, response_model=ScheduledTask) async def update_schedule_task( task_id: int, scheduled_task_request: PostScheduledTaskRequest, @@ -175,6 +191,11 @@ async def update_schedule_task( async with tortoise.transactions.in_transaction(): if except_date: event_date_str = except_date.isoformat() + if not isinstance(task.except_dates, list): + logger.error( + f"task.except_dates is not a list: {type(task.except_dates)}" + ) + raise HTTPException(500) task.except_dates.append(event_date_str[:10]) await task.save() @@ -184,13 +205,15 @@ async def update_schedule_task( await schedule_task(task, task_repo) scheduled_task = await ttm.ScheduledTask.create( - task_request=scheduled_task_request.task_request.json( + task_request=scheduled_task_request.task_request.model_dump_json( exclude_none=True ), created_by=task.created_by, ) schedules = [ - ttm.ScheduledTaskSchedule(scheduled_task=scheduled_task, **x.dict()) + ttm.ScheduledTaskSchedule( + scheduled_task=scheduled_task, **x.model_dump() + ) for x in scheduled_task_request.schedules ] await ttm.ScheduledTaskSchedule.bulk_create(schedules) @@ -205,7 +228,7 @@ async def update_schedule_task( # 4. Create new schedules based on the requested data. task.update_from_dict( { - "task_request": scheduled_task_request.task_request.json( + "task_request": scheduled_task_request.task_request.model_dump_json( exclude_none=True ), "except_dates": [], @@ -219,7 +242,7 @@ async def update_schedule_task( await task.save() schedules = [ - ttm.ScheduledTaskSchedule(scheduled_task=task, **x.dict()) + ttm.ScheduledTaskSchedule(scheduled_task=task, **x.model_dump()) for x in scheduled_task_request.schedules ] diff --git a/packages/api-server/api_server/routes/tasks/tasks.py b/packages/api-server/api_server/routes/tasks/tasks.py index 69db27602..b0b9f5b6c 100644 --- a/packages/api-server/api_server/routes/tasks/tasks.py +++ b/packages/api-server/api_server/routes/tasks/tasks.py @@ -67,12 +67,12 @@ async def query_task_states( filters["unix_millis_finish_time__gte"] = finish_time_between[0] filters["unix_millis_finish_time__lte"] = finish_time_between[1] if status is not None: - valid_values = [member.value for member in mdl.Status] + valid_values = [member.value for member in mdl.TaskStatus] filters["status__in"] = [] for status_string in status.split(","): if status_string not in valid_values: continue - filters["status__in"].append(mdl.Status(status_string)) + filters["status__in"].append(mdl.TaskStatus(status_string)) return await task_repo.query_task_states(DbTaskState.filter(**filters), pagination) @@ -129,34 +129,38 @@ async def sub_task_log(_req: SubscriptionRequest, task_id: str): async def post_activity_discovery( request: mdl.ActivityDiscoveryRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) @router.post("/cancel_task", response_model=mdl.TaskCancelResponse) async def post_cancel_task( request: mdl.CancelTaskRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) @router.post( "/dispatch_task", - response_model=mdl.TaskDispatchResponseItem, - responses={400: {"model": mdl.TaskDispatchResponseItem1}}, + response_model=mdl.TaskDispatchResponse, + responses={400: {"model": mdl.TaskDispatchResponse}}, ) async def post_dispatch_task( request: mdl.DispatchTaskRequest = Body(...), task_repo: TaskRepository = Depends(task_repo_dep), ): - resp = mdl.TaskDispatchResponse.parse_raw( - await tasks_service().call(request.json(exclude_none=True)) + resp = mdl.TaskDispatchResponse.model_validate_json( + await tasks_service().call(request.model_dump_json(exclude_none=True)) ) - if not resp.__root__.success: - return RawJSONResponse(resp.json(), 400) - task_state = cast(mdl.TaskDispatchResponseItem, resp.__root__).state + if not resp.root.success: + return RawJSONResponse(resp.model_dump_json(), 400) + task_state = cast(mdl.TaskDispatchResponse1, resp.root).state await task_repo.save_task_state(task_state) await task_repo.save_task_request(task_state.booking.id, request.request) - return resp.__root__ + return resp @router.post( @@ -168,61 +172,75 @@ async def post_robot_task( request: mdl.RobotTaskRequest = Body(...), task_repo: TaskRepository = Depends(task_repo_dep), ): - resp = mdl.RobotTaskResponse.parse_raw( - await tasks_service().call(request.json(exclude_none=True)) + resp = mdl.RobotTaskResponse.model_validate_json( + await tasks_service().call(request.model_dump_json(exclude_none=True)) ) - if not resp.__root__.__root__.success: - return RawJSONResponse(resp.json(), 400) + if not resp.root.root.success: + return RawJSONResponse(resp.model_dump_json(), 400) await task_repo.save_task_state( - cast(mdl.TaskDispatchResponseItem, resp.__root__.__root__).state + cast(mdl.TaskDispatchResponse1, resp.root.root).state ) - return resp.__root__ + return resp @router.post("/interrupt_task", response_model=mdl.TaskInterruptionResponse) async def post_interrupt_task( request: mdl.TaskInterruptionRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) @router.post("/kill_task", response_model=mdl.TaskKillResponse) async def post_kill_task( request: mdl.TaskKillRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) @router.post("/resume_task", response_model=mdl.TaskResumeResponse) async def post_resume_task( request: mdl.TaskResumeRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) @router.post("/rewind_task", response_model=mdl.TaskRewindResponse) async def post_rewind_task( request: mdl.TaskRewindRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) @router.post("/skip_phase", response_model=mdl.SkipPhaseResponse) async def post_skip_phase( request: mdl.TaskPhaseSkipRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) @router.post("/task_discovery", response_model=mdl.TaskDiscovery) async def post_task_discovery( request: mdl.TaskDiscoveryRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) @router.post("/undo_skip_phase", response_model=mdl.UndoPhaseSkipResponse) async def post_undo_skip_phase( request: mdl.UndoPhaseSkipRequest = Body(...), ): - return RawJSONResponse(await tasks_service().call(request.json(exclude_none=True))) + return RawJSONResponse( + await tasks_service().call(request.model_dump_json(exclude_none=True)) + ) diff --git a/packages/api-server/api_server/routes/tasks/test_favorite_tasks.py b/packages/api-server/api_server/routes/tasks/test_favorite_tasks.py index 338cca55d..c0b4d1643 100644 --- a/packages/api-server/api_server/routes/tasks/test_favorite_tasks.py +++ b/packages/api-server/api_server/routes/tasks/test_favorite_tasks.py @@ -29,4 +29,7 @@ def test_delete_favorite(self): resp = self.client.delete(f"/favorite_tasks/{favorite_task_id}") after_delete = self.test_get_task_favorite() self.assertEqual(200, resp.status_code) - self.assertEqual(len(before_delete.json()) - len(after_delete.json()), 1) + self.assertEqual( + len(before_delete.json()) - len(after_delete.json()), + 1, + ) diff --git a/packages/api-server/api_server/routes/tasks/test_scheduled_tasks.py b/packages/api-server/api_server/routes/tasks/test_scheduled_tasks.py index 90283df78..81f24bc89 100644 --- a/packages/api-server/api_server/routes/tasks/test_scheduled_tasks.py +++ b/packages/api-server/api_server/routes/tasks/test_scheduled_tasks.py @@ -150,7 +150,7 @@ def test_get_scheduled_tasks_return_indefinite_tasks(self): ], } resp = self.client.post("/scheduled_tasks", json=scheduled_task) - self.assertEqual(201, resp.status_code) + self.assertEqual(201, resp.status_code, resp.json()) task = resp.json() resp = self.client.get("/scheduled_tasks?start_before=0&until_after=0") diff --git a/packages/api-server/api_server/routes/tasks/test_tasks.py b/packages/api-server/api_server/routes/tasks/test_tasks.py index d5d4549b2..78a4d72c4 100644 --- a/packages/api-server/api_server/routes/tasks/test_tasks.py +++ b/packages/api-server/api_server/routes/tasks/test_tasks.py @@ -1,4 +1,3 @@ -import asyncio from typing import cast from unittest.mock import patch from uuid import uuid4 @@ -17,12 +16,21 @@ def setUpClass(cls): task_ids = [uuid4()] cls.task_states = [make_task_state(task_id=f"test_{x}") for x in task_ids] cls.task_logs = [make_task_log(task_id=f"test_{x}") for x in task_ids] + cls.clsSetupErr: str | None = None + + if cls.client.portal is None: + cls.clsSetupErr = "missing client portal, is the client context entered?" + return repo = TaskRepository(cls.admin_user) for x in cls.task_states: - asyncio.run(repo.save_task_state(x)) + cls.client.portal.call(repo.save_task_state, x) for x in cls.task_logs: - asyncio.run(repo.save_task_log(x)) + cls.client.portal.call(repo.save_task_log, x) + + def setUp(self): + super().setUp() + self.assertIsNone(self.clsSetupErr) def test_get_task_state(self): resp = self.client.get(f"/tasks/{self.task_states[0].booking.id}/state") @@ -41,10 +49,10 @@ def test_query_task_states(self): def test_sub_task_state(self): task_id = self.task_states[0].booking.id - gen = self.subscribe_sio(f"/tasks/{task_id}/state") - task_events.task_states.on_next(self.task_states[0]) - state = next(gen) - self.assertEqual(task_id, cast(TaskState, state).booking.id) + with self.subscribe_sio(f"/tasks/{task_id}/state") as sub: + task_events.task_states.on_next(self.task_states[0]) + state = TaskState(**next(sub)) + self.assertEqual(task_id, cast(TaskState, state).booking.id) def test_get_task_log(self): resp = self.client.get( @@ -59,7 +67,7 @@ def test_get_task_log(self): self.assertIsNotNone(logs.log) return self.assertEqual(1, len(logs.log)) - log = logs.log[0] + log = logs.log[0] # pylint: disable=unsubscriptable-object self.assertEqual(0, log.seq) self.assertEqual(mdl.Tier.info, log.tier) self.assertEqual(1636388410000, log.unix_millis_time) @@ -74,7 +82,7 @@ def test_get_task_log(self): self.assertIn("2", logs.phases) # check correct log - phase1 = logs.phases["1"] + phase1 = logs.phases["1"] # pylint: disable=unsubscriptable-object phase1_log = phase1.log if phase1_log is None: self.assertIsNotNone(phase1_log) @@ -116,15 +124,10 @@ def test_get_task_log(self): def test_sub_task_log(self): task_id = self.task_logs[0].task_id - gen = self.subscribe_sio(f"/tasks/{task_id}/log") - with self.client.websocket_connect("/_internal") as ws: - ws.send_text( - mdl.TaskEventLogUpdate( - type="task_log_update", data=self.task_logs[0] - ).json() - ) - log = next(gen) - self.assertEqual(task_id, cast(TaskEventLog, log).task_id) + with self.subscribe_sio(f"/tasks/{task_id}/log") as sub: + task_events.task_event_logs.on_next(self.task_logs[0]) + log = TaskEventLog(**next(sub)) + self.assertEqual(task_id, cast(TaskEventLog, log).task_id) def test_activity_discovery(self): with patch.object(tasks_service(), "call") as mock: @@ -133,7 +136,7 @@ def test_activity_discovery(self): "/tasks/activity_discovery", content=mdl.ActivityDiscoveryRequest( type="activitiy_discovery_request", - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -144,7 +147,7 @@ def test_cancel_task(self): "/tasks/activity_discovery", content=mdl.ActivityDiscoveryRequest( type="activitiy_discovery_request" - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -155,7 +158,7 @@ def test_interrupt_task(self): "/tasks/interrupt_task", content=mdl.TaskInterruptionRequest( type="interrupt_task_request", task_id="task_id", labels=None - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -166,7 +169,7 @@ def test_kill_task(self): "/tasks/kill_task", content=mdl.TaskKillRequest( type="kill_task_request", task_id="task_id", labels=None - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -177,7 +180,7 @@ def test_resume_task(self): "/tasks/resume_task", content=mdl.TaskResumeRequest( type=None, for_task=None, for_tokens=None, labels=None - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -188,7 +191,7 @@ def test_rewind_task(self): "/tasks/rewind_task", content=mdl.TaskRewindRequest( type="rewind_task_request", task_id="task_id", phase_id=0 - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -202,7 +205,7 @@ def test_skip_phase(self): task_id="task_id", phase_id=0, labels=None, - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -211,9 +214,9 @@ def test_task_discovery(self): mock.return_value = "{}" resp = self.client.post( "/tasks/task_discovery", - content=mdl.TaskDiscoveryRequest(type="task_discovery_request").json( - exclude_none=True - ), + content=mdl.TaskDiscoveryRequest( + type="task_discovery_request" + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -224,10 +227,7 @@ def test_undo_skip_phase(self): "/tasks/undo_skip_phase", content=mdl.UndoPhaseSkipRequest( type="undo_phase_skip_request", - for_task=None, - for_tokens=None, - labels=None, - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) self.assertEqual(200, resp.status_code, resp.content) @@ -241,13 +241,8 @@ def post_task_request(self): request=mdl.TaskRequest( category="test", description="description", - unix_millis_earliest_start_time=None, - unix_millis_request_time=None, - labels=None, - priority=None, - requester=None, ), - ).json(exclude_none=True), + ).model_dump_json(exclude_none=True), ) def test_success(self): diff --git a/packages/api-server/api_server/routes/test_dispensers.py b/packages/api-server/api_server/routes/test_dispensers.py index 3cfcb98fd..72b1ee91f 100644 --- a/packages/api-server/api_server/routes/test_dispensers.py +++ b/packages/api-server/api_server/routes/test_dispensers.py @@ -1,5 +1,5 @@ import asyncio -from typing import List, cast +from typing import List from uuid import uuid4 from api_server.models import DispenserState @@ -32,7 +32,8 @@ def test_get_dispenser_state(self): self.assertEqual(self.dispenser_states[0].guid, state["guid"]) def test_sub_dispenser_state(self): - msg = next( - self.subscribe_sio(f"/dispensers/{self.dispenser_states[0].guid}/state") - ) - self.assertEqual(self.dispenser_states[0].guid, cast(DispenserState, msg).guid) + with self.subscribe_sio( + f"/dispensers/{self.dispenser_states[0].guid}/state" + ) as sub: + msg = DispenserState(**next(sub)) + self.assertEqual(self.dispenser_states[0].guid, msg.guid) diff --git a/packages/api-server/api_server/routes/test_doors.py b/packages/api-server/api_server/routes/test_doors.py index cb41e96a3..677f407ee 100644 --- a/packages/api-server/api_server/routes/test_doors.py +++ b/packages/api-server/api_server/routes/test_doors.py @@ -1,5 +1,4 @@ import asyncio -from typing import cast from uuid import uuid4 from rmf_door_msgs.msg import DoorMode as RmfDoorMode @@ -34,8 +33,9 @@ def test_get_door_state(self): self.assertEqual(self.door_states[0].door_name, state["door_name"]) def test_sub_door_state(self): - msg = next(self.subscribe_sio(f"/doors/{self.door_states[0].door_name}/state")) - self.assertEqual(self.door_states[0].door_name, cast(DoorState, msg).door_name) + with self.subscribe_sio(f"/doors/{self.door_states[0].door_name}/state") as sub: + msg = DoorState(**next(sub)) + self.assertEqual(self.door_states[0].door_name, msg.door_name) def test_post_door_request(self): resp = self.client.post( diff --git a/packages/api-server/api_server/routes/test_fleets.py b/packages/api-server/api_server/routes/test_fleets.py index 02addb204..4a1f257de 100644 --- a/packages/api-server/api_server/routes/test_fleets.py +++ b/packages/api-server/api_server/routes/test_fleets.py @@ -1,47 +1,55 @@ -from typing import cast - from api_server.models import FleetLog, FleetLogUpdate, FleetState, FleetStateUpdate +from api_server.rmf_io.events import fleet_events from api_server.test import AppFixture, make_fleet_log, make_fleet_state class TestFleetsRoute(AppFixture): def test_fleet_states(self): - # subscribe to fleet states fleet_state = make_fleet_state() - gen = self.subscribe_sio(f"/fleets/{fleet_state.name}/state") - with self.client.websocket_connect("/_internal") as ws: + with self.client.websocket_connect("/_internal") as ws, self.subscribe_sio( + f"/fleets/{fleet_state.name}/state" + ) as sub: ws.send_text( - FleetStateUpdate(type="fleet_state_update", data=fleet_state).json() + FleetStateUpdate( + type="fleet_state_update", data=fleet_state + ).model_dump_json() ) - msg = next(gen) - self.assertEqual(fleet_state.name, cast(FleetState, msg).name) + msg = FleetState(**next(sub)) + self.assertEqual(fleet_state.name, msg.name) - # get fleet state - resp = self.client.get(f"/fleets/{fleet_state.name}/state") - self.assertEqual(200, resp.status_code) - state = resp.json() - self.assertEqual(fleet_state.name, state["name"]) + # get fleet state + resp = self.client.get(f"/fleets/{fleet_state.name}/state") + self.assertEqual(200, resp.status_code) + state = resp.json() + self.assertEqual(fleet_state.name, state["name"]) - # query fleets - resp = self.client.get(f"/fleets?fleet_name={fleet_state.name}") - self.assertEqual(200, resp.status_code) - resp_json = resp.json() - self.assertEqual(1, len(resp_json)) - self.assertEqual(fleet_state.name, resp_json[0]["name"]) + # query fleets + resp = self.client.get(f"/fleets?fleet_name={fleet_state.name}") + self.assertEqual(200, resp.status_code) + resp_json = resp.json() + self.assertEqual(1, len(resp_json)) + self.assertEqual(fleet_state.name, resp_json[0]["name"]) def test_fleet_logs(self): fleet_log = make_fleet_log() - gen = self.subscribe_sio(f"/fleets/{fleet_log.name}/log") - with self.client.websocket_connect("/_internal") as ws: - ws.send_text(FleetLogUpdate(type="fleet_log_update", data=fleet_log).json()) + with self.client.websocket_connect("/_internal") as ws, self.subscribe_sio( + f"/fleets/{fleet_log.name}/log" + ) as sub: + fleet_events.fleet_logs.on_next(fleet_log) + + ws.send_text( + FleetLogUpdate( + type="fleet_log_update", data=fleet_log + ).model_dump_json() + ) - msg = next(gen) - self.assertEqual(fleet_log.name, cast(FleetLog, msg).name) + msg = FleetLog(**next(sub)) + self.assertEqual(fleet_log.name, msg.name) - # Since there are no sample fleet logs, we cannot check the log contents - resp = self.client.get(f"/fleets/{fleet_log.name}/log") - self.assertEqual(200, resp.status_code) - self.assertEqual(fleet_log.name, resp.json()["name"]) + # Since there are no sample fleet logs, we cannot check the log contents + resp = self.client.get(f"/fleets/{fleet_log.name}/log") + self.assertEqual(200, resp.status_code) + self.assertEqual(fleet_log.name, resp.json()["name"]) diff --git a/packages/api-server/api_server/routes/test_ingestors.py b/packages/api-server/api_server/routes/test_ingestors.py index fe55690dd..20916f697 100644 --- a/packages/api-server/api_server/routes/test_ingestors.py +++ b/packages/api-server/api_server/routes/test_ingestors.py @@ -1,5 +1,5 @@ import asyncio -from typing import List, cast +from typing import List from uuid import uuid4 from api_server.models import IngestorState @@ -32,7 +32,8 @@ def test_get_ingestor_state(self): self.assertEqual(self.ingestor_states[0].guid, state["guid"]) def test_sub_ingestor_state(self): - msg = next( - self.subscribe_sio(f"/ingestors/{self.ingestor_states[0].guid}/state") - ) - self.assertEqual(self.ingestor_states[0].guid, cast(IngestorState, msg).guid) + with self.subscribe_sio( + f"/ingestors/{self.ingestor_states[0].guid}/state" + ) as sub: + msg = IngestorState(**next(sub)) + self.assertEqual(self.ingestor_states[0].guid, msg.guid) diff --git a/packages/api-server/api_server/routes/test_lifts.py b/packages/api-server/api_server/routes/test_lifts.py index e2f56c0a5..0c8f2c898 100644 --- a/packages/api-server/api_server/routes/test_lifts.py +++ b/packages/api-server/api_server/routes/test_lifts.py @@ -1,5 +1,4 @@ import asyncio -from typing import cast from uuid import uuid4 from rmf_lift_msgs.msg import LiftRequest as RmfLiftRequest @@ -33,8 +32,9 @@ def test_get_lift_state(self): self.assertEqual(self.lift_states[0].lift_name, state["lift_name"]) def test_sub_lift_state(self): - msg = next(self.subscribe_sio(f"/lifts/{self.lift_states[0].lift_name}/state")) - self.assertEqual(self.lift_states[0].lift_name, cast(LiftState, msg).lift_name) + with self.subscribe_sio(f"/lifts/{self.lift_states[0].lift_name}/state") as sub: + msg = LiftState(**next(sub)) + self.assertEqual(self.lift_states[0].lift_name, msg.lift_name) def test_request_lift(self): resp = self.client.post( diff --git a/packages/api-server/api_server/static/redoc.standalone.js b/packages/api-server/api_server/static/redoc.standalone.js index 6c1bc2743..e339b28fe 100644 --- a/packages/api-server/api_server/static/redoc.standalone.js +++ b/packages/api-server/api_server/static/redoc.standalone.js @@ -5,7 +5,7 @@ || ${s} === "boolean" || ${o} === null`).assign(l,a._`[${o}]`)}}r.else(),h(e),r.endIf(),r.if(a._`${l} !== undefined`,(()=>{r.assign(o,l),function({gen:e,parentData:t,parentDataProperty:n},r){e.if(a._`${t} !== undefined`,(()=>e.assign(a._`${t}[${n}]`,r)))}(e,l)}))}(e,t,s):h(e)}))}return c};const u=new Set(["string","number","integer","boolean","null"]);function p(e,t,n,r=l.Correct){const o=r===l.Correct?a.operators.EQ:a.operators.NEQ;let i;switch(e){case"null":return a._`${t} ${o} null`;case"array":i=a._`Array.isArray(${t})`;break;case"object":i=a._`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=s(a._`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=s();break;default:return a._`typeof ${t} ${o} ${e}`}return r===l.Correct?i:a.not(i);function s(e=a.nil){return a.and(a._`typeof ${t} == "number"`,e,n?a._`isFinite(${t})`:a.nil)}}function d(e,t,n,r){if(1===e.length)return p(e[0],t,n,r);let o;const i=s.toHash(e);if(i.array&&i.object){const e=a._`typeof ${t} != "object"`;o=i.null?e:a._`!${t} || ${e}`,delete i.null,delete i.array,delete i.object}else o=a.nil;i.number&&delete i.integer;for(const e in i)o=a.and(o,p(e,t,n,r));return o}t.checkDataType=p,t.checkDataTypes=d;const f={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>"string"==typeof e?a._`{type: ${e}}`:a._`{type: ${t}}`};function h(e){const t=function(e){const{gen:t,data:n,schema:r}=e,o=s.schemaRefOrVal(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:o,schemaValue:o,parentSchema:r,params:{},it:e}}(e);i.reportError(t,f)}t.reportTypeError=h},2537:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;const r=n(4475),o=n(6124);function i(e,t,n){const{gen:i,compositeRule:a,data:s,opts:l}=e;if(void 0===n)return;const c=r._`${s}${r.getProperty(t)}`;if(a)return void o.checkStrictMode(e,`default is ignored for: ${c}`);let u=r._`${c} === undefined`;"empty"===l.useDefaults&&(u=r._`${u} || ${c} === null || ${c} === ""`),i.if(u,r._`${c} = ${r.stringify(n)}`)}t.assignDefaults=function(e,t){const{properties:n,items:r}=e.schema;if("object"===t&&n)for(const t in n)i(e,t,n[t].default);else"array"===t&&Array.isArray(r)&&r.forEach(((t,n)=>i(e,n,t.default)))}},1321:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const r=n(7627),o=n(7927),i=n(4566),a=n(7927),s=n(2537),l=n(6488),c=n(4688),u=n(4475),p=n(5018),d=n(9826),f=n(6124),h=n(1885);function m({gen:e,validateName:t,schema:n,schemaEnv:r,opts:o},i){o.code.es5?e.func(t,u._`${p.default.data}, ${p.default.valCxt}`,r.$async,(()=>{e.code(u._`"use strict"; ${g(n,o)}`),function(e,t){e.if(p.default.valCxt,(()=>{e.var(p.default.instancePath,u._`${p.default.valCxt}.${p.default.instancePath}`),e.var(p.default.parentData,u._`${p.default.valCxt}.${p.default.parentData}`),e.var(p.default.parentDataProperty,u._`${p.default.valCxt}.${p.default.parentDataProperty}`),e.var(p.default.rootData,u._`${p.default.valCxt}.${p.default.rootData}`),t.dynamicRef&&e.var(p.default.dynamicAnchors,u._`${p.default.valCxt}.${p.default.dynamicAnchors}`)}),(()=>{e.var(p.default.instancePath,u._`""`),e.var(p.default.parentData,u._`undefined`),e.var(p.default.parentDataProperty,u._`undefined`),e.var(p.default.rootData,p.default.data),t.dynamicRef&&e.var(p.default.dynamicAnchors,u._`{}`)}))}(e,o),e.code(i)})):e.func(t,u._`${p.default.data}, ${function(e){return u._`{${p.default.instancePath}="", ${p.default.parentData}, ${p.default.parentDataProperty}, ${p.default.rootData}=${p.default.data}${e.dynamicRef?u._`, ${p.default.dynamicAnchors}={}`:u.nil}}={}`}(o)}`,r.$async,(()=>e.code(g(n,o)).code(i)))}function g(e,t){const n="object"==typeof e&&e[t.schemaId];return n&&(t.code.source||t.code.process)?u._`/*# sourceURL=${n} */`:u.nil}function y({schema:e,self:t}){if("boolean"==typeof e)return!e;for(const n in e)if(t.RULES.all[n])return!0;return!1}function v(e){return"boolean"!=typeof e.schema}function b(e){f.checkUnknownRules(e),function(e){const{schema:t,errSchemaPath:n,opts:r,self:o}=e;t.$ref&&r.ignoreKeywordsWithRef&&f.schemaHasRulesButRef(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}(e)}function w(e,t){if(e.opts.jtd)return k(e,[],!1,t);const n=o.getSchemaTypes(e.schema);k(e,n,!o.coerceAndCheckDataType(e,n),t)}function x({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:o}){const i=n.$comment;if(!0===o.$comment)e.code(u._`${p.default.self}.logger.log(${i})`);else if("function"==typeof o.$comment){const n=u.str`${r}/$comment`,o=e.scopeValue("root",{ref:t.root});e.code(u._`${p.default.self}.opts.$comment(${i}, ${n}, ${o}.schema)`)}}function k(e,t,n,r){const{gen:o,schema:s,data:l,allErrors:c,opts:d,self:h}=e,{RULES:m}=h;function g(f){i.shouldUseGroup(s,f)&&(f.type?(o.if(a.checkDataType(f.type,l,d.strictNumbers)),_(e,f),1===t.length&&t[0]===f.type&&n&&(o.else(),a.reportTypeError(e)),o.endIf()):_(e,f),c||o.if(u._`${p.default.errors} === ${r||0}`))}!s.$ref||!d.ignoreKeywordsWithRef&&f.schemaHasRulesButRef(s,m)?(d.jtd||function(e,t){!e.schemaEnv.meta&&e.opts.strictTypes&&(function(e,t){t.length&&(e.dataTypes.length?(t.forEach((t=>{O(e.dataTypes,t)||S(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)})),e.dataTypes=e.dataTypes.filter((e=>O(t,e)))):e.dataTypes=t)}(e,t),e.opts.allowUnionTypes||function(e,t){t.length>1&&(2!==t.length||!t.includes("null"))&&S(e,"use allowUnionTypes to allow union type keyword")}(e,t),function(e,t){const n=e.self.RULES.all;for(const r in n){const o=n[r];if("object"==typeof o&&i.shouldUseRule(e.schema,o)){const{type:n}=o.definition;n.length&&!n.some((e=>{return r=e,(n=t).includes(r)||"number"===r&&n.includes("integer");var n,r}))&&S(e,`missing type "${n.join(",")}" for keyword "${r}"`)}}}(e,e.dataTypes))}(e,t),o.block((()=>{for(const e of m.rules)g(e);g(m.post)}))):o.block((()=>P(e,"$ref",m.all.$ref.definition)))}function _(e,t){const{gen:n,schema:r,opts:{useDefaults:o}}=e;o&&s.assignDefaults(e,t.type),n.block((()=>{for(const n of t.rules)i.shouldUseRule(r,n)&&P(e,n.keyword,n.definition,t.type)}))}function O(e,t){return e.includes(t)||"integer"===t&&e.includes("number")}function S(e,t){t+=` at "${e.schemaEnv.baseId+e.errSchemaPath}" (strictTypes)`,f.checkStrictMode(e,t,e.opts.strictTypes)}t.validateFunctionCode=function(e){v(e)&&(b(e),y(e))?function(e){const{schema:t,opts:n,gen:r}=e;m(e,(()=>{n.$comment&&t.$comment&&x(e),function(e){const{schema:t,opts:n}=e;void 0!==t.default&&n.useDefaults&&n.strictSchema&&f.checkStrictMode(e,"default is ignored in the schema root")}(e),r.let(p.default.vErrors,null),r.let(p.default.errors,0),n.unevaluated&&function(e){const{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",u._`${n}.evaluated`),t.if(u._`${e.evaluated}.dynamicProps`,(()=>t.assign(u._`${e.evaluated}.props`,u._`undefined`))),t.if(u._`${e.evaluated}.dynamicItems`,(()=>t.assign(u._`${e.evaluated}.items`,u._`undefined`)))}(e),w(e),function(e){const{gen:t,schemaEnv:n,validateName:r,ValidationError:o,opts:i}=e;n.$async?t.if(u._`${p.default.errors} === 0`,(()=>t.return(p.default.data)),(()=>t.throw(u._`new ${o}(${p.default.vErrors})`))):(t.assign(u._`${r}.errors`,p.default.vErrors),i.unevaluated&&function({gen:e,evaluated:t,props:n,items:r}){n instanceof u.Name&&e.assign(u._`${t}.props`,n),r instanceof u.Name&&e.assign(u._`${t}.items`,r)}(e),t.return(u._`${p.default.errors} === 0`))}(e)}))}(e):m(e,(()=>r.topBoolOrEmptySchema(e)))};class E{constructor(e,t,n){if(l.validateKeywordUsage(e,t,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=f.schemaRefOrVal(e,this.schema,n,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",C(this.$data,e));else if(this.schemaCode=this.schemaValue,!l.validSchemaType(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:!1!==t.errors)&&(this.errsCount=e.gen.const("_errs",p.default.errors))}result(e,t,n){this.gen.if(u.not(e)),n?n():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.result(e,void 0,t)}fail(e){if(void 0===e)return this.error(),void(this.allErrors||this.gen.if(!1));this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail(u._`${t} !== undefined && (${u.or(this.invalid$data(),e)})`)}error(e,t,n){if(t)return this.setParams(t),this._error(e,n),void this.setParams({});this._error(e,n)}_error(e,t){(e?h.reportExtraError:h.reportError)(this,this.def.error,t)}$dataError(){h.reportError(this,this.def.$dataError||h.keyword$DataError)}reset(){if(void 0===this.errsCount)throw new Error('add "trackErrors" to keyword definition');h.resetErrorsCount(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,n=u.nil){this.gen.block((()=>{this.check$data(e,n),t()}))}check$data(e=u.nil,t=u.nil){if(!this.$data)return;const{gen:n,schemaCode:r,schemaType:o,def:i}=this;n.if(u.or(u._`${r} === undefined`,t)),e!==u.nil&&n.assign(e,!0),(o.length||i.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==u.nil&&n.assign(e,!1)),n.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:n,def:r,it:o}=this;return u.or(function(){if(n.length){if(!(t instanceof u.Name))throw new Error("ajv implementation error");const e=Array.isArray(n)?n:[n];return u._`${a.checkDataTypes(e,t,o.opts.strictNumbers,a.DataType.Wrong)}`}return u.nil}(),function(){if(r.validateSchema){const n=e.scopeValue("validate$data",{ref:r.validateSchema});return u._`!${n}(${t})`}return u.nil}())}subschema(e,t){const n=c.getSubschema(this.it,e);c.extendSubschemaData(n,this.it,e),c.extendSubschemaMode(n,e);const o={...this.it,...n,items:void 0,props:void 0};return function(e,t){v(e)&&(b(e),y(e))?function(e,t){const{schema:n,gen:r,opts:o}=e;o.$comment&&n.$comment&&x(e),function(e){const t=e.schema[e.opts.schemaId];t&&(e.baseId=d.resolveUrl(e.baseId,t))}(e),function(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}(e);const i=r.const("_errs",p.default.errors);w(e,i),r.var(t,u._`${i} === ${p.default.errors}`)}(e,t):r.boolOrEmptySchema(e,t)}(o,t),o}mergeEvaluated(e,t){const{it:n,gen:r}=this;n.opts.unevaluated&&(!0!==n.props&&void 0!==e.props&&(n.props=f.mergeEvaluated.props(r,e.props,n.props,t)),!0!==n.items&&void 0!==e.items&&(n.items=f.mergeEvaluated.items(r,e.items,n.items,t)))}mergeValidEvaluated(e,t){const{it:n,gen:r}=this;if(n.opts.unevaluated&&(!0!==n.props||!0!==n.items))return r.if(t,(()=>this.mergeEvaluated(e,u.Name))),!0}}function P(e,t,n,r){const o=new E(e,n,t);"code"in n?n.code(o,r):o.$data&&n.validate?l.funcKeywordCode(o,n):"macro"in n?l.macroKeywordCode(o,n):(n.compile||n.validate)&&l.funcKeywordCode(o,n)}t.KeywordCxt=E;const A=/^\/(?:[^~]|~0|~1)*$/,$=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function C(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let o,i;if(""===e)return p.default.rootData;if("/"===e[0]){if(!A.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=p.default.rootData}else{const a=$.exec(e);if(!a)throw new Error(`Invalid JSON-pointer: ${e}`);const s=+a[1];if(o=a[2],"#"===o){if(s>=t)throw new Error(l("property/index",s));return r[t-s]}if(s>t)throw new Error(l("data",s));if(i=n[t-s],!o)return i}let a=i;const s=o.split("/");for(const e of s)e&&(i=u._`${i}${u.getProperty(f.unescapeJsonPointer(e))}`,a=u._`${a} && ${i}`);return a;function l(e,n){return`Cannot access ${e} ${n} levels up, current level is ${t}`}}t.getData=C},6488:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;const r=n(4475),o=n(5018),i=n(8619),a=n(1885);function s(e){const{gen:t,data:n,it:o}=e;t.if(o.parentData,(()=>t.assign(n,r._`${o.parentData}[${o.parentDataProperty}]`)))}function l(e,t,n){if(void 0===n)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword","function"==typeof n?{ref:n}:{ref:n,code:r.stringify(n)})}t.macroKeywordCode=function(e,t){const{gen:n,keyword:o,schema:i,parentSchema:a,it:s}=e,c=t.macro.call(s.self,i,a,s),u=l(n,o,c);!1!==s.opts.validateSchema&&s.self.validateSchema(c,!0);const p=n.name("valid");e.subschema({schema:c,schemaPath:r.nil,errSchemaPath:`${s.errSchemaPath}/${o}`,topSchemaRef:u,compositeRule:!0},p),e.pass(p,(()=>e.error(!0)))},t.funcKeywordCode=function(e,t){var n;const{gen:c,keyword:u,schema:p,parentSchema:d,$data:f,it:h}=e;!function({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}(h,t);const m=!f&&t.compile?t.compile.call(h.self,p,d,h):t.validate,g=l(c,u,m),y=c.let("valid");function v(n=(t.async?r._`await `:r.nil)){const a=h.opts.passContext?o.default.this:o.default.self,s=!("compile"in t&&!f||!1===t.schema);c.assign(y,r._`${n}${i.callValidateCode(e,g,a,s)}`,t.modifying)}function b(e){var n;c.if(r.not(null!==(n=t.valid)&&void 0!==n?n:y),e)}e.block$data(y,(function(){if(!1===t.errors)v(),t.modifying&&s(e),b((()=>e.error()));else{const n=t.async?function(){const e=c.let("ruleErrs",null);return c.try((()=>v(r._`await `)),(t=>c.assign(y,!1).if(r._`${t} instanceof ${h.ValidationError}`,(()=>c.assign(e,r._`${t}.errors`)),(()=>c.throw(t))))),e}():function(){const e=r._`${g}.errors`;return c.assign(e,null),v(r.nil),e}();t.modifying&&s(e),b((()=>function(e,t){const{gen:n}=e;n.if(r._`Array.isArray(${t})`,(()=>{n.assign(o.default.vErrors,r._`${o.default.vErrors} === null ? ${t} : ${o.default.vErrors}.concat(${t})`).assign(o.default.errors,r._`${o.default.vErrors}.length`),a.extendErrors(e)}),(()=>e.error()))}(e,n)))}})),e.ok(null!==(n=t.valid)&&void 0!==n?n:y)},t.validSchemaType=function(e,t,n=!1){return!t.length||t.some((t=>"array"===t?Array.isArray(e):"object"===t?e&&"object"==typeof e&&!Array.isArray(e):typeof e==t||n&&void 0===e))},t.validateKeywordUsage=function({schema:e,opts:t,self:n,errSchemaPath:r},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");const a=o.dependencies;if(null==a?void 0:a.some((t=>!Object.prototype.hasOwnProperty.call(e,t))))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[i])){const e=`keyword "${i}" value is invalid at path "${r}": `+n.errorsText(o.validateSchema.errors);if("log"!==t.validateSchema)throw new Error(e);n.logger.error(e)}}},4688:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;const r=n(4475),o=n(6124);t.getSubschema=function(e,{keyword:t,schemaProp:n,schema:i,schemaPath:a,errSchemaPath:s,topSchemaRef:l}){if(void 0!==t&&void 0!==i)throw new Error('both "keyword" and "schema" passed, only one allowed');if(void 0!==t){const i=e.schema[t];return void 0===n?{schema:i,schemaPath:r._`${e.schemaPath}${r.getProperty(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:i[n],schemaPath:r._`${e.schemaPath}${r.getProperty(t)}${r.getProperty(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${o.escapeFragment(n)}`}}if(void 0!==i){if(void 0===a||void 0===s||void 0===l)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:a,topSchemaRef:l,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')},t.extendSubschemaData=function(e,t,{dataProp:n,dataPropType:i,data:a,dataTypes:s,propertyName:l}){if(void 0!==a&&void 0!==n)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:c}=t;if(void 0!==n){const{errorPath:a,dataPathArr:s,opts:l}=t;u(c.let("data",r._`${t.data}${r.getProperty(n)}`,!0)),e.errorPath=r.str`${a}${o.getErrorPath(n,i,l.jsPropertySyntax)}`,e.parentDataProperty=r._`${n}`,e.dataPathArr=[...s,e.parentDataProperty]}function u(n){e.data=n,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,n]}void 0!==a&&(u(a instanceof r.Name?a:c.let("data",a,!0)),void 0!==l&&(e.propertyName=l)),s&&(e.dataTypes=s)},t.extendSubschemaMode=function(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:o,allErrors:i}){void 0!==r&&(e.compositeRule=r),void 0!==o&&(e.createErrors=o),void 0!==i&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=n}},3325:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var r=n(1321);Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return r.KeywordCxt}});var o=n(4475);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return o._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return o.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return o.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return o.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return o.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return o.CodeGen}});const i=n(8451),a=n(4143),s=n(3664),l=n(7805),c=n(4475),u=n(9826),p=n(7927),d=n(6124),f=n(425),h=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};function v(e){var t,n,r,o,i,a,s,l,c,u,p,d,f,h,m,g,y,v,b,w,x,k;const _=e.strict,O=null===(t=e.code)||void 0===t?void 0:t.optimize,S=!0===O||void 0===O?1:O||0;return{strictSchema:null===(r=null!==(n=e.strictSchema)&&void 0!==n?n:_)||void 0===r||r,strictNumbers:null===(i=null!==(o=e.strictNumbers)&&void 0!==o?o:_)||void 0===i||i,strictTypes:null!==(s=null!==(a=e.strictTypes)&&void 0!==a?a:_)&&void 0!==s?s:"log",strictTuples:null!==(c=null!==(l=e.strictTuples)&&void 0!==l?l:_)&&void 0!==c?c:"log",strictRequired:null!==(p=null!==(u=e.strictRequired)&&void 0!==u?u:_)&&void 0!==p&&p,code:e.code?{...e.code,optimize:S}:{optimize:S},loopRequired:null!==(d=e.loopRequired)&&void 0!==d?d:200,loopEnum:null!==(f=e.loopEnum)&&void 0!==f?f:200,meta:null===(h=e.meta)||void 0===h||h,messages:null===(m=e.messages)||void 0===m||m,inlineRefs:null===(g=e.inlineRefs)||void 0===g||g,schemaId:null!==(y=e.schemaId)&&void 0!==y?y:"$id",addUsedSchema:null===(v=e.addUsedSchema)||void 0===v||v,validateSchema:null===(b=e.validateSchema)||void 0===b||b,validateFormats:null===(w=e.validateFormats)||void 0===w||w,unicodeRegExp:null===(x=e.unicodeRegExp)||void 0===x||x,int32range:null===(k=e.int32range)||void 0===k||k}}class b{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...v(e)};const{es5:t,lines:n}=this.opts.code;this.scope=new c.ValueScope({scope:{},prefixes:m,es5:t,lines:n}),this.logger=function(e){if(!1===e)return E;if(void 0===e)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}(e.logger);const r=e.validateFormats;e.validateFormats=!1,this.RULES=s.getRules(),w.call(this,g,e,"NOT SUPPORTED"),w.call(this,y,e,"DEPRECATED","warn"),this._metaOpts=S.call(this),e.formats&&_.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&O.call(this,e.keywords),"object"==typeof e.meta&&this.addMetaSchema(e.meta),k.call(this),e.validateFormats=r}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:n}=this.opts;let r=f;"id"===n&&(r={...f},r.id=r.$id,delete r.$id),t&&e&&this.addMetaSchema(r,r[n],!1)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta="object"==typeof e?e[t]||e:void 0}validate(e,t){let n;if("string"==typeof e){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);const r=n(t);return"$async"in n||(this.errors=n.errors),r}compile(e,t){const n=this._addSchema(e,t);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,t){if("function"!=typeof this.opts.loadSchema)throw new Error("options.loadSchema should be a function");const{loadSchema:n}=this.opts;return r.call(this,e,t);async function r(e,t){await o.call(this,e.$schema);const n=this._addSchema(e,t);return n.validate||i.call(this,n)}async function o(e){e&&!this.getSchema(e)&&await r.call(this,{$ref:e},!0)}async function i(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof a.default))throw t;return s.call(this,t),await l.call(this,t.missingSchema),i.call(this,e)}}function s({missingSchema:e,missingRef:t}){if(this.refs[e])throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}async function l(e){const n=await c.call(this,e);this.refs[e]||await o.call(this,n.$schema),this.refs[e]||this.addSchema(n,e,t)}async function c(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=n(e))}finally{delete this._loading[e]}}}addSchema(e,t,n,r=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,void 0,n,r);return this}let o;if("object"==typeof e){const{schemaId:t}=this.opts;if(o=e[t],void 0!==o&&"string"!=typeof o)throw new Error(`schema ${t} must be string`)}return t=u.normalizeId(t||o),this._checkUnique(t),this.schemas[t]=this._addSchema(e,n,t,r,!0),this}addMetaSchema(e,t,n=this.opts.validateSchema){return this.addSchema(e,t,!0,n),this}validateSchema(e,t){if("boolean"==typeof e)return!0;let n;if(n=e.$schema,void 0!==n&&"string"!=typeof n)throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const r=this.validate(n,e);if(!r&&t){const e="schema is invalid: "+this.errorsText();if("log"!==this.opts.validateSchema)throw new Error(e);this.logger.error(e)}return r}getSchema(e){let t;for(;"string"==typeof(t=x.call(this,e));)e=t;if(void 0===t){const{schemaId:n}=this.opts,r=new l.SchemaEnv({schema:{},schemaId:n});if(t=l.resolveSchema.call(this,r,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const t=x.call(this,e);return"object"==typeof t&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{const t=e;this._cache.delete(t);let n=e[this.opts.schemaId];return n&&(n=u.normalizeId(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let n;if("string"==typeof e)n=e,"object"==typeof t&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=n);else{if("object"!=typeof e||void 0!==t)throw new Error("invalid addKeywords parameters");if(n=(t=e).keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}if(A.call(this,n,t),!t)return d.eachItem(n,(e=>$.call(this,e))),this;R.call(this,t);const r={...t,type:p.getJSONTypes(t.type),schemaType:p.getJSONTypes(t.schemaType)};return d.eachItem(n,0===r.type.length?e=>$.call(this,e,r):e=>r.type.forEach((t=>$.call(this,e,r,t)))),this}getKeyword(e){const t=this.RULES.all[e];return"object"==typeof t?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(const n of t.rules){const t=n.rules.findIndex((t=>t.keyword===e));t>=0&&n.rules.splice(t,1)}return this}addFormat(e,t){return"string"==typeof t&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:n="data"}={}){return e&&0!==e.length?e.map((e=>`${n}${e.instancePath} ${e.message}`)).reduce(((e,n)=>e+t+n)):"No errors"}$dataMetaSchema(e,t){const n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const r of t){const t=r.split("/").slice(1);let o=e;for(const e of t)o=o[e];for(const e in n){const t=n[e];if("object"!=typeof t)continue;const{$data:r}=t.definition,i=o[e];r&&i&&(o[e]=T(i))}}return e}_removeAllSchemas(e,t){for(const n in e){const r=e[n];t&&!t.test(n)||("string"==typeof r?delete e[n]:r&&!r.meta&&(this._cache.delete(r.schema),delete e[n]))}}_addSchema(e,t,n,r=this.opts.validateSchema,o=this.opts.addUsedSchema){let i;const{schemaId:a}=this.opts;if("object"==typeof e)i=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if("boolean"!=typeof e)throw new Error("schema must be object or boolean")}let s=this._cache.get(e);if(void 0!==s)return s;const c=u.getSchemaRefs.call(this,e);return n=u.normalizeId(i||n),s=new l.SchemaEnv({schema:e,schemaId:a,meta:t,baseId:n,localRefs:c}),this._cache.set(s.schema,s),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=s),r&&this.validateSchema(e,!0),s}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):l.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{l.compileSchema.call(this,e)}finally{this.opts=t}}}function w(e,t,n,r="error"){for(const o in e){const i=o;i in t&&this.logger[r](`${n}: option ${o}. ${e[i]}`)}}function x(e){return e=u.normalizeId(e),this.schemas[e]||this.refs[e]}function k(){const e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function _(){for(const e in this.opts.formats){const t=this.opts.formats[e];t&&this.addFormat(e,t)}}function O(e){if(Array.isArray(e))this.addVocabulary(e);else{this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}}function S(){const e={...this.opts};for(const t of h)delete e[t];return e}t.default=b,b.ValidationError=i.default,b.MissingRefError=a.default;const E={log(){},warn(){},error(){}},P=/^[a-z_$][a-z0-9_$:-]*$/i;function A(e,t){const{RULES:n}=this;if(d.eachItem(e,(e=>{if(n.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!P.test(e))throw new Error(`Keyword ${e} has invalid name`)})),t&&t.$data&&!("code"in t)&&!("validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function $(e,t,n){var r;const o=null==t?void 0:t.post;if(n&&o)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:i}=this;let a=o?i.post:i.rules.find((({type:e})=>e===n));if(a||(a={type:n,rules:[]},i.rules.push(a)),i.keywords[e]=!0,!t)return;const s={keyword:e,definition:{...t,type:p.getJSONTypes(t.type),schemaType:p.getJSONTypes(t.schemaType)}};t.before?C.call(this,a,s,t.before):a.rules.push(s),i.all[e]=s,null===(r=t.implements)||void 0===r||r.forEach((e=>this.addKeyword(e)))}function C(e,t,n){const r=e.rules.findIndex((e=>e.keyword===n));r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function R(e){let{metaSchema:t}=e;void 0!==t&&(e.$data&&this.opts.$data&&(t=T(t)),e.validateSchema=this.compile(t,!0))}const j={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function T(e){return{anyOf:[e,j]}}},412:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4063);r.code='require("ajv/dist/runtime/equal").default',t.default=r},5872:function(e,t){"use strict";function n(e){const t=e.length;let n,r=0,o=0;for(;o=55296&&n<=56319&&or.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>r._`{limit: ${e}}`},code(e){const{parentSchema:t,it:n}=e,{items:r}=t;Array.isArray(r)?a(e,r):o.checkStrictMode(n,'"additionalItems" is ignored when "items" is not an array of schemas')}};function a(e,t){const{gen:n,schema:i,data:a,keyword:s,it:l}=e;l.items=!0;const c=n.const("len",r._`${a}.length`);if(!1===i)e.setParams({len:t.length}),e.pass(r._`${c} <= ${t.length}`);else if("object"==typeof i&&!o.alwaysValidSchema(l,i)){const i=n.var("valid",r._`${c} <= ${t.length}`);n.if(r.not(i),(()=>function(i){n.forRange("i",t.length,c,(t=>{e.subschema({keyword:s,dataProp:t,dataPropType:o.Type.Num},i),l.allErrors||n.if(r.not(i),(()=>n.break()))}))}(i))),e.ok(i)}}t.validateAdditionalItems=a,t.default=i},1422:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8619),o=n(4475),i=n(5018),a=n(6124),s={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:e})=>o._`{additionalProperty: ${e.additionalProperty}}`},code(e){const{gen:t,parentSchema:n,data:s,errsCount:l,it:c}=e,{schema:u=c.opts.defaultAdditionalProperties}=e;if(!l)throw new Error("ajv implementation error");const{allErrors:p,opts:d}=c;if(c.props=!0,"all"!==d.removeAdditional&&a.alwaysValidSchema(c,u))return;const f=r.allSchemaProperties(n.properties),h=r.allSchemaProperties(n.patternProperties);function m(e){t.code(o._`delete ${s}[${e}]`)}function g(n){if("all"===d.removeAdditional||d.removeAdditional&&!1===u)m(n);else{if(!1===u)return e.setParams({additionalProperty:n}),e.error(),void(p||t.break());if("object"==typeof u&&!a.alwaysValidSchema(c,u)){const r=t.name("valid");"failing"===d.removeAdditional?(y(n,r,!1),t.if(o.not(r),(()=>{e.reset(),m(n)}))):(y(n,r),p||t.if(o.not(r),(()=>t.break())))}}}function y(t,n,r){const o={keyword:"additionalProperties",dataProp:t,dataPropType:a.Type.Str};!1===r&&Object.assign(o,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(o,n)}t.forIn("key",s,(i=>{f.length||h.length?t.if(function(i){let s;if(f.length>8){const e=a.schemaRefOrVal(c,n.properties,"properties");s=r.isOwnProperty(t,e,i)}else s=f.length?o.or(...f.map((e=>o._`${i} === ${e}`))):o.nil;return h.length&&(s=o.or(s,...h.map((t=>o._`${r.usePattern(e,t)}.test(${i})`)))),o.not(s)}(i),(()=>g(i))):g(i)})),e.ok(o._`${l} === ${i.default.errors}`)}};t.default=s},5716:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6124),o={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:n,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");const i=t.name("valid");n.forEach(((t,n)=>{if(r.alwaysValidSchema(o,t))return;const a=e.subschema({keyword:"allOf",schemaProp:n},i);e.ok(i),e.mergeEvaluated(a)}))}};t.default=o},1668:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:n(8619).validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r},9564:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:e,max:t}})=>void 0===t?r.str`must contain at least ${e} valid item(s)`:r.str`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>void 0===t?r._`{minContains: ${e}}`:r._`{minContains: ${e}, maxContains: ${t}}`},code(e){const{gen:t,schema:n,parentSchema:i,data:a,it:s}=e;let l,c;const{minContains:u,maxContains:p}=i;s.opts.next?(l=void 0===u?1:u,c=p):l=1;const d=t.const("len",r._`${a}.length`);if(e.setParams({min:l,max:c}),void 0===c&&0===l)return void o.checkStrictMode(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');if(void 0!==c&&l>c)return o.checkStrictMode(s,'"minContains" > "maxContains" is always invalid'),void e.fail();if(o.alwaysValidSchema(s,n)){let t=r._`${d} >= ${l}`;return void 0!==c&&(t=r._`${t} && ${d} <= ${c}`),void e.pass(t)}s.items=!0;const f=t.name("valid");if(void 0===c&&1===l)h(f,(()=>t.if(f,(()=>t.break()))));else{t.let(f,!1);const e=t.name("_valid"),n=t.let("count",0);h(e,(()=>t.if(e,(()=>function(e){t.code(r._`${e}++`),void 0===c?t.if(r._`${e} >= ${l}`,(()=>t.assign(f,!0).break())):(t.if(r._`${e} > ${c}`,(()=>t.assign(f,!1).break())),1===l?t.assign(f,!0):t.if(r._`${e} >= ${l}`,(()=>t.assign(f,!0))))}(n)))))}function h(n,r){t.forRange("i",0,d,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:o.Type.Num,compositeRule:!0},n),r()}))}e.result(f,(()=>e.reset()))}};t.default=i},1117:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const r=n(4475),o=n(6124),i=n(8619);t.error={message:({params:{property:e,depsCount:t,deps:n}})=>{const o=1===t?"property":"properties";return r.str`must have ${o} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:o}})=>r._`{property: ${e}, missingProperty: ${o}, depsCount: ${t}, - deps: ${n}}`};const a={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,n]=function({schema:e}){const t={},n={};for(const r in e)"__proto__"!==r&&((Array.isArray(e[r])?t:n)[r]=e[r]);return[t,n]}(e);s(e,t),l(e,n)}};function s(e,t=e.schema){const{gen:n,data:o,it:a}=e;if(0===Object.keys(t).length)return;const s=n.let("missing");for(const l in t){const c=t[l];if(0===c.length)continue;const u=i.propertyInData(n,o,l,a.opts.ownProperties);e.setParams({property:l,depsCount:c.length,deps:c.join(", ")}),a.allErrors?n.if(u,(()=>{for(const t of c)i.checkReportMissingProp(e,t)})):(n.if(r._`${u} && (${i.checkMissingProp(e,c,s)})`),i.reportMissingProp(e,s),n.else())}}function l(e,t=e.schema){const{gen:n,data:r,keyword:a,it:s}=e,l=n.name("valid");for(const c in t)o.alwaysValidSchema(s,t[c])||(n.if(i.propertyInData(n,r,c,s.opts.ownProperties),(()=>{const t=e.subschema({keyword:a,schemaProp:c},l);e.mergeValidEvaluated(t,l)}),(()=>n.var(l,!0))),e.ok(l))}t.validatePropertyDeps=s,t.validateSchemaDeps=l,t.default=a},5184:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>r.str`must match "${e.ifClause}" schema`,params:({params:e})=>r._`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:i}=e;void 0===n.then&&void 0===n.else&&o.checkStrictMode(i,'"if" without "then" and "else" is ignored');const s=a(i,"then"),l=a(i,"else");if(!s&&!l)return;const c=t.let("valid",!0),u=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}(),e.reset(),s&&l){const n=t.let("ifClause");e.setParams({ifClause:n}),t.if(u,p("then",n),p("else",n))}else s?t.if(u,p("then")):t.if(r.not(u),p("else"));function p(n,o){return()=>{const i=e.subschema({keyword:n},u);t.assign(c,u),e.mergeValidEvaluated(i,c),o?t.assign(o,r._`${n}`):e.setParams({ifClause:n})}}e.pass(c,(()=>e.error(!0)))}};function a(e,t){const n=e.schema[t];return void 0!==n&&!o.alwaysValidSchema(e,n)}t.default=i},9616:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3074),o=n(6988),i=n(6348),a=n(9822),s=n(9564),l=n(1117),c=n(4002),u=n(1422),p=n(9690),d=n(9883),f=n(8435),h=n(1668),m=n(9684),g=n(5716),y=n(5184),v=n(5642);t.default=function(e=!1){const t=[f.default,h.default,m.default,g.default,y.default,v.default,c.default,u.default,l.default,p.default,d.default];return e?t.push(o.default,a.default):t.push(r.default,i.default),t.push(s.default),t}},6348:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;const r=n(4475),o=n(6124),i=n(8619),a={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:n}=e;if(Array.isArray(t))return s(e,"additionalItems",t);n.items=!0,o.alwaysValidSchema(n,t)||e.ok(i.validateArray(e))}};function s(e,t,n=e.schema){const{gen:i,parentSchema:a,data:s,keyword:l,it:c}=e;!function(e){const{opts:r,errSchemaPath:i}=c,a=n.length,s=a===e.minItems&&(a===e.maxItems||!1===e[t]);if(r.strictTuples&&!s){const e=`"${l}" is ${a}-tuple, but minItems or maxItems/${t} are not specified or different at path "${i}"`;o.checkStrictMode(c,e,r.strictTuples)}}(a),c.opts.unevaluated&&n.length&&!0!==c.items&&(c.items=o.mergeEvaluated.items(i,n.length,c.items));const u=i.name("valid"),p=i.const("len",r._`${s}.length`);n.forEach(((t,n)=>{o.alwaysValidSchema(c,t)||(i.if(r._`${p} > ${n}`,(()=>e.subschema({keyword:l,schemaProp:n,dataProp:n},u))),e.ok(u))}))}t.validateTuple=s,t.default=a},9822:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i=n(8619),a=n(3074),s={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:e}})=>r.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>r._`{limit: ${e}}`},code(e){const{schema:t,parentSchema:n,it:r}=e,{prefixItems:s}=n;r.items=!0,o.alwaysValidSchema(r,t)||(s?a.validateAdditionalItems(e,s):e.ok(i.validateArray(e)))}};t.default=s},8435:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6124),o={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:n,it:o}=e;if(r.alwaysValidSchema(o,n))return void e.fail();const i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.result(i,(()=>e.error()),(()=>e.reset()))},error:{message:"must NOT be valid"}};t.default=o},9684:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:e})=>r._`{passingSchemas: ${e.passing}}`},code(e){const{gen:t,schema:n,parentSchema:i,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(a.opts.discriminator&&i.discriminator)return;const s=n,l=t.let("valid",!1),c=t.let("passing",null),u=t.name("_valid");e.setParams({passing:c}),t.block((function(){s.forEach(((n,i)=>{let s;o.alwaysValidSchema(a,n)?t.var(u,!0):s=e.subschema({keyword:"oneOf",schemaProp:i,compositeRule:!0},u),i>0&&t.if(r._`${u} && ${l}`).assign(l,!1).assign(c,r._`[${c}, ${i}]`).else(),t.if(u,(()=>{t.assign(l,!0),t.assign(c,i),s&&e.mergeEvaluated(s,r.Name)}))}))})),e.result(l,(()=>e.reset()),(()=>e.error(!0)))}};t.default=i},9883:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8619),o=n(4475),i=n(6124),a=n(6124),s={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,data:s,parentSchema:l,it:c}=e,{opts:u}=c,p=r.allSchemaProperties(n),d=p.filter((e=>i.alwaysValidSchema(c,n[e])));if(0===p.length||d.length===p.length&&(!c.opts.unevaluated||!0===c.props))return;const f=u.strictSchema&&!u.allowMatchingProperties&&l.properties,h=t.name("valid");!0===c.props||c.props instanceof o.Name||(c.props=a.evaluatedPropsToName(t,c.props));const{props:m}=c;function g(e){for(const t in f)new RegExp(e).test(t)&&i.checkStrictMode(c,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function y(n){t.forIn("key",s,(i=>{t.if(o._`${r.usePattern(e,n)}.test(${i})`,(()=>{const r=d.includes(n);r||e.subschema({keyword:"patternProperties",schemaProp:n,dataProp:i,dataPropType:a.Type.Str},h),c.opts.unevaluated&&!0!==m?t.assign(o._`${m}[${i}]`,!0):r||c.allErrors||t.if(o.not(h),(()=>t.break()))}))}))}!function(){for(const e of p)f&&g(e),c.allErrors?y(e):(t.var(h,!0),y(e),t.if(h))}()}};t.default=s},6988:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6348),o={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>r.validateTuple(e,"items")};t.default=o},9690:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(1321),o=n(8619),i=n(6124),a=n(1422),s={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,parentSchema:s,data:l,it:c}=e;("all"===c.opts.removeAdditional&&void 0===s.additionalProperties||!1===c.opts.defaultAdditionalProperties)&&a.default.code(new r.KeywordCxt(c,a.default,"additionalProperties"));const u=o.allSchemaProperties(n);for(const e of u)c.definedProperties.add(e);c.opts.unevaluated&&u.length&&!0!==c.props&&(c.props=i.mergeEvaluated.props(t,i.toHash(u),c.props));const p=u.filter((e=>!i.alwaysValidSchema(c,n[e])));if(0===p.length)return;const d=t.name("valid");for(const n of p)f(n)?h(n):(t.if(o.propertyInData(t,l,n,c.opts.ownProperties)),h(n),c.allErrors||t.else().var(d,!0),t.endIf()),e.it.definedProperties.add(n),e.ok(d);function f(e){return c.opts.useDefaults&&!c.compositeRule&&void 0!==n[e].default}function h(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},d)}}};t.default=s},4002:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:e})=>r._`{propertyName: ${e.propertyName}}`},code(e){const{gen:t,schema:n,data:i,it:a}=e;if(o.alwaysValidSchema(a,n))return;const s=t.name("valid");t.forIn("key",i,(n=>{e.setParams({propertyName:n}),e.subschema({keyword:"propertyNames",data:n,dataTypes:["string"],propertyName:n,compositeRule:!0},s),t.if(r.not(s),(()=>{e.error(!0),a.allErrors||t.break()}))})),e.ok(s)}};t.default=i},5642:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6124),o={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){void 0===t.if&&r.checkStrictMode(n,`"${e}" without "if" is ignored`)}};t.default=o},8619:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const r=n(4475),o=n(6124),i=n(5018);function a(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:r._`Object.prototype.hasOwnProperty`})}function s(e,t,n){return r._`${a(e)}.call(${t}, ${n})`}function l(e,t,n,o){const i=r._`${t}${r.getProperty(n)} === undefined`;return o?r.or(i,r.not(s(e,t,n))):i}function c(e){return e?Object.keys(e).filter((e=>"__proto__"!==e)):[]}t.checkReportMissingProp=function(e,t){const{gen:n,data:o,it:i}=e;n.if(l(n,o,t,i.opts.ownProperties),(()=>{e.setParams({missingProperty:r._`${t}`},!0),e.error()}))},t.checkMissingProp=function({gen:e,data:t,it:{opts:n}},o,i){return r.or(...o.map((o=>r.and(l(e,t,o,n.ownProperties),r._`${i} = ${o}`))))},t.reportMissingProp=function(e,t){e.setParams({missingProperty:t},!0),e.error()},t.hasPropFunc=a,t.isOwnProperty=s,t.propertyInData=function(e,t,n,o){const i=r._`${t}${r.getProperty(n)} !== undefined`;return o?r._`${i} && ${s(e,t,n)}`:i},t.noPropertyInData=l,t.allSchemaProperties=c,t.schemaProperties=function(e,t){return c(t).filter((n=>!o.alwaysValidSchema(e,t[n])))},t.callValidateCode=function({schemaCode:e,data:t,it:{gen:n,topSchemaRef:o,schemaPath:a,errorPath:s},it:l},c,u,p){const d=p?r._`${e}, ${t}, ${o}${a}`:t,f=[[i.default.instancePath,r.strConcat(i.default.instancePath,s)],[i.default.parentData,l.parentData],[i.default.parentDataProperty,l.parentDataProperty],[i.default.rootData,i.default.rootData]];l.opts.dynamicRef&&f.push([i.default.dynamicAnchors,i.default.dynamicAnchors]);const h=r._`${d}, ${n.object(...f)}`;return u!==r.nil?r._`${c}.call(${u}, ${h})`:r._`${c}(${h})`},t.usePattern=function({gen:e,it:{opts:t}},n){const o=t.unicodeRegExp?"u":"";return e.scopeValue("pattern",{key:n,ref:new RegExp(n,o),code:r._`new RegExp(${n}, ${o})`})},t.validateArray=function(e){const{gen:t,data:n,keyword:i,it:a}=e,s=t.name("valid");if(a.allErrors){const e=t.let("valid",!0);return l((()=>t.assign(e,!1))),e}return t.var(s,!0),l((()=>t.break())),s;function l(a){const l=t.const("len",r._`${n}.length`);t.forRange("i",0,l,(n=>{e.subschema({keyword:i,dataProp:n,dataPropType:o.Type.Num},s),t.if(r.not(s),a)}))}},t.validateUnion=function(e){const{gen:t,schema:n,keyword:i,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some((e=>o.alwaysValidSchema(a,e)))&&!a.opts.unevaluated)return;const s=t.let("valid",!1),l=t.name("_valid");t.block((()=>n.forEach(((n,o)=>{const a=e.subschema({keyword:i,schemaProp:o,compositeRule:!0},l);t.assign(s,r._`${s} || ${l}`),e.mergeValidEvaluated(a,l)||t.if(r.not(s))})))),e.result(s,(()=>e.reset()),(()=>e.error(!0)))}},5060:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=n},8223:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5060),o=n(4028),i=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",r.default,o.default];t.default=i},4028:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;const r=n(4143),o=n(8619),i=n(4475),a=n(5018),s=n(7805),l=n(6124),c={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:n,it:o}=e,{baseId:a,schemaEnv:l,validateName:c,opts:d,self:f}=o,{root:h}=l;if(("#"===n||"#/"===n)&&a===h.baseId)return function(){if(l===h)return p(e,c,l,l.$async);const n=t.scopeValue("root",{ref:h});return p(e,i._`${n}.validate`,h,h.$async)}();const m=s.resolveRef.call(f,h,a,n);if(void 0===m)throw new r.default(a,n);return m instanceof s.SchemaEnv?function(t){const n=u(e,t);p(e,n,t,t.$async)}(m):function(r){const o=t.scopeValue("schema",!0===d.code.source?{ref:r,code:i.stringify(r)}:{ref:r}),a=t.name("valid"),s=e.subschema({schema:r,dataTypes:[],schemaPath:i.nil,topSchemaRef:o,errSchemaPath:n},a);e.mergeEvaluated(s),e.ok(a)}(m)}};function u(e,t){const{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):i._`${n.scopeValue("wrapper",{ref:t})}.validate`}function p(e,t,n,r){const{gen:s,it:c}=e,{allErrors:u,schemaEnv:p,opts:d}=c,f=d.passContext?a.default.this:i.nil;function h(e){const t=i._`${e}.errors`;s.assign(a.default.vErrors,i._`${a.default.vErrors} === null ? ${t} : ${a.default.vErrors}.concat(${t})`),s.assign(a.default.errors,i._`${a.default.vErrors}.length`)}function m(e){var t;if(!c.opts.unevaluated)return;const r=null===(t=null==n?void 0:n.validate)||void 0===t?void 0:t.evaluated;if(!0!==c.props)if(r&&!r.dynamicProps)void 0!==r.props&&(c.props=l.mergeEvaluated.props(s,r.props,c.props));else{const t=s.var("props",i._`${e}.evaluated.props`);c.props=l.mergeEvaluated.props(s,t,c.props,i.Name)}if(!0!==c.items)if(r&&!r.dynamicItems)void 0!==r.items&&(c.items=l.mergeEvaluated.items(s,r.items,c.items));else{const t=s.var("items",i._`${e}.evaluated.items`);c.items=l.mergeEvaluated.items(s,t,c.items,i.Name)}}r?function(){if(!p.$async)throw new Error("async schema referenced by sync schema");const n=s.let("valid");s.try((()=>{s.code(i._`await ${o.callValidateCode(e,t,f)}`),m(t),u||s.assign(n,!0)}),(e=>{s.if(i._`!(${e} instanceof ${c.ValidationError})`,(()=>s.throw(e))),h(e),u||s.assign(n,!1)})),e.ok(n)}():function(){const n=s.name("visitedNodes");s.code(i._`const ${n} = visitedNodesForRef.get(${t}) || new Set()`),s.if(i._`!${n}.has(${e.data})`,(()=>{s.code(i._`visitedNodesForRef.set(${t}, ${n})`),s.code(i._`const dataNode = ${e.data}`),s.code(i._`${n}.add(dataNode)`);const r=e.result(o.callValidateCode(e,t,f),(()=>m(t)),(()=>h(t)));return s.code(i._`${n}.delete(dataNode)`),r}))}()}t.getValidate=u,t.callRef=p,t.default=c},5522:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6545),i={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:e,tagName:t}})=>e===o.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>r._`{error: ${e}, tag: ${n}, tagValue: ${t}}`},code(e){const{gen:t,data:n,schema:i,parentSchema:a,it:s}=e,{oneOf:l}=a;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");const c=i.propertyName;if("string"!=typeof c)throw new Error("discriminator: requires propertyName");if(!l)throw new Error("discriminator: requires oneOf keyword");const u=t.let("valid",!1),p=t.const("tag",r._`${n}${r.getProperty(c)}`);function d(n){const o=t.name("valid"),i=e.subschema({keyword:"oneOf",schemaProp:n},o);return e.mergeEvaluated(i,r.Name),o}function f(e){return e.hasOwnProperty("$ref")}t.if(r._`typeof ${p} == "string"`,(()=>function(){const n=function(){var e;const t={},n=o(a);let r=!0;for(let t=0;te.error(!1,{discrError:o.DiscrError.Tag,tag:p,tagName:c}))),e.ok(u)}};t.default=i},6545:function(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0,(n=t.DiscrError||(t.DiscrError={})).Tag="tag",n.Mapping="mapping"},6479:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8223),o=n(3799),i=n(9616),a=n(3815),s=n(4826),l=[r.default,o.default,i.default(),a.default,s.metadataVocabulary,s.contentVocabulary];t.default=l},157:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>r.str`must match format "${e}"`,params:({schemaCode:e})=>r._`{format: ${e}}`},code(e,t){const{gen:n,data:o,$data:i,schema:a,schemaCode:s,it:l}=e,{opts:c,errSchemaPath:u,schemaEnv:p,self:d}=l;c.validateFormats&&(i?function(){const i=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),a=n.const("fDef",r._`${i}[${s}]`),l=n.let("fType"),u=n.let("format");n.if(r._`typeof ${a} == "object" && !(${a} instanceof RegExp)`,(()=>n.assign(l,r._`${a}.type || "string"`).assign(u,r._`${a}.validate`)),(()=>n.assign(l,r._`"string"`).assign(u,a))),e.fail$data(r.or(!1===c.strictSchema?r.nil:r._`${s} && !${u}`,function(){const e=p.$async?r._`(${a}.async ? await ${u}(${o}) : ${u}(${o}))`:r._`${u}(${o})`,n=r._`(typeof ${u} == "function" ? ${e} : ${u}.test(${o}))`;return r._`${u} && ${u} !== true && ${l} === ${t} && !${n}`}()))}():function(){const i=d.formats[a];if(!i)return void function(){if(!1!==c.strictSchema)throw new Error(e());function e(){return`unknown format "${a}" ignored in schema at path "${u}"`}d.logger.warn(e())}();if(!0===i)return;const[s,l,f]=function(e){const t=e instanceof RegExp?r.regexpCode(e):c.code.formats?r._`${c.code.formats}${r.getProperty(a)}`:void 0,o=n.scopeValue("formats",{key:a,ref:e,code:t});return"object"!=typeof e||e instanceof RegExp?["string",e,o]:[e.type||"string",e.validate,r._`${o}.validate`]}(i);s===t&&e.pass(function(){if("object"==typeof i&&!(i instanceof RegExp)&&i.async){if(!p.$async)throw new Error("async format in sync schema");return r._`await ${f}(${o})`}return"function"==typeof l?r._`${f}(${o})`:r._`${f}.test(${o})`}())}())}};t.default=o},3815:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=[n(157).default];t.default=r},4826:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},7535:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i=n(412),a={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:e})=>r._`{allowedValue: ${e}}`},code(e){const{gen:t,data:n,$data:a,schemaCode:s,schema:l}=e;a||l&&"object"==typeof l?e.fail$data(r._`!${o.useFunc(t,i.default)}(${n}, ${s})`):e.fail(r._`${l} !== ${n}`)}};t.default=a},4147:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i=n(412),a={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:e})=>r._`{allowedValues: ${e}}`},code(e){const{gen:t,data:n,$data:a,schema:s,schemaCode:l,it:c}=e;if(!a&&0===s.length)throw new Error("enum must have non-empty array");const u=s.length>=c.opts.loopEnum,p=o.useFunc(t,i.default);let d;if(u||a)d=t.let("valid"),e.block$data(d,(function(){t.assign(d,!1),t.forOf("v",l,(e=>t.if(r._`${p}(${n}, ${e})`,(()=>t.assign(d,!0).break()))))}));else{if(!Array.isArray(s))throw new Error("ajv implementation error");const e=t.const("vSchema",l);d=r.or(...s.map(((t,o)=>function(e,t){const o=s[t];return"object"==typeof o&&null!==o?r._`${p}(${n}, ${e}[${t}])`:r._`${n} === ${o}`}(e,o))))}e.pass(d)}};t.default=a},3799:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9640),o=n(7692),i=n(3765),a=n(8582),s=n(6711),l=n(7835),c=n(8950),u=n(7326),p=n(7535),d=n(4147),f=[r.default,o.default,i.default,a.default,s.default,l.default,c.default,u.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},p.default,d.default];t.default=f},8950:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxItems"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o}=e,i="maxItems"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`${n}.length ${i} ${o}`)}};t.default=o},3765:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i=n(5872),a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxLength"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:a,it:s}=e,l="maxLength"===t?r.operators.GT:r.operators.LT,c=!1===s.opts.unicode?r._`${n}.length`:r._`${o.useFunc(e.gen,i.default)}(${n})`;e.fail$data(r._`${c} ${l} ${a}`)}};t.default=a},9640:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=r.operators,i={maximum:{okStr:"<=",ok:o.LTE,fail:o.GT},minimum:{okStr:">=",ok:o.GTE,fail:o.LT},exclusiveMaximum:{okStr:"<",ok:o.LT,fail:o.GTE},exclusiveMinimum:{okStr:">",ok:o.GT,fail:o.LTE}},a={message:({keyword:e,schemaCode:t})=>r.str`must be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>r._`{comparison: ${i[e].okStr}, limit: ${t}}`},s={keyword:Object.keys(i),type:"number",schemaType:"number",$data:!0,error:a,code(e){const{keyword:t,data:n,schemaCode:o}=e;e.fail$data(r._`${n} ${i[t].fail} ${o} || isNaN(${n})`)}};t.default=s},6711:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxProperties"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o}=e,i="maxProperties"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`Object.keys(${n}).length ${i} ${o}`)}};t.default=o},7692:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:e})=>r.str`must be multiple of ${e}`,params:({schemaCode:e})=>r._`{multipleOf: ${e}}`},code(e){const{gen:t,data:n,schemaCode:o,it:i}=e,a=i.opts.multipleOfPrecision,s=t.let("res"),l=a?r._`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:r._`${s} !== parseInt(${s})`;e.fail$data(r._`(${o} === 0 || (${s} = ${n}/${o}, ${l}))`)}};t.default=o},8582:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8619),o=n(4475),i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>o.str`must match pattern "${e}"`,params:({schemaCode:e})=>o._`{pattern: ${e}}`},code(e){const{data:t,$data:n,schema:i,schemaCode:a,it:s}=e,l=s.opts.unicodeRegExp?"u":"",c=n?o._`(new RegExp(${a}, ${l}))`:r.usePattern(e,i);e.fail$data(o._`!${c}.test(${t})`)}};t.default=i},7835:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8619),o=n(4475),i=n(6124),a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:e}})=>o.str`must have required property '${e}'`,params:({params:{missingProperty:e}})=>o._`{missingProperty: ${e}}`},code(e){const{gen:t,schema:n,schemaCode:a,data:s,$data:l,it:c}=e,{opts:u}=c;if(!l&&0===n.length)return;const p=n.length>=u.loopRequired;if(c.allErrors?function(){if(p||l)e.block$data(o.nil,d);else for(const t of n)r.checkReportMissingProp(e,t)}():function(){const i=t.let("missing");if(p||l){const n=t.let("valid",!0);e.block$data(n,(()=>function(n,i){e.setParams({missingProperty:n}),t.forOf(n,a,(()=>{t.assign(i,r.propertyInData(t,s,n,u.ownProperties)),t.if(o.not(i),(()=>{e.error(),t.break()}))}),o.nil)}(i,n))),e.ok(n)}else t.if(r.checkMissingProp(e,n,i)),r.reportMissingProp(e,i),t.else()}(),u.strictRequired){const t=e.parentSchema.properties,{definedProperties:r}=e.it;for(const e of n)if(void 0===(null==t?void 0:t[e])&&!r.has(e)){const t=`required property "${e}" is not defined at "${c.schemaEnv.baseId+c.errSchemaPath}" (strictRequired)`;i.checkStrictMode(c,t,c.opts.strictRequired)}}function d(){t.forOf("prop",a,(n=>{e.setParams({missingProperty:n}),t.if(r.noPropertyInData(t,s,n,u.ownProperties),(()=>e.error()))}))}}};t.default=a},7326:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(7927),o=n(4475),i=n(6124),a=n(412),s={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:e,j:t}})=>o.str`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>o._`{i: ${e}, j: ${t}}`},code(e){const{gen:t,data:n,$data:s,schema:l,parentSchema:c,schemaCode:u,it:p}=e;if(!s&&!l)return;const d=t.let("valid"),f=c.items?r.getSchemaTypes(c.items):[];function h(i,a){const s=t.name("item"),l=r.checkDataTypes(f,s,p.opts.strictNumbers,r.DataType.Wrong),c=t.const("indices",o._`{}`);t.for(o._`;${i}--;`,(()=>{t.let(s,o._`${n}[${i}]`),t.if(l,o._`continue`),f.length>1&&t.if(o._`typeof ${s} == "string"`,o._`${s} += "_"`),t.if(o._`typeof ${c}[${s}] == "number"`,(()=>{t.assign(a,o._`${c}[${s}]`),e.error(),t.assign(d,!1).break()})).code(o._`${c}[${s}] = ${i}`)}))}function m(r,s){const l=i.useFunc(t,a.default),c=t.name("outer");t.label(c).for(o._`;${r}--;`,(()=>t.for(o._`${s} = ${r}; ${s}--;`,(()=>t.if(o._`${l}(${n}[${r}], ${n}[${s}])`,(()=>{e.error(),t.assign(d,!1).break(c)}))))))}e.block$data(d,(function(){const r=t.let("i",o._`${n}.length`),i=t.let("j");e.setParams({i:r,j:i}),t.assign(d,!0),t.if(o._`${r} > 1`,(()=>(f.length>0&&!f.some((e=>"object"===e||"array"===e))?h:m)(r,i)))}),o._`${u} === false`),e.ok(d)}};t.default=s},4029:function(e){"use strict";var t=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),n(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function n(e,r,o,i,a,s,l,c,u,p){if(i&&"object"==typeof i&&!Array.isArray(i)){for(var d in r(i,a,s,l,c,u,p),i){var f=i[d];if(Array.isArray(f)){if(d in t.arrayKeywords)for(var h=0;hn.addProblemToIgnore(e))),fileDependencies:o.getFiles(),rootType:S.DefinitionRoot,refTypes:A.refTypes,visitorsData:A.visitorsData}}))}function k(e,t){switch(t){case d.OasMajorVersion.Version3:switch(e){case"Schema":return"schemas";case"Parameter":return"parameters";case"Response":return"responses";case"Example":return"examples";case"RequestBody":return"requestBodies";case"Header":return"headers";case"SecuritySchema":return"securitySchemes";case"Link":return"links";case"Callback":return"callbacks";default:return null}case d.OasMajorVersion.Version2:switch(e){case"Schema":return"definitions";case"Parameter":return"parameters";case"Response":return"responses";default:return null}}}function _(e,t,n,r,a,s){let l;const c={ref:{leave(o,l,c){if(!c.location||void 0===c.node)return void m.reportUnresolvedRef(c,l.report,l.location);if(c.location.source===r.source&&c.location.source===l.location.source&&"scalar"!==l.type.name&&!t)return;if(n&&y.isRedoclyRegistryURL(o.$ref))return;if(s&&f.isAbsoluteUrl(o.$ref))return;const d=k(l.type.name,e);d?t?(p(d,c,l),u(o,c,l)):(o.$ref=p(d,c,l),function(e,t,n){const o=i.makeRefId(n.location.source.absoluteRef,e.$ref);a.set(o,{document:r,isRemote:!1,node:t.node,nodePointer:e.$ref,resolved:!0})}(o,c,l)):u(o,c,l)}},DefinitionRoot:{enter(t){e===d.OasMajorVersion.Version3?l=t.components=t.components||{}:e===d.OasMajorVersion.Version2&&(l=t)}}};function u(e,t,n){g.isPlainObject(t.node)?(delete e.$ref,Object.assign(e,t.node)):n.parent[n.key]=t.node}function p(t,n,r){l[t]=l[t]||{};const o=function(e,t,n){const[r,o]=[e.location.source.absoluteRef,e.location.pointer],i=l[t];let a="";const s=o.slice(2).split("/").filter(Boolean);for(;s.length>0;)if(a=s.pop()+(a?`-${a}`:""),!i||!i[a]||h(i[a],e,n))return a;if(a=f.refBaseName(r)+(a?`_${a}`:""),!i[a]||h(i[a],e,n))return a;const c=a;let u=2;for(;i[a]&&!h(i[a],e,n);)a=`${c}-${u}`,u++;return i[a]||n.report({message:`Two schemas are referenced with the same name but different content. Renamed ${c} to ${a}.`,location:n.location,forceSeverity:"warn"}),a}(n,t,r);return l[t][o]=n.node,e===d.OasMajorVersion.Version3?`#/components/${t}/${o}`:`#/${t}/${o}`}function h(e,t,n){var r;return!(!f.isRef(e)||(null===(r=n.resolve(e).location)||void 0===r?void 0:r.absolutePointer)!==t.location.absolutePointer)||o(e,t.node)}return e===d.OasMajorVersion.Version3&&(c.DiscriminatorMapping={leave(n,r){for(const o of Object.keys(n)){const i=n[o],a=r.resolve({$ref:i});if(!a.location||void 0===a.node)return void m.reportUnresolvedRef(a,r.report,r.location.child(o));const s=k("Schema",e);t?p(s,a,r):n[o]=p(s,a,r)}}}),c}!function(e){e.Version2="oas2",e.Version3_0="oas3_0",e.Version3_1="oas3_1"}(w=t.OasVersion||(t.OasVersion={})),t.bundle=function(e){return r(this,void 0,void 0,(function*(){const{ref:t,doc:n,externalRefResolver:r=new i.BaseResolver(e.config.resolve),base:o=null}=e;if(!t&&!n)throw new Error("Document or reference is required.\n");const a=void 0!==n?n:yield r.resolveDocument(o,t,!0);if(a instanceof Error)throw a;return x(Object.assign(Object.assign({document:a},e),{config:e.config.lint,externalRefResolver:r}))}))},t.bundleDocument=x,t.mapTypeToComponent=k},6877:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={rules:{"info-description":"error","info-contact":"error","info-license":"error","info-license-url":"error","tag-description":"error","tags-alphabetical":"error","parameter-description":"error","no-identical-paths":"error","no-ambiguous-paths":"error","no-path-trailing-slash":"error","path-segment-plural":"error","path-declaration-must-exist":"error","path-not-include-query":"error","path-parameters-defined":"error","operation-description":"error","operation-2xx-response":"error","operation-4xx-response":"error",assertions:"error","operation-operationId":"error","operation-summary":"error","operation-operationId-unique":"error","operation-operationId-url-safe":"error","operation-parameters-unique":"error","operation-tag-defined":"error","operation-security-defined":"error","operation-singular-tag":"error","no-unresolved-refs":"error","no-enum-type-mismatch":"error","boolean-parameter-prefixes":"error","paths-kebab-case":"error","no-http-verbs-in-paths":"error","path-excludes-patterns":{severity:"error",patterns:[]},"request-mime-type":"error",spec:"error","no-invalid-schema-examples":"error","no-invalid-parameter-examples":"error","scalar-property-missing-example":"error"},oas3_0Rules:{"no-invalid-media-type-examples":"error","no-server-example.com":"error","no-server-trailing-slash":"error","no-empty-servers":"error","no-example-value-and-externalValue":"error","no-unused-components":"error","no-undefined-server-variable":"error","no-servers-empty-enum":"error"},oas3_1Rules:{"no-server-example.com":"error","no-server-trailing-slash":"error","no-empty-servers":"error","no-example-value-and-externalValue":"error","no-unused-components":"error","no-undefined-server-variable":"error","no-servers-empty-enum":"error"}}},6242:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultPlugin=t.builtInConfigs=void 0;const r=n(8057),o=n(6877),i=n(9016),a=n(226),s=n(7523),l=n(226),c=n(7523),u=n(1753),p=n(7060);t.builtInConfigs={recommended:r.default,minimal:i.default,all:o.default,"redocly-registry":{decorators:{"registry-dependencies":"on"}}},t.defaultPlugin={id:"",rules:{oas3:a.rules,oas2:s.rules},preprocessors:{oas3:l.preprocessors,oas2:c.preprocessors},decorators:{oas3:u.decorators,oas2:p.decorators},configs:t.builtInConfigs}},7040:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},o=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{if(p.isString(e)&&s.isAbsoluteUrl(e))throw new Error(a.red("We don't support remote plugins yet."));const o=p.isString(e)?n(i.resolve(i.dirname(t),e)):e,l=o.id;if("string"!=typeof l)throw new Error(a.red(`Plugin must define \`id\` property in ${a.blue(e.toString())}.`));if(r.has(l)){const t=r.get(l);throw new Error(a.red(`Plugin "id" must be unique. Plugin ${a.blue(e.toString())} uses id "${a.blue(l)}" already seen in ${a.blue(t)}`))}r.set(l,e.toString());const c=Object.assign(Object.assign({id:l},o.configs?{configs:o.configs}:{}),o.typeExtension?{typeExtension:o.typeExtension}:{});if(o.rules){if(!o.rules.oas3&&!o.rules.oas2)throw new Error(`Plugin rules must have \`oas3\` or \`oas2\` rules "${e}.`);c.rules={},o.rules.oas3&&(c.rules.oas3=u.prefixRules(o.rules.oas3,l)),o.rules.oas2&&(c.rules.oas2=u.prefixRules(o.rules.oas2,l))}if(o.preprocessors){if(!o.preprocessors.oas3&&!o.preprocessors.oas2)throw new Error(`Plugin \`preprocessors\` must have \`oas3\` or \`oas2\` preprocessors "${e}.`);c.preprocessors={},o.preprocessors.oas3&&(c.preprocessors.oas3=u.prefixRules(o.preprocessors.oas3,l)),o.preprocessors.oas2&&(c.preprocessors.oas2=u.prefixRules(o.preprocessors.oas2,l))}if(o.decorators){if(!o.decorators.oas3&&!o.decorators.oas2)throw new Error(`Plugin \`decorators\` must have \`oas3\` or \`oas2\` decorators "${e}.`);c.decorators={},o.decorators.oas3&&(c.decorators.oas3=u.prefixRules(o.decorators.oas3,l)),o.decorators.oas2&&(c.decorators.oas2=u.prefixRules(o.decorators.oas2,l))}return c})).filter(p.notUndefined)}function h({rawConfig:e,configPath:t="",resolver:n}){var o,i;return r(this,void 0,void 0,(function*(){const{apis:r={},lint:a={}}=e;let s={};for(const[e,l]of Object.entries(r||{})){if(null===(i=null===(o=l.lint)||void 0===o?void 0:o.extends)||void 0===i?void 0:i.some(p.isNotString))throw new Error("Error configuration format not detected in extends value must contain strings");const r=v(a,l.lint),c=yield g({lintConfig:r,configPath:t,resolver:n});s[e]=Object.assign(Object.assign({},l),{lint:c})}return s}))}function m({lintConfig:e,configPath:t="",resolver:n=new l.BaseResolver},a=[],d=[]){var h,g,v;return r(this,void 0,void 0,(function*(){if(a.includes(t))throw new Error(`Circular dependency in config file: "${t}"`);const l=u.getUniquePlugins(f([...(null==e?void 0:e.plugins)||[],c.defaultPlugin],t)),b=null===(h=null==e?void 0:e.plugins)||void 0===h?void 0:h.filter(p.isString).map((e=>i.resolve(i.dirname(t),e))),w=s.isAbsoluteUrl(t)?t:t&&i.resolve(t),x=yield Promise.all((null===(g=null==e?void 0:e.extends)||void 0===g?void 0:g.map((e=>r(this,void 0,void 0,(function*(){if(!s.isAbsoluteUrl(e)&&!i.extname(e))return y(e,l);const o=s.isAbsoluteUrl(e)?e:s.isAbsoluteUrl(t)?new URL(e,t).href:i.resolve(i.dirname(t),e),c=yield function(e,t){return r(this,void 0,void 0,(function*(){try{const n=yield t.loadExternalRef(e),r=u.transformConfig(p.parseYaml(n.body));if(!r.lint)throw new Error(`Lint configuration format not detected: "${e}"`);return r.lint}catch(t){throw new Error(`Failed to load "${e}": ${t.message}`)}}))}(o,n);return yield m({lintConfig:c,configPath:o,resolver:n},[...a,w],d)})))))||[]),k=u.mergeExtends([...x,Object.assign(Object.assign({},e),{plugins:l,extends:void 0,extendPaths:[...a,w],pluginPaths:b})]),{plugins:_=[]}=k,O=o(k,["plugins"]);return Object.assign(Object.assign({},O),{extendPaths:null===(v=O.extendPaths)||void 0===v?void 0:v.filter((e=>e&&!s.isAbsoluteUrl(e))),plugins:u.getUniquePlugins(_),recommendedFallback:null==e?void 0:e.recommendedFallback,doNotResolveExamples:null==e?void 0:e.doNotResolveExamples})}))}function g(e,t=[],n=[]){return r(this,void 0,void 0,(function*(){const r=yield m(e,t,n);return Object.assign(Object.assign({},r),{rules:r.rules&&b(r.rules)})}))}function y(e,t){var n;const{pluginId:r,configName:o}=u.parsePresetName(e),i=t.find((e=>e.id===r));if(!i)throw new Error(`Invalid config ${a.red(e)}: plugin ${r} is not included.`);const s=null===(n=i.configs)||void 0===n?void 0:n[o];if(!s)throw new Error(r?`Invalid config ${a.red(e)}: plugin ${r} doesn't export config with name ${o}.`:`Invalid config ${a.red(e)}: there is no such built-in config.`);return s}function v(e,t){return Object.assign(Object.assign(Object.assign({},e),t),{rules:Object.assign(Object.assign({},null==e?void 0:e.rules),null==t?void 0:t.rules),oas2Rules:Object.assign(Object.assign({},null==e?void 0:e.oas2Rules),null==t?void 0:t.oas2Rules),oas3_0Rules:Object.assign(Object.assign({},null==e?void 0:e.oas3_0Rules),null==t?void 0:t.oas3_0Rules),oas3_1Rules:Object.assign(Object.assign({},null==e?void 0:e.oas3_1Rules),null==t?void 0:t.oas3_1Rules),preprocessors:Object.assign(Object.assign({},null==e?void 0:e.preprocessors),null==t?void 0:t.preprocessors),oas2Preprocessors:Object.assign(Object.assign({},null==e?void 0:e.oas2Preprocessors),null==t?void 0:t.oas2Preprocessors),oas3_0Preprocessors:Object.assign(Object.assign({},null==e?void 0:e.oas3_0Preprocessors),null==t?void 0:t.oas3_0Preprocessors),oas3_1Preprocessors:Object.assign(Object.assign({},null==e?void 0:e.oas3_1Preprocessors),null==t?void 0:t.oas3_1Preprocessors),decorators:Object.assign(Object.assign({},null==e?void 0:e.decorators),null==t?void 0:t.decorators),oas2Decorators:Object.assign(Object.assign({},null==e?void 0:e.oas2Decorators),null==t?void 0:t.oas2Decorators),oas3_0Decorators:Object.assign(Object.assign({},null==e?void 0:e.oas3_0Decorators),null==t?void 0:t.oas3_0Decorators),oas3_1Decorators:Object.assign(Object.assign({},null==e?void 0:e.oas3_1Decorators),null==t?void 0:t.oas3_1Decorators),recommendedFallback:!(null==t?void 0:t.extends)&&e.recommendedFallback})}function b(e){if(!e)return e;const t={},n=[];for(const[r,o]of Object.entries(e))if(r.startsWith("assert/")&&"object"==typeof o&&null!==o){const e=o;n.push(Object.assign(Object.assign({},e),{assertionId:r.replace("assert/","")}))}else t[r]=o;return n.length>0&&(t.assertions=n),t}t.resolveConfig=function(e,t){var n,o,i,a,s;return r(this,void 0,void 0,(function*(){if(null===(o=null===(n=e.lint)||void 0===n?void 0:n.extends)||void 0===o?void 0:o.some(p.isNotString))throw new Error("Error configuration format not detected in extends value must contain strings");const r=new l.BaseResolver(u.getResolveConfig(e.resolve)),c=null!==(a=null===(i=null==e?void 0:e.lint)||void 0===i?void 0:i.extends)&&void 0!==a?a:["recommended"],f=!(null===(s=null==e?void 0:e.lint)||void 0===s?void 0:s.extends),m=Object.assign(Object.assign({},null==e?void 0:e.lint),{extends:c,recommendedFallback:f}),y=yield h({rawConfig:Object.assign(Object.assign({},e),{lint:m}),configPath:t,resolver:r}),v=yield g({lintConfig:m,configPath:t,resolver:r});return new d.Config(Object.assign(Object.assign({},e),{apis:y,lint:v}),t)}))},t.resolvePlugins=f,t.resolveApis=h,t.resolveLint=g,t.resolvePreset=y},3777:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Config=t.LintConfig=t.AVAILABLE_REGIONS=t.DOMAINS=t.DEFAULT_REGION=t.IGNORE_FILE=t.env=void 0;const r=n(5101),o=n(6470),i=n(5273),a=n(771),s=n(1510),l=n(2565);t.env="undefined"!=typeof process&&{}||{},t.IGNORE_FILE=".redocly.lint-ignore.yaml",t.DEFAULT_REGION="us",t.DOMAINS=function(){const e={us:"redocly.com",eu:"eu.redocly.com"},n=t.env.REDOCLY_DOMAIN;return(null==n?void 0:n.endsWith(".redocly.host"))&&(e[n.split(".")[0]]=n),"redoc.online"===n&&(e[n]=n),e}(),t.AVAILABLE_REGIONS=Object.keys(t.DOMAINS);class c{constructor(e,n){this.rawConfig=e,this.configFile=n,this.ignore={},this._usedRules=new Set,this._usedVersions=new Set,this.plugins=e.plugins||[],this.doNotResolveExamples=!!e.doNotResolveExamples,this.recommendedFallback=e.recommendedFallback||!1,this.rules={[s.OasVersion.Version2]:Object.assign(Object.assign({},e.rules),e.oas2Rules),[s.OasVersion.Version3_0]:Object.assign(Object.assign({},e.rules),e.oas3_0Rules),[s.OasVersion.Version3_1]:Object.assign(Object.assign({},e.rules),e.oas3_1Rules)},this.preprocessors={[s.OasVersion.Version2]:Object.assign(Object.assign({},e.preprocessors),e.oas2Preprocessors),[s.OasVersion.Version3_0]:Object.assign(Object.assign({},e.preprocessors),e.oas3_0Preprocessors),[s.OasVersion.Version3_1]:Object.assign(Object.assign({},e.preprocessors),e.oas3_1Preprocessors)},this.decorators={[s.OasVersion.Version2]:Object.assign(Object.assign({},e.decorators),e.oas2Decorators),[s.OasVersion.Version3_0]:Object.assign(Object.assign({},e.decorators),e.oas3_0Decorators),[s.OasVersion.Version3_1]:Object.assign(Object.assign({},e.decorators),e.oas3_1Decorators)},this.extendPaths=e.extendPaths||[],this.pluginPaths=e.pluginPaths||[];const a=this.configFile?o.dirname(this.configFile):"undefined"!=typeof process&&process.cwd()||"",l=o.join(a,t.IGNORE_FILE);if(r.hasOwnProperty("existsSync")&&r.existsSync(l)){this.ignore=i.parseYaml(r.readFileSync(l,"utf-8"))||{};for(const e of Object.keys(this.ignore)){this.ignore[o.resolve(o.dirname(l),e)]=this.ignore[e];for(const t of Object.keys(this.ignore[e]))this.ignore[e][t]=new Set(this.ignore[e][t]);delete this.ignore[e]}}}saveIgnore(){const e=this.configFile?o.dirname(this.configFile):process.cwd(),n=o.join(e,t.IGNORE_FILE),s={};for(const t of Object.keys(this.ignore)){const n=s[a.slash(o.relative(e,t))]=this.ignore[t];for(const e of Object.keys(n))n[e]=Array.from(n[e])}r.writeFileSync(n,"# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API.\n# See https://redoc.ly/docs/cli/ for more information.\n"+i.stringifyYaml(s))}addIgnore(e){const t=this.ignore,n=e.location[0];if(void 0===n.pointer)return;const r=t[n.source.absoluteRef]=t[n.source.absoluteRef]||{};(r[e.ruleId]=r[e.ruleId]||new Set).add(n.pointer)}addProblemToIgnore(e){const t=e.location[0];if(void 0===t.pointer)return e;const n=(this.ignore[t.source.absoluteRef]||{})[e.ruleId],r=n&&n.has(t.pointer);return r?Object.assign(Object.assign({},e),{ignored:r}):e}extendTypes(e,t){let n=e;for(const e of this.plugins)if(void 0!==e.typeExtension)switch(t){case s.OasVersion.Version3_0:case s.OasVersion.Version3_1:if(!e.typeExtension.oas3)continue;n=e.typeExtension.oas3(n,t);case s.OasVersion.Version2:if(!e.typeExtension.oas2)continue;n=e.typeExtension.oas2(n,t);default:throw new Error("Not implemented")}return n}getRuleSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.rules[t][e]||"off";return"string"==typeof n?{severity:n}:Object.assign({severity:"error"},n)}getPreprocessorSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.preprocessors[t][e]||"off";return"string"==typeof n?{severity:"on"===n?"error":n}:Object.assign({severity:"error"},n)}getDecoratorSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.decorators[t][e]||"off";return"string"==typeof n?{severity:"on"===n?"error":n}:Object.assign({severity:"error"},n)}getUnusedRules(){const e=[],t=[],n=[];for(const r of Array.from(this._usedVersions))e.push(...Object.keys(this.rules[r]).filter((e=>!this._usedRules.has(e)))),t.push(...Object.keys(this.decorators[r]).filter((e=>!this._usedRules.has(e)))),n.push(...Object.keys(this.preprocessors[r]).filter((e=>!this._usedRules.has(e))));return{rules:e,preprocessors:n,decorators:t}}getRulesForOasVersion(e){switch(e){case s.OasMajorVersion.Version3:const e=[];return this.plugins.forEach((t=>{var n;return(null===(n=t.preprocessors)||void 0===n?void 0:n.oas3)&&e.push(t.preprocessors.oas3)})),this.plugins.forEach((t=>{var n;return(null===(n=t.rules)||void 0===n?void 0:n.oas3)&&e.push(t.rules.oas3)})),this.plugins.forEach((t=>{var n;return(null===(n=t.decorators)||void 0===n?void 0:n.oas3)&&e.push(t.decorators.oas3)})),e;case s.OasMajorVersion.Version2:const t=[];return this.plugins.forEach((e=>{var n;return(null===(n=e.preprocessors)||void 0===n?void 0:n.oas2)&&t.push(e.preprocessors.oas2)})),this.plugins.forEach((e=>{var n;return(null===(n=e.rules)||void 0===n?void 0:n.oas2)&&t.push(e.rules.oas2)})),this.plugins.forEach((e=>{var n;return(null===(n=e.decorators)||void 0===n?void 0:n.oas2)&&t.push(e.decorators.oas2)})),t}}skipRules(e){for(const t of e||[])for(const e of Object.values(s.OasVersion))this.rules[e][t]&&(this.rules[e][t]="off")}skipPreprocessors(e){for(const t of e||[])for(const e of Object.values(s.OasVersion))this.preprocessors[e][t]&&(this.preprocessors[e][t]="off")}skipDecorators(e){for(const t of e||[])for(const e of Object.values(s.OasVersion))this.decorators[e][t]&&(this.decorators[e][t]="off")}}t.LintConfig=c,t.Config=class{constructor(e,t){this.rawConfig=e,this.configFile=t,this.apis=e.apis||{},this.lint=new c(e.lint||{},t),this["features.openapi"]=e["features.openapi"]||{},this["features.mockServer"]=e["features.mockServer"]||{},this.resolve=l.getResolveConfig(null==e?void 0:e.resolve),this.region=e.region,this.organization=e.organization}}},8698:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),o(n(3777),t),o(n(3865),t),o(n(5030),t),o(n(6242),t),o(n(9129),t),o(n(2565),t),o(n(7040),t)},9129:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.getConfig=t.findConfig=t.CONFIG_FILE_NAMES=t.loadConfig=void 0;const o=n(5101),i=n(6470),a=n(1094),s=n(771),l=n(3777),c=n(2565),u=n(7040);function p(e){if(!o.hasOwnProperty("existsSync"))return;const n=t.CONFIG_FILE_NAMES.map((t=>e?i.resolve(e,t):t)).filter(o.existsSync);if(n.length>1)throw new Error(`\n Multiple configuration files are not allowed. \n Found the following files: ${n.join(", ")}. \n Please use 'redocly.yaml' instead.\n `);return n[0]}function d(e=p()){return r(this,void 0,void 0,(function*(){if(!e)return{};try{const t=(yield s.loadYaml(e))||{};return c.transformConfig(t)}catch(t){throw new Error(`Error parsing config file at '${e}': ${t.message}`)}}))}t.loadConfig=function(e=p(),t,n){return r(this,void 0,void 0,(function*(){const o=yield d(e);return"function"==typeof n&&(yield n(o)),yield function({rawConfig:e,customExtends:t,configPath:n}){var o;return r(this,void 0,void 0,(function*(){void 0!==t?(e.lint=e.lint||{},e.lint.extends=t):s.isEmptyObject(e);const r=new a.RedoclyClient,i=yield r.getTokens();if(i.length){e.resolve||(e.resolve={}),e.resolve.http||(e.resolve.http={}),e.resolve.http.headers=[...null!==(o=e.resolve.http.headers)&&void 0!==o?o:[]];for(const t of i){const n=l.DOMAINS[t.region];e.resolve.http.headers.push({matches:`https://api.${n}/registry/**`,name:"Authorization",envVariable:void 0,value:t.token},..."us"===t.region?[{matches:"https://api.redoc.ly/registry/**",name:"Authorization",envVariable:void 0,value:t.token}]:[])}}return u.resolveConfig(e,n)}))}({rawConfig:o,customExtends:t,configPath:e})}))},t.CONFIG_FILE_NAMES=["redocly.yaml","redocly.yml",".redocly.yaml",".redocly.yml"],t.findConfig=p,t.getConfig=d},9016:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={rules:{"info-description":"warn","info-contact":"off","info-license":"off","info-license-url":"off","tag-description":"warn","tags-alphabetical":"off","parameter-description":"off","no-path-trailing-slash":"warn","no-identical-paths":"warn","no-ambiguous-paths":"warn","path-declaration-must-exist":"warn","path-not-include-query":"warn","path-parameters-defined":"warn","operation-description":"off","operation-2xx-response":"warn","operation-4xx-response":"off",assertions:"warn","operation-operationId":"warn","operation-summary":"warn","operation-operationId-unique":"warn","operation-parameters-unique":"warn","operation-tag-defined":"off","operation-security-defined":"warn","operation-operationId-url-safe":"warn","operation-singular-tag":"off","no-unresolved-refs":"error","no-enum-type-mismatch":"warn","boolean-parameter-prefixes":"off","paths-kebab-case":"off",spec:"error"},oas3_0Rules:{"no-invalid-media-type-examples":{severity:"warn",disallowAdditionalProperties:!0},"no-server-example.com":"warn","no-server-trailing-slash":"error","no-empty-servers":"warn","no-example-value-and-externalValue":"warn","no-unused-components":"warn","no-undefined-server-variable":"warn","no-servers-empty-enum":"error"},oas3_1Rules:{"no-server-example.com":"warn","no-server-trailing-slash":"error","no-empty-servers":"warn","no-example-value-and-externalValue":"warn","no-unused-components":"warn","no-undefined-server-variable":"warn","no-servers-empty-enum":"error"}}},8057:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={rules:{"info-description":"warn","info-contact":"off","info-license":"warn","info-license-url":"warn","tag-description":"warn","tags-alphabetical":"off","parameter-description":"off","no-path-trailing-slash":"error","no-identical-paths":"error","no-ambiguous-paths":"warn","path-declaration-must-exist":"error","path-not-include-query":"error","path-parameters-defined":"error","operation-description":"off","operation-2xx-response":"warn",assertions:"warn","operation-4xx-response":"warn","operation-operationId":"warn","operation-summary":"error","operation-operationId-unique":"error","operation-operationId-url-safe":"error","operation-parameters-unique":"error","operation-tag-defined":"off","operation-security-defined":"error","operation-singular-tag":"off","no-unresolved-refs":"error","no-enum-type-mismatch":"error","boolean-parameter-prefixes":"off","paths-kebab-case":"off",spec:"error"},oas3_0Rules:{"no-invalid-media-type-examples":{severity:"warn",disallowAdditionalProperties:!0},"no-server-example.com":"warn","no-server-trailing-slash":"error","no-empty-servers":"error","no-example-value-and-externalValue":"error","no-unused-components":"warn","no-undefined-server-variable":"error","no-servers-empty-enum":"error"},oas3_1Rules:{"no-server-example.com":"warn","no-server-trailing-slash":"error","no-empty-servers":"error","no-example-value-and-externalValue":"error","no-unused-components":"warn","no-undefined-server-variable":"error","no-servers-empty-enum":"error"}}},5030:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRules=void 0;const r=n(771);t.initRules=function(e,t,n,o){return e.flatMap((e=>Object.keys(e).map((r=>{const i=e[r],a="rules"===n?t.getRuleSettings(r,o):"preprocessors"===n?t.getPreprocessorSettings(r,o):t.getDecoratorSettings(r,o);if("off"===a.severity)return;const s=i(a);return Array.isArray(s)?s.map((e=>({severity:a.severity,ruleId:r,visitor:e}))):{severity:a.severity,ruleId:r,visitor:s}})))).flatMap((e=>e)).filter(r.notUndefined)}},3865:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2565:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o-1){const[t,n]=e.split("/");return{pluginId:t,configName:n}}return{pluginId:"",configName:e}},t.transformApiDefinitionsToApis=s,t.prefixRules=function(e,t){if(!t)return e;const n={};for(const r of Object.keys(e))n[`${t}/${r}`]=e[r];return n},t.mergeExtends=function(e){const t={rules:{},oas2Rules:{},oas3_0Rules:{},oas3_1Rules:{},preprocessors:{},oas2Preprocessors:{},oas3_0Preprocessors:{},oas3_1Preprocessors:{},decorators:{},oas2Decorators:{},oas3_0Decorators:{},oas3_1Decorators:{},plugins:[],pluginPaths:[],extendPaths:[]};for(let n of e){if(n.extends)throw new Error(`\`extends\` is not supported in shared configs yet: ${JSON.stringify(n,null,2)}.`);Object.assign(t.rules,n.rules),Object.assign(t.oas2Rules,n.oas2Rules),i.assignExisting(t.oas2Rules,n.rules||{}),Object.assign(t.oas3_0Rules,n.oas3_0Rules),i.assignExisting(t.oas3_0Rules,n.rules||{}),Object.assign(t.oas3_1Rules,n.oas3_1Rules),i.assignExisting(t.oas3_1Rules,n.rules||{}),Object.assign(t.preprocessors,n.preprocessors),Object.assign(t.oas2Preprocessors,n.oas2Preprocessors),i.assignExisting(t.oas2Preprocessors,n.preprocessors||{}),Object.assign(t.oas3_0Preprocessors,n.oas3_0Preprocessors),i.assignExisting(t.oas3_0Preprocessors,n.preprocessors||{}),Object.assign(t.oas3_1Preprocessors,n.oas3_1Preprocessors),i.assignExisting(t.oas3_1Preprocessors,n.preprocessors||{}),Object.assign(t.decorators,n.decorators),Object.assign(t.oas2Decorators,n.oas2Decorators),i.assignExisting(t.oas2Decorators,n.decorators||{}),Object.assign(t.oas3_0Decorators,n.oas3_0Decorators),i.assignExisting(t.oas3_0Decorators,n.decorators||{}),Object.assign(t.oas3_1Decorators,n.oas3_1Decorators),i.assignExisting(t.oas3_1Decorators,n.decorators||{}),t.plugins.push(...n.plugins||[]),t.pluginPaths.push(...n.pluginPaths||[]),t.extendPaths.push(...new Set(n.extendPaths))}return t},t.getMergedConfig=function(e,t){var n,r,o,i,s,l;const c=[...Object.values(e.apis).map((e=>{var t;return null===(t=null==e?void 0:e.lint)||void 0===t?void 0:t.extendPaths})),null===(r=null===(n=e.rawConfig)||void 0===n?void 0:n.lint)||void 0===r?void 0:r.extendPaths].flat().filter(Boolean),u=[...Object.values(e.apis).map((e=>{var t;return null===(t=null==e?void 0:e.lint)||void 0===t?void 0:t.pluginPaths})),null===(i=null===(o=e.rawConfig)||void 0===o?void 0:o.lint)||void 0===i?void 0:i.pluginPaths].flat().filter(Boolean);return t?new a.Config(Object.assign(Object.assign({},e.rawConfig),{lint:Object.assign(Object.assign({},e.apis[t]?e.apis[t].lint:e.rawConfig.lint),{extendPaths:c,pluginPaths:u}),"features.openapi":Object.assign(Object.assign({},e["features.openapi"]),null===(s=e.apis[t])||void 0===s?void 0:s["features.openapi"]),"features.mockServer":Object.assign(Object.assign({},e["features.mockServer"]),null===(l=e.apis[t])||void 0===l?void 0:l["features.mockServer"])}),e.configFile):e},t.transformConfig=function(e){if(e.apis&&e.apiDefinitions)throw new Error("Do not use 'apiDefinitions' field. Use 'apis' instead.\n");if(e["features.openapi"]&&e.referenceDocs)throw new Error("Do not use 'referenceDocs' field. Use 'features.openapi' instead.\n");const t=e,{apiDefinitions:n,referenceDocs:i}=t,a=r(t,["apiDefinitions","referenceDocs"]);return n&&process.stderr.write(`The ${o.yellow("apiDefinitions")} field is deprecated. Use ${o.green("apis")} instead. Read more about this change: https://redocly.com/docs/api-registry/guides/migration-guide-config-file/#changed-properties\n`),i&&process.stderr.write(`The ${o.yellow("referenceDocs")} field is deprecated. Use ${o.green("features.openapi")} instead. Read more about this change: https://redocly.com/docs/api-registry/guides/migration-guide-config-file/#changed-properties\n`),Object.assign({"features.openapi":i,apis:s(n)},a)},t.getResolveConfig=function(e){var t,n;return{http:{headers:null!==(n=null===(t=null==e?void 0:e.http)||void 0===t?void 0:t.headers)&&void 0!==n?n:[],customFetch:void 0}}},t.getUniquePlugins=function(e){const t=new Set,n=[];for(const r of e)t.has(r.id)?r.id&&process.stderr.write(`Duplicate plugin id "${o.yellow(r.id)}".\n`):(n.push(r),t.add(r.id));return n}},1988:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkIfMatchByStrategy=t.filter=void 0;const r=n(7468),o=n(771);function i(e){return Array.isArray(e)?e:[e]}t.filter=function(e,t,n){const{parent:i,key:a}=t;let s=!1;if(Array.isArray(e))for(let o=0;oe.includes(t))):"all"===n&&t.every((t=>e.includes(t)))):e===t)}},9244:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FilterIn=void 0;const r=n(1988);t.FilterIn=({property:e,value:t,matchStrategy:n})=>{const o=n||"any",i=n=>(null==n?void 0:n[e])&&!r.checkIfMatchByStrategy(null==n?void 0:n[e],t,o);return{any:{enter:(e,t)=>{r.filter(e,t,i)}}}}},8623:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FilterOut=void 0;const r=n(1988);t.FilterOut=({property:e,value:t,matchStrategy:n})=>{const o=n||"any",i=n=>r.checkIfMatchByStrategy(null==n?void 0:n[e],t,o);return{any:{enter:(e,t)=>{r.filter(e,t,i)}}}}},4555:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoDescriptionOverride=void 0;const r=n(771);t.InfoDescriptionOverride=({filePath:e})=>({Info:{leave(t,{report:n,location:o}){if(!e)throw new Error('Parameter "filePath" is not provided for "info-description-override" rule');try{t.description=r.readFileAsStringSync(e)}catch(e){n({message:`Failed to read markdown override file for "info.description".\n${e.message}`,location:o.child("description")})}}}})},7802:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationDescriptionOverride=void 0;const r=n(771);t.OperationDescriptionOverride=({operationIds:e})=>({Operation:{leave(t,{report:n,location:o}){if(!t.operationId)return;if(!e)throw new Error('Parameter "operationIds" is not provided for "operation-description-override" rule');const i=t.operationId;if(e[i])try{t.description=r.readFileAsStringSync(e[i])}catch(e){n({message:`Failed to read markdown override file for operation "${i}".\n${e.message}`,location:o.child("operationId").key()})}}}})},2287:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryDependencies=void 0;const r=n(1094);t.RegistryDependencies=()=>{let e=new Set;return{DefinitionRoot:{leave(t,n){n.getVisitorData().links=Array.from(e)}},ref(t){if(t.$ref){const n=t.$ref.split("#/")[0];r.isRedoclyRegistryURL(n)&&e.add(n)}}}}},5830:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveXInternal=void 0;const r=n(771),o=n(7468);t.RemoveXInternal=({internalFlagProperty:e})=>{const t=e||"x-internal";return{any:{enter:(e,n)=>{!function(e,n){var i,a,s,l;const{parent:c,key:u}=n;let p=!1;if(Array.isArray(e))for(let r=0;r({Tag:{leave(t,{report:n}){if(!e)throw new Error('Parameter "tagNames" is not provided for "tag-description-override" rule');if(e[t.name])try{t.description=r.readFileAsStringSync(e[t.name])}catch(e){n({message:`Failed to read markdown override file for tag "${t.name}".\n${e.message}`})}}}})},7060:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decorators=void 0;const r=n(2287),o=n(7802),i=n(423),a=n(4555),s=n(5830),l=n(9244),c=n(8623);t.decorators={"registry-dependencies":r.RegistryDependencies,"operation-description-override":o.OperationDescriptionOverride,"tag-description-override":i.TagDescriptionOverride,"info-description-override":a.InfoDescriptionOverride,"remove-x-internal":s.RemoveXInternal,"filter-in":l.FilterIn,"filter-out":c.FilterOut}},1753:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decorators=void 0;const r=n(2287),o=n(7802),i=n(423),a=n(4555),s=n(5830),l=n(9244),c=n(8623);t.decorators={"registry-dependencies":r.RegistryDependencies,"operation-description-override":o.OperationDescriptionOverride,"tag-description-override":i.TagDescriptionOverride,"info-description-override":a.InfoDescriptionOverride,"remove-x-internal":s.RemoveXInternal,"filter-in":l.FilterIn,"filter-out":c.FilterOut}},5273:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringifyYaml=t.parseYaml=void 0;const r=n(3320),o=r.JSON_SCHEMA.extend({implicit:[r.types.merge],explicit:[r.types.binary,r.types.omap,r.types.pairs,r.types.set]});t.parseYaml=(e,t)=>r.load(e,Object.assign({schema:o},t)),t.stringifyYaml=(e,t)=>r.dump(e,t)},1510:function(e,t){"use strict";var n,r;Object.defineProperty(t,"__esModule",{value:!0}),t.openAPIMajor=t.detectOpenAPI=t.OasMajorVersion=t.OasVersion=void 0,function(e){e.Version2="oas2",e.Version3_0="oas3_0",e.Version3_1="oas3_1"}(n=t.OasVersion||(t.OasVersion={})),function(e){e.Version2="oas2",e.Version3="oas3"}(r=t.OasMajorVersion||(t.OasMajorVersion={})),t.detectOpenAPI=function(e){if("object"!=typeof e)throw new Error("Document must be JSON object, got "+typeof e);if(!e.openapi&&!e.swagger)throw new Error("This doesn’t look like an OpenAPI document.\n");if(e.openapi&&"string"!=typeof e.openapi)throw new Error(`Invalid OpenAPI version: should be a string but got "${typeof e.openapi}"`);if(e.openapi&&e.openapi.startsWith("3.0"))return n.Version3_0;if(e.openapi&&e.openapi.startsWith("3.1"))return n.Version3_1;if(e.swagger&&"2.0"===e.swagger)return n.Version2;throw new Error(`Unsupported OpenAPI Version: ${e.openapi||e.swagger}`)},t.openAPIMajor=function(e){return e===n.Version2?r.Version2:r.Version3}},1094:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.isRedoclyRegistryURL=t.RedoclyClient=void 0;const o=n(2116),i=n(6470),a=n(6918),s=n(8836),l=n(1390),c=n(3777),u=n(771),p=".redocly-config.json";t.RedoclyClient=class{constructor(e){this.accessTokens={},this.region=this.loadRegion(e),this.loadTokens(),this.domain=e?c.DOMAINS[e]:c.env.REDOCLY_DOMAIN||c.DOMAINS[c.DEFAULT_REGION],c.env.REDOCLY_DOMAIN=this.domain,this.registryApi=new l.RegistryApi(this.accessTokens,this.region)}loadRegion(e){if(e&&!c.DOMAINS[e])throw new Error(`Invalid argument: region in config file.\nGiven: ${s.green(e)}, choices: "us", "eu".`);return c.env.REDOCLY_DOMAIN?c.AVAILABLE_REGIONS.find((e=>c.DOMAINS[e]===c.env.REDOCLY_DOMAIN))||c.DEFAULT_REGION:e||c.DEFAULT_REGION}getRegion(){return this.region}hasTokens(){return u.isNotEmptyObject(this.accessTokens)}hasToken(){return!!this.accessTokens[this.region]}getAuthorizationHeader(){return r(this,void 0,void 0,(function*(){return this.accessTokens[this.region]}))}setAccessTokens(e){this.accessTokens=e}loadTokens(){const e=i.resolve(a.homedir(),p),t=this.readCredentialsFile(e);u.isNotEmptyObject(t)&&this.setAccessTokens(Object.assign(Object.assign({},t),t.token&&!t[this.region]&&{[this.region]:t.token})),c.env.REDOCLY_AUTHORIZATION&&this.setAccessTokens(Object.assign(Object.assign({},this.accessTokens),{[this.region]:c.env.REDOCLY_AUTHORIZATION}))}getAllTokens(){return Object.entries(this.accessTokens).filter((([e])=>c.AVAILABLE_REGIONS.includes(e))).map((([e,t])=>({region:e,token:t})))}getValidTokens(){return r(this,void 0,void 0,(function*(){const e=this.getAllTokens(),t=yield Promise.allSettled(e.map((({token:e,region:t})=>this.verifyToken(e,t))));return e.filter(((e,n)=>"fulfilled"===t[n].status)).map((({token:e,region:t})=>({token:e,region:t,valid:!0})))}))}getTokens(){return r(this,void 0,void 0,(function*(){return this.hasTokens()?yield this.getValidTokens():[]}))}isAuthorizedWithRedoclyByRegion(){return r(this,void 0,void 0,(function*(){if(!this.hasTokens())return!1;const e=this.accessTokens[this.region];if(!e)return!1;try{return yield this.verifyToken(e,this.region),!0}catch(e){return!1}}))}isAuthorizedWithRedocly(){return r(this,void 0,void 0,(function*(){return this.hasTokens()&&u.isNotEmptyObject(yield this.getValidTokens())}))}readCredentialsFile(e){return o.existsSync(e)?JSON.parse(o.readFileSync(e,"utf-8")):{}}verifyToken(e,t,n=!1){return r(this,void 0,void 0,(function*(){return this.registryApi.authStatus(e,t,n)}))}login(e,t=!1){return r(this,void 0,void 0,(function*(){const n=i.resolve(a.homedir(),p);try{yield this.verifyToken(e,this.region,t)}catch(e){throw new Error("Authorization failed. Please check if you entered a valid API key.")}const r=Object.assign(Object.assign({},this.readCredentialsFile(n)),{[this.region]:e,token:e});this.accessTokens=r,this.registryApi.setAccessTokens(r),o.writeFileSync(n,JSON.stringify(r,null,2))}))}logout(){const e=i.resolve(a.homedir(),p);o.existsSync(e)&&o.unlinkSync(e)}},t.isRedoclyRegistryURL=function(e){const t=c.env.REDOCLY_DOMAIN||c.DOMAINS[c.DEFAULT_REGION],n="redocly.com"===t?"redoc.ly":t;return!(!e.startsWith(`https://api.${t}/registry/`)&&!e.startsWith(`https://api.${n}/registry/`))}},1390:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryApi=void 0;const o=n(8150),i=n(3777),a=n(771),s=n(3244).i8;t.RegistryApi=class{constructor(e,t){this.accessTokens=e,this.region=t}get accessToken(){return a.isNotEmptyObject(this.accessTokens)&&this.accessTokens[this.region]}getBaseUrl(e=i.DEFAULT_REGION){return`https://api.${i.DOMAINS[e]}/registry`}setAccessTokens(e){return this.accessTokens=e,this}request(e="",t={},n){return r(this,void 0,void 0,(function*(){const r=Object.assign({},t.headers||{},{"x-redocly-cli-version":s});if(!r.hasOwnProperty("authorization"))throw new Error("Unauthorized");const i=yield o.default(`${this.getBaseUrl(n)}${e}`,Object.assign({},t,{headers:r}));if(401===i.status)throw new Error("Unauthorized");if(404===i.status){const e=yield i.json();throw new Error(e.code)}return i}))}authStatus(e,t,n=!1){return r(this,void 0,void 0,(function*(){try{const n=yield this.request("",{headers:{authorization:e}},t);return yield n.json()}catch(e){throw n&&console.log(e),e}}))}prepareFileUpload({organizationId:e,name:t,version:n,filesHash:o,filename:i,isUpsert:a}){return r(this,void 0,void 0,(function*(){const r=yield this.request(`/${e}/${t}/${n}/prepare-file-upload`,{method:"POST",headers:{"content-type":"application/json",authorization:this.accessToken},body:JSON.stringify({filesHash:o,filename:i,isUpsert:a})},this.region);if(r.ok)return r.json();throw new Error("Could not prepare file upload")}))}pushApi({organizationId:e,name:t,version:n,rootFilePath:o,filePaths:i,branch:a,isUpsert:s,isPublic:l,batchId:c,batchSize:u}){return r(this,void 0,void 0,(function*(){if(!(yield this.request(`/${e}/${t}/${n}`,{method:"PUT",headers:{"content-type":"application/json",authorization:this.accessToken},body:JSON.stringify({rootFilePath:o,filePaths:i,branch:a,isUpsert:s,isPublic:l,batchId:c,batchSize:u})},this.region)).ok)throw new Error("Could not push api")}))}}},7468:function(e,t){"use strict";function n(e,t){return""===e&&(e="#/"),"/"===e[e.length-1]?e+t:e+"/"+t}Object.defineProperty(t,"__esModule",{value:!0}),t.isMappingRef=t.isAbsoluteUrl=t.refBaseName=t.pointerBaseName=t.parsePointer=t.parseRef=t.escapePointer=t.unescapePointer=t.Location=t.isRef=t.joinPointer=void 0,t.joinPointer=n,t.isRef=function(e){return e&&"string"==typeof e.$ref};class r{constructor(e,t){this.source=e,this.pointer=t}child(e){return new r(this.source,n(this.pointer,(Array.isArray(e)?e:[e]).map(i).join("/")))}key(){return Object.assign(Object.assign({},this),{reportOnKey:!0})}get absolutePointer(){return this.source.absoluteRef+("#/"===this.pointer?"":this.pointer)}}function o(e){return decodeURIComponent(e.replace(/~1/g,"/").replace(/~0/g,"~"))}function i(e){return"number"==typeof e?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}t.Location=r,t.unescapePointer=o,t.escapePointer=i,t.parseRef=function(e){const[t,n]=e.split("#/");return{uri:t||null,pointer:n?n.split("/").map(o).filter(Boolean):[]}},t.parsePointer=function(e){return e.substr(2).split("/").map(o)},t.pointerBaseName=function(e){const t=e.split("/");return t[t.length-1]},t.refBaseName=function(e){const t=e.split(/[\/\\]/);return t[t.length-1].replace(/\.[^.]+$/,"")},t.isAbsoluteUrl=function(e){return e.startsWith("http://")||e.startsWith("https://")},t.isMappingRef=function(e){return e.startsWith("#")||e.startsWith("https://")||e.startsWith("http://")||e.startsWith("./")||e.startsWith("../")||e.indexOf("/")>-1}},4182:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.resolveDocument=t.BaseResolver=t.makeDocumentFromString=t.makeRefId=t.YamlParseError=t.ResolveError=t.Source=void 0;const o=n(3197),i=n(6470),a=n(7468),s=n(5220),l=n(771);class c{constructor(e,t,n){this.absoluteRef=e,this.body=t,this.mimeType=n}getAst(e){var t;return void 0===this._ast&&(this._ast=null!==(t=e(this.body,{filename:this.absoluteRef}))&&void 0!==t?t:void 0,this._ast&&0===this._ast.kind&&""===this._ast.value&&1!==this._ast.startPosition&&(this._ast.startPosition=1,this._ast.endPosition=1)),this._ast}getLines(){return void 0===this._lines&&(this._lines=this.body.split(/\r\n|[\n\r]/g)),this._lines}}t.Source=c;class u extends Error{constructor(e){super(e.message),this.originalError=e,Object.setPrototypeOf(this,u.prototype)}}t.ResolveError=u;const p=/\((\d+):(\d+)\)$/;class d extends Error{constructor(e,t){super(e.message.split("\n")[0]),this.originalError=e,this.source=t,Object.setPrototypeOf(this,d.prototype);const[,n,r]=this.message.match(p)||[];this.line=parseInt(n,10),this.col=parseInt(r,10)}}function f(e,t){return e+"::"+t}function h(e,t){return{prev:e,node:t}}t.YamlParseError=d,t.makeRefId=f,t.makeDocumentFromString=function(e,t){const n=new c(t,e);try{return{source:n,parsed:l.parseYaml(e,{filename:t})}}catch(e){throw new d(e,n)}},t.BaseResolver=class{constructor(e={http:{headers:[]}}){this.config=e,this.cache=new Map}getFiles(){return new Set(Array.from(this.cache.keys()))}resolveExternalRef(e,t){return a.isAbsoluteUrl(t)?t:e&&a.isAbsoluteUrl(e)?new URL(t,e).href:i.resolve(e?i.dirname(e):process.cwd(),t)}loadExternalRef(e){return r(this,void 0,void 0,(function*(){try{if(a.isAbsoluteUrl(e)){const{body:t,mimeType:n}=yield l.readFileFromUrl(e,this.config.http);return new c(e,t,n)}return new c(e,yield o.promises.readFile(e,"utf-8"))}catch(e){throw new u(e)}}))}parseDocument(e,t=!1){var n;const r=e.absoluteRef.substr(e.absoluteRef.lastIndexOf("."));if(![".json",".json",".yml",".yaml"].includes(r)&&!(null===(n=e.mimeType)||void 0===n?void 0:n.match(/(json|yaml|openapi)/))&&!t)return{source:e,parsed:e.body};try{return{source:e,parsed:l.parseYaml(e.body,{filename:e.absoluteRef})}}catch(t){throw new d(t,e)}}resolveDocument(e,t,n=!1){return r(this,void 0,void 0,(function*(){const r=this.resolveExternalRef(e,t),o=this.cache.get(r);if(o)return o;const i=this.loadExternalRef(r).then((e=>this.parseDocument(e,n)));return this.cache.set(r,i),i}))}};const m={name:"unknown",properties:{}},g={name:"scalar",properties:{}};t.resolveDocument=function(e){return r(this,void 0,void 0,(function*(){const{rootDocument:t,externalRefResolver:n,rootType:o}=e,i=new Map,l=new Set,c=[];let u;!function e(t,o,u,p){function d(e,t,o){return r(this,void 0,void 0,(function*(){if(function(e,t){for(;e;){if(e.node===t)return!0;e=e.prev}return!1}(o.prev,t))throw new Error("Self-referencing circular pointer");const{uri:r,pointer:s}=a.parseRef(t.$ref),l=null!==r;let c;try{c=l?yield n.resolveDocument(e.source.absoluteRef,r):e}catch(n){const r={resolved:!1,isRemote:l,document:void 0,error:n},o=f(e.source.absoluteRef,t.$ref);return i.set(o,r),r}let u={resolved:!0,document:c,isRemote:l,node:e.parsed,nodePointer:"#/"},p=c.parsed;const m=s;for(let e of m){if("object"!=typeof p){p=void 0;break}if(void 0!==p[e])p=p[e],u.nodePointer=a.joinPointer(u.nodePointer,a.escapePointer(e));else{if(!a.isRef(p)){p=void 0;break}if(u=yield d(c,p,h(o,p)),c=u.document||c,"object"!=typeof u.node){p=void 0;break}p=u.node[e],u.nodePointer=a.joinPointer(u.nodePointer,a.escapePointer(e))}}u.node=p,u.document=c;const g=f(e.source.absoluteRef,t.$ref);return u.document&&a.isRef(p)&&(u=yield d(u.document,p,h(o,p))),i.set(g,u),Object.assign({},u)}))}!function t(n,r,i){if("object"!=typeof n||null===n)return;const u=`${r.name}::${i}`;if(!l.has(u))if(l.add(u),Array.isArray(n)){const e=r.items;if(r!==m&&void 0===e)return;for(let r=0;r{t.resolved&&e(t.node,t.document,t.nodePointer,r)}));c.push(t)}}}(t,p,o.source.absoluteRef+u)}(t.parsed,t,"#/",o);do{u=yield Promise.all(c)}while(c.length!==u.length);return i}))}},7275:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateJsonSchema=t.releaseAjvInstance=void 0;const r=n(5499),o=n(7468);let i=null;t.releaseAjvInstance=function(){i=null},t.validateJsonSchema=function(e,t,n,a,s,l){const c=function(e,t,n,o){const a=function(e,t){return i||(i=new r.default({schemaId:"$id",meta:!0,allErrors:!0,strictSchema:!1,inlineRefs:!1,validateSchema:!1,discriminator:!0,allowUnionTypes:!0,validateFormats:!1,defaultAdditionalProperties:!t,loadSchemaSync(t,n){const r=e({$ref:n},t.split("#")[0]);return!(!r||!r.location)&&Object.assign({$id:r.location.absolutePointer},r.node)},logger:!1})),i}(n,o);return a.getSchema(t.absolutePointer)||a.addSchema(Object.assign({$id:t.absolutePointer},e),t.absolutePointer),a.getSchema(t.absolutePointer)}(t,n,s,l);return c?{valid:!!c(e,{instancePath:a,parentData:{fake:{}},parentDataProperty:"fake",rootData:{},dynamicAnchors:{}}),errors:(c.errors||[]).map((function(e){let t=e.message,n="enum"===e.keyword?e.params.allowedValues:void 0;n&&(t+=` ${n.map((e=>`"${e}"`)).join(", ")}`),"type"===e.keyword&&(t=`type ${t}`);const r=e.instancePath.substring(a.length+1),i=r.substring(r.lastIndexOf("/")+1);if(i&&(t=`\`${i}\` property ${t}`),"additionalProperties"===e.keyword){const n=e.params.additionalProperty;t=`${t} \`${n}\``,e.instancePath+="/"+o.escapePointer(n)}return Object.assign(Object.assign({},e),{message:t,suggest:n})}))}:{valid:!0,errors:[]}}},9740:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.asserts=t.runOnValuesSet=t.runOnKeysSet=void 0;const r=n(771),o=n(5738);t.runOnKeysSet=new Set(["mutuallyExclusive","mutuallyRequired","enum","pattern","minLength","maxLength","casing","sortOrder","disallowed","required","requireAny","ref"]),t.runOnValuesSet=new Set(["pattern","enum","defined","undefined","nonEmpty","minLength","maxLength","casing","sortOrder","ref"]),t.asserts={pattern:(e,t,n)=>{if(void 0===e)return{isValid:!0};const i=r.isString(e)?[e]:e,a=o.regexFromString(t);for(let t of i)if(!(null==a?void 0:a.test(t)))return{isValid:!1,location:r.isString(e)?n:n.key()};return{isValid:!0}},enum:(e,t,n)=>{if(void 0===e)return{isValid:!0};const o=r.isString(e)?[e]:e;for(let i of o)if(!t.includes(i))return{isValid:!1,location:r.isString(e)?n:n.child(i).key()};return{isValid:!0}},defined:(e,t=!0,n)=>{const r=void 0!==e;return{isValid:t?r:!r,location:n}},required:(e,t,n)=>{for(const r of t)if(!e.includes(r))return{isValid:!1,location:n.key()};return{isValid:!0}},disallowed:(e,t,n)=>{if(void 0===e)return{isValid:!0};const o=r.isString(e)?[e]:e;for(let i of o)if(t.includes(i))return{isValid:!1,location:r.isString(e)?n:n.child(i).key()};return{isValid:!0}},undefined:(e,t=!0,n)=>{const r=void 0===e;return{isValid:t?r:!r,location:n}},nonEmpty:(e,t=!0,n)=>{const r=null==e||""===e;return{isValid:t?!r:r,location:n}},minLength:(e,t,n)=>void 0===e?{isValid:!0}:{isValid:e.length>=t,location:n},maxLength:(e,t,n)=>void 0===e?{isValid:!0}:{isValid:e.length<=t,location:n},casing:(e,t,n)=>{if(void 0===e)return{isValid:!0};const o=r.isString(e)?[e]:e;for(let i of o){let o=!1;switch(t){case"camelCase":o=!!i.match(/^[a-z][a-zA-Z0-9]+$/g);break;case"kebab-case":o=!!i.match(/^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/g);break;case"snake_case":o=!!i.match(/^([a-z][a-z0-9]*)(_[a-z0-9]+)*$/g);break;case"PascalCase":o=!!i.match(/^[A-Z][a-zA-Z0-9]+$/g);break;case"MACRO_CASE":o=!!i.match(/^([A-Z][A-Z0-9]*)(_[A-Z0-9]+)*$/g);break;case"COBOL-CASE":o=!!i.match(/^([A-Z][A-Z0-9]*)(-[A-Z0-9]+)*$/g);break;case"flatcase":o=!!i.match(/^[a-z][a-z0-9]+$/g)}if(!o)return{isValid:!1,location:r.isString(e)?n:n.child(i).key()}}return{isValid:!0}},sortOrder:(e,t,n)=>void 0===e?{isValid:!0}:{isValid:o.isOrdered(e,t),location:n},mutuallyExclusive:(e,t,n)=>({isValid:o.getIntersectionLength(e,t)<2,location:n.key()}),mutuallyRequired:(e,t,n)=>({isValid:!(o.getIntersectionLength(e,t)>0)||o.getIntersectionLength(e,t)===t.length,location:n.key()}),requireAny:(e,t,n)=>({isValid:o.getIntersectionLength(e,t)>=1,location:n.key()}),ref:(e,t,n,r)=>{if(void 0===r)return{isValid:!0};const i=r.hasOwnProperty("$ref");if("boolean"==typeof t)return{isValid:t?i:!i,location:i?n:n.key()};const a=o.regexFromString(t);return{isValid:i&&(null==a?void 0:a.test(r.$ref)),location:i?n:n.key()}}}},4015:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Assertions=void 0;const r=n(9740),o=n(5738);t.Assertions=e=>{let t=[];const n=Object.values(e).filter((e=>"object"==typeof e&&null!==e));for(const[e,i]of n.entries()){const n=i.assertionId&&`${i.assertionId} assertion`||`assertion #${e+1}`;if(!i.subject)throw new Error(`${n}: 'subject' is required`);const a=Array.isArray(i.subject)?i.subject:[i.subject],s=Object.keys(r.asserts).filter((e=>void 0!==i[e])).map((e=>({assertId:n,name:e,conditions:i[e],message:i.message,severity:i.severity||"error",suggest:i.suggest||[],runsOnKeys:r.runOnKeysSet.has(e),runsOnValues:r.runOnValuesSet.has(e)}))),l=s.find((e=>e.runsOnKeys&&!e.runsOnValues)),c=s.find((e=>e.runsOnValues&&!e.runsOnKeys));if(c&&!i.property)throw new Error(`${c.name} can't be used on all keys. Please provide a single property.`);if(l&&i.property)throw new Error(`${l.name} can't be used on a single property. Please use 'property'.`);for(const e of a){const n=o.buildSubjectVisitor(i.property,s,i.context),r=o.buildVisitorObject(e,i.context,n);t.push(r)}}return t}},5738:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.regexFromString=t.isOrdered=t.getIntersectionLength=t.buildSubjectVisitor=t.buildVisitorObject=void 0;const r=n(7468),o=n(9740);function i({values:e,rawValues:t,assert:n,location:r,report:i}){const a=o.asserts[n.name](e,n.conditions,r,t);a.isValid||i({message:n.message||`The ${n.assertId} doesn't meet required conditions`,location:a.location||r,forceSeverity:n.severity,suggest:n.suggest,ruleId:n.assertId})}t.buildVisitorObject=function(e,t,n){if(!t)return{[e]:n};let r={};const o=r;for(let n=0;ni?!i.includes(t):a?a.includes(t):void 0}:{},r=r[o.type]}return r[e]=n,o},t.buildSubjectVisitor=function(e,t,n){return(o,{report:a,location:s,rawLocation:l,key:c,type:u,resolve:p,rawNode:d})=>{var f;if(n){const e=n[n.length-1];if(e.type===u.name){const t=e.matchParentKeys,n=e.excludeParentKeys;if(t&&!t.includes(c))return;if(n&&n.includes(c))return}}e&&(e=Array.isArray(e)?e:[e]);for(const n of t){const t="ref"===n.name?l:s;if(e)for(const s of e)i({values:r.isRef(o[s])?null===(f=p(o[s]))||void 0===f?void 0:f.node:o[s],rawValues:d[s],assert:n,location:t.child(s),report:a});else{const e="ref"===n.name?d:Object.keys(o);i({values:Object.keys(o),rawValues:e,assert:n,location:t,report:a})}}}},t.getIntersectionLength=function(e,t){const n=new Set(t);let r=0;for(const t of e)n.has(t)&&r++;return r},t.isOrdered=function(e,t){const n=t.direction||t,r=t.property;for(let t=1;t=i:o<=i))return!1}return!0},t.regexFromString=function(e){const t=e.match(/^\/(.*)\/(.*)|(.*)/);return t&&new RegExp(t[1]||t[3],t[2])}},8265:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoContact=void 0;const r=n(780);t.InfoContact=()=>({Info(e,{report:t,location:n}){e.contact||t({message:r.missingRequiredField("Info","contact"),location:n.child("contact").key()})}})},8675:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoDescription=void 0;const r=n(780);t.InfoDescription=()=>({Info(e,t){r.validateDefinedAndNonEmpty("description",e,t)}})},9622:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoLicense=void 0;const r=n(780);t.InfoLicense=()=>({Info(e,{report:t}){e.license||t({message:r.missingRequiredField("Info","license"),location:{reportOnKey:!0}})}})},476:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoLicenseUrl=void 0;const r=n(780);t.InfoLicenseUrl=()=>({License(e,t){r.validateDefinedAndNonEmpty("url",e,t)}})},3467:function(e,t){"use strict";function n(e,t){const n=e.split("/"),r=t.split("/");if(n.length!==r.length)return!1;let o=0,i=0,a=!0;for(let e=0;e({PathMap(e,{report:t,location:r}){const o=[];for(const i of Object.keys(e)){const e=o.find((e=>n(e,i)));e&&t({message:`Paths should resolve unambiguously. Found two ambiguous paths: \`${e}\` and \`${i}\`.`,location:r.child([i]).key()}),o.push(i)}}})},2319:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoEnumTypeMismatch=void 0;const r=n(780);t.NoEnumTypeMismatch=()=>({Schema(e,{report:t,location:n}){if(!e.enum||Array.isArray(e.enum)){if(e.enum&&e.type&&!Array.isArray(e.type)){const o=e.enum.filter((t=>!r.matchesJsonSchemaType(t,e.type,e.nullable)));for(const i of o)t({message:`All values of \`enum\` field must be of the same type as the \`type\` field: expected "${e.type}" but received "${r.oasTypeOf(i)}".`,location:n.child(["enum",e.enum.indexOf(i)])})}if(e.enum&&e.type&&Array.isArray(e.type)){const o={};for(const t of e.enum){o[t]=[];for(const n of e.type)r.matchesJsonSchemaType(t,n,e.nullable)||o[t].push(n);o[t].length!==e.type.length&&delete o[t]}for(const r of Object.keys(o))t({message:`Enum value \`${r}\` must be of one type. Allowed types: \`${e.type}\`.`,location:n.child(["enum",e.enum.indexOf(r)])})}}}})},525:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoHttpVerbsInPaths=void 0;const r=n(771),o=["get","head","post","put","patch","delete","options","trace"];t.NoHttpVerbsInPaths=({splitIntoWords:e})=>({PathItem(t,{key:n,report:i,location:a}){const s=n.toString();if(!s.startsWith("/"))return;const l=s.split("/");for(const t of l){if(!t||r.isPathParameter(t))continue;const n=n=>e?r.splitCamelCaseIntoWords(t).has(n):t.toLocaleLowerCase().includes(n);for(const e of o)n(e)&&i({message:`path \`${s}\` should not contain http verb ${e}`,location:a.key()})}}})},4628:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoIdenticalPaths=void 0,t.NoIdenticalPaths=()=>({PathMap(e,{report:t,location:n}){const r=new Map;for(const o of Object.keys(e)){const e=o.replace(/{.+?}/g,"{VARIABLE}"),i=r.get(e);i?t({message:`The path already exists which differs only by path parameter name(s): \`${i}\` and \`${o}\`.`,location:n.child([o]).key()}):r.set(e,o)}}})},1562:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoInvalidParameterExamples=void 0;const r=n(780);t.NoInvalidParameterExamples=e=>{var t;const n=null===(t=e.disallowAdditionalProperties)||void 0===t||t;return{Parameter:{leave(e,t){if(e.example&&r.validateExample(e.example,e.schema,t.location.child("example"),t,n),e.examples)for(const[n,o]of Object.entries(e.examples))"value"in o&&r.validateExample(o.value,e.schema,t.location.child(["examples",n]),t,!1)}}}}},78:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoInvalidSchemaExamples=void 0;const r=n(780);t.NoInvalidSchemaExamples=e=>{var t;const n=null===(t=e.disallowAdditionalProperties)||void 0===t||t;return{Schema:{leave(e,t){if(e.examples)for(const o of e.examples)r.validateExample(o,e,t.location.child(["examples",e.examples.indexOf(o)]),t,n);e.example&&r.validateExample(e.example,e,t.location.child("example"),t,!1)}}}}},700:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoPathTrailingSlash=void 0,t.NoPathTrailingSlash=()=>({PathItem(e,{report:t,key:n,location:r}){n.endsWith("/")&&"/"!==n&&t({message:`\`${n}\` should not have a trailing slash.`,location:r.key()})}})},5946:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Operation2xxResponse=void 0,t.Operation2xxResponse=()=>({ResponsesMap(e,{report:t}){Object.keys(e).some((e=>"default"===e||/2[Xx0-9]{2}/.test(e)))||t({message:"Operation must have at least one `2xx` response.",location:{reportOnKey:!0}})}})},5281:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Operation4xxResponse=void 0,t.Operation4xxResponse=()=>({ResponsesMap(e,{report:t}){Object.keys(e).some((e=>/4[Xx0-9]{2}/.test(e)))||t({message:"Operation must have at least one `4xx` response.",location:{reportOnKey:!0}})}})},3408:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationDescription=void 0;const r=n(780);t.OperationDescription=()=>({Operation(e,t){r.validateDefinedAndNonEmpty("description",e,t)}})},8742:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationIdUnique=void 0,t.OperationIdUnique=()=>{const e=new Set;return{Operation(t,{report:n,location:r}){t.operationId&&(e.has(t.operationId)&&n({message:"Every operation must have a unique `operationId`.",location:r.child([t.operationId])}),e.add(t.operationId))}}}},5064:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationIdUrlSafe=void 0;const n=/^[A-Za-z0-9-._~:/?#\[\]@!\$&'()*+,;=]*$/;t.OperationIdUrlSafe=()=>({Operation(e,{report:t,location:r}){e.operationId&&!n.test(e.operationId)&&t({message:"Operation `operationId` should not have URL invalid characters.",location:r.child(["operationId"])})}})},8786:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationOperationId=void 0;const r=n(780);t.OperationOperationId=()=>({DefinitionRoot:{PathItem:{Operation(e,t){r.validateDefinedAndNonEmpty("operationId",e,t)}}}})},4112:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationParametersUnique=void 0,t.OperationParametersUnique=()=>{let e,t;return{PathItem:{enter(){e=new Set},Parameter(t,{report:n,key:r,parentLocations:o}){const i=`${t.in}___${t.name}`;e.has(i)&&n({message:`Paths must have unique \`name\` + \`in\` parameters.\nRepeats of \`in:${t.in}\` + \`name:${t.name}\`.`,location:o.PathItem.child(["parameters",r])}),e.add(`${t.in}___${t.name}`)},Operation:{enter(){t=new Set},Parameter(e,{report:n,key:r,parentLocations:o}){const i=`${e.in}___${e.name}`;t.has(i)&&n({message:`Operations must have unique \`name\` + \`in\` parameters. Repeats of \`in:${e.in}\` + \`name:${e.name}\`.`,location:o.Operation.child(["parameters",r])}),t.add(i)}}}}}},7892:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationSecurityDefined=void 0,t.OperationSecurityDefined=()=>{let e=new Map;return{DefinitionRoot:{leave(t,{report:n}){for(const[t,r]of e.entries())if(!r.defined)for(const e of r.from)n({message:`There is no \`${t}\` security scheme defined.`,location:e.key()})}},SecurityScheme(t,{key:n}){e.set(n.toString(),{defined:!0,from:[]})},SecurityRequirement(t,{location:n}){for(const r of Object.keys(t)){const t=e.get(r),o=n.child([r]);t?t.from.push(o):e.set(r,{from:[o]})}}}}},8613:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationSingularTag=void 0,t.OperationSingularTag=()=>({Operation(e,{report:t,location:n}){e.tags&&e.tags.length>1&&t({message:"Operation `tags` object should have only one tag.",location:n.child(["tags"]).key()})}})},9578:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationSummary=void 0;const r=n(780);t.OperationSummary=()=>({Operation(e,t){r.validateDefinedAndNonEmpty("summary",e,t)}})},5097:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationTagDefined=void 0,t.OperationTagDefined=()=>{let e;return{DefinitionRoot(t){var n;e=new Set((null!==(n=t.tags)&&void 0!==n?n:[]).map((e=>e.name)))},Operation(t,{report:n,location:r}){if(t.tags)for(let o=0;o({Parameter(e,{report:t,location:n}){void 0===e.description?t({message:"Parameter object description must be present.",location:{reportOnKey:!0}}):e.description||t({message:"Parameter object description must be non-empty string.",location:n.child(["description"])})}})},7890:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathDeclarationMustExist=void 0,t.PathDeclarationMustExist=()=>({PathItem(e,{report:t,key:n}){-1!==n.indexOf("{}")&&t({message:"Path parameter declarations must be non-empty. `{}` is invalid.",location:{reportOnKey:!0}})}})},3689:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathExcludesPatterns=void 0,t.PathExcludesPatterns=({patterns:e})=>({PathItem(t,{report:n,key:r,location:o}){if(!e)throw new Error('Parameter "patterns" is not provided for "path-excludes-patterns" rule');const i=r.toString();if(i.startsWith("/")){const t=e.filter((e=>i.match(e)));for(const e of t)n({message:`path \`${i}\` should not match regex pattern: \`${e}\``,location:o.key()})}}})},2332:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathHttpVerbsOrder=void 0;const n=["get","head","post","put","patch","delete","options","trace"];t.PathHttpVerbsOrder=e=>{const t=e&&e.order||n;if(!Array.isArray(t))throw new Error("path-http-verbs-order `order` option must be an array");return{PathItem(e,{report:n,location:r}){const o=Object.keys(e).filter((e=>t.includes(e)));for(let e=0;e({PathMap:{PathItem(e,{report:t,key:n}){n.toString().includes("?")&&t({message:"Don't put query string items in the path, they belong in parameters with `in: query`.",location:{reportOnKey:!0}})}}})},7421:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathParamsDefined=void 0;const n=/\{([a-zA-Z0-9_.-]+)\}+/g;t.PathParamsDefined=()=>{let e,t,r;return{PathItem:{enter(o,{key:i}){t=new Set,r=i,e=new Set(Array.from(i.toString().matchAll(n)).map((e=>e[1])))},Parameter(n,{report:o,location:i}){"path"===n.in&&n.name&&(t.add(n.name),e.has(n.name)||o({message:`Path parameter \`${n.name}\` is not used in the path \`${r}\`.`,location:i.child(["name"])}))},Operation:{leave(n,{report:o,location:i}){for(const n of Array.from(e.keys()))t.has(n)||o({message:`The operation does not define the path parameter \`{${n}}\` expected by path \`${r}\`.`,location:i.child(["parameters"]).key()})},Parameter(n,{report:o,location:i}){"path"===n.in&&n.name&&(t.add(n.name),e.has(n.name)||o({message:`Path parameter \`${n.name}\` is not used in the path \`${r}\`.`,location:i.child(["name"])}))}}}}}},3807:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathSegmentPlural=void 0;const r=n(771);t.PathSegmentPlural=e=>{const{ignoreLastPathSegment:t,exceptions:n}=e;return{PathItem:{leave(e,{report:o,key:i,location:a}){const s=i.toString();if(s.startsWith("/")){const e=s.split("/");e.shift(),t&&e.length>1&&e.pop();for(const t of e)n&&n.includes(t)||!r.isPathParameter(t)&&r.isSingular(t)&&o({message:`path segment \`${t}\` should be plural.`,location:a.key()})}}}}}},9527:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathsKebabCase=void 0,t.PathsKebabCase=()=>({PathItem(e,{report:t,key:n}){n.substr(1).split("/").filter((e=>""!==e)).every((e=>/^{.+}$/.test(e)||/^[a-z0-9-.]+$/.test(e)))||t({message:`\`${n}\` does not use kebab-case.`,location:{reportOnKey:!0}})}})},5839:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseContainsHeader=void 0;const r=n(771);t.ResponseContainsHeader=e=>{const t=e.names||{};return{Operation:{Response:{enter:(e,{report:n,location:o,key:i})=>{var a;const s=t[i]||t[r.getMatchingStatusCodeRange(i)]||t[r.getMatchingStatusCodeRange(i).toLowerCase()]||[];for(const t of s)(null===(a=e.headers)||void 0===a?void 0:a[t])||n({message:`Response object must contain a "${t}" header.`,location:o.child("headers").key()})}}}}}},5669:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScalarPropertyMissingExample=void 0;const r=n(1510),o=["string","integer","number","boolean","null"];t.ScalarPropertyMissingExample=()=>({SchemaProperties(e,{report:t,location:n,oasVersion:i,resolve:a}){for(const l of Object.keys(e)){const c=a(e[l]).node;c&&((s=c).type&&!(s.allOf||s.anyOf||s.oneOf)&&"binary"!==s.format&&(Array.isArray(s.type)?s.type.every((e=>o.includes(e))):o.includes(s.type)))&&void 0===c.example&&void 0===c.examples&&t({message:`Scalar property should have "example"${i===r.OasVersion.Version3_1?' or "examples"':""} defined.`,location:n.child(l).key()})}var s}})},6471:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OasSpec=void 0;const r=n(5220),o=n(780),i=n(7468),a=n(771);t.OasSpec=()=>({any(e,{report:t,type:n,location:s,key:l,resolve:c,ignoreNextVisitorsOnNode:u}){var p,d,f,h;const m=o.oasTypeOf(e);if(n.items)return void("array"!==m&&(t({message:`Expected type \`${n.name}\` (array) but got \`${m}\``}),u()));if("object"!==m)return t({message:`Expected type \`${n.name}\` (object) but got \`${m}\``}),void u();const g="function"==typeof n.required?n.required(e,l):n.required;for(let n of g||[])e.hasOwnProperty(n)||t({message:`The field \`${n}\` must be present on this level.`,location:[{reportOnKey:!0}]});const y=null===(p=n.allowed)||void 0===p?void 0:p.call(n,e);if(y&&a.isPlainObject(e))for(const r in e)y.includes(r)||n.extensionsPrefix&&r.startsWith(n.extensionsPrefix)||!Object.keys(n.properties).includes(r)||t({message:`The field \`${r}\` is not allowed here.`,location:s.child([r]).key()});const v=n.requiredOneOf||null;if(v){let r=!1;for(let t of v||[])e.hasOwnProperty(t)&&(r=!0);r||t({message:`Must contain at least one of the following fields: ${null===(d=n.requiredOneOf)||void 0===d?void 0:d.join(", ")}.`,location:[{reportOnKey:!0}]})}for(const a of Object.keys(e)){const l=s.child([a]);let u=e[a],p=n.properties[a];if(void 0===p&&(p=n.additionalProperties),"function"==typeof p&&(p=p(u,a)),r.isNamedType(p))continue;const d=p,m=o.oasTypeOf(u);if(void 0!==d){if(null!==d){if(!1!==d.resolvable&&i.isRef(u)&&(u=c(u).node),d.enum)d.enum.includes(u)||t({location:l,message:`\`${a}\` can be one of the following only: ${d.enum.map((e=>`"${e}"`)).join(", ")}.`,suggest:o.getSuggest(u,d.enum)});else if(d.type&&!o.matchesJsonSchemaType(u,d.type,!1))t({message:`Expected type \`${d.type}\` but got \`${m}\`.`,location:l});else if("array"===m&&(null===(f=d.items)||void 0===f?void 0:f.type)){const e=null===(h=d.items)||void 0===h?void 0:h.type;for(let n=0;ne[a]&&t({message:`The value of the ${a} field must be greater than or equal to ${d.minimum}`,location:s.child([a])})}}else{if(a.startsWith("x-"))continue;t({message:`Property \`${a}\` is not expected here.`,suggest:o.getSuggest(a,Object.keys(n.properties)),location:l.key()})}}}})},7281:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TagDescription=void 0;const r=n(780);t.TagDescription=()=>({Tag(e,t){r.validateDefinedAndNonEmpty("description",e,t)}})},6855:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TagsAlphabetical=void 0,t.TagsAlphabetical=()=>({DefinitionRoot(e,{report:t,location:n}){if(e.tags)for(let r=0;re.tags[r+1].name&&t({message:"The `tags` array should be in alphabetical order.",location:n.child(["tags",r])})}})},348:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reportUnresolvedRef=t.NoUnresolvedRefs=void 0;const r=n(4182);function o(e,t,n){var o;const i=e.error;i instanceof r.YamlParseError&&t({message:"Failed to parse: "+i.message,location:{source:i.source,pointer:void 0,start:{col:i.col,line:i.line}}});const a=null===(o=e.error)||void 0===o?void 0:o.message;t({location:n,message:"Can't resolve $ref"+(a?": "+a:"")})}t.NoUnresolvedRefs=()=>({ref:{leave(e,{report:t,location:n},r){void 0===r.node&&o(r,t,n)}},DiscriminatorMapping(e,{report:t,resolve:n,location:r}){for(const i of Object.keys(e)){const a=n({$ref:e[i]});if(void 0!==a.node)return;o(a,t,r.child(i))}}}),t.reportUnresolvedRef=o},9566:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanParameterPrefixes=void 0,t.BooleanParameterPrefixes=e=>{const t=e.prefixes||["is","has"],n=new RegExp(`^(${t.join("|")})[A-Z-_]`),r=t.map((e=>`\`${e}\``)),o=1===r.length?r[0]:r.slice(0,-1).join(", ")+" or "+r[t.length-1];return{Parameter(e,{report:t,location:r}){"boolean"!==e.type||n.test(e.name)||t({message:`Boolean parameter \`${e.name}\` should have ${o} prefix.`,location:r.child("name")})}}}},7523:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preprocessors=t.rules=void 0;const r=n(6471),o=n(78),i=n(1562),a=n(8675),s=n(8265),l=n(9622),c=n(476),u=n(9566),p=n(7281),d=n(6855),f=n(9527),h=n(2319),m=n(700),g=n(5946),y=n(5281),v=n(4015),b=n(8742),w=n(4112),x=n(7421),k=n(5097),_=n(7890),O=n(5064),S=n(3408),E=n(5023),P=n(3529),A=n(8613),$=n(7892),C=n(348),R=n(2332),j=n(4628),T=n(8786),I=n(9578),N=n(3467),D=n(525),L=n(3689),M=n(7028),F=n(1750),z=n(3807),U=n(5839),V=n(7899),B=n(5669);t.rules={spec:r.OasSpec,"no-invalid-schema-examples":o.NoInvalidSchemaExamples,"no-invalid-parameter-examples":i.NoInvalidParameterExamples,"info-description":a.InfoDescription,"info-contact":s.InfoContact,"info-license":l.InfoLicense,"info-license-url":c.InfoLicenseUrl,"tag-description":p.TagDescription,"tags-alphabetical":d.TagsAlphabetical,"paths-kebab-case":f.PathsKebabCase,"no-enum-type-mismatch":h.NoEnumTypeMismatch,"boolean-parameter-prefixes":u.BooleanParameterPrefixes,"no-path-trailing-slash":m.NoPathTrailingSlash,"operation-2xx-response":g.Operation2xxResponse,"operation-4xx-response":y.Operation4xxResponse,assertions:v.Assertions,"operation-operationId-unique":b.OperationIdUnique,"operation-parameters-unique":w.OperationParametersUnique,"path-parameters-defined":x.PathParamsDefined,"operation-tag-defined":k.OperationTagDefined,"path-declaration-must-exist":_.PathDeclarationMustExist,"operation-operationId-url-safe":O.OperationIdUrlSafe,"operation-operationId":T.OperationOperationId,"operation-summary":I.OperationSummary,"operation-description":S.OperationDescription,"path-not-include-query":E.PathNotIncludeQuery,"path-params-defined":x.PathParamsDefined,"parameter-description":P.ParameterDescription,"operation-singular-tag":A.OperationSingularTag,"operation-security-defined":$.OperationSecurityDefined,"no-unresolved-refs":C.NoUnresolvedRefs,"no-identical-paths":j.NoIdenticalPaths,"no-ambiguous-paths":N.NoAmbiguousPaths,"path-http-verbs-order":R.PathHttpVerbsOrder,"no-http-verbs-in-paths":D.NoHttpVerbsInPaths,"path-excludes-patterns":L.PathExcludesPatterns,"request-mime-type":M.RequestMimeType,"response-mime-type":F.ResponseMimeType,"path-segment-plural":z.PathSegmentPlural,"response-contains-header":U.ResponseContainsHeader,"response-contains-property":V.ResponseContainsProperty,"scalar-property-missing-example":B.ScalarPropertyMissingExample},t.preprocessors={}},4508:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveUnusedComponents=void 0;const r=n(771);t.RemoveUnusedComponents=()=>{let e=new Map;function t(t,n,r){var o;e.set(t.absolutePointer,{used:(null===(o=e.get(t.absolutePointer))||void 0===o?void 0:o.used)||!1,componentType:n,name:r})}return{ref:{leave(t,{type:n,resolve:r,key:o}){if(["Schema","Parameter","Response","SecurityScheme"].includes(n.name)){const n=r(t);if(!n.location)return;e.set(n.location.absolutePointer,{used:!0,name:o.toString()})}}},DefinitionRoot:{leave(t,n){const o=n.getVisitorData();o.removedCount=0;let i=new Set;e.forEach((e=>{const{used:n,name:r,componentType:a}=e;!n&&a&&(i.add(a),delete t[a][r],o.removedCount++)}));for(const e of i)r.isEmptyObject(t[e])&&delete t[e]}},NamedSchemas:{Schema(e,{location:n,key:r}){e.allOf||t(n,"definitions",r.toString())}},NamedParameters:{Parameter(e,{location:n,key:r}){t(n,"parameters",r.toString())}},NamedResponses:{Response(e,{location:n,key:r}){t(n,"responses",r.toString())}},NamedSecuritySchemes:{SecurityScheme(e,{location:n,key:r}){t(n,"securityDefinitions",r.toString())}}}}},7028:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestMimeType=void 0;const r=n(771);t.RequestMimeType=({allowedValues:e})=>({DefinitionRoot(t,n){r.validateMimeType({type:"consumes",value:t},n,e)},Operation:{leave(t,n){r.validateMimeType({type:"consumes",value:t},n,e)}}})},7899:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseContainsProperty=void 0;const r=n(771);t.ResponseContainsProperty=e=>{const t=e.names||{};let n;return{Operation:{Response:{skip:(e,t)=>"204"==`${t}`,enter:(e,t)=>{n=t.key},Schema(e,{report:o,location:i}){var a;if("object"!==e.type)return;const s=t[n]||t[r.getMatchingStatusCodeRange(n)]||t[r.getMatchingStatusCodeRange(n).toLowerCase()]||[];for(const t of s)(null===(a=e.properties)||void 0===a?void 0:a[t])||o({message:`Response object must contain a top-level "${t}" property.`,location:i.child("properties").key()})}}}}}},1750:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseMimeType=void 0;const r=n(771);t.ResponseMimeType=({allowedValues:e})=>({DefinitionRoot(t,n){r.validateMimeType({type:"produces",value:t},n,e)},Operation:{leave(t,n){r.validateMimeType({type:"produces",value:t},n,e)}}})},962:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanParameterPrefixes=void 0,t.BooleanParameterPrefixes=e=>{const t=e.prefixes||["is","has"],n=new RegExp(`^(${t.join("|")})[A-Z-_]`),r=t.map((e=>`\`${e}\``)),o=1===r.length?r[0]:r.slice(0,-1).join(", ")+" or "+r[t.length-1];return{Parameter:{Schema(e,{report:t,parentLocations:r},i){"boolean"!==e.type||n.test(i.Parameter.name)||t({message:`Boolean parameter \`${i.Parameter.name}\` should have ${o} prefix.`,location:r.Parameter.child(["name"])})}}}}},226:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preprocessors=t.rules=void 0;const r=n(6471),o=n(5946),i=n(5281),a=n(4015),s=n(8742),l=n(4112),c=n(7421),u=n(5097),p=n(1265),d=n(2319),f=n(700),h=n(7890),m=n(5064),g=n(6855),y=n(5486),v=n(2947),b=n(8675),w=n(7281),x=n(8265),k=n(9622),_=n(3408),O=n(897),S=n(5023),E=n(3529),P=n(8613),A=n(476),$=n(7892),C=n(348),R=n(962),j=n(9527),T=n(2332),I=n(7020),N=n(9336),D=n(4628),L=n(6208),M=n(8786),F=n(9578),z=n(3467),U=n(472),V=n(525),B=n(3736),q=n(503),W=n(3807),H=n(3689),Y=n(78),K=n(1562),G=n(5839),Q=n(7557),X=n(5669);t.rules={spec:r.OasSpec,"info-description":b.InfoDescription,"info-contact":x.InfoContact,"info-license":k.InfoLicense,"info-license-url":A.InfoLicenseUrl,"operation-2xx-response":o.Operation2xxResponse,"operation-4xx-response":i.Operation4xxResponse,assertions:a.Assertions,"operation-operationId-unique":s.OperationIdUnique,"operation-parameters-unique":l.OperationParametersUnique,"path-parameters-defined":c.PathParamsDefined,"operation-tag-defined":u.OperationTagDefined,"no-example-value-and-externalValue":p.NoExampleValueAndExternalValue,"no-enum-type-mismatch":d.NoEnumTypeMismatch,"no-path-trailing-slash":f.NoPathTrailingSlash,"no-empty-servers":I.NoEmptyServers,"path-declaration-must-exist":h.PathDeclarationMustExist,"operation-operationId-url-safe":m.OperationIdUrlSafe,"operation-operationId":M.OperationOperationId,"operation-summary":F.OperationSummary,"tags-alphabetical":g.TagsAlphabetical,"no-server-example.com":y.NoServerExample,"no-server-trailing-slash":v.NoServerTrailingSlash,"tag-description":w.TagDescription,"operation-description":_.OperationDescription,"no-unused-components":O.NoUnusedComponents,"path-not-include-query":S.PathNotIncludeQuery,"path-params-defined":c.PathParamsDefined,"parameter-description":E.ParameterDescription,"operation-singular-tag":P.OperationSingularTag,"operation-security-defined":$.OperationSecurityDefined,"no-unresolved-refs":C.NoUnresolvedRefs,"paths-kebab-case":j.PathsKebabCase,"boolean-parameter-prefixes":R.BooleanParameterPrefixes,"path-http-verbs-order":T.PathHttpVerbsOrder,"no-invalid-media-type-examples":N.ValidContentExamples,"no-identical-paths":D.NoIdenticalPaths,"no-ambiguous-paths":z.NoAmbiguousPaths,"no-undefined-server-variable":L.NoUndefinedServerVariable,"no-servers-empty-enum":U.NoEmptyEnumServers,"no-http-verbs-in-paths":V.NoHttpVerbsInPaths,"path-excludes-patterns":H.PathExcludesPatterns,"request-mime-type":B.RequestMimeType,"response-mime-type":q.ResponseMimeType,"path-segment-plural":W.PathSegmentPlural,"no-invalid-schema-examples":Y.NoInvalidSchemaExamples,"no-invalid-parameter-examples":K.NoInvalidParameterExamples,"response-contains-header":G.ResponseContainsHeader,"response-contains-property":Q.ResponseContainsProperty,"scalar-property-missing-example":X.ScalarPropertyMissingExample},t.preprocessors={}},7020:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoEmptyServers=void 0,t.NoEmptyServers=()=>({DefinitionRoot(e,{report:t,location:n}){e.hasOwnProperty("servers")?Array.isArray(e.servers)&&0!==e.servers.length||t({message:"Servers must be a non-empty array.",location:n.child(["servers"]).key()}):t({message:"Servers must be present.",location:n.child(["openapi"]).key()})}})},1265:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoExampleValueAndExternalValue=void 0,t.NoExampleValueAndExternalValue=()=>({Example(e,{report:t,location:n}){e.value&&e.externalValue&&t({message:"Example object can have either `value` or `externalValue` fields.",location:n.child(["value"]).key()})}})},9336:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValidContentExamples=void 0;const r=n(7468),o=n(780);t.ValidContentExamples=e=>{var t;const n=null===(t=e.disallowAdditionalProperties)||void 0===t||t;return{MediaType:{leave(e,t){const{location:i,resolve:a}=t;if(e.schema)if(e.example)s(e.example,i.child("example"));else if(e.examples)for(const t of Object.keys(e.examples))s(e.examples[t],i.child(["examples",t,"value"]),!0);function s(i,s,l){if(r.isRef(i)){const e=a(i);if(!e.location)return;s=l?e.location.child("value"):e.location,i=e.node}o.validateExample(l?i.value:i,e.schema,s,t,n)}}}}}},5486:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoServerExample=void 0,t.NoServerExample=()=>({Server(e,{report:t,location:n}){-1!==["example.com","localhost"].indexOf(e.url)&&t({message:"Server `url` should not point at example.com.",location:n.child(["url"])})}})},2947:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoServerTrailingSlash=void 0,t.NoServerTrailingSlash=()=>({Server(e,{report:t,location:n}){e.url&&e.url.endsWith("/")&&"/"!==e.url&&t({message:"Server `url` should not have a trailing slash.",location:n.child(["url"])})}})},472:function(e,t){"use strict";var n;function r(e){var t;if(e.variables&&0===Object.keys(e.variables).length)return;const r=[];for(var o in e.variables){const i=e.variables[o];if(!i.enum)continue;if(Array.isArray(i.enum)&&0===(null===(t=i.enum)||void 0===t?void 0:t.length)&&r.push(n.empty),!i.default)continue;const a=e.variables[o].default;i.enum&&!i.enum.includes(a)&&r.push(n.invalidDefaultValue)}return r.length?r:void 0}Object.defineProperty(t,"__esModule",{value:!0}),t.NoEmptyEnumServers=void 0,function(e){e.empty="empty",e.invalidDefaultValue="invalidDefaultValue"}(n||(n={})),t.NoEmptyEnumServers=()=>({DefinitionRoot(e,{report:t,location:o}){if(!e.servers||0===e.servers.length)return;const i=[];if(Array.isArray(e.servers))for(const t of e.servers){const e=r(t);e&&i.push(...e)}else{const t=r(e.servers);if(!t)return;i.push(...t)}for(const e of i)e===n.empty&&t({message:"Server variable with `enum` must be a non-empty array.",location:o.child(["servers"]).key()}),e===n.invalidDefaultValue&&t({message:"Server variable define `enum` and `default`. `enum` must include default value",location:o.child(["servers"]).key()})}})},6208:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoUndefinedServerVariable=void 0,t.NoUndefinedServerVariable=()=>({Server(e,{report:t,location:n}){var r;if(!e.url)return;const o=(null===(r=e.url.match(/{[^}]+}/g))||void 0===r?void 0:r.map((e=>e.slice(1,e.length-1))))||[],i=(null==e?void 0:e.variables)&&Object.keys(e.variables)||[];for(const e of o)i.includes(e)||t({message:`The \`${e}\` variable is not defined in the \`variables\` objects.`,location:n.child(["url"])});for(const e of i)o.includes(e)||t({message:`The \`${e}\` variable is not used in the server's \`url\` field.`,location:n.child(["variables",e]).key(),from:n.child("url")})}})},897:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoUnusedComponents=void 0,t.NoUnusedComponents=()=>{let e=new Map;function t(t,n){var r;e.set(t.absolutePointer,{used:(null===(r=e.get(t.absolutePointer))||void 0===r?void 0:r.used)||!1,location:t,name:n})}return{ref(t,{type:n,resolve:r,key:o,location:i}){if(["Schema","Header","Parameter","Response","Example","RequestBody"].includes(n.name)){const n=r(t);if(!n.location)return;e.set(n.location.absolutePointer,{used:!0,name:o.toString(),location:i})}},DefinitionRoot:{leave(t,{report:n}){e.forEach((e=>{e.used||n({message:`Component: "${e.name}" is never used.`,location:e.location.key()})}))}},NamedSchemas:{Schema(e,{location:n,key:r}){e.allOf||t(n,r.toString())}},NamedParameters:{Parameter(e,{location:n,key:r}){t(n,r.toString())}},NamedResponses:{Response(e,{location:n,key:r}){t(n,r.toString())}},NamedExamples:{Example(e,{location:n,key:r}){t(n,r.toString())}},NamedRequestBodies:{RequestBody(e,{location:n,key:r}){t(n,r.toString())}},NamedHeaders:{Header(e,{location:n,key:r}){t(n,r.toString())}}}}},6350:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveUnusedComponents=void 0;const r=n(771);t.RemoveUnusedComponents=()=>{let e=new Map;function t(t,n,r){var o;e.set(t.absolutePointer,{used:(null===(o=e.get(t.absolutePointer))||void 0===o?void 0:o.used)||!1,componentType:n,name:r})}return{ref:{leave(t,{type:n,resolve:r,key:o}){if(["Schema","Header","Parameter","Response","Example","RequestBody"].includes(n.name)){const n=r(t);if(!n.location)return;e.set(n.location.absolutePointer,{used:!0,name:o.toString()})}}},DefinitionRoot:{leave(t,n){const o=n.getVisitorData();o.removedCount=0,e.forEach((e=>{const{used:n,componentType:i,name:a}=e;if(!n&&i){let e=t.components[i];delete e[a],o.removedCount++,r.isEmptyObject(e)&&delete t.components[i]}})),r.isEmptyObject(t.components)&&delete t.components}},NamedSchemas:{Schema(e,{location:n,key:r}){e.allOf||t(n,"schemas",r.toString())}},NamedParameters:{Parameter(e,{location:n,key:r}){t(n,"parameters",r.toString())}},NamedResponses:{Response(e,{location:n,key:r}){t(n,"responses",r.toString())}},NamedExamples:{Example(e,{location:n,key:r}){t(n,"examples",r.toString())}},NamedRequestBodies:{RequestBody(e,{location:n,key:r}){t(n,"requestBodies",r.toString())}},NamedHeaders:{Header(e,{location:n,key:r}){t(n,"headers",r.toString())}}}}},3736:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestMimeType=void 0;const r=n(771);t.RequestMimeType=({allowedValues:e})=>({PathMap:{RequestBody:{leave(t,n){r.validateMimeTypeOAS3({type:"consumes",value:t},n,e)}},Callback:{RequestBody(){},Response:{leave(t,n){r.validateMimeTypeOAS3({type:"consumes",value:t},n,e)}}}},WebhooksMap:{Response:{leave(t,n){r.validateMimeTypeOAS3({type:"consumes",value:t},n,e)}}}})},7557:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseContainsProperty=void 0;const r=n(771);t.ResponseContainsProperty=e=>{const t=e.names||{};let n;return{Operation:{Response:{skip:(e,t)=>"204"==`${t}`,enter:(e,t)=>{n=t.key},MediaType:{Schema(e,{report:o,location:i}){var a;if("object"!==e.type)return;const s=t[n]||t[r.getMatchingStatusCodeRange(n)]||t[r.getMatchingStatusCodeRange(n).toLowerCase()]||[];for(const t of s)(null===(a=e.properties)||void 0===a?void 0:a[t])||o({message:`Response object must contain a top-level "${t}" property.`,location:i.child("properties").key()})}}}}}}},503:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseMimeType=void 0;const r=n(771);t.ResponseMimeType=({allowedValues:e})=>({PathMap:{Response:{leave(t,n){r.validateMimeTypeOAS3({type:"produces",value:t},n,e)}},Callback:{Response(){},RequestBody:{leave(t,n){r.validateMimeTypeOAS3({type:"produces",value:t},n,e)}}}},WebhooksMap:{RequestBody:{leave(t,n){r.validateMimeTypeOAS3({type:"produces",value:t},n,e)}}}})},780:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateExample=t.getSuggest=t.validateDefinedAndNonEmpty=t.fieldNonEmpty=t.missingRequiredField=t.matchesJsonSchemaType=t.oasTypeOf=void 0;const r=n(9991),o=n(7468),i=n(7275);function a(e,t){return`${e} object should contain \`${t}\` field.`}function s(e,t){return`${e} object \`${t}\` must be non-empty string.`}t.oasTypeOf=function(e){return Array.isArray(e)?"array":null===e?"null":typeof e},t.matchesJsonSchemaType=function(e,t,n){if(n&&null===e)return null===e;switch(t){case"array":return Array.isArray(e);case"object":return"object"==typeof e&&null!==e&&!Array.isArray(e);case"null":return null===e;case"integer":return Number.isInteger(e);default:return typeof e===t}},t.missingRequiredField=a,t.fieldNonEmpty=s,t.validateDefinedAndNonEmpty=function(e,t,n){"object"==typeof t&&(void 0===t[e]?n.report({message:a(n.type.name,e),location:n.location.child([e]).key()}):t[e]||n.report({message:s(n.type.name,e),location:n.location.child([e]).key()}))},t.getSuggest=function(e,t){if("string"!=typeof e||!t.length)return[];const n=[];for(let o=0;oe.distance-t.distance)),n.map((e=>e.variant))},t.validateExample=function(e,t,n,{resolve:r,location:a,report:s},l){try{const{valid:c,errors:u}=i.validateJsonSchema(e,t,a.child("schema"),n.pointer,r,l);if(!c)for(let e of u)s({message:`Example value must conform to the schema: ${e.message}.`,location:Object.assign(Object.assign({},new o.Location(n.source,e.instancePath)),{reportOnKey:"additionalProperties"===e.keyword}),from:a,suggest:e.suggest})}catch(e){s({message:`Example validation errored: ${e.message}.`,location:a.child("schema"),from:a})}}},5220:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNamedType=t.normalizeTypes=t.mapOf=t.listOf=void 0,t.listOf=function(e){return{name:`${e}List`,properties:{},items:e}},t.mapOf=function(e){return{name:`${e}Map`,properties:{},additionalProperties:()=>e}},t.normalizeTypes=function(e,t={}){const n={};for(const t of Object.keys(e))n[t]=Object.assign(Object.assign({},e[t]),{name:t});for(const e of Object.values(n))r(e);return n;function r(e){if(e.additionalProperties&&(e.additionalProperties=o(e.additionalProperties)),e.items&&(e.items=o(e.items)),e.properties){const n={};for(const[r,i]of Object.entries(e.properties))n[r]=o(i),t.doNotResolveExamples&&i&&i.isExample&&(n[r]=Object.assign(Object.assign({},i),{resolvable:!1}));e.properties=n}}function o(e){if("string"==typeof e){if(!n[e])throw new Error(`Unknown type name found: ${e}`);return n[e]}return"function"==typeof e?(t,n)=>o(e(t,n)):e&&e.name?(r(e=Object.assign({},e)),e):e&&e.directResolveAs?Object.assign(Object.assign({},e),{directResolveAs:o(e.directResolveAs)}):e}},t.isNamedType=function(e){return"string"==typeof(null==e?void 0:e.name)}},388:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas2Types=void 0;const r=n(5220),o=/^[0-9][0-9Xx]{2}$/,i={properties:{swagger:{type:"string"},info:"Info",host:{type:"string"},basePath:{type:"string"},schemes:{type:"array",items:{type:"string"}},consumes:{type:"array",items:{type:"string"}},produces:{type:"array",items:{type:"string"}},paths:"PathMap",definitions:"NamedSchemas",parameters:"NamedParameters",responses:"NamedResponses",securityDefinitions:"NamedSecuritySchemes",security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs"},required:["swagger","paths","info"]},a={properties:{$ref:{type:"string"},parameters:r.listOf("Parameter"),get:"Operation",put:"Operation",post:"Operation",delete:"Operation",options:"Operation",head:"Operation",patch:"Operation"}},s={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},consumes:{type:"array",items:{type:"string"}},produces:{type:"array",items:{type:"string"}},parameters:r.listOf("Parameter"),responses:"ResponsesMap",schemes:{type:"array",items:{type:"string"}},deprecated:{type:"boolean"},security:r.listOf("SecurityRequirement"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample"),"x-hideTryItPanel":{type:"boolean"}},required:["responses"]},l={properties:{default:"Response"},additionalProperties:(e,t)=>o.test(t)?"Response":void 0},c={properties:{description:{type:"string"},schema:"Schema",headers:r.mapOf("Header"),examples:"Examples"},required:["description"]},u={properties:{format:{type:"string"},title:{type:"string"},description:{type:"string"},default:null,multipleOf:{type:"number"},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"boolean"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"number"},minLength:{type:"number"},pattern:{type:"string"},maxItems:{type:"number"},minItems:{type:"number"},uniqueItems:{type:"boolean"},maxProperties:{type:"number"},minProperties:{type:"number"},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:{type:"string",enum:["object","array","string","number","integer","boolean","null"]},items:e=>Array.isArray(e)?r.listOf("Schema"):"Schema",allOf:r.listOf("Schema"),properties:"SchemaProperties",additionalProperties:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",discriminator:{type:"string"},readOnly:{type:"boolean"},xml:"Xml",externalDocs:"ExternalDocs",example:{isExample:!0},"x-tags":{type:"array",items:{type:"string"}}}},p={properties:{type:{enum:["basic","apiKey","oauth2"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header"]},flow:{enum:["implicit","password","application","accessCode"]},authorizationUrl:{type:"string"},tokenUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}}},required(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in"];case"oauth2":switch(null==e?void 0:e.flow){case"implicit":return["type","flow","authorizationUrl","scopes"];case"accessCode":return["type","flow","authorizationUrl","tokenUrl","scopes"];case"application":case"password":return["type","flow","tokenUrl","scopes"];default:return["type","flow","scopes"]}default:return["type"]}},allowed(e){switch(null==e?void 0:e.type){case"basic":return["type","description"];case"apiKey":return["type","name","in","description"];case"oauth2":switch(null==e?void 0:e.flow){case"implicit":return["type","flow","authorizationUrl","description","scopes"];case"accessCode":return["type","flow","authorizationUrl","tokenUrl","description","scopes"];case"application":case"password":return["type","flow","tokenUrl","description","scopes"];default:return["type","flow","tokenUrl","authorizationUrl","description","scopes"]}default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas2Types={DefinitionRoot:i,Tag:{properties:{name:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs"},required:["name"]},ExternalDocs:{properties:{description:{type:"string"},url:{type:"string"}},required:["url"]},SecurityRequirement:{properties:{},additionalProperties:{type:"array",items:{type:"string"}}},Info:{properties:{title:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},contact:"Contact",license:"License",version:{type:"string"}},required:["title","version"]},Contact:{properties:{name:{type:"string"},url:{type:"string"},email:{type:"string"}}},License:{properties:{name:{type:"string"},url:{type:"string"}},required:["name"]},PathMap:{properties:{},additionalProperties:(e,t)=>t.startsWith("/")?"PathItem":void 0},PathItem:a,Parameter:{properties:{name:{type:"string"},in:{type:"string",enum:["query","header","path","formData","body"]},description:{type:"string"},required:{type:"boolean"},schema:"Schema",type:{type:"string",enum:["string","number","integer","boolean","array","file"]},format:{type:"string"},allowEmptyValue:{type:"boolean"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&e.in?"body"===e.in?["name","in","schema"]:"array"===e.type?["name","in","type","items"]:["name","in","type"]:["name","in"]},ParameterItems:{properties:{type:{type:"string",enum:["string","number","integer","boolean","array"]},format:{type:"string"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&"array"===e.type?["type","items"]:["type"]},Operation:s,Examples:{properties:{},additionalProperties:{isExample:!0}},Header:{properties:{description:{type:"string"},type:{type:"string",enum:["string","number","integer","boolean","array"]},format:{type:"string"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&"array"===e.type?["type","items"]:["type"]},ResponsesMap:l,Response:c,Schema:u,Xml:{properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean"},wrapped:{type:"boolean"}}},SchemaProperties:{properties:{},additionalProperties:"Schema"},NamedSchemas:r.mapOf("Schema"),NamedResponses:r.mapOf("Response"),NamedParameters:r.mapOf("Parameter"),NamedSecuritySchemes:r.mapOf("SecurityScheme"),SecurityScheme:p,XCodeSample:{properties:{lang:{type:"string"},label:{type:"string"},source:{type:"string"}}}}},5241:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas3Types=void 0;const r=n(5220),o=n(7468),i=/^[0-9][0-9Xx]{2}$/,a={properties:{openapi:null,info:"Info",servers:r.listOf("Server"),security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs",paths:"PathMap",components:"Components","x-webhooks":"WebhooksMap"},required:["openapi","paths","info"]},s={properties:{url:{type:"string"},description:{type:"string"},variables:r.mapOf("ServerVariable")},required:["url"]},l={properties:{$ref:{type:"string"},servers:r.listOf("Server"),parameters:r.listOf("Parameter"),summary:{type:"string"},description:{type:"string"},get:"Operation",put:"Operation",post:"Operation",delete:"Operation",options:"Operation",head:"Operation",patch:"Operation",trace:"Operation"}},c={properties:{name:{type:"string"},in:{enum:["query","header","path","cookie"]},description:{type:"string"},required:{type:"boolean"},deprecated:{type:"boolean"},allowEmptyValue:{type:"boolean"},style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"},schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),content:"MediaTypeMap"},required:["name","in"],requiredOneOf:["schema","content"]},u={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},parameters:r.listOf("Parameter"),security:r.listOf("SecurityRequirement"),servers:r.listOf("Server"),requestBody:"RequestBody",responses:"ResponsesMap",deprecated:{type:"boolean"},callbacks:r.mapOf("Callback"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample"),"x-hideTryItPanel":{type:"boolean"}},required:["responses"]},p={properties:{schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),encoding:r.mapOf("Encoding")}},d={properties:{contentType:{type:"string"},headers:r.mapOf("Header"),style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"}}},f={properties:{description:{type:"string"},required:{type:"boolean"},deprecated:{type:"boolean"},allowEmptyValue:{type:"boolean"},style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"},schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),content:"MediaTypeMap"}},h={properties:{default:"Response"},additionalProperties:(e,t)=>i.test(t)?"Response":void 0},m={properties:{description:{type:"string"},headers:r.mapOf("Header"),content:"MediaTypeMap",links:r.mapOf("Link")},required:["description"]},g={properties:{externalDocs:"ExternalDocs",discriminator:"Discriminator",title:{type:"string"},multipleOf:{type:"number",minimum:0},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"boolean"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer",minimum:0},minLength:{type:"integer",minimum:0},pattern:{type:"string"},maxItems:{type:"integer",minimum:0},minItems:{type:"integer",minimum:0},uniqueItems:{type:"boolean"},maxProperties:{type:"integer",minimum:0},minProperties:{type:"integer",minimum:0},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:{enum:["object","array","string","number","integer","boolean","null"]},allOf:r.listOf("Schema"),anyOf:r.listOf("Schema"),oneOf:r.listOf("Schema"),not:"Schema",properties:"SchemaProperties",items:e=>Array.isArray(e)?r.listOf("Schema"):"Schema",additionalItems:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",additionalProperties:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",description:{type:"string"},format:{type:"string"},default:null,nullable:{type:"boolean"},readOnly:{type:"boolean"},writeOnly:{type:"boolean"},xml:"Xml",example:{isExample:!0},deprecated:{type:"boolean"},"x-tags":{type:"array",items:{type:"string"}}}},y={properties:{},additionalProperties:e=>o.isMappingRef(e)?{type:"string",directResolveAs:"Schema"}:{type:"string"}},v={properties:{type:{enum:["apiKey","http","oauth2","openIdConnect"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header","cookie"]},scheme:{type:"string"},bearerFormat:{type:"string"},flows:"SecuritySchemeFlows",openIdConnectUrl:{type:"string"}},required(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in"];case"http":return["type","scheme"];case"oauth2":return["type","flows"];case"openIdConnect":return["type","openIdConnectUrl"];default:return["type"]}},allowed(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in","description"];case"http":return["type","scheme","bearerFormat","description"];case"oauth2":return["type","flows","description"];case"openIdConnect":return["type","openIdConnectUrl","description"];default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas3Types={DefinitionRoot:a,Tag:{properties:{name:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs"},required:["name"]},ExternalDocs:{properties:{description:{type:"string"},url:{type:"string"}},required:["url"]},Server:s,ServerVariable:{properties:{enum:{type:"array",items:{type:"string"}},default:{type:"string"},description:null},required:["default"]},SecurityRequirement:{properties:{},additionalProperties:{type:"array",items:{type:"string"}}},Info:{properties:{title:{type:"string"},version:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},contact:"Contact",license:"License"},required:["title","version"]},Contact:{properties:{name:{type:"string"},url:{type:"string"},email:{type:"string"}}},License:{properties:{name:{type:"string"},url:{type:"string"}},required:["name"]},PathMap:{properties:{},additionalProperties:(e,t)=>t.startsWith("/")?"PathItem":void 0},PathItem:l,Parameter:c,Operation:u,Callback:r.mapOf("PathItem"),RequestBody:{properties:{description:{type:"string"},required:{type:"boolean"},content:"MediaTypeMap"},required:["content"]},MediaTypeMap:{properties:{},additionalProperties:"MediaType"},MediaType:p,Example:{properties:{value:{isExample:!0},summary:{type:"string"},description:{type:"string"},externalValue:{type:"string"}}},Encoding:d,Header:f,ResponsesMap:h,Response:m,Link:{properties:{operationRef:{type:"string"},operationId:{type:"string"},parameters:null,requestBody:null,description:{type:"string"},server:"Server"}},Schema:g,Xml:{properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean"},wrapped:{type:"boolean"}}},SchemaProperties:{properties:{},additionalProperties:"Schema"},DiscriminatorMapping:y,Discriminator:{properties:{propertyName:{type:"string"},mapping:"DiscriminatorMapping"},required:["propertyName"]},Components:{properties:{parameters:"NamedParameters",schemas:"NamedSchemas",responses:"NamedResponses",examples:"NamedExamples",requestBodies:"NamedRequestBodies",headers:"NamedHeaders",securitySchemes:"NamedSecuritySchemes",links:"NamedLinks",callbacks:"NamedCallbacks"}},NamedSchemas:r.mapOf("Schema"),NamedResponses:r.mapOf("Response"),NamedParameters:r.mapOf("Parameter"),NamedExamples:r.mapOf("Example"),NamedRequestBodies:r.mapOf("RequestBody"),NamedHeaders:r.mapOf("Header"),NamedSecuritySchemes:r.mapOf("SecurityScheme"),NamedLinks:r.mapOf("Link"),NamedCallbacks:r.mapOf("Callback"),ImplicitFlow:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},authorizationUrl:{type:"string"}},required:["authorizationUrl","scopes"]},PasswordFlow:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["tokenUrl","scopes"]},ClientCredentials:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["tokenUrl","scopes"]},AuthorizationCode:{properties:{refreshUrl:{type:"string"},authorizationUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["authorizationUrl","tokenUrl","scopes"]},SecuritySchemeFlows:{properties:{implicit:"ImplicitFlow",password:"PasswordFlow",clientCredentials:"ClientCredentials",authorizationCode:"AuthorizationCode"}},SecurityScheme:v,XCodeSample:{properties:{lang:{type:"string"},label:{type:"string"},source:{type:"string"}}},WebhooksMap:{properties:{},additionalProperties:()=>"PathItem"}}},2608:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas3_1Types=void 0;const r=n(5220),o=n(5241),i={properties:{openapi:null,info:"Info",servers:r.listOf("Server"),security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs",paths:"PathMap",webhooks:"WebhooksMap",components:"Components",jsonSchemaDialect:{type:"string"}},required:["openapi","info"],requiredOneOf:["paths","components","webhooks"]},a={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},parameters:r.listOf("Parameter"),security:r.listOf("SecurityRequirement"),servers:r.listOf("Server"),requestBody:"RequestBody",responses:"ResponsesMap",deprecated:{type:"boolean"},callbacks:r.mapOf("Callback"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample"),"x-hideTryItPanel":{type:"boolean"}}},s={properties:{$id:{type:"string"},id:{type:"string"},$schema:{type:"string"},definitions:"NamedSchemas",$defs:"NamedSchemas",$vocabulary:{type:"string"},externalDocs:"ExternalDocs",discriminator:"Discriminator",myArbitraryKeyword:{type:"boolean"},title:{type:"string"},multipleOf:{type:"number",minimum:0},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{type:"integer",minimum:0},minLength:{type:"integer",minimum:0},pattern:{type:"string"},maxItems:{type:"integer",minimum:0},minItems:{type:"integer",minimum:0},uniqueItems:{type:"boolean"},maxProperties:{type:"integer",minimum:0},minProperties:{type:"integer",minimum:0},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:e=>Array.isArray(e)?{type:"array",items:{enum:["object","array","string","number","integer","boolean","null"]}}:{enum:["object","array","string","number","integer","boolean","null"]},allOf:r.listOf("Schema"),anyOf:r.listOf("Schema"),oneOf:r.listOf("Schema"),not:"Schema",if:"Schema",then:"Schema",else:"Schema",dependentSchemas:r.listOf("Schema"),prefixItems:r.listOf("Schema"),contains:"Schema",minContains:{type:"integer",minimum:0},maxContains:{type:"integer",minimum:0},patternProperties:{type:"object"},propertyNames:"Schema",unevaluatedItems:"Schema",unevaluatedProperties:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",summary:{type:"string"},properties:"SchemaProperties",items:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",additionalProperties:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",description:{type:"string"},format:{type:"string"},contentEncoding:{type:"string"},contentMediaType:{type:"string"},default:null,readOnly:{type:"boolean"},writeOnly:{type:"boolean"},xml:"Xml",examples:{type:"array"},example:{isExample:!0},deprecated:{type:"boolean"},const:null,$comment:{type:"string"},"x-tags":{type:"array",items:{type:"string"}}}},l={properties:{type:{enum:["apiKey","http","oauth2","openIdConnect","mutualTLS"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header","cookie"]},scheme:{type:"string"},bearerFormat:{type:"string"},flows:"SecuritySchemeFlows",openIdConnectUrl:{type:"string"}},required(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in"];case"http":return["type","scheme"];case"oauth2":return["type","flows"];case"openIdConnect":return["type","openIdConnectUrl"];default:return["type"]}},allowed(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in","description"];case"http":return["type","scheme","bearerFormat","description"];case"oauth2":switch(null==e?void 0:e.flows){case"implicit":return["type","flows","authorizationUrl","refreshUrl","description","scopes"];case"password":case"clientCredentials":return["type","flows","tokenUrl","refreshUrl","description","scopes"];default:return["type","flows","authorizationUrl","refreshUrl","tokenUrl","description","scopes"]}case"openIdConnect":return["type","openIdConnectUrl","description"];default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas3_1Types=Object.assign(Object.assign({},o.Oas3Types),{Info:{properties:{title:{type:"string"},version:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},summary:{type:"string"},contact:"Contact",license:"License"},required:["title","version"]},DefinitionRoot:i,Schema:s,License:{properties:{name:{type:"string"},url:{type:"string"},identifier:{type:"string"}},required:["name"]},Components:{properties:{parameters:"NamedParameters",schemas:"NamedSchemas",responses:"NamedResponses",examples:"NamedExamples",requestBodies:"NamedRequestBodies",headers:"NamedHeaders",securitySchemes:"NamedSecuritySchemes",links:"NamedLinks",callbacks:"NamedCallbacks",pathItems:"NamedPathItems"}},NamedPathItems:r.mapOf("PathItem"),SecurityScheme:l,Operation:a})},771:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.isCustomRuleId=t.getMatchingStatusCodeRange=t.assignExisting=t.isNotString=t.isString=t.isNotEmptyObject=t.slash=t.isPathParameter=t.readFileAsStringSync=t.isSingular=t.validateMimeTypeOAS3=t.validateMimeType=t.splitCamelCaseIntoWords=t.omitObjectProps=t.pickObjectProps=t.readFileFromUrl=t.isEmptyArray=t.isEmptyObject=t.isPlainObject=t.notUndefined=t.loadYaml=t.popStack=t.pushStack=t.stringifyYaml=t.parseYaml=void 0;const o=n(3197),i=n(4099),a=n(8150),s=n(3450),l=n(5273),c=n(8698);var u=n(5273);function p(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function d(e,t){return t.match(/^https?:\/\//)||(e=e.replace(/^https?:\/\//,"")),i(e,t)}function f(e){return"string"==typeof e}Object.defineProperty(t,"parseYaml",{enumerable:!0,get:function(){return u.parseYaml}}),Object.defineProperty(t,"stringifyYaml",{enumerable:!0,get:function(){return u.stringifyYaml}}),t.pushStack=function(e,t){return{prev:e,value:t}},t.popStack=function(e){var t;return null!==(t=null==e?void 0:e.prev)&&void 0!==t?t:null},t.loadYaml=function(e){return r(this,void 0,void 0,(function*(){const t=yield o.promises.readFile(e,"utf-8");return l.parseYaml(t)}))},t.notUndefined=function(e){return void 0!==e},t.isPlainObject=p,t.isEmptyObject=function(e){return p(e)&&0===Object.keys(e).length},t.isEmptyArray=function(e){return Array.isArray(e)&&0===e.length},t.readFileFromUrl=function(e,t){return r(this,void 0,void 0,(function*(){const n={};for(const r of t.headers)d(e,r.matches)&&(n[r.name]=void 0!==r.envVariable?c.env[r.envVariable]||"":r.value);const r=yield(t.customFetch||a.default)(e,{headers:n});if(!r.ok)throw new Error(`Failed to load ${e}: ${r.status} ${r.statusText}`);return{body:yield r.text(),mimeType:r.headers.get("content-type")}}))},t.pickObjectProps=function(e,t){return Object.fromEntries(t.filter((t=>t in e)).map((t=>[t,e[t]])))},t.omitObjectProps=function(e,t){return Object.fromEntries(Object.entries(e).filter((([e])=>!t.includes(e))))},t.splitCamelCaseIntoWords=function(e){const t=e.split(/(?:[-._])|([A-Z][a-z]+)/).filter(Boolean).map((e=>e.toLocaleLowerCase())),n=e.split(/([A-Z]{2,})/).filter((e=>e&&e===e.toUpperCase())).map((e=>e.toLocaleLowerCase()));return new Set([...t,...n])},t.validateMimeType=function({type:e,value:t},{report:n,location:r},o){if(!o)throw new Error(`Parameter "allowedValues" is not provided for "${"consumes"===e?"request":"response"}-mime-type" rule`);if(t[e])for(const i of t[e])o.includes(i)||n({message:`Mime type "${i}" is not allowed`,location:r.child(t[e].indexOf(i)).key()})},t.validateMimeTypeOAS3=function({type:e,value:t},{report:n,location:r},o){if(!o)throw new Error(`Parameter "allowedValues" is not provided for "${"consumes"===e?"request":"response"}-mime-type" rule`);if(t.content)for(const e of Object.keys(t.content))o.includes(e)||n({message:`Mime type "${e}" is not allowed`,location:r.child("content").child(e).key()})},t.isSingular=function(e){return s.isSingular(e)},t.readFileAsStringSync=function(e){return o.readFileSync(e,"utf-8")},t.isPathParameter=function(e){return e.startsWith("{")&&e.endsWith("}")},t.slash=function(e){return/^\\\\\?\\/.test(e)?e:e.replace(/\\/g,"/")},t.isNotEmptyObject=function(e){return!!e&&Object.keys(e).length>0},t.isString=f,t.isNotString=function(e){return!f(e)},t.assignExisting=function(e,t){for(let n of Object.keys(t))e.hasOwnProperty(n)&&(e[n]=t[n])},t.getMatchingStatusCodeRange=e=>`${e}`.replace(/^(\d)\d\d$/,((e,t)=>`${t}XX`)),t.isCustomRuleId=function(e){return e.includes("/")}},8065:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeVisitors=void 0,t.normalizeVisitors=function(e,t){const n={any:{enter:[],leave:[]}};for(const e of Object.keys(t))n[e]={enter:[],leave:[]};n.ref={enter:[],leave:[]};for(const{ruleId:t,severity:n,visitor:r}of e)o({ruleId:t,severity:n},r,null);for(const e of Object.keys(n))n[e].enter.sort(((e,t)=>t.depth-e.depth)),n[e].leave.sort(((e,t)=>e.depth-t.depth));return n;function r(e,t,o,i,a=[]){if(a.includes(t))return;a=[...a,t];const s=new Set;for(let n of Object.values(t.properties))n!==o?"object"==typeof n&&null!==n&&n.name&&s.add(n):l(e,a);t.additionalProperties&&"function"!=typeof t.additionalProperties&&(t.additionalProperties===o?l(e,a):void 0!==t.additionalProperties.name&&s.add(t.additionalProperties)),t.items&&(t.items===o?l(e,a):void 0!==t.items.name&&s.add(t.items));for(let t of Array.from(s.values()))r(e,t,o,i,a);function l(e,t){for(const r of t.slice(1))n[r.name]=n[r.name]||{enter:[],leave:[]},n[r.name].enter.push(Object.assign(Object.assign({},e),{visit:()=>{},depth:0,context:{isSkippedLevel:!0,seen:new Set,parent:i}}))}}function o(e,i,a,s=0){const l=Object.keys(t);if(0===s)l.push("any"),l.push("ref");else{if(i.any)throw new Error("any() is allowed only on top level");if(i.ref)throw new Error("ref() is allowed only on top level")}for(const c of l){const l=i[c],u=n[c];if(!l)continue;let p,d,f;const h="object"==typeof l;if("ref"===c&&h&&l.skip)throw new Error("ref() visitor does not support skip");"function"==typeof l?p=l:h&&(p=l.enter,d=l.leave,f=l.skip);const m={activatedOn:null,type:t[c],parent:a,isSkippedLevel:!1};if("object"==typeof l&&o(e,l,m,s+1),a&&r(e,a.type,t[c],a),p||h){if(p&&"function"!=typeof p)throw new Error("DEV: should be function");u.enter.push(Object.assign(Object.assign({},e),{visit:p||(()=>{}),skip:f,depth:s,context:m}))}if(d){if("function"!=typeof d)throw new Error("DEV: should be function");u.leave.push(Object.assign(Object.assign({},e),{visit:d,depth:s,context:m}))}}}}},9443:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.walkDocument=void 0;const r=n(7468),o=n(4182),i=n(771),a=n(5220);function s(e){var t,n;const r={};for(;e.parent;)(null===(t=e.parent.activatedOn)||void 0===t?void 0:t.value.location)&&(r[e.parent.type.name]=null===(n=e.parent.activatedOn)||void 0===n?void 0:n.value.location),e=e.parent;return r}t.walkDocument=function(e){const{document:t,rootType:n,normalizedVisitors:l,resolvedRefMap:c,ctx:u}=e,p={},d=new Set;!function e(t,n,f,h,m){var g,y,v,b,w,x,k,_,O,S,E;const P=(e,t=$.source.absoluteRef)=>{if(!r.isRef(e))return{location:f,node:e};const n=o.makeRefId(t,e.$ref),i=c.get(n);if(!i)return{location:void 0,node:void 0};const{resolved:a,node:s,document:l,nodePointer:u,error:p}=i;return{location:a?new r.Location(l.source,u):p instanceof o.YamlParseError?new r.Location(p.source,""):void 0,node:s,error:p}},A=f;let $=f;const{node:C,location:R,error:j}=P(t),T=new Set;if(r.isRef(t)){const e=l.ref.enter;for(const{visit:r,ruleId:o,severity:i,context:a}of e)if(!d.has(t)){T.add(a);r(t,{report:N.bind(void 0,o,i),resolve:P,rawNode:t,rawLocation:A,location:f,type:n,parent:h,key:m,parentLocations:{},oasVersion:u.oasVersion,getVisitorData:D.bind(void 0,o)},{node:C,location:R,error:j}),(null==R?void 0:R.source.absoluteRef)&&u.refTypes&&u.refTypes.set(null==R?void 0:R.source.absoluteRef,n)}}if(void 0!==C&&R&&"scalar"!==n.name){$=R;const o=null===(y=null===(g=p[n.name])||void 0===g?void 0:g.has)||void 0===y?void 0:y.call(g,C);let s=!1;const c=l.any.enter.concat((null===(v=l[n.name])||void 0===v?void 0:v.enter)||[]),u=[];for(const{context:e,visit:r,skip:a,ruleId:l,severity:p}of c)if(e.isSkippedLevel)!e.parent.activatedOn||e.parent.activatedOn.value.nextLevelTypeActivated||e.seen.has(t)||(e.seen.add(t),s=!0,u.push(e));else if(e.parent&&e.parent.activatedOn&&(null===(b=e.activatedOn)||void 0===b?void 0:b.value.withParentNode)!==e.parent.activatedOn.value.node&&(null===(w=e.parent.activatedOn.value.nextLevelTypeActivated)||void 0===w?void 0:w.value)!==n||!e.parent&&!o){u.push(e);const o={node:C,location:R,nextLevelTypeActivated:null,withParentNode:null===(k=null===(x=e.parent)||void 0===x?void 0:x.activatedOn)||void 0===k?void 0:k.value.node,skipped:null!==(S=(null===(O=null===(_=e.parent)||void 0===_?void 0:_.activatedOn)||void 0===O?void 0:O.value.skipped)||(null==a?void 0:a(C,m)))&&void 0!==S&&S};e.activatedOn=i.pushStack(e.activatedOn,o);let c=e.parent;for(;c;)c.activatedOn.value.nextLevelTypeActivated=i.pushStack(c.activatedOn.value.nextLevelTypeActivated,n),c=c.parent;if(!o.skipped){s=!0,T.add(e);const{ignoreNextVisitorsOnNode:n}=I(r,C,t,e,l,p);if(n)break}}if(s||!o)if(p[n.name]=p[n.name]||new Set,p[n.name].add(C),Array.isArray(C)){const t=n.items;if(void 0!==t)for(let n=0;n!o.includes(e)))),r.isRef(t)&&o.push(...Object.keys(t).filter((e=>"$ref"!==e&&!o.includes(e))));for(const i of o){let o=C[i],s=R;void 0===o&&(o=t[i],s=f);let l=n.properties[i];void 0===l&&(l=n.additionalProperties),"function"==typeof l&&(l=l(o,i)),!a.isNamedType(l)&&(null==l?void 0:l.directResolveAs)&&(l=l.directResolveAs,o={$ref:o}),l&&void 0===l.name&&!1!==l.resolvable&&(l={name:"scalar",properties:{}}),a.isNamedType(l)&&("scalar"!==l.name||r.isRef(o))&&e(o,l,s.child([i]),C,i)}}const d=l.any.leave,h=((null===(E=l[n.name])||void 0===E?void 0:E.leave)||[]).concat(d);for(const e of u.reverse())if(e.isSkippedLevel)e.seen.delete(C);else if(e.activatedOn=i.popStack(e.activatedOn),e.parent){let t=e.parent;for(;t;)t.activatedOn.value.nextLevelTypeActivated=i.popStack(t.activatedOn.value.nextLevelTypeActivated),t=t.parent}for(const{context:e,visit:n,ruleId:r,severity:o}of h)!e.isSkippedLevel&&T.has(e)&&I(n,C,t,e,r,o)}if($=f,r.isRef(t)){const e=l.ref.leave;for(const{visit:r,ruleId:o,severity:i,context:a}of e)if(T.has(a)){r(t,{report:N.bind(void 0,o,i),resolve:P,rawNode:t,rawLocation:A,location:f,type:n,parent:h,key:m,parentLocations:{},oasVersion:u.oasVersion,getVisitorData:D.bind(void 0,o)},{node:C,location:R,error:j})}}function I(e,t,r,o,i,a){const l=N.bind(void 0,i,a);let c=!1;return e(t,{report:l,resolve:P,rawNode:r,location:$,rawLocation:A,type:n,parent:h,key:m,parentLocations:s(o),oasVersion:u.oasVersion,ignoreNextVisitorsOnNode:()=>{c=!0},getVisitorData:D.bind(void 0,i)},function(e){var t;const n={};for(;e.parent;)n[e.parent.type.name]=null===(t=e.parent.activatedOn)||void 0===t?void 0:t.value.node,e=e.parent;return n}(o),o),{ignoreNextVisitorsOnNode:c}}function N(e,t,n){const r=n.location?Array.isArray(n.location)?n.location:[n.location]:[Object.assign(Object.assign({},$),{reportOnKey:!1})];u.problems.push(Object.assign(Object.assign({ruleId:n.ruleId||e,severity:n.forceSeverity||t},n),{suggest:n.suggest||[],location:r.map((e=>Object.assign(Object.assign(Object.assign({},$),{reportOnKey:!1}),e)))}))}function D(e){return u.visitorsData[e]=u.visitorsData[e]||{},u.visitorsData[e]}}(t.parsed,n,new r.Location(t.source,"#/"),void 0,"")}},5019:function(e,t,n){var r=n(5623);e.exports=function(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),g(function(e){return e.split("\\\\").join(o).split("\\{").join(i).split("\\}").join(a).split("\\,").join(s).split("\\.").join(l)}(e),!0).map(u)):[]};var o="\0SLASH"+Math.random()+"\0",i="\0OPEN"+Math.random()+"\0",a="\0CLOSE"+Math.random()+"\0",s="\0COMMA"+Math.random()+"\0",l="\0PERIOD"+Math.random()+"\0";function c(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function u(e){return e.split(o).join("\\").split(i).join("{").split(a).join("}").split(s).join(",").split(l).join(".")}function p(e){if(!e)return[""];var t=[],n=r("{","}",e);if(!n)return e.split(",");var o=n.pre,i=n.body,a=n.post,s=o.split(",");s[s.length-1]+="{"+i+"}";var l=p(a);return a.length&&(s[s.length-1]+=l.shift(),s.push.apply(s,l)),t.push.apply(t,s),t}function d(e){return"{"+e+"}"}function f(e){return/^-?0\d/.test(e)}function h(e,t){return e<=t}function m(e,t){return e>=t}function g(e,t){var n=[],o=r("{","}",e);if(!o)return[e];var i=o.pre,s=o.post.length?g(o.post,!1):[""];if(/\$$/.test(o.pre))for(var l=0;l=0;if(!x&&!k)return o.post.match(/,.*\}/)?g(e=o.pre+"{"+o.body+a+o.post):[e];if(x)y=o.body.split(/\.\./);else if(1===(y=p(o.body)).length&&1===(y=g(y[0],!1).map(d)).length)return s.map((function(e){return o.pre+y[0]+e}));if(x){var _=c(y[0]),O=c(y[1]),S=Math.max(y[0].length,y[1].length),E=3==y.length?Math.abs(c(y[2])):1,P=h;O<_&&(E*=-1,P=m);var A=y.some(f);v=[];for(var $=_;P($,O);$+=E){var C;if(w)"\\"===(C=String.fromCharCode($))&&(C="");else if(C=String($),A){var R=S-C.length;if(R>0){var j=new Array(R+1).join("0");C=$<0?"-"+j+C.slice(1):j+C}}v.push(C)}}else{v=[];for(var T=0;T(g(t),!(!n.nocomment&&"#"===t.charAt(0))&&new v(t,n).match(e));e.exports=r;const o=n(5751);r.sep=o.sep;const i=Symbol("globstar **");r.GLOBSTAR=i;const a=n(5019),s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},l="[^/]",c="[^/]*?",u=e=>e.split("").reduce(((e,t)=>(e[t]=!0,e)),{}),p=u("().*{}+?[]^$\\!"),d=u("[.("),f=/\/+/;r.filter=(e,t={})=>(n,o,i)=>r(n,e,t);const h=(e,t={})=>{const n={};return Object.keys(e).forEach((t=>n[t]=e[t])),Object.keys(t).forEach((e=>n[e]=t[e])),n};r.defaults=e=>{if(!e||"object"!=typeof e||!Object.keys(e).length)return r;const t=r,n=(n,r,o)=>t(n,r,h(e,o));return(n.Minimatch=class extends t.Minimatch{constructor(t,n){super(t,h(e,n))}}).defaults=n=>t.defaults(h(e,n)).Minimatch,n.filter=(n,r)=>t.filter(n,h(e,r)),n.defaults=n=>t.defaults(h(e,n)),n.makeRe=(n,r)=>t.makeRe(n,h(e,r)),n.braceExpand=(n,r)=>t.braceExpand(n,h(e,r)),n.match=(n,r,o)=>t.match(n,r,h(e,o)),n},r.braceExpand=(e,t)=>m(e,t);const m=(e,t={})=>(g(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:a(e)),g=e=>{if("string"!=typeof e)throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")},y=Symbol("subparse");r.makeRe=(e,t)=>new v(e,t||{}).makeRe(),r.match=(e,t,n={})=>{const r=new v(t,n);return e=e.filter((e=>r.match(e))),r.options.nonull&&!e.length&&e.push(t),e};class v{constructor(e,t){g(e),t||(t={}),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.make()}debug(){}make(){const e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();let n=this.globSet=this.braceExpand();t.debug&&(this.debug=(...e)=>console.error(...e)),this.debug(this.pattern,n),n=this.globParts=n.map((e=>e.split(f))),this.debug(this.pattern,n),n=n.map(((e,t,n)=>e.map(this.parse,this))),this.debug(this.pattern,n),n=n.filter((e=>-1===e.indexOf(!1))),this.debug(this.pattern,n),this.set=n}parseNegate(){if(this.options.nonegate)return;const e=this.pattern;let t=!1,n=0;for(let r=0;r>> no match, partial?",e,d,t,f),d!==s))}if("string"==typeof u?(c=p===u,this.debug("string match",u,p,c)):(c=p.match(u),this.debug("pattern match",u,p,c)),!c)return!1}if(o===s&&a===l)return!0;if(o===s)return n;if(a===l)return o===s-1&&""===e[o];throw new Error("wtf?")}braceExpand(){return m(this.pattern,this.options)}parse(e,t){g(e);const n=this.options;if("**"===e){if(!n.noglobstar)return i;e="*"}if(""===e)return"";let r="",o=!!n.nocase,a=!1;const u=[],f=[];let h,m,v,b,w=!1,x=-1,k=-1;const _="."===e.charAt(0)?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",O=()=>{if(h){switch(h){case"*":r+=c,o=!0;break;case"?":r+=l,o=!0;break;default:r+="\\"+h}this.debug("clearStateChar %j %j",h,r),h=!1}};for(let t,i=0;i(n||(n="\\"),t+t+n+"|"))),this.debug("tail=%j\n %s",e,e,v,r);const t="*"===v.type?c:"?"===v.type?l:"\\"+v.type;o=!0,r=r.slice(0,v.reStart)+t+"\\("+e}O(),a&&(r+="\\\\");const S=d[r.charAt(0)];for(let e=f.length-1;e>-1;e--){const n=f[e],o=r.slice(0,n.reStart),i=r.slice(n.reStart,n.reEnd-8);let a=r.slice(n.reEnd);const s=r.slice(n.reEnd-8,n.reEnd)+a,l=o.split("(").length-1;let c=a;for(let e=0;e(e=e.map((e=>"string"==typeof e?e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):e===i?i:e._src)).reduce(((e,t)=>(e[e.length-1]===i&&t===i||e.push(t),e)),[]),e.forEach(((t,r)=>{t===i&&e[r-1]!==i&&(0===r?e.length>1?e[r+1]="(?:\\/|"+n+"\\/)?"+e[r+1]:e[r]=n:r===e.length-1?e[r-1]+="(?:\\/|"+n+")?":(e[r-1]+="(?:\\/|\\/"+n+"\\/)"+e[r+1],e[r+1]=i))})),e.filter((e=>e!==i)).join("/")))).join("|");o="^(?:"+o+")$",this.negate&&(o="^(?!"+o+").*$");try{this.regexp=new RegExp(o,r)}catch(e){this.regexp=!1}return this.regexp}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;const n=this.options;"/"!==o.sep&&(e=e.split(o.sep).join("/")),e=e.split(f),this.debug(this.pattern,"split",e);const r=this.set;let i;this.debug(this.pattern,"set",r);for(let t=e.length-1;t>=0&&(i=e[t],!i);t--);for(let o=0;o=0&&c>0){if(e===t)return[l,c];for(r=[],i=n.length;u>=0&&!s;)u==l?(r.push(u),l=n.indexOf(e,u+1)):1==r.length?s=[r.pop(),c]:((o=r.pop())=0?l:c;r.length&&(s=[i,a])}return s}e.exports=t,t.range=r},4480:function(e,t,n){"use strict";var r=n.g.process&&process.nextTick||n.g.setImmediate||function(e){setTimeout(e,0)};e.exports=function(e,t){return e?void t.then((function(t){r((function(){e(null,t)}))}),(function(t){r((function(){e(t)}))})):t}},4184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;tu;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:function(e,t,n){var r=n(9974),o=n(8361),i=n(7908),a=n(7466),s=n(5417),l=[].push,c=function(e){var t=1==e,n=2==e,c=3==e,u=4==e,p=6==e,d=7==e,f=5==e||p;return function(h,m,g,y){for(var v,b,w=i(h),x=o(w),k=r(m,g,3),_=a(x.length),O=0,S=y||s,E=t?S(h,_):n||d?S(h,0):void 0;_>O;O++)if((f||O in x)&&(b=k(v=x[O],O,w),e))if(t)E[O]=b;else if(b)switch(e){case 3:return!0;case 5:return v;case 6:return O;case 2:l.call(E,v)}else switch(e){case 4:return!1;case 7:l.call(E,v)}return p?-1:c||u?u:E}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterOut:c(7)}},1194:function(e,t,n){var r=n(7293),o=n(5112),i=n(7392),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},5417:function(e,t,n){var r=n(111),o=n(3157),i=n(5112)("species");e.exports=function(e,t){var n;return o(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},4326:function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},648:function(e,t,n){var r=n(1694),o=n(4326),i=n(5112)("toStringTag"),a="Arguments"==o(function(){return arguments}());e.exports=r?o:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:a?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},9920:function(e,t,n){var r=n(6656),o=n(3887),i=n(1236),a=n(3070);e.exports=function(e,t){for(var n=o(t),s=a.f,l=i.f,c=0;c=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=r[1]),e.exports=o&&+o},748:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:function(e,t,n){var r=n(7854),o=n(1236).f,i=n(8880),a=n(1320),s=n(3505),l=n(9920),c=n(4705);e.exports=function(e,t){var n,u,p,d,f,h=e.target,m=e.global,g=e.stat;if(n=m?r:g?r[h]||s(h,{}):(r[h]||{}).prototype)for(u in t){if(d=t[u],p=e.noTargetGet?(f=o(n,u))&&f.value:n[u],!c(m?u:h+(g?".":"#")+u,e.forced)&&void 0!==p){if(typeof d==typeof p)continue;l(d,p)}(e.sham||p&&p.sham)&&i(d,"sham",!0),a(n,u,d,e)}}},7293:function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},9974:function(e,t,n){var r=n(3099);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},5005:function(e,t,n){var r=n(857),o=n(7854),i=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e])||i(o[e]):r[e]&&r[e][t]||o[e]&&o[e][t]}},7854:function(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},6656:function(e,t,n){var r=n(7908),o={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return o.call(r(e),t)}},3501:function(e){e.exports={}},490:function(e,t,n){var r=n(5005);e.exports=r("document","documentElement")},4664:function(e,t,n){var r=n(9781),o=n(7293),i=n(317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},8361:function(e,t,n){var r=n(7293),o=n(4326),i="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?i.call(e,""):Object(e)}:Object},2788:function(e,t,n){var r=n(5465),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return o.call(e)}),e.exports=r.inspectSource},9909:function(e,t,n){var r,o,i,a=n(8536),s=n(7854),l=n(111),c=n(8880),u=n(6656),p=n(5465),d=n(6200),f=n(3501),h="Object already initialized",m=s.WeakMap;if(a||p.state){var g=p.state||(p.state=new m),y=g.get,v=g.has,b=g.set;r=function(e,t){if(v.call(g,e))throw new TypeError(h);return t.facade=e,b.call(g,e,t),t},o=function(e){return y.call(g,e)||{}},i=function(e){return v.call(g,e)}}else{var w=d("state");f[w]=!0,r=function(e,t){if(u(e,w))throw new TypeError(h);return t.facade=e,c(e,w,t),t},o=function(e){return u(e,w)?e[w]:{}},i=function(e){return u(e,w)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},3157:function(e,t,n){var r=n(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},4705:function(e,t,n){var r=n(7293),o=/#|\.prototype\./,i=function(e,t){var n=s[a(e)];return n==c||n!=l&&("function"==typeof t?r(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},s=i.data={},l=i.NATIVE="N",c=i.POLYFILL="P";e.exports=i},111:function(e){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},1913:function(e){e.exports=!1},133:function(e,t,n){var r=n(7392),o=n(7293);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},8536:function(e,t,n){var r=n(7854),o=n(2788),i=r.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},30:function(e,t,n){var r,o=n(9670),i=n(6048),a=n(748),s=n(3501),l=n(490),c=n(317),u=n(6200)("IE_PROTO"),p=function(){},d=function(e){return"