Skip to content

Augmented Operations Management API (1.0.0)

Overview

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.

Core Functionality

The API enables users and automated systems to:

  1. Manage Data: Perform CRUD operations on Locations, Resources, Tasks, Operations, and Assignments.
  2. Track Operations Times: Handle various time representations and update task details, including imposing delays. Task updates create new versions, preserving history.
  3. Assignments: Assign or reassign operation to resources.
  4. Detect Conflicts: Identify situations where an assigned conflicting (overlapping) with another based on their expected time windows.
  5. Resolve Conflicts: Offer mechanisms to resolve individual scheduling conflicts through AI.
  6. Optimize Globally: Offer global optimization of the schedule using various solvers to minimize conflicts and reassignments while optimizing for rules.
  7. 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.
  8. Real-time Updates: Delivers real-time notifications about changes to Assignments and Operations via WebSockets to subscribed clients.
  9. Virtual State Management: Allows temporary modifications to the schedule (virtual assignments) for "what-if" scenarios or agent-driven planning before potentially persisting changes.
Download OpenAPI description
Languages
Servers
Acceptance Environment
https://api.acc.adm.wearetransformers.nl

User management (authentication, current user details).

Operations

Managing locations and viewing their associated resources.

Operations

Managing resources (CRUD, listing).

Operations

Managing operations. Includes CRUD and listing with time/version filters.

Operations

Updating details (time, uncertainty) of individual tasks within operations.

Operations

Managing the assignment of operations to resources (CRUD, bulk operations, deactivation, listing per operation).

Operations

Resolving specific scheduling conflicts using heuristic search methods (streaming and non-streaming).

Operations

Globally optimizing the schedule using one of the solvers to minimize conflicts and reassignments while optimizing for rules.

Operations

Managing the plannings and organizations you have access to.

Operations

Interacting with the conversational AI assistant for planning and queries.

Operations

Utility endpoints, such as generating schedule visualizations.

Operations

API authentication token management (e.g., obtaining auth tokens).

Our mechanism for indicating constraints, penalties or preferences.

Operations

Can be used together with Tags to specify preferences or penalties.

Operations
Operations
Operations
Operations
Operations
Operations
Operations

Request

Returns all workspaces (draft, merged, archived) for the planning.

Security
tokenAuth
Path
idstring(uuid)required
curl -i -X GET \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/jsonArray [
idstring(uuid)read-onlyrequired
planningstring(uuid)read-onlyrequired
namestring or null
statusstringread-onlyrequired
  • draft - Draft
  • merged - Merged
  • archived - Archived
Enum"draft""merged""archived"
createdByobjectread-onlyrequired
createdBy.​idintegerread-onlyrequired
createdBy.​usernamestring<= 150 characters^[\w.@+-]+$required

Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.

createdBy.​firstNamestringrequired
createdBy.​lastNamestringrequired
createdBy.​uuidstring(uuid)
createdBy.​groupsArray of strings(GroupsEnum)read-onlyrequired
Items Enum"ADM View Only""ADM Planner""ADM Flight Manager""ADM Resource Configurator""ADM Rules & Tags Configurator"
createdAtstring(date-time)read-onlyrequired
]
Response
application/json
[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "planning": "2d429708-7857-4300-9552-6e473ce0d566", "name": "string", "status": "draft", "createdBy": {}, "createdAt": "2019-08-24T14:15:22Z" } ]

Request

Creates a new draft workspace for the planning.

Security
tokenAuth
Path
idstring(uuid)required
Bodyapplication/json
namestring or null
curl -i -X POST \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
  }'

Responses

Bodyapplication/json
idstring(uuid)read-onlyrequired
planningstring(uuid)read-onlyrequired
namestring or null
statusstringread-onlyrequired
  • draft - Draft
  • merged - Merged
  • archived - Archived
Enum"draft""merged""archived"
createdByobjectread-onlyrequired
createdBy.​idintegerread-onlyrequired
createdBy.​usernamestring<= 150 characters^[\w.@+-]+$required

Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.

