Skip to content

Conundra Resources API (1.27.2)

The Resources API provides the resources necessary to create a planning.

Download OpenAPI description
Servers
Mock server
https://developer.conundra.eu/_mock/apis/resource-management/resources-api
Resources API Production
https://api.conundra.eu/resource-management/v1

Health check

Miscellaneous endpoints for general API functionality

Operations

Employee

Endpoints used for managing the general information regarding your Employees. These endpoints are meant for managing Employees whose role is relevant for the functionality in Resource Management, ie: typically only those Employees capable of operating TransportResources.

Operations

Shift Schedule

ShiftSchedules can be used to describe the recurring pattern for an Employee's availability. They do not trigger availabilities themselves, but can be used to generate availabilities according to this schedule, through the application's user interface.

Providing ShiftSchedules enables planners to do long-term planning using the Employee Overview in the UI, since this allows us to predict when an Employee should be available.

Operations

Availability

Availabilities define a specific time range during which an Employee is available to execute tasks. These can either be derived from a ShiftSchedule (via the user interface) or created on an ad-hoc basis.

When an Availability is created or updated, it triggers a consolidation process that generates a snapshot of the corresponding Employee at that moment, referred to as an AvailableEmployee. This snapshot accounts for relocations (managed through the user interface) and Unavailabilities, ensuring a single source of truth for the Employee's status at that point in time.

Any modifications to this AvailableEmployee snapshot activate an algorithm that evaluates potential ResourceCombinations involving the Employee's Availability. During this evaluation, potential TransportResources are assessed. If the heuristic identifies that a specific ResourceCombination would enhance the overall solution's fitness, it is either created or updated.

Operations

Unavailability [EXPERIMENTAL]

Unavailabilities define a specific time range during which an Employee is unavailable to execute tasks. This can be due to sickness, holiday, or other temporary absences. During its duration, the employee can not be matched with a transport resource and used as part of the planning.

Operations

Transport Resource

Endpoints used for managing the general information regarding your Transport Resources. These can be Trucks, Trailers and Tractors.

Operations

Unavailability [EXPERIMENTAL]

Unavailabilities define a specific time range during which a TransportResource is unavailable. This can be due to, for example, technical issues. During its duration, the TransportResource can not be matched with an available Employee and used as part of the planning.

Operations

Home Base [EXPERIMENTAL]

A Home Base is a reusable address that is used to specify the location of Employees or Transport Resources. Instead of specifying a full address for each of these, the user can create a single reusable HomeBase and assign it to all.

Updates to an assigned HomeBase are propagated to all future resources using it.

Operations

Forecast [EXPERIMENTAL]

A forecast is the expected the number of shifts that will be required on the given day and location. They is used in the context of capacity planning: a difference in the forecast and the available shifts can indicate ue in the planning. The provided forecasts are only used to show to the end user and are not taken into account for any of the calculations made by the application.

Operations

Deployment [EXPERIMENTAL]

Endpoints used for managing Deployments. A Deployment represents the actual assignment of an Employee to one or more TransportResources for a specific time period and location. External deployments can be created to represent work assignments that are managed outside of the Resource Management system. Releasing or unreleasing routes in PTV OptiFlow also manages Deployments. These Deployments are managed internally by Resource Management and cannot be modified by this API.

Operations

[EXPERIMENTAL] Get Deployment

Request

Get an existing Deployment, defined by their id. Deployments without a planning_id are externally managed Deployments. Deployments with a planning_id are managed by releasing or unreleasing routes in PTV OptiFlow.

Security
clientCredentials
Path
idstringrequired

The unique ID used to identify this Deployment.

Responses

The Deployment was successfully retrieved. Details are in the response body.

Bodyapplication/json
idstring

The unique deployment ID.

Example: "deployment-123"
resource_combination_idstring

The ID of the associated resource combination, if any.

Example: "rc-456"
availability_idstring

The ID of the associated availability, if any.

Example: "avail-789"
employee_idstring

The ID of the employee assigned to this deployment.

Example: "employee-42"
transport_resource_idsArray of strings

The IDs of the transport resources assigned to this deployment.

Example: ["truck-1","trailer-2"]
startobject(DeploymentStart)
endobject(DeploymentEnd)
total_break_timestring

Total break time during the deployment, formatted as ISO-8601 duration.

Example: "PT1H"
planning_idstring

The ID of the planning that created this deployment, if any.

