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

auth_internal_docs_only_token_claims_retrieve

Request

Schema for the custom JWT claims included in access tokens. Docs-only endpoint; not used by the application at runtime.

Security
tokenAuth
curl -i -X GET \
  https://api.acc.adm.wearetransformers.nl/auth/internal/docs-only/token-claims/ \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

Bodyapplication/json
usernamestringrequired
substringrequired
emailstring or nullrequired
groupsArray of strings(GroupsEnum)required
Items Enum"ADM View Only""ADM Planner""ADM Flight Manager""ADM Resource Configurator""ADM Rules & Tags Configurator"
organization_idsArray of strings(uuid)required
is_superuserbooleanrequired
Response
application/json
{ "username": "string", "sub": "string", "email": "string", "groups": [ "ADM View Only" ], "organization_ids": [ "497f6eca-6276-4993-bfeb-53cbbbba6f08" ], "is_superuser": true }

Request

Takes a set of user credentials and returns an access and refresh JSON web token pair to prove the authentication of those credentials.

Bodyapplication/jsonrequired
usernamestringwrite-onlyrequired
passwordstringwrite-onlyrequired
curl -i -X POST \
  https://api.acc.adm.wearetransformers.nl/auth/login/ \
  -H 'Content-Type: application/json' \
  -d '{
    "username": "string",
    "password": "string"
  }'

Responses

Bodyapplication/json
accessstringrequired
refreshstringrequired
Response
application/json
{ "access": "string", "refresh": "string" }

Request

Security
tokenAuth
Bodyapplication/jsonrequired
refreshstringrequired
curl -i -X POST \
  https://api.acc.adm.wearetransformers.nl/auth/logout/ \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "refresh": "string"
  }'

Responses

Bodyapplication/json
refreshstringrequired
Response
application/json
{ "refresh": "string" }

Exchange OIDC LoginGrant code for JWTs

Request

Exchanges a one-time LoginGrant code produced by the SPA OIDC callback for a pair of JWT access/refresh tokens and the current user payload. The code is single-use and expires after a short time window.

Bodyapplication/jsonrequired
codestringrequired

One-time login code issued by the OIDC callback.

curl -i -X POST \
  https://api.acc.adm.wearetransformers.nl/auth/oidc/exchange \
  -H 'Content-Type: application/json' \
  -d '{
    "code": "string"
  }'

Responses

Bodyapplication/json
accessstringrequired

Short-lived JWT access token.

refreshstringrequired

Long-lived JWT refresh token.

userobject(User)required
user.​idintegerread-onlyrequired
user.​usernamestring<= 150 characters^[\w.@+-]+$required

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

user.​firstNamestringrequired
user.​lastNamestringrequired
user.​uuidstring(uuid)
user.​groupsArray of strings(GroupsEnum)read-onlyrequired
Items Enum"ADM View Only""ADM Planner""ADM Flight Manager""ADM Resource Configurator""ADM Rules & Tags Configurator"
Response
application/json
{ "access": "string", "refresh": "string", "user": { "id": 0, "username": "string", "firstName": "string", "lastName": "string", "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "groups": [] } }

Request

Takes a refresh type JSON web token and returns an access type JSON web token if the refresh token is valid.

Bodyapplication/jsonrequired
refreshstringrequired
curl -i -X POST \
  https://api.acc.adm.wearetransformers.nl/auth/refresh/ \
  -H 'Content-Type: application/json' \
  -d '{
    "refresh": "string"
  }'

Responses

Bodyapplication/json
accessstringread-onlyrequired
refreshstringrequired
Response
application/json
{ "access": "string", "refresh": "string" }
Operations
Operations
Operations
Operations
Operations