createdBy.​firstNamestringrequired
createdBy.​lastNamestringrequired
createdBy.​uuidstring(uuid)
createdBy.​groupsArray of strings(GroupsEnum)read-onlyrequired
Items Enum"ADM View Only""ADM Planner""ADM Flight Manager""ADM Resource Configurator""ADM Rules & Tags Configurator"
createdAtstring(date-time)read-onlyrequired
Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "planning": "2d429708-7857-4300-9552-6e473ce0d566", "name": "string", "status": "draft", "createdBy": { "id": 0, "username": "string", "firstName": "string", "lastName": "string", "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "groups": [] }, "createdAt": "2019-08-24T14:15:22Z" }

Request

Returns details for a specific workspace.

Security
tokenAuth
Path
idstring(uuid)required
workspace_pkstring(uuid)required
curl -i -X GET \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/{workspace_pk}/' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
idstring(uuid)read-onlyrequired
planningstring(uuid)read-onlyrequired
namestring or null
statusstringread-onlyrequired
  • draft - Draft
  • merged - Merged
  • archived - Archived
Enum"draft""merged""archived"
createdByobjectread-onlyrequired
createdBy.​idintegerread-onlyrequired
createdBy.​usernamestring<= 150 characters^[\w.@+-]+$required

Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.

createdBy.​firstNamestringrequired
createdBy.​lastNamestringrequired
createdBy.​uuidstring(uuid)
createdBy.​groupsArray of strings(GroupsEnum)read-onlyrequired
Items Enum"ADM View Only""ADM Planner""ADM Flight Manager""ADM Resource Configurator""ADM Rules & Tags Configurator"
createdAtstring(date-time)read-onlyrequired
Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "planning": "2d429708-7857-4300-9552-6e473ce0d566", "name": "string", "status": "draft", "createdBy": { "id": 0, "username": "string", "firstName": "string", "lastName": "string", "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "groups": [] }, "createdAt": "2019-08-24T14:15:22Z" }

Request

Updates workspace name or description.

Security
tokenAuth
Path
idstring(uuid)required
workspace_pkstring(uuid)required
Bodyapplication/json
namestring or null
curl -i -X PATCH \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/{workspace_pk}/' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
  }'

Responses

Bodyapplication/json
idstring(uuid)read-onlyrequired
planningstring(uuid)read-onlyrequired
namestring or null
statusstringread-onlyrequired
  • draft - Draft
  • merged - Merged
  • archived - Archived
Enum"draft""merged""archived"
createdByobjectread-onlyrequired
createdBy.​idintegerread-onlyrequired
createdBy.​usernamestring<= 150 characters^[\w.@+-]+$required

Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.

createdBy.​firstNamestringrequired
createdBy.​lastNamestringrequired
createdBy.​uuidstring(uuid)
createdBy.​groupsArray of strings(GroupsEnum)read-onlyrequired
Items Enum"ADM View Only""ADM Planner""ADM Flight Manager""ADM Resource Configurator""ADM Rules & Tags Configurator"
createdAtstring(date-time)read-onlyrequired
Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "planning": "2d429708-7857-4300-9552-6e473ce0d566", "name": "string", "status": "draft", "createdBy": { "id": 0, "username": "string", "firstName": "string", "lastName": "string", "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "groups": [] }, "createdAt": "2019-08-24T14:15:22Z" }

Request

Archives a workspace (soft delete). Archived workspaces cannot be modified.

Security
tokenAuth
Path
idstring(uuid)required
workspace_pkstring(uuid)required
curl -i -X DELETE \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/{workspace_pk}/' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Workspace archived

Response
No content

Undo a specific workspace changeset

Request

ViewSet for managing workspaces within a planning.

Workspaces allow users to make draft changes to assignments, operations, and other planning data without affecting the mainline state. Changes can be merged to mainline when ready.

Security
tokenAuth
Path
change_idstring(uuid)required
idstring(uuid)required
workspace_pkstring(uuid)required
curl -i -X POST \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/{workspace_pk}/changesets/{change_id}/undo/' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
workspaceobject(WorkspaceSummary)required
workspace.​idstring(uuid)required
workspace.​namestring or null
workspace.​statusstringrequired
appliedChangeIdstring(uuid)required
Response
application/json
{ "workspace": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "status": "string" }, "appliedChangeId": "4381dee1-388c-46e5-9b9a-c620b05609a5" }

Request

Returns a summary of changes introduced by this workspace compared to mainline. Primarily used by the frontend AuditLog.

Security
tokenAuth
Path
idstring(uuid)required
workspace_pkstring(uuid)required
curl -i -X GET \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/{workspace_pk}/diff/' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
planningIdstring(uuid)required
workspaceobject(WorkspaceSummary)required
workspace.​idstring(uuid)required
workspace.​namestring or null
workspace.​statusstringrequired
countsobject(WorkspaceCounts)required
counts.​assignmentsintegerrequired
counts.​operationsintegerrequired
counts.​tasksintegerrequired
counts.​locationsintegerrequired
counts.​resourcesintegerrequired
counts.​rulesintegerrequired
counts.​tagsintegerrequired
assignmentsArray of objects(WorkspaceDiffAssignment)required
assignments[].​operationIdstring(uuid)required
assignments[].​beforeAssignment (object) or nullrequired
One of:
assignments[].​before.​idstring(uuid)
assignments[].​before.​operationstring(uuid)required
assignments[].​before.​planningstring(uuid)required
assignments[].​before.​partsArray of objects(AssignmentPart)required
assignments[].​before.​parts[].​idstring(uuid)read-onlyrequired
assignments[].​before.​parts[].​startAtstring or null(date-time)
assignments[].​before.​parts[].​endAtstring or null(date-time)
assignments[].​before.​parts[].​resourcestring or null(uuid)
assignments[].​before.​parts[].​isFixedboolean
assignments[].​before.​parts[].​metadataMaritimeBerthAssignmentMetadataSchema (object)
One of:

Input schema for maritime berth assignment metadata.

assignments[].​before.​assignedAtstring or null(date-time)read-onlyrequired
assignments[].​before.​validTostring or null(date-time)read-onlyrequired
assignments[].​before.​assignedBystring or nullread-onlyrequired
assignments[].​before.​workspacestring or null(uuid)read-onlyrequired
assignments[].​before.​tombstonebooleanread-onlyrequired
assignments[].​afterobject(Assignment)required
assignments[].​after.​idstring(uuid)
assignments[].​after.​operationstring(uuid)required
assignments[].​after.​planningstring(uuid)required
assignments[].​after.​partsArray of objects(AssignmentPart)required
assignments[].​after.​parts[].​idstring(uuid)read-onlyrequired
assignments[].​after.​parts[].​startAtstring or null(date-time)
assignments[].​after.​parts[].​endAtstring or null(date-time)
assignments[].​after.​parts[].​resourcestring or null(uuid)
assignments[].​after.​parts[].​isFixedboolean
assignments[].​after.​parts[].​metadataMaritimeBerthAssignmentMetadataSchema (object)
One of:

Input schema for maritime berth assignment metadata.

assignments[].​after.​assignedAtstring or null(date-time)read-onlyrequired
assignments[].​after.​validTostring or null(date-time)read-onlyrequired
assignments[].​after.​assignedBystring or nullread-onlyrequired
assignments[].​after.​workspacestring or null(uuid)read-onlyrequired
assignments[].​after.​tombstonebooleanread-onlyrequired
operationsArray of objects(StateDiffEntry)required
operations[].​entityIdstringrequired
operations[].​entityTypestringrequired
operations[].​labelstringrequired
operations[].​stateIdstring(uuid)required
operations[].​changeIdstring or null(uuid)
operations[].​changeTypestringrequired
operations[].​beforeany or nullrequired
One of:
any
operations[].​afterany or nullrequired
One of:
any
operations[].​changesArray of objects(StateDiffChange)required
operations[].​changes[].​fieldstringrequired
operations[].​changes[].​beforeany or nullrequired
One of:
any
operations[].​changes[].​afterany or nullrequired
One of:
any
operations[].​sourceSourceEnum (string) or NullEnum (null)
One of:
  • mainline - mainline
  • workspace - workspace
string(SourceEnum)
Enum"mainline""workspace"
operations[].​validFromstring or null(date-time)
operations[].​validTostring or null(date-time)
operations[].​closedByChangeIdstring or null(uuid)
operations[].​createdByUser (object) or null
One of:
tasksArray of objects(StateDiffEntry)required
tasks[].​entityIdstringrequired
tasks[].​entityTypestringrequired
tasks[].​labelstringrequired
tasks[].​stateIdstring(uuid)required
tasks[].​changeIdstring or null(uuid)
tasks[].​changeTypestringrequired
tasks[].​beforeany or nullrequired
One of:
any
tasks[].​afterany or nullrequired
One of:
any
tasks[].​changesArray of objects(StateDiffChange)required
tasks[].​changes[].​fieldstringrequired
tasks[].​changes[].​beforeany or nullrequired
One of:
any
tasks[].​changes[].​afterany or nullrequired
One of:
any
tasks[].​sourceSourceEnum (string) or NullEnum (null)
One of:
  • mainline - mainline
  • workspace - workspace
string(SourceEnum)
Enum"mainline""workspace"
tasks[].​validFromstring or null(date-time)
tasks[].​validTostring or null(date-time)
tasks[].​closedByChangeIdstring or null(uuid)
tasks[].​createdByUser (object) or null
One of:
locationsArray of objects(StateDiffEntry)required
locations[].​entityIdstringrequired
locations[].​entityTypestringrequired
locations[].​labelstringrequired
locations[].​stateIdstring(uuid)required
locations[].​changeIdstring or null(uuid)
locations[].​changeTypestringrequired
locations[].​beforeany or nullrequired
One of:
any
locations[].​afterany or nullrequired
One of:
any
locations[].​changesArray of objects(StateDiffChange)required
locations[].​changes[].​fieldstringrequired
locations[].​changes[].​beforeany or nullrequired
One of:
any
locations[].​changes[].​afterany or nullrequired
One of:
any
locations[].​sourceSourceEnum (string) or NullEnum (null)
One of:
  • mainline - mainline
  • workspace - workspace
string(SourceEnum)
Enum"mainline""workspace"
locations[].​validFromstring or null(date-time)
locations[].​validTostring or null(date-time)
locations[].​closedByChangeIdstring or null(uuid)
locations[].​createdByUser (object) or null
One of:
resourcesArray of objects(StateDiffEntry)required
resources[].​entityIdstringrequired
resources[].​entityTypestringrequired
resources[].​labelstringrequired
resources[].​stateIdstring(uuid)required
resources[].​changeIdstring or null(uuid)
resources[].​changeTypestringrequired
resources[].​beforeany or nullrequired
One of:
any
resources[].​afterany or nullrequired
One of:
any
resources[].​changesArray of objects(StateDiffChange)required
resources[].​changes[].​fieldstringrequired
resources[].​changes[].​beforeany or nullrequired
One of:
any
resources[].​changes[].​afterany or nullrequired
One of:
any
resources[].​sourceSourceEnum (string) or NullEnum (null)
One of:
  • mainline - mainline
  • workspace - workspace
string(SourceEnum)
Enum"mainline""workspace"
resources[].​validFromstring or null(date-time)
resources[].​validTostring or null(date-time)
resources[].​closedByChangeIdstring or null(uuid)
resources[].​createdByUser (object) or null
One of:
rulesArray of objects(StateDiffEntry)required
rules[].​entityIdstringrequired
rules[].​entityTypestringrequired
rules[].​labelstringrequired
rules[].​stateIdstring(uuid)required
rules[].​changeIdstring or null(uuid)
rules[].​changeTypestringrequired
rules[].​beforeany or nullrequired
One of:
any
rules[].​afterany or nullrequired
One of:
any
rules[].​changesArray of objects(StateDiffChange)required
rules[].​changes[].​fieldstringrequired
rules[].​changes[].​beforeany or nullrequired
One of:
any
rules[].​changes[].​afterany or nullrequired
One of:
any
rules[].​sourceSourceEnum (string) or NullEnum (null)
One of:
  • mainline - mainline
  • workspace - workspace
string(SourceEnum)
Enum"mainline""workspace"
rules[].​validFromstring or null(date-time)
rules[].​validTostring or null(date-time)
rules[].​closedByChangeIdstring or null(uuid)
rules[].​createdByUser (object) or null
One of:
tagsArray of objects(StateDiffEntry)required
tags[].​entityIdstringrequired
tags[].​entityTypestringrequired
tags[].​labelstringrequired
tags[].​stateIdstring(uuid)required
tags[].​changeIdstring or null(uuid)
tags[].​changeTypestringrequired
tags[].​beforeany or nullrequired
One of:
any
tags[].​afterany or nullrequired
One of:
any
tags[].​changesArray of objects(StateDiffChange)required
tags[].​changes[].​fieldstringrequired
tags[].​changes[].​beforeany or nullrequired
One of:
any
tags[].​changes[].​afterany or nullrequired
One of:
any
tags[].​sourceSourceEnum (string) or NullEnum (null)
One of:
  • mainline - mainline
  • workspace - workspace
string(SourceEnum)
Enum"mainline""workspace"
tags[].​validFromstring or null(date-time)
tags[].​validTostring or null(date-time)
tags[].​closedByChangeIdstring or null(uuid)
tags[].​createdByUser (object) or null
One of:
Response
application/json
{ "planningId": "e9ff0b8e-cf21-4b25-a8e2-fc8bca9c6425", "workspace": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "status": "string" }, "counts": { "assignments": 0, "operations": 0, "tasks": 0, "locations": 0, "resources": 0, "rules": 0, "tags": 0 }, "assignments": [ {} ], "operations": [ {} ], "tasks": [ {} ], "locations": [ {} ], "resources": [ {} ], "rules": [ {} ], "tags": [ {} ] }

