User management (authentication, current user details).
Augmented Operations Management API (1.0.0)
This API provides backend services for the Augmented Decision Making application, focusing on the efficient scheduling and assignment of tasks Operations to a given Resources.
The system models the following key entities:
- Locations: Representing physical areas
- Resources: Specific assignable assets within a location.
- Tasks: Represent individual events, jobs. Tasks include detailed time information (planned, expected, actual) and model uncertainty using statistical parameters (sigma, skew factor, distribution mean/earliest/latest). Tasks also support versioning to track updates.
- Operations: Represent a complete operation, linking an inbound task to an outbound task. Operations contain relevant metadata.
- Assignments: Link an Operation to a specific Resource for a given time period.
- Tags: Can be used to restrict possible assignments as well as indicate preferences or penalties.
- Rules: Can be used to specify preferences or penalties in conjunction with the tagging mechanism.
The API enables users and automated systems to:
- Manage Data: Perform CRUD operations on Locations, Resources, Tasks, Operations, and Assignments.
- Track Operations Times: Handle various time representations and update task details, including imposing delays. Task updates create new versions, preserving history.
- Assignments: Assign or reassign operation to resources.
- Detect Conflicts: Identify situations where an assigned conflicting (overlapping) with another based on their expected time windows.
- Resolve Conflicts: Offer mechanisms to resolve individual scheduling conflicts through AI.
- Optimize Globally: Offer global optimization of the schedule using various solvers to minimize conflicts and reassignments while optimizing for rules.
- AI Assistance: Interact with an AI agent (via the
/agent/endpoint) using natural language to query the schedule, identify conflicts, request moves, or trigger conflict resolution processes. The agent utilizes specialized tools to interact with the system's state. - Real-time Updates: Delivers real-time notifications about changes to Assignments and Operations via WebSockets to subscribed clients.
- Virtual State Management: Allows temporary modifications to the schedule (virtual assignments) for "what-if" scenarios or agent-driven planning before potentially persisting changes.
- Acceptance Environmenthttps://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/?end_timestamp=0&start_timestamp=0' \
-H 'Authorization: YOUR_API_KEY_HERE'Task status and result (if ready)
This is a placeholder for the AviationStandPlanningAdapter's virtual state input.
Whether experimental tools are enabled
Whether to attach a callback to the solver for live updates
0 strives for minimal conflicts whereas 1 strives for minimal overlap
0 strives for the goal of the strategy, while 1 strives for optimal rule value
Maximum runtime in seconds for the solver, default is 90 seconds
The acceptable optimality gap for the solver, default is 0
Ignore freeze window and allow edits in the past
Lock assignments that cross the left edge of the display window
Lock assignments that cross the right edge of the display window
Duration in seconds after the current_time during which no changes are allowed.
[ { "taskName": null, "taskId": "string", "discarded": true, "dateStarted": "2019-08-24T14:15:22Z", "dateDone": "2019-08-24T14:15:22Z", "virtualState": { … }, "metrics": { … }, "updatedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "status": "PENDING", "optimizationResult": null, "optimizationStatus": "UNKNOWN" } ]
Request
Updates an optimization task. Warning: this cannot be used to change the parameters of already running or starting tasks.
PENDING- PendingSTARTED- StartedRUNNING- RunningSUCCESS- SuccessFAILURE- FailureRETRY- RetryEXPIRED- Expired
OPTIMAL- Optimal solution foundFEASIBLE- Feasible solution foundINFEASIBLE- Problem is infeasibleMODEL_INVALID- Model is invalidERROR- Error happened while solvingMODEL_BUILD_TIMEOUT- Model building took too longUNKNOWN- Unknown status
- Acceptance Environmenthttps://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/{task_id}/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/{task_id}/' \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"taskName": "string",
"_status": "PENDING",
"metrics": null,
"optimizationLogs": "string",
"optimizationStatus": "OPTIMAL"
}'Task status and result (if ready)
This is a placeholder for the AviationStandPlanningAdapter's virtual state input.
Whether experimental tools are enabled
Whether to attach a callback to the solver for live updates
0 strives for minimal conflicts whereas 1 strives for minimal overlap
0 strives for the goal of the strategy, while 1 strives for optimal rule value
Maximum runtime in seconds for the solver, default is 90 seconds
The acceptable optimality gap for the solver, default is 0
Ignore freeze window and allow edits in the past
Lock assignments that cross the left edge of the display window
Lock assignments that cross the right edge of the display window
Duration in seconds after the current_time during which no changes are allowed.
- OptimizationTaskResultNotDone
- OptimizationTaskResultOptimalOrFeasible
- OptimizationTaskResultNotOptimalOrFeasible
- OptimizationTaskResultFailedOrRetried
{ "taskName": null, "taskId": "string", "discarded": true, "dateStarted": "2019-08-24T14:15:22Z", "dateDone": "2019-08-24T14:15:22Z", "virtualState": { "experimental_tools_enabled": false, "display_window_start": 0, "display_window_end": 0, "selected_time": 0, "forward_window": 0, "current_time": 0, "controls": { … }, "freeze_window": 0, "workspace_id": null }, "metrics": { "phase": null, "wall_time": null, "model_build_time": null, "best_obj": null, "best_bound": null, "gap": null, "num_conflicts": null, "num_branches": null }, "updatedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "status": "PENDING", "optimizationResult": null, "optimizationStatus": "UNKNOWN" }
- Acceptance Environmenthttps://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/{task_id}/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/{task_id}/' \
-H 'Authorization: YOUR_API_KEY_HERE'- Acceptance Environmenthttps://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/{task_id}/data/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/{task_id}/data/' \
-H 'Authorization: YOUR_API_KEY_HERE'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
Defines how a rule affects assignments.
The way the rule should affect the solver, if it is a soft rule
Defines how this rule affects the solver if it's a soft constraint
The cost value associated with the rule if it is soft. Ignored for hard rules.
The cost value associated with the rule if it is soft. Ignored for hard rules.
Public-facing input model used for validation and schema generation.
Note: virtual_assignments, virtual_operations, virtual_rules have been removed. Draft changes are now persisted to workspace state rows in the database. Use workspace_id to query the effective state (workspace overlay on mainline).
Whether experimental tools are enabled
Whether to attach a callback to the solver for live updates
0 strives for minimal conflicts whereas 1 strives for minimal overlap
0 strives for the goal of the strategy, while 1 strives for optimal rule value
Maximum runtime in seconds for the solver, default is 90 seconds
The acceptable optimality gap for the solver, default is 0
Ignore freeze window and allow edits in the past
Lock assignments that cross the left edge of the display window
Duration in seconds after the current_time during which no changes are allowed.
{ "assignments": [ { … } ], "operations": [ { … } ], "resources": [ { … } ], "rules": [ { … } ], "virtual_state": { "experimental_tools_enabled": false, "display_window_start": 0, "display_window_end": 0, "selected_time": 0, "forward_window": 0, "current_time": 0, "controls": { … }, "freeze_window": 0, "workspace_id": null } }
- Acceptance Environmenthttps://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/{task_id}/result/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimization-task-results/{task_id}/result/' \
-H 'Authorization: YOUR_API_KEY_HERE'This is a placeholder for the AviationStandPlanningAdapter's virtual state input.
Whether experimental tools are enabled
Whether to attach a callback to the solver for live updates
0 strives for minimal conflicts whereas 1 strives for minimal overlap
0 strives for the goal of the strategy, while 1 strives for optimal rule value
Maximum runtime in seconds for the solver, default is 90 seconds
The acceptable optimality gap for the solver, default is 0
Ignore freeze window and allow edits in the past
Lock assignments that cross the left edge of the display window
Lock assignments that cross the right edge of the display window
Duration in seconds after the current_time during which no changes are allowed.
- OptimizationTaskResultNotDone
- OptimizationTaskResultOptimalOrFeasible
- OptimizationTaskResultNotOptimalOrFeasible
- OptimizationTaskResultFailedOrRetried
{ "taskName": null, "taskId": "string", "discarded": true, "dateStarted": "2019-08-24T14:15:22Z", "dateDone": "2019-08-24T14:15:22Z", "virtualState": { "experimental_tools_enabled": false, "display_window_start": 0, "display_window_end": 0, "selected_time": 0, "forward_window": 0, "current_time": 0, "controls": { … }, "freeze_window": 0, "workspace_id": null }, "metrics": { "phase": null, "wall_time": null, "model_build_time": null, "best_obj": null, "best_bound": null, "gap": null, "num_conflicts": null, "num_branches": null }, "updatedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "status": "PENDING", "optimizationResult": null, "optimizationStatus": "UNKNOWN" }
Whether experimental tools are enabled
Whether to attach a callback to the solver for live updates
0 strives for minimal conflicts whereas 1 strives for minimal overlap
0 strives for the goal of the strategy, while 1 strives for optimal rule value
Maximum runtime in seconds for the solver, default is 90 seconds
The acceptable optimality gap for the solver, default is 0
Ignore freeze window and allow edits in the past
Lock assignments that cross the left edge of the display window
Duration in seconds after the current_time during which no changes are allowed.
- Acceptance Environmenthttps://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimize/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/optimize/' \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"experimental_tools_enabled": false,
"display_window_start": 0,
"display_window_end": 0,
"selected_time": 0,
"forward_window": 0,
"current_time": 0,
"controls": {
"attach_callback": true,
"resolution_balance": 0,
"rule_adherence": 0,
"max_runtime": 60,
"optimality_gap": 0,
"strategy": "standard",
"ignore_freeze_and_past": false,
"lock_left_edge": true,
"lock_right_edge": true
},
"freeze_window": 0,
"workspace_id": null
}'{ "task_id": "abc123" }