Example: "planning-123"
Response
application/json
{ "id": "deployment-123", "resource_combination_id": "rc-456", "availability_id": "avail-789", "employee_id": "employee-42", "transport_resource_ids": [ "truck-1", "trailer-2" ], "start": { "at": "2021-01-01T08:00:00Z", "location": {} }, "end": { "at": "2021-01-01T17:00:00Z", "location": {} }, "total_break_time": "PT1H", "planning_id": "planning-123" }

[EXPERIMENTAL] Upsert External Deployment

Request

Create or update an external Deployment. A unique ID (id) is required to identify the Deployment. Calling this endpoint with an existing id will update the Deployment.

External Deployments represent work assignments that are managed outside of the Resource Management system.

We don't allow overlap between Deployments for the same Employee or Transport Resource.

Security
clientCredentials
Path
idstringrequired

Unique identifier for this external Deployment. Should only contain characters which do not need URL encoding.

Headers
PreferArray of strings

The RFC7240 Prefer header indicates that a particular server behavior is preferred by the client but is not required for successful completion of the request (see RFC 7240).

The following behavior (see Examples) is supported by this API:

  • return=<minimal|representation> is used to suggest the server to return using 204 without resource (minimal) or using 200 or 201 with resource (representation) in the response body on success.
Examples:

Indicate no response is needed, can be omitted

return=minimal

Request the result of the operation as response

return=representation
Bodyapplication/json
employeestringrequired

The business ID of the employee for this deployment.

Example: "employee-42"
transport_resourcesArray of stringsrequired

The business IDs of the transport resources for this deployment.

Example: ["truck-1","trailer-2"]
startobject(DeploymentStart)required
atstring(date-time)required

When the deployment starts.

Example: "2021-01-01T08:00:00Z"
locationobject(DeploymentLocation)required

Location for the deployment. For external deployments, either address or home_base must be provided, but not both.

home_baseobject(LinkedHomeBase)

The business_id of a known HomeBase in the system for this deployment location.

addressobject(NamedGeoAddress)

Address for this deployment location.

endobject(DeploymentEnd)required
atstring(date-time)required

When the deployment ends.

Example: "2021-01-01T17:00:00Z"
locationobject(DeploymentLocation)required

Location for the deployment. For external deployments, either address or home_base must be provided, but not both.

home_baseobject(LinkedHomeBase)

The business_id of a known HomeBase in the system for this deployment location.

addressobject(NamedGeoAddress)

Address for this deployment location.

total_break_timestringrequired

Total break time during the deployment, formatted as ISO-8601 duration.

Example: "PT1H"

Responses

External Deployment created or updated

Headers
Preference-Appliedstring

Indicates whether a preference has been applied. (ex return=representation)

Locationstring(URI)

A URI to access the result of the operation.

Bodyapplication/json
idstring

The unique deployment ID.

Example: "deployment-123"
resource_combination_idstring

The ID of the associated resource combination, if any.

Example: "rc-456"
availability_idstring

The ID of the associated availability, if any.

Example: "avail-789"
employee_idstring

The ID of the employee assigned to this deployment.

Example: "employee-42"
transport_resource_idsArray of strings

The IDs of the transport resources assigned to this deployment.

Example: ["truck-1","trailer-2"]
startobject(DeploymentStart)
endobject(DeploymentEnd)
total_break_timestring

Total break time during the deployment, formatted as ISO-8601 duration.

Example: "PT1H"
planning_idstring

The ID of the planning that created this deployment, if any.

Example: "planning-123"
Response
application/json
{ "id": "deployment-123", "resource_combination_id": "rc-456", "availability_id": "avail-789", "employee_id": "employee-42", "transport_resource_ids": [ "truck-1", "trailer-2" ], "start": { "at": "2021-01-01T08:00:00Z", "location": {} }, "end": { "at": "2021-01-01T17:00:00Z", "location": {} }, "total_break_time": "PT1H", "planning_id": "planning-123" }

[EXPERIMENTAL] Delete External Deployment

Request

Delete an external Deployment, defined by their id. It is not possible to delete Deployments that are managed by the PTV OptiFlow platform. In order to remove these Deployments, you can use the planning_id to unrelease the corresponding route in the PTV OptiFlow planning.

Security
clientCredentials
Path
idstringrequired

Unique identifier for this external Deployment.

Responses

Deletion has succeeded and body is empty.

Response
No content

Actual

Actuals capture the worked hours for an Employee during a completed work shift. This data is used to provide insights into actual worked hours compared to contractual hours, and also helps steer the optimization algorithm towards creating a balanced work week that fulfills contractual hours without significant undershooting or overshooting.

By their nature, Actuals should always represent completed work shifts and therefore should always be in the past, adding Actuals that end in the future could lead to undesired behaviour.

Operations