Request

Discards all workspace changes without merging. This operation: 1. Closes all workspace state rows (marks as deleted) 2. Updates workspace status to 'archived'

Security
tokenAuth
Path
idstring(uuid)required
workspace_pkstring(uuid)required
curl -i -X POST \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/{workspace_pk}/discard/' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
idstring(uuid)read-onlyrequired
planningstring(uuid)read-onlyrequired
namestring or null
statusstringread-onlyrequired
  • draft - Draft
  • merged - Merged
  • archived - Archived
Enum"draft""merged""archived"
createdByobjectread-onlyrequired
createdBy.​idintegerread-onlyrequired
createdBy.​usernamestring<= 150 characters^[\w.@+-]+$required

Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.

createdBy.​firstNamestringrequired
createdBy.​lastNamestringrequired
createdBy.​uuidstring(uuid)
createdBy.​groupsArray of strings(GroupsEnum)read-onlyrequired
Items Enum"ADM View Only""ADM Planner""ADM Flight Manager""ADM Resource Configurator""ADM Rules & Tags Configurator"
createdAtstring(date-time)read-onlyrequired
Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "planning": "2d429708-7857-4300-9552-6e473ce0d566", "name": "string", "status": "draft", "createdBy": { "id": 0, "username": "string", "firstName": "string", "lastName": "string", "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "groups": [] }, "createdAt": "2019-08-24T14:15:22Z" }

Request

Merges all workspace changes to mainline. This operation:

  1. Copies all workspace state rows to mainline (workspace=None)
  2. Closes the workspace state rows
  3. Updates workspace status to 'merged' Requires mainline write permission.
Security
tokenAuth
Path
idstring(uuid)required
workspace_pkstring(uuid)required
curl -i -X POST \
  'https://api.acc.adm.wearetransformers.nl/v1/plannings/{id}/workspaces/{workspace_pk}/merge/' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
idstring(uuid)read-onlyrequired
planningstring(uuid)read-onlyrequired
namestring or null
statusstringread-onlyrequired
  • draft - Draft
  • merged - Merged
  • archived - Archived
Enum"draft""merged""archived"
createdByobjectread-onlyrequired
createdBy.​idintegerread-onlyrequired
createdBy.​usernamestring<= 150 characters^[\w.@+-]+$required

Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.

createdBy.​firstNamestringrequired
createdBy.​lastNamestringrequired
createdBy.​uuidstring(uuid)
createdBy.​groupsArray of strings(GroupsEnum)read-onlyrequired
Items Enum"ADM View Only""ADM Planner""ADM Flight Manager""ADM Resource Configurator""ADM Rules & Tags Configurator"
createdAtstring(date-time)read-onlyrequired
Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "planning": "2d429708-7857-4300-9552-6e473ce0d566", "name": "string", "status": "draft", "createdBy": { "id": 0, "username": "string", "firstName": "string", "lastName": "string", "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "groups": [] }, "createdAt": "2019-08-24T14:15:22Z" }