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

Get Transport Resource by business id

Request

Get an existing TransportResource

Security
clientCredentials
Path
business_idstring^[a-zA-Z0-9.~\-_]{1,512}$required

A unique identifier of an entity instance. Should only contain characters which do not need URL encoding.

Responses

Transport Resource is retrieved

Headers
ETagstring

A weak Etag (ex W/"<etag_value>") which contains the current version of the entity

Example: "W/\"25\""
Bodyapplication/json
business_idstring^[a-zA-Z0-9.~\-_]+$read-onlyrequired
Example: "tractor-1"
typestring(ResourceType)required

A TRACTOR is a pulling unit, a TRAILER a cargo unit and a TRUCK is both a pulling and cargo unit.

Enum"TRACTOR""TRAILER""TRUCK"
license_platestring
Example: "1-ABC-987"
requirementsArray of stringsunique

List of requirements the Employee must fulfill to be allowed to use this TransportResource.

Example: ["driving license CE"]
capabilitiesArray of stringsunique

Capabilities this TransportResource provides to the ResourceCombination.

Example: ["big bag"]
required_capabilitiesArray of stringsunique

List of requirements the Employee must fulfill, which will be provided as capabilities to the ResourceCombination.

Example: ["cooling compressor"]
skilled_capabilitiesArray of stringsunique

List of capabilities which will be provided to the ResourceCombination, if the Employee has matching driver_skills.

Example: ["sideloading"]
cant_doArray of stringsunique

List of capabilities which will be disabled on the resulting ResourceCombination. For example: A TRACTOR with a faulty electric plug, can not be used with a TRAILER that exposes a capability which requires this plug.

Example: ["adr-transport"]
capacitiesArray of objects(Capacity)[ 1 .. 8 ] itemsunique

These capacities mirror the Order Book capacities.

linked_resourcestring

The business_id of another TransportResource on the same location that should be coupled with this one no matter what. This is known as a fixed coupling.

By using this you can indicate that a tractor should always be coupled with a specific trailer (or the other way around). There is no need to specify the linking in both directions. This overwrites all requirements and as such could lead to seemingly invalid situations, but this is at the discretion of the planner.

Example: "trailer-1"
start_locationobject(NamedGeoAddress)

The start_location where this TransportResource is based.

Either address information or geo point must be provided. The resolved information will be read only and be filled out after resolving.

Either a home_base or a start_location must be provided.

home_baseobject(LinkedHomeBase)

Conceptually the same as start_location, but with centralized address management.

Either a home_base or a start_location must be provided.

referencestring

Optional, internal reference (eg: fleet number, ...) for the TransportResource.

Example: "fleet-reference-47"
custom_dataobject(CustomData)

Custom data is an extendable hashmap of key-value pairs for client usage. These values have no meaning in the context of Resource Management, but can be used to enrich the data in OptiFlow with relevant information for the end users.

Keys should not be blank nor contain periods.

labelsArray of strings

Labels provided by the TransportResource for its Combination.

Example: ["Transport-resource-label-A"]
inactiveboolean

Flag to indicate whether a TransportResource can be used for creating ResourceCombinations. When set to true, all future ResourceCombinations will be removed.

Default false
costobject(Cost)
characteristicsobject(Characteristics)

[EXPERIMENTAL] Technical characteristics of this TransportResource.

route_settingsobject(RouteSettings)

Route settings for this TransportResource.

Response
application/json
{ "business_id": "tractor-1", "type": "TRACTOR", "license_plate": "1-ABC-987", "requirements": [ "driving license CE" ], "capabilities": [ "big bag" ], "required_capabilities": [ "cooling compressor" ], "skilled_capabilities": [ "sideloading" ], "cant_do": [ "adr-transport" ], "capacities": [ {} ], "linked_resource": "trailer-1", "start_location": { "name": "Conundra", "address_line": "Voordries 41b", "city": "Oosterzele", "zip_code": "9860", "country_code": "BE", "geo_point": {} }, "home_base": { "business_id": "depot-1" }, "reference": "fleet-reference-47", "custom_data": { "shop_manager": "John Smith" }, "labels": [ "Transport-resource-label-A" ], "inactive": false, "cost": { "per_kilometer": 0.9, "per_hour": 46.8, "fixed": 213 }, "characteristics": { "maximum_allowed_weight": 3500 }, "route_settings": { "direct_trips": false } }

Delete Transport Resource by business id

Request

Delete an existing TransportResource.

Upon deleting, the application will also remove ResourceCombinations using this TransportResource and try to find replacements. All unavailabilities and relocations related to this TransportResource will be removed as well.

Security
clientCredentials
Path
business_idstring^[a-zA-Z0-9.~\-_]{1,512}$required

A unique identifier of an entity instance. Should only contain characters which do not need URL encoding.

Headers
If-Matchstring

Weak Etag used for optimistic locking.

Example: W/"24"

Responses

Deletion has succeeded and body is empty

Response
No content

